Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Эмулятор ПЗУ

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

Одна из проблем, возникающих при разработке микропроцессорной аппаратуры - отладка записываемой в ПЗУ программы. Обычно для этой цели используют так называемые репрограммируемые ПЗУ (РПЗУ) со стиранием информации ультрафиолетовым облучением. Поскольку любое изменение программы приводит к необходимости стирать РПЗУ и заново записывать в него информацию, отладка отнимает много времени. К тому же после 10 - 25 циклов, с каждым из которых надежность хранения данных уменьшается, микросхему приходится заменять. Таким образом, творческая работа омрачается нудным механическим процессом перезаписи, не говоря уже о финансовой стороне вопроса - РПЗУ с ультрафиолетовым стиранием недешевы.

Решить проблему поможет эмулятор, принципиальная схема которого показана на рис. 1. Вместо микросхемы ПЗУ емкостью до 64 Кбайт в предназначенную для нее панель отлаживаемого устройства вставляют вилку ХР1. В зависимости от типа ПЗУ может измениться только порядок подключения проводов эмулятора к контактам вилки (приведенный на схеме соответствует микросхеме 27512 емкостью 64 Кбайт).




Вилку ХР2 соединяют с розеткой параллельного порта LPT1 любого IBM-совместимого персонального компьютера (ПК). Так как порт предназначен в основном для передачи данных внешнему устройству (принтеру), он имеет 12 выходных и всего пять входных линий. Это вынуждает мультиплексировать принимаемый компьютером 16-разрядный адрес ПЗУ, что, конечно, сказывается на скорости эмуляции.

Эмулятор состоит из следующих функциональных блоков: тактового генератора (DD1.1-DD1.2), синхронизатора тактовых импульсов (DD2.2, DD3.1), устройства запуска (DD2.1), счетчика импульсов (DD4), формирователя импульсов записи блоков адреса (DD1.5, DD3.3), регистра данных (DD5) и мультиплексора адреса (DD6, DD7).

Работа начинается с приходом от микропроцессорного устройства низкого уровня сигнала CS на вход S (вывод 4) триггера DD2.1 (временные диаграммы сигналов изображены на рис. 2).
 


Последний переходит в состояние, соответствующее логической 1 на прямом выходе (вывод 5), соединенном с входом D (вывод 12) триггера DD2.2. По спаду тактового импульса (это обеспечивает инвертор DD1.4) логическая 1 появляется и на выходе (вывод 9) DD2.2, разрешая прохождение тактовых импульсов на выход элемента DD3.1. Их подсчитывает счетчик DD4, выходные сигналы двух младших разрядов которого управляют мультиплексорами адреса DD6 и DD7. Адрес ПЗУ передается в ПК четырьмя четырехразрядными группами: А0 - A3, А4 - А7, А8 - А11, А12 - А15. Для его приема служат входы ERROR. SLCT, АСК, РЕ параллельного порта.

Счетчик DD4 охвачен обратными связями таким образом, что его коэффициент пересчета равен 5. Именно столько периодов тактовых импульсов занимает цикл эмуляции. В первых четырех импульсы с выхода элемента DD3.4, поступая на вход BUSY порта LPT одновременно с переключением мультиплексоров. синхронизируют процедуру чтения адреса компьютером. В пятом периоде компьютер выдает на выходы DATA1 -DATA8 байт данных, который должен находиться в эмулируемом ПЗУ по заданному адресу. Этот байт заносится в регистр DD5. По окончании периода триггер DD2.1 возвращается в исходное состояние. Правда, последнее произойдет лишь при условии, что сигнал CS к этому моменту закончился. В противном случае описанный цикл повторится.

Эмулятор собран на двусторонней печатной плате, чертеж которой показан ниже. На плате предусмотрены группы контактных площадок X1-Х4, к которым припаивают провода, идущие к вилкам ХР1 и ХР2.



Вместо микросхем, указанных на принципиальной схеме, допустимо использовать их функциональные аналоги из любых серий ТТЛ или ТТЛШ (К155. К555. КР1533. КР531). При замене микросхемы DD1 может потребоваться подборка элементов тактового генератора (R1, R3,С2), от частоты повторения импульсов которого зависит скорость эмуляции. Устанавливать частоту выше 100 кГц не рекомендуется, так как это может привести к сбоям.

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

