ТЕМА 1.4. ТЕСТИРОВАНИЕ И ОТЛАДКА МПС



Методы тестирования МПС

В жизненном цикле микропроцессорной системы выделяются три основных этапа: проектирование, изготовление и эксплуатация. Для поддержания микропроцессорной системы в работоспособном состоянии необходимо учитывать как специфику каждого этапа ее жизненного цикла, так и особенности МПС как объекта контроля.

Прежде всего, рассмотрим некоторые основные понятия, связанные с контролем и диагностикой цифровых вычислительных устройств.

Процедура проверки правильности функционирования объекта называется контролем или тестированием. В результате контроля определяется, находится ли объект в исправном состоянии. Если объект находится в неисправном состоянии, то возникает задача поиска неисправности - диагностирования. Процесс устранения найденных неисправностей называется отладкой.

Рассмотрим в первую очередь особенности МП БИС и микропроцессорной системы в целом как объекта контроля, которые затрудняют процедуру контроля и поиска неисправностей.

1. Высокая сложность БИС. Полная проверка схемы должна обеспечивать проверку ее работоспособности при всех возможных состояниях.

Число возможных состояний определяется количеством внутренних элементов памяти. Взяв для примера только регистровую память однокристального микроконтроллера (32 регистра по 8 разрядов), получим 2256 состояний. Для полного их перебора с частотой 100 МГц потребуется время порядка 1067 лет! Очевидно, что такой вариант неприемлем и никогда на практике не реализуется. Следовательно, любая МП БИС может содержать неисправности. Самое неприятное в этой ситуации то, что эти неисправности носят характер сбоев, то есть проявляются только при определенном сочетании данных внутри БИС, и поэтому весьма трудно поддаются выявлению.

Самой известной ошибкой этого рода является, безусловно, ошибка в процессоре обработки чисел с плавающей точкой микропроцессора Pentium, выпущенного в 1993 году. Она проявлялась в неточном выполнении операции деления (погрешность в 8-м десятичном знаке после запятой) для некоторых операндов. Ошибка проявлялась, только если делитель содержал шесть последовательных бит, с 5-го по 10-й, установленныхв единицу. Она была вызвана дефектами в микрокоде реализации алгоритма деления. Вероятность обнаружения ошибки оценивалась как один к девяти миллионам, а вероятность встречи с ней - 1 раз в 27 000 лет. Однако несмотря на это, фирма Intel пошла на то, чтобы заменить по требованию все дефектные процессоры, понеся при этом, естественно, значительные убытки.

Аналогичная ошибка была выявлена в конце 2007 года в четырехъядерных серверных процессорах Barcelona, а также в чипах Phenom для настольных компьютеров компании AMD. Она была связана с особенностями реализации буфера быстрого преобразования адреса ( TLB ) кэш-памяти третьего уровня. Ошибка в отдельных ситуациях приводила к зависанию системы.

Иногда отдельные неисправности проявляют себя только на высоких частотах работы БИС. Поэтому некоторые производители схем, определив в ходе тестирования, что отдельные БИС из некоторой партии схем дают сбои на начальной, самой высокой частоте, проверяют ее работоспособность на более низких частотах, где схемы этой партии могут оказаться вполне работоспособными. Именно с указанием такой частоты работы эти БИС и поступают на рынок. Такой подход служит одной из основ "разгона" схем.

2. Малое количество контрольных точек схем. Несмотря на то что корпуса современных микропроцессорных БИС имеют до 1,5 тыс. выводов, сложность микропроцессоров такова, что непосредственно подать тестовое воздействие на любую точку схемы невозможно. Также невозможно напрямую проверить состояние какого-либо узла БИС. Это требует подачи сложных последовательностей сигналов на доступные для воздействия точки схемы и синхронного анализа длинных последовательностей состояний в точках, доступных для прямого контроля. Поэтому воздействия и представления результатов носят косвенный, опосредованный характер, что может привести к неверной интерпретации получаемых при тестировании данных.

