Теперь обратим внимание на такую «мелочь», как способность программатора определять правильность установки микросхемы в тестовую колодку. При кажущейся незначительности этой опции, мы начинаем понимать всю ее важность только после выхода из строя микросхемы при неверной установки ее в колодку. И винить в этом случае некого – сами виноваты. Именно для предотвращения таких ситуаций и служит эта опция. Здесь необходимо указать, что полноценная реализация такой возможности требует от разработчика больших усилий и, порой, изобретательности. Дело в том, что необходимо протестировать микросхему в колодке в самом щадящем для нее режиме, при этом ни в коем случае не допуская выхода микросхемы из строя.
И в заключение обсуждения аппаратного устройства программаторов, на наш взгляд, необходимо упомянуть о настоятельной необходимости проведения программаторами процедуры самотестирования. Обычно эта процедура проводится после инициализации аппаратуры программатора. Цель этой процедуры – встроенными средствами провести проверку работоспособности всего оборудования устройства и принять решение о возможности полноценной работы программатора. К сожалению, встроенными средствами не всегда удается однозначно убедиться в работоспособности всех узлов устройства, но, тем не менее, эта процедура обязательно должна проводиться с целью минимизации вероятности эксплуатации неработоспособного оборудования.
Рассмотрим общее представление о возможных способах реализации программного обеспечения (ПО) программатора. Первое, на что нужно обратить внимание, – это под управлением какой операционной системы работает программатор. Большинство программного обеспечения программаторов реализовано под управлением DOS и не предъявляет к компьютеру специфических требований. Обычно, это программы, разработанные довольно давно. В последние несколько лет стали появляться программаторы, работающие под управлением операционной системы Windows. Это современные продукты, которые, как правило, выглядят гораздо элегантнее, имеют более дружественный интерфейс и обладают большим числом сервисных возможностей.
Рассмотрим архитектуру программного обеспечения программаторов. Наиболее распространенной является архитектура, в которой в качестве ядра программатора выступает промежуточный буфер данных. Все операции в программаторе выполняются с этим буфером. Для программирования микросхемы необходимо загрузить файл в буфер, запрограммировать данные из буфера в микросхему, сравнить содержимое микросхемы и буфера. При чтении данные из микросхемы записываются в буфер. Размер промежуточного буфера данных, обычно, коррелирован с размером текущего типа микросхемы. Многолетний опыт разработки и производства программаторов позволил выработать концепцию оригинальной многобуферной архитектуры ПО программаторов с неограниченным количеством буферов. Такая архитектура позволяет работать с неограниченным количеством независимых наборов данных, проводить их анализ и редактирование. Например, вы можете воспользоваться двумя буферами для считывания в них двух разных микросхем, проведения анализа этих наборов данных и, на их базе, создания нового массива данных в третьем буфере для последующего программирования его в микросхемы памяти или сохранения на диске.
Стандартным набором функций программаторов обычно являются следующие функции: чтение, запись, сравнение, контроль на чистоту, стирание (только для электрически перепрограммируемых устройств) микросхем. Некоторые программаторы имеют функцию автоматического программирования. Эта функция позволяет осуществить часто используемую комбинацию действий для конкретного типа микросхемы. Обычно, такая комбинация состоит из такого набора: стереть микросхему, проконтролировать стертость, запрограммировать, сравнить запрограммированные данные с оригиналом, установить защиту. Удобство этой функции заключается в том, что весь «джентльменский» набор активизируется одним нажатием.
Отдельно остановимся на редакторских функциях программаторов. Наиболее распространенным перечнем редакторских функций являются: редактирование данных в шестнадцатеричном формате, возможность заполнения буфера данных константой и подсчет контрольной суммы. Этого простого набора редакторских функций вполне достаточно для простых приложений. Для профессионального использования программаторов необходимы расширенные возможности редактирования. К ним можно отнести:
возможность редактирования данных не только в шестнадцатеричном формате, но и в двоичном;
– восьмеричном и десятичном представлении;
– заполнение массива строкой данных;
поиск и замена строки данных;
– инвертирование данных;
– копирование массива данных как внутри одного буфера, так и между разными буферами;
– подсчет контрольной суммы;
– конвертирование шин адреса и данных.
Еще одна особенность программного обеспечения программаторов, на которой стоит остановиться отдельно, – это пакетный режим работы. Очень в немногих программаторах такой режим реализован. А преимущество такого режима просто очевидно – это автоматизация работы. Использую пакетный режим работы, можно создавать сценарии работы с программатором, автоматизируя всю рутинную работу. Наиболее интересны устройства, где пакетный режим работы практически не имеет ограничений, в нем доступны все ресурсы программатора. В пакетном режиме можно загружать файлы, запускать программирование, манипулировать параметрами программирования, окнами на экране, выводить графические данные и т. д. В качестве иллюстрации использования пакетного режима работы программатора можно привести задачу программирования партии микросхем, в каждой из которых должен быть запрограммирован серийный номер. На специальном языке создается сценарий работы программатора, который заключается в следующем: оператор указывает начальное значение серийного номера партии микросхем и запускает процедуру программирования, программатор программирует микросхему с текущим серийным номером и вычисляет серийный номер следующей микросхемы, помещая его в соответствующий раздел памяти, далее процедура циклически повторяется. В приведенном примере пакетный режим работы значительно облегчает работу оператора и исключает свойственные оператору ошибки.
Последовательный интерфейс RS232, разработанный более 25 лет назад для компьютеров (в основном для их связи с модемами до сих пор не утратил своего коммуникационного назначения. Даже сейчас, в связи с появлением множества других последовательных интерфейсов, обладающих несомненными преимуществами перед этим интерфейсом (например, интерфейсов USB, RS485, RS422, применяемых в компьютерах, и PC, CAN, SPI, применяемых в микроконтроллерах), интерфейс RS232, похоже, не скоро уйдет в разряд «отставников». Такое положение, на первый взгляд, может показаться странным, особенно из-за недостатков RS232, «глюков» и т.п. Однако следует учесть, что это едва ли не единственное средство связи между компьютером и микроконтроллером, аппаратно присутствующее и в первом и во втором. Во всяком случае, косвенным подтверждением исключительности интерфейса RS232 может служить тот факт, что в современных персональных компьютерах RS232 интегрирован в материнскую плату. Что касается микроконтроллеров, то сейчас трудно найти такой микроконтроллер, в котором бы аппаратно не присутствовал хотя бы один интерфейс RS232 (иногда их бывает и два).
Интерфейс RS232 является последовательным. Это означает, что данные (информация) передаются последовательно, бит за битом по одному проводу (в отличие от параллельного интерфейса, в котором, например, каждый бит байта передается по отдельному проводу, т.е. байт передается по восьми проводам). Формат посылки – 1 байт данных и несколько управляющих бит, некоторые из которых могут отсутствовать.
Обмен информацией между компьютером и периферийным устройством по интерфейсу RS232 двусторонний, т.е. данные могут передаваться компьютером в периферийное устройство и приниматься компьютером от периферийного устройства.
В компьютере предусмотрен специальный разъем, называемый коммуникационным (СОМ); иногда их бывает два (СОМ1 и COM2) или более. К разъему подключается кабель, соединяющий компьютер с периферийным устройством. В кабеле находятся несколько проводов, которые называют линиями интерфейса. Термин «линия» достаточно условен, так как английское слово line, которому он соответствует, имеет более широкое значение.
На практике чаще всего используются три скорости обмена: 9600, 115200 и (реже) 57600 бод.
Контакты разъемов интерфейса RS232 в компьютере.
В компьютере могут присутствовать как 25-штырьковый (DB25), так и 9-штырьковый (DB9) разъемы RS232. Ниже приведены названия сигналов и соответствующие им номера контактов обоих типов разъемов. Как видно из таблицы 1, разъем содержит контакты как входных линий, так и выходных.