Описанный выше алгоритм работы эмулятора требует перевода микропроцессорного устройства в пошаговый режим. Он удобен для первого "прогона" программы и начальных этапов ее отладки. Чтобы работать в непрерывном режиме, необходимо дополнить эмулятор устройством синхронизации, собрав его по схеме, показанной на рис. 4. Оно предназначено для микропроцессора КР580ВМ80А с тактовым генератором КР580ГФ24 и было испытано на компьютере "Радио-86РК". Для микропроцессоров других типов в синхронизатор возможно потребуется внести изменения.

В таблице приведена процедура эмуляции ПЗУ компьютером с максимальной скоростью. Она написана на языке АССЕМБЛЕРа, встроенного в систему программирования Borland Pascal, и предназначена для использования в программах, разрабатываемых с помощью этой системы. Глобальной переменной pDATA типа pointer в главной программе должно быть присвоено значение адреса первого элемента массива байтов, содержащего образ эмулируемого ПЗУ. Обмен данными идет с максимальной скоростью за счет минимизации числа обращений к памяти ПК и использования для временного хранения данных регистров процессора (обращение к памяти занимает в несколько раз больше времени, чем операция регистр-регистр).

Особенность описываемой процедуры в том, что она представляет собой бесконечный цикл и ради ускорения работы запрещает все прерывания, в том числе от клавиатуры. Таким образом, прекратить эмуляцию можно только, нажав на кнопку "RESET" ПК или выключив его питание. Исключен и вывод на экран монитора ПК какой-либо информации о работе отлаживаемого устройства. Устранить эти недостатки под силу программисту средней квалификации, но лишь ценой замедления работы процедуры.

Ключами, заданными в командной строке или в конфигурационном файле, устанавливают режим эмуляции, выбирают файл с образом эмулируемого ПЗУ. Приоритет командной строки выше, чем конфигурационного файла.

Предусмотрены следующие ключи:

-sf - самая быстрая эмуляция (используется рассмотренная выше процедура);

-sns - режим, несколько медленнее предыдущего, так как предусмотрен опрос клавиатуры и выход нажатием клавиши [Esc];

-sp - самый медленный режим. На экран монитора выводится адрес каждой ячейки ПЗУ, к которой обращается отлаживаемое устройство, и данные из нее. Отображается также процесс чтения четвертей адреса. Это удобно на начальных этапах отладки микропроцессорного устройства, поскольку позволяет следить за ходом выполнения его программы;

-f имя_файла - задает имя файла с образом ПЗУ:

- отключает контроль равенства длины файла образа ПЗУ информационной емкости последнего;

/? - выводит на экран справку о режимах работы эмулятора.

Нажатие клавиши [F2] останавливает текущий процесс считывания адреса и переводит программу в режим ожидания нового.

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

Такой файл может быть создан с помощью кроссассемблера TASM, если вызвать его командной строкой

TASM.EXE -85 -g3 PROG.ASM

Здесь ключ -85 устанавливает тип процессора (8085), для которого предназначена транслируемая программа PROG.ASM, a -g3 задает вывод результата в двоичном виде. Полученный в результате трансляции файл PROG.OBJ может служить образом ПЗУ для эмулятора. 

Авторы: С.Беляев, Д.Черных, г.Тамбов


C этой схемой также часто просматривают:

Эмулятор ПЗУ — отладчик для MCS-51
Эффект Fade Out для LED на микроконтроллере
Светильник из светодиодной ленты своими руками
Программируемая новогодняя ёлочка
Зарядное устройство к цифровому фотоаппарату

Главные категории

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


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


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



Реклама на KAZUS.RU




Последние поступления

Переключатели на микроконтроллере

Делитель частоты с регулируемым коэффициентом деления

Устройства на микросхеме MAX869L

Генератор пилообразного напряжения на таймере 555

LC-мультивибратор

60 Гц от часового резонатора

Простой синхронный умножитель частоты

Драйвер мотора L298 для робота

Триггер на транзисторной оптопаре 4N35

«Триггерная кнопка» на микросхеме CD4069



© 2003—2017 «KAZUS.RU - Электронный портал»