3. Неразделимость аппаратуры и программного обеспечения. Аппаратура и программное обеспечение МПС представляют собой единый комплекс. Свои функции микропроцессорная система выполняет под воздействием программ, часть из которых к тому же хранится в постоянной памяти БИС и системы. Ошибки в работе системы могут быть обусловлены как неисправностями аппаратной части, так и ошибками, допущенными при разработке ПО.

4. Сложность и неразделимость аппаратуры, составляющей микропроцессорную систему. МПС, особенно на этапе ее эксплуатации, невозможно разделить на функциональные узлы для их автономной проверки. Это объясняется конструктивными и схемотехническими особенностями микропроцессорных средств. Во-первых, чисто конструктивно подключить тестирующую аппаратуру к отдельным БИС, составляющим систему, весьма сложно. Во-вторых, разделение микропроцессорной системы на отдельные функциональные узлы при современном уровне интеграции элементов на кристалле невозможно. Сам микропроцессор содержит широкий набор функционально различных устройств от целочисленного АЛУ до запоминающих устройств различного вида и назначения. В то же время одни и те же функции распределяются по различным БИС. Например, обработкой прерываний занимается как сам микропроцессор, так и контроллер приоритетных прерываний, входящий в состав схем чипсета, которые, в свою очередь, выполняют множество других функций. Поэтому проверка выполнения той или иной функции в микропроцессорной системе затрагивает работу всех составляющих ее схем и предъявляет высокие требования к квалификации обслуживаемого персонала.

5. Необходимость одновременного контроля состояния большого числа многоразрядных шин. Общая разрядность шин, по которым происходит взаимодействие между компонентами микропроцессорной системы, весьма велика. Но главную проблему составляет не только количество точек, в которых требуется анализировать сигналы. Простая регистрация их поведения мало что даст для определения места и характера неисправности.

Обычно требуется регистрация и анализ сигналов на протяжении значительного временного интервала и в связи с редкими и однократными событиями. К числу таких событий, идентификация которых необходима в процессе контроля, относится появление заданных комбинаций сигналов на шинах МПС и даже появление заданной последовательности таких комбинаций: обращение по определенному адресу на запись определенных данных, появление сигнала запроса прерывания определенного типа или даже сигнал помехи. При наступлении такой ситуации следует проанализировать, а следовательно, предварительно запомнить состояние шин на протяжении как нескольких предшествующих тактов, так и нескольких тактов, которые следуют за указанным событием. В то же время для МПС на основе однокристальных микроконтроллеров и ЦСП эта проблема не столь остра, так как реализация большинства функций системы осуществляется внутренними средствами этих микропроцессоров. Поэтому такие системы имеют малое число периферийных схем, а обмен между ними и микропроцессором часто выполняется по последовательным интерфейсам.

6. Высокое быстродействие схем, образующих МПС, которое требует чрезвычайно быстродействующей контрольной аппаратуры. Частоты, на которых работают современные БИС, доходят до нескольких гигагерц. В то же время чтобы определить, например, факт переключения какого-либо сигнала, частота контролирующей аппаратуры должна быть как мини мум в два раза больше.

7. Шинная организация микропроцессорной системы. Магистральномодульный принцип построения МПС затрудняет определение источника искажения информации в магистрали. Неверное считывание информации из ОЗУ в микропроцессор может быть вызвано не поломкой какого-либо из этих двух устройств, а неисправностью совершенно посторонней для данного процесса схемы, при которой ее выход постоянно заземляет одну из линий общей магистрали.

 

Логические анализаторы

Отладка современных микропроцессорных систем требует от инструментальных средств следующих возможностей:

ü синхронный контроль состояния многоразрядных шин;

ü регистрация последовательностей состояний в связи с редкими и однократными событиями;

ü высокая частота работы.

Традиционные приборы контроля работы цифровых схем (амперметры, вольтметры, осциллографы, даже многолучевые с запоминанием информации) этим специфическим требованиям не удовлетворяют.

Для этих целей разработаны специальные устройства - логические анализаторы (ЛА).

Основной областью применения ЛА является этап разработки МПС, когда отсутствуют и проверенная аппаратура, и отлаженные программы. Именно в этих условиях проявляются преимущества ЛА как универсального и гибкого в применении прибора, позволяющего разработчику находить причины сложных аппаратно-программных неисправностей.

Основу логического анализатора составляет память логических последовательностей (ПЛП ). Тактовые сигналы записи в ПЛП могут вырабатываться внутренним генератором ЛА или поступать от контролируемой схемы. В последнем случае тактовые сигналы могут стробироваться другими внешними сигналами или их комбинацией. В случае заполнения всего объема ПЛП запись в нее продолжается циклически с нулевого адреса. Таким образом, в памяти всегда хранятся N последних принятых слов, где N - емкость ПЛП.

Режим регистрации продолжается до появления события, заданного оператором при настройке, или комбинации таких событий. Регистрация может быть прекращена не только непосредственно в момент события, но и через определенное число тактов после него. В этом случае в ПЛП фиксируются состояния сигналов в контрольных точках в моменты как предшествовавшие событию, так и непосредственно следовавшие за ним, что облегчает анализ ситуации. Количество тактов последействия также определяется при настройке.

Современные логические анализаторы имеют стандартные средства подключения к контролируемой МПС, большое разнообразие условий запуска по последовательности событий, наличие разнообразных режимов отображения информации, высокое быстродействие (до нескольких гигагерц), большую емкость ПЛП как по числу регистрируемых каналов (несколько сотен), так и по длине регистрируемой последовательности (десятки мегабит на канал). Некоторые модели логических анализаторов снабжаются встроенными генераторами тестовых последовательностей, что позволяет использовать их в качестве автономных приборов при поиске неисправностей в отдельных блоках МПС.

Поиск неисправности в МПС с помощью логического анализатора требует высокой квалификации персонала. Для каждой конкретной неисправности необходимо заново разрабатывать процедуру испытаний, настраивать прибор на новый режим работы, который, по мнению оператора, позволит обнаружить и локализовать неисправность. Поэтому ЛА используются в основном на этапе разработки МПС. В то же время он малопригоден на этапах производства и эксплуатации системы. Здесь большее распространение получили принципы сигнатурного анализа, которые, не требуя высокой квалификации персонала, позволяют быстро и точно отыскивать вышедший из строя компонент МПС с помощью недорогого и компактного оборудования.

Сигнатурный анализ основан на преобразовании длинных последовательностей двоичных сигналов в двоичное число, называемое сигнатурой. Измеряемые двоичные последовательности возбуждаются в контрольных точках МПС под действием специальной тестовой программы. Сигнатуры контрольных точек определяются на заведомо ра ботоспособной системе и указываются на принципиальной схеме МПС подобно тому, как на схемах аналоговых устройств указываются осциллограммы и некоторые параметры аналоговых сигналов. Сигнатура представляется, как правило, в виде нескольких шестнадцатеричных цифр.

В настоящее время в связи со все возрастающей интеллектуализацией устройств сигнатурные анализаторы постепенно утрачивают свои позиции.

 

Программная среда AVR Studio

Фирма Atmel – разработчик микроконтроллеров AVR, позаботилась о сопровождении своей продукции. Для написания программ, их отладки, трансляции и прошивки в память микроконтроллера фирма разработала и бесплатно распространяет специализированный программный инструмент разработчика под названием «AVR Studio». Установочный пакет этой инструментальной программы можно скачать с сайта фирмы http://www.atmel.com. Программная среда «AVR Studio» — это современный программный продукт, позволяющий производить все этапы разработки программ для многих микроконтроллеров серии AVR. Пакет включает в себя специализированный текстовый редактор для написания программ, программный отладчик. Кроме того, «AVR Studio» позволяет управлять целым рядом подключаемых к компьютеру внешних устройств, позволяющих выполнять аппаратную отладку, а также программирование («прошивку») микросхем AVR. Программная среда «AVR Studio» работает не просто с программами, а с проектами. Проект в терминах AVR Studio – это совокупность файлов исходных текстов программ(ы) и служебных файлов AVR Studio. Исходные тексты разработчик создает сам, реализуя логику работы микроконтроллера в рамках поставленой задачи. Служебные файлы проекта создаются самим AVR Studio для хранения в них информации о проектных файлах и о настройках среды. Это текстовые файлы с расширениями aps и aws. Для каждого проекта должен быть отведен свой отдельный каталог на жестком диске. В AVR Studio одновременно может быть загружен только один проект. При загрузке нового проекта предыдущий проект автоматически выгружается. Головным файлом проекта является файл с расширением aps. Он содержит сведения о типе процессора, используемого в проекте, частоте тактового генератора и т. д. Он также содержит описание всех остальных файлов, входящих в проект. Все эти сведения используются при отладке и трансляции программы. Кроме файла aps, проект должен содержать хотя бы один файл с текстом программы. Такой файл имеет расширение asm. Недостаточно просто поместить asm-файл в директорию проекта. Его нужно еще включить в проект. Как это делается, будет показано позже. Проект может содержать несколько asm-файлов. При этом один из них является главным (он указывается при создании проекта). Остальные могут подключасться главным файлом при помощи директивы препроцессора .include.

На рисунке 1 показано, как внешне выглядит «AVR Studio». На самом деле «AVR Studio» имеет очень гибкий интерфейс, и внешний вид (рисунок 1) может сильно отличаться от варианта, показанного на рисунке. Но далее будет рассмотрен случай, когда выбраны установки по умолчанию.

Рисунок 1 – Внешний вид AVR Studio

 

Главная панель программы AVR Studio разделена на три основных окна. На рисунке 1 они обозначены цифрами 1, 2, 3 и 6.Окно 6 предоставляет информацию о текущем проекте. 

Окно 6 «Project» содержит информацию по текущему загруженному проекту. Информация представлена в виде дерева. Разные ветви этого дерева описывают все исходные и результирующие файлы проекта, все метки, процедуры и присоединяемые файлы. Окно 1 отображает архитектурный состав сомпонентов выбранного для проекра микроконтроллера: регистры управления и состояния устройств (таймеры, порты, АЦП и т.д.), их прерывания и значения их регистрой данных. В этом окне во время отладки программы в режиме симулятора можно будет наблюдать за изменением состояний устройств, прерываний и регистров с которыми работает отлаживаемая программа. В пошаговом пежиме можно будет также «на лету» подменять значения нужных регистров и отдельно взятых управляющих битов с целью более оптимальной проверки работы алгоритмов программы. Элементы, появляющиеся в результате раскрытия ветви, в свою очередь также могут быть раскрыты, если они имеют свое содержимое. На рисунке 2 в увеличенном виде показано дерево ресурсов микроконтроллера АТinу2313. На рисунке несколько ветвей специально раскрыты, чтобы можно было увидеть их состав. Если какая-либо ветвь может быть раскрыта, то в своем основании она имеет квадратик с плюсиком внутри. Двойной щелчок на этом плюсике раскрывает ветвь. В раскрытой ветви плюсик превращается в минус. Повторный двойной щелчок по квадратику закрывает раскрытую ветвь. На рисунке 2 для наглядности раскрыты ветви портов ввода/вывода и можно видеть: - полный состав управляющих регистров для каждого из устройств; - их названия и адреса; - состав и название каждого бита (если биты имеют свои названия).

Рисунок 2 – Окно ресурсов микроконтроллера

 

В процессе отладки в этом окне можно увидеть не только название и состав всех ресурсов, но и их содержимое. Содержимое будет отображаться как в шестнадцатиричном виде, так и путем затемнения квадратиков, отображающих отдельные биты конкретных регистров. Затемненный квадратик означает, что бит равен единице. Светлый квадратик говорит о том, что бит равен нулю. Вы также можете оперативно менять это содержимое прямо в этом окне. Для изменения значения бита достаточно двойного щелчка мышки в соответствующем квадратике. Существуют и другие способы изменения содержимого различных регистров и ячеек памяти в процессе отладки. В нижней части главной панели находится второе вспомогательное окно (окно 2 на рисунке 1). Это окно служит, в основном, для вывода различных сообщений. Оно также содержит ряд вкладок. По умолчанию их четыре. Первая вкладка называется «Build». На вкладке «Build» отражается процесс трансляции. На эту вкладку выводятся сообщения об различных этапах трансляции, сообщения о синтаксических ошибках и различные предупреждения (Warnings). Если трансляция заканчивается нормально (отсутствуют ошибки компиляции), то сюда же выводятся статистические данные о полученном результирующем коде. Эти данные показывают размеры и процент использования всех видов памяти микроконтроллера:

 Сообщение означает, что в программном сегменте исполняемый код занимает 72 ячейки. Константы в памяти программ занимают 257 16-битных слов. Размер программной памяти для этого микроконтроллера составляет 513 слов (16-битных ячеек). Последняя строка содержит сообщения об ошибках. В данном случае сообщение переводится так: «Ассемблирование прошло без ошибок». Следующая вкладка второго окна называется «Message». Здесь выводятся разные системные сообщения о загрузке модулей программы и т. п. Третья вкладка второго окна называется «Find in Files» (поиск в файлах). В этом окне отражаются результаты выполнения команды «Поиск в Файлах». Эта команда позволяет производить поиск заданной последовательности символов сразу во всех файлах проекта. По окончании поиска во вкладке «Find in Files» отражаются все найденные вхождения с указанием имени файла и строки, где найдена искомая последовательность. Последняя вкладка называется «Breakpoints and Tracepoints» (Точки останова и точки трассировки). Эти точки проставляются в тексте программы перед началом процесса отладки и дублируются в данном окне. Как проставлять точки останова, беднт описано позже.

 Точки останова (breakpoints) используются для того, чтобы приостановить выполнение программы в том или ином месте программы для того, чтобы убедиться, что программа выполняется правильно. Точки останова ставятся/убираются в окне текста программы нажатием <F9> на строке предполагаемого останова программы. 

Рисунок 3 – точки останова в тексте

 

При установке точки останова в тексте программы строка помечается маркером в форме точки большого диаметра, а информация о ней автоматически появляется во вкладке «Breakpoints and Tracepoints» (рисунок 4):

Вкладка позволяет увидеть все точки останова программы в одном списке. Кроме того, на вкладке против каждой записи, описывающей точку останова, автоматически появляется «Check box» (поле выбора), при помощи которого можно в любой момент временно отключить любую точку останова. В окне 3 можно открывать не только все тексты ассемблерных программ текущего проекта, но и тексты программ других проектов, а также тексты программ, написанных на других языках программирования. Такой прием очень удобен, если нужно переделать программу, написанную для старого микроконтроллера на старой версии Ассемблера на новый лад. Все открытые текстовые окна запоминаются и затем открываются автоматически при открытии проекта.

Рисунок 4 – Break points and tracepoints

 

Любое текстовое окно имеет подсветку синтаксиса. Разные части помещенного туда текста программы подсвечиваются разными цветами. Так, все операторы Ассемблера высвечиваются голубым цветом. Комментарии выделяются зеленым. Остальной текст (параметры команд, псевдооператоры, метки, переменные и константы) остается черным. Это очень удобно. Если написанный вами оператор окрасился в голубой цвет, то это значит, что вы не ошиблись в синтаксисе. Если вы написали комментарий, но перед текстом комментария забыли поставить точку с запятой, то этот комментарий не окрасится в зеленый цвет. Таким образом, многие ошибки видны уже в процессе написания программы. Кроме двух вспомогательных и одного основного окна, главная панель программы имеет строку меню (отмечена цифрой 4 на рисунке 1), а также несколько инструментальных панелей (отмечены цифрой 5). Как и в любой другой программе под Windows, при помощи меню вызываются все функции программы AVR Studio и переключаются все ее режимы. Панели инструментов дублируют часто используемые функции меню.

 

СОЗДАНИЕ ПРОЕКТА НА АССЕМБЛЕРЕ После запуска программы открывается мастер нового проекта, который также можно вызвать через меню ―Project –> New project‖

В открывшемся окне надо выбрать тип проекта - Atmel AVR Assembler

1.4.4. Система программирования CodeVisionAVR

CodeVisionAVR - это среда разработки, которая поддерживает все операции с МК AVR. В ней мы можем написать заготовку кода, скомпилировать ее и с помощью программатора "залить" в нужный нам МК. И не надо отдельно качать программку-прошиватель, компилятор и другие ненужные программы. А зачем, если все это есть в КодВижне? Также КодВижн поддерживает почти все известные программаторы для AVR, будь это китайские клоны или оригинальные программаторы. Большой плюс КодВижена в том, что он сам создает готовый шаблон программы, из которого нам нужно удалить все лишнее, что является несомненным плюсом для новичков.

Вот так выглядит программа после ее установки (кликните по картинике, чтобы увеличить изображение)

 

Для того, чтобы создать новый проект, кликаем по значку "шестеренка":

После появится вот такое окошко. Ставим маркер-точку на AT90, Atiny, FPSLIC и нажимаем "ОК".

Выбираем наш МК. В данном случае я использую МК Atiny2313, поэтому из всего списка МК, которая предлагает нам программа, выбираю именно его.

 

КодВижен для нас приготовил шаблон. Здесь явно много лишнего. Первым делом убираем шапку

 

Выделяем, нажимаем Del.

Текст, который находится после двух косых черточек "// любой текст " или /* любой текст */ называется комментарием. Они нужны для удобного восприятия и никак не сказываются на работу МК.

PORTB=0b00000000

0b - это бинарная система счисления. Настраивать в бинарной системе удобно тем, что каждый бит - это одна ножка МК. Поэтому счет идет справа-налево. Присмотритесь к рисунку выше. Здесь мы видим PORTB и нули при двоичной ситеме исчисления. Что это означает? А означает это то, что эти выводы при неиспользовании их в программе будут притянуты к нулю, то есть на них будет низкий потенциал или ноль Вольт. В случае, если мы видим единички установленные на каком-либо из битов, то это значит, что на этом порту при неипользовании в программе у нас будет высокий потенциал или плюс 5 вольт, или, говоря другими словами, этот вывод у нас будет принят к плюсу питания.

DDRB=0b00000111

Это означает, что PB0, PB1, PB2 настроены на выход. Считаем справа-налево, если вы не забыли. А если ноль, то значит настроены на вход.

После каждой строчки не забывайте ставить знак " ; " , иначе при компиляции (превращения вашей программы в код, который понимает МК), будут ошибки.

Теперь рассмотрим while (1). Он означает, что кусочек программы, который будет написан после него, будет зацикливаться, то есть повторяться бесконечное количество раз.

 

Программа находится между фигурными скобками. Эти скобки принадлежат while (1). То есть этот кусок программы будет повторяться бесконечное число раз.

Давайте разберем саму программу...

PORTB.0=1; Это означает, что при подачи питания на МК, у нас ножка PB0 будет иметь логическую единицу , то есть на выходе этой ножки будет 5 Вольт, которые зажгут светодиод.

delay_ms(1000); Ждем 1000 миллисекунд, то есть 1 секунду.

PORTB.1=1; Через одну секунду на ножке PB1 появляется логическая единица, то есть 5 вольт, которые и зажгут второй светодиод

delay_ms(1000); Ждем еще одну секунду.

PORTB.2=1; Как только прошла секунда, у нас на ножке PB2 появляется логическая единичка, и, следовательно, зажигается третий светодиод.

delay_ms(2000); Ждем 2 секунды...Итого у нас горят все разом три светодиода в течение двух секунд.

PORTB.2=0; На ножке PB2 появляется логический ноль, то есть напряжение исчезает. Третий светодиод тухнет.

delay_ms(1000); Ждем секунду

PORTB.1=0; Исчезает напряжение на ножке PB1. Светодиод второй тоже перестает источать свет.

delay_ms(1000); Ждем секунду.

PORTB.0=0; И на ножке PB0 напряжение тоже стает равно нулю. Первый светодиод тухнет тоже.

delay_ms(2000); Ждем две секунды и возвращаемся на начало программы, то есть к

PORTB.0=1;

delay_ms(1000);

Вот так выглядит полностью сама программа. Ее можно даже скопировать и скомпилировать.

#include <tiny2313.h>

#include <delay.h>
void main(void)
{
PORTB=0b00000000;
DDRB=0b00000111;
while (1)
{
PORTB.0=1;
delay_ms(1000);
PORTB.1=1;
delay_ms(1000);
PORTB.2=1;
delay_ms(2000);
PORTB.2=0;
delay_ms(1000);
PORTB.1=0;
delay_ms(1000);
PORTB.0=0;
delay_ms(2000);
}
}

Программаторы

Программатор – это программно аппаратное устройство, разработанное для занесения необходимой информации в постоянное запоминающее устройство (ПЗУ). Помимо записи, программатор может обеспечивать возможность считывания информации из ПЗУ микросхемы. Наряду с основными режимами программирования и чтения, многие микросхемы имеют множество дополнительных режимов: стирание, закрытие от чтения, защита от программирования и т.п.

Можно считать, что программирующее устройство поддерживает микросхему, если:

  • все алгоритмы реализованы в соответствии с требованиями спецификации на мс.;
  • обеспечивает работу с микросхемой во всех режимах, предусмотренных разработчиком данной микросхемы;

Для выполнения своих функций, хороший программатор, как минимум должен содержать:

  • колодку, в которую можно вставить нужную микросхему. Колодка должна обеспечивать надежный контакт с выводами мс;
  • интерфейс, позволяющий осуществлять ввод/вывод программируемой и считываемой информации;
  • аппаратные драйвера, позволяющие формировать и считывать логические уровни и сложные тактовые сигналы.

В некоторых случаях может возникнуть необходимость, например, купить программатор - в подобном случае полезно иметь хотя бы общее представление о существующем многообразии программаторов.

Существуют некоторые классификации программирующих устройств по следующим параметрам.

По типу программируемых микросхем

Узкоспециализированные программаторы. Программаторы, поддерживающие мс только заданного типа, или мс только заданного производителя.

Условно универсальные программаторы. Устройства, программирующие мс многих типов и/или мс различных производителей.

Универсальные программаторы. Программирующие устройства, поддерживающие микросхемы всех типов, и мс всех фирм.

Не надо доказывать, чем более широк список программируемых микросхем, тем более сложная программно аппаратная реализация программатора.

Конструкция наиболее простых программаторов, позволяющих запрограммировать микросхемы одной серии, чаще всего, представляет собой несколько сопротивлений и проводов, которые подключаются к одному из портов PC.

Универсальный программатор разрабатывается на базе универсальных аппаратных драйверов. Аппаратные драйвера подводятся к выводам сокетки, и должны обеспечивать:

  • подачу сложных временных сигналов в широком диапазоне частот;
  • подачу и считывание логических уровней;
  • подачу напряжения в широком диапазоне и с заданной точностью.

Как правило, чем более универсальны драйвера, и чем их больше - тем более универсален программатор.

По способу программирования мс.

Параллельные программаторы. Обработка микросхем осуществляется в колодке (сокетке) программатора.

ISP программаторы. Поддержка мс. происходит непосредственно в устройстве (ISP mode).

Параллельный программатор. Для того, что бы проделать заданные операции с микросхемой, ее надо положить в колодку программатора. После этого, в программной оболочке устройства выбрать соответствующий тип обрабатываемой мс, затем, запустить на исполнение соответствующий режим (стирание, программирование, чтение, программирование битов защиты и т.п.).

Колодка программатора призвана обеспечивать надлежащий электрический контакт между ножками мс и аппаратнымидрайверами программатора. Обычно, универсальный программатор снабжается колодкой под DIP корпус мс. Самыми надежными и удобными для пользователя являются специальные сокетки с нулевым усилием - (ZIF socket).

Для поддержки микросхем с корпусами, отличными от DIP, нужно использовать специальные переходные адаптеры.

Программатор внутрисхемный. ISP программирование возможно только тех микросхем, которые предполагают данный режим.

Обычно, подобные микросхемы содержат встроенные устройства, которые:

  • из внешнего напряженияпитания генерируют напряжения необходимые для программирования;
  • обеспечивают стыковку с внутрисхемным программатором по последовательному интерфейсу (вариации протокола JTAG, SPI, UART).

Для реализации режима ISP Mode, стенд разработчика должен поддерживать:

1. сответствующую стыковку выводов микросхемы с выходами ISP программатора;

2. заданные режимы по нагрузке и питанию на соответствующих выводах микросхемы в режиме программирования.

Мощным достоинством внутрисхемного программирования является возможность объединения процесса программирования и тестирования, исключив отдельную фазу обработки мс. перед финишной сборкой прототипа.

Отличительной особенностью программаторов серии ChipProg-xx оказывается то обстоятельство, что помимо обеспечения обычного режима (в сокетке устройства), они поддерживают и режим внутрисхемного программирования.

По подключению к PC

Чаще всего, для подключения современного программатора к PC используется либо параллельный интерфейс, или канал USB. При прочих равных условиях, USB программатор имеет очевидные преимущества.

По возможному количеству параллельно записываемых мс.

Обычно, универсальный программатор может работать одновременно не более чем с одной микросхемой. В ряде случаев может возникнуть потребность, например, реализовать программирование микроконтроллеров в большом количестве. Для промышленного тиражирования микросхем выпускаются программаторы копировщики.

В качестве образца, программатор ChipProg-G4 снабжен четырьмя ZIF сокетками, и способен в асинхронном режиме программировать до 4 микросхем параллельно. Другой возможностью заметно увеличить скорость тиражирования – воспользоваться функциональными возможностями некоторых программаторов. В частности, профессиональные программаторы семейства ChipProg-XX с USB интерфейсом предоставляют возможность мультипрограммирования. Имеющееся число подобных программаторов может быть подключено к одному PC через USB порты, либо через USB HUB. Данные программаторы, объединенные в мультипрограмматорный режим, функционируют асинхронно и совершенно независимо друг от друга.

По специальным возможностям

Как правило, программаторы заметно отличаются друг от друга по своим функциональным и сервисным возможностям.

Для иллюстрации представим вспомогательные способности, предлагаемые программаторами фирмы Фитон

– Автотестирование;

– контроль всех выводов обслуживаемой микросхемы на наличие контакта перед программированием;

– Аппаратные схемы защиты. Защита ошибочно подключенных микросхем;

– Экстремально большая скорость программирования;

– Защита от электростатического разряда;

– Кнопка, запускающая выполнение любой необходимой операции или последовательности операций;

– Обеспечение записи микросхем в устройстве пользователя;

– синтезатор частоты;

– Режим программирования серийного номера;

– Возможность подсчета контрольных сумм;

– Режим записи сигнатуры;

– Режим поддержки проекта;

– Поддерка автоматического контроля присутствия микросхемы;

– Многофункциональный двоичный редактор;

– Встроенный язык сценариев;

 

 


Дата добавления: 2019-02-22; просмотров: 3424; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!