Многофункциональное отладочное устройство для микропроцессорных систем
Иллюстрации
Показать всеИзобретение относится к области электроники и микропроцессорной техники и может найти обширное применение при отладке, ремонте и эксплуатации широкого спектра микропроцессорных систем и устройств, как уже существующих, так и вновь разрабатываемых, а также при изучении и исследовании принципов работы подобных систем и устройств в практических разделах дисциплин учебных заведений, имеющих соответствующую направленность подготовки специалистов. Технический результат – повышение производительности и снижение трудоемкости процесса отладки цифровых микропроцессорных систем и устройств. В конструкцию отладочного устройства, использующего часть памяти внешнего инструментального компьютера для хранения программы целевой отлаживаемой микропроцессорной системы и имеющего в своем составе интерфейс LPT–порта принтера для передачи программ и данных в отлаживаемую микропроцессорную систему через тристабильный восьмиразрядный буферный шинный формирователь, а также устройство синхронизации, представляющее собой бистабильный RS-триггер с подключенными к его входам формирователями коротких импульсов, согласно изобретению, в зависимости от разрядности N микропроцессора отлаживаемой системы, введены дополнительно N/8 восьмиразрядных регистров-защелок с тристабильным выходом, входы которых объединяются поразрядно и подключаются через тристабильный восьмиразрядный буферный шинный формирователь соответственно к линиям данных интерфейса принтера, а выходы посредством многоштырьковых вилок соединяются через панельки ПЗУ отлаживаемого устройства с его шиной данных, а также двоичный счетчик и дешифратор, образующие демультиплексор–распределитель сигнала стробирования, направляющий каждый следующий сигнал подтверждения истинности выданных инструментальным компьютером данных на вход записи соответствующего регистра-защелки. Дополнительно введенные узлы формирования сигналов занятости и подтверждения приёма байта дают возможность устройству осуществлять взаимодействие с инструментальным компьютером через порт принтера по стандарту интерфейса ‘Centronics’. 2 ил.
Реферат
Изобретение относится к области электроники и микропроцессорной техники и может найти обширное применение при отладке, ремонте и эксплуатации широкого спектра микропроцессорных систем и устройств, как уже существующих, так и вновь разрабатываемых, а также при изучении и исследовании принципов работы подобных систем и устройств в практических разделах дисциплин учебных заведений, имеющих соответствующую направленность подготовки специалистов.
Целью изобретения является повышение производительности и снижение трудоемкости процесса отладки цифровых микропроцессорных систем (МПС) и устройств, а также снижение материальных затрат на этот процесс при сохранении многофункциональности отладочного устройства за счет использования уже имеющегося компьютерного оборудования и программного обеспечения в специфических операциях и процедурах, характерных для отладки.
К области применения изобретения относятся цифровые МПС шинной организации, представляющие собой в общем случае функционально законченные изделия, предназначенные для получения, обработки, передачи, преобразования информации, а также задач управления, состоящие из нескольких микросхем, в состав которых обычно входит микропроцессор (МП), оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ) и устройства ввода-вывода (УВВ) – интерфейсы сопряжения МПС с блоками ввода и вывода информации.
Спецификой МПС шинной организации является такое её построение, при котором основные составляющие системы взаимодействуют между собой посредством трех шин: адреса, данных и управления. Вследствие чего минимальный объем информации, которой микропроцессор может обмениваться с запоминающим устройством (ЗУ) и УВВ ограничивается размером его шины данных в битах (8, 16, 32, 64 бит), а максимальный объём памяти (количество ячеек ЗУ), к которой микропроцессор может обратиться непосредственно, определяется размером его адресной шины. Обращение микропроцессора к памяти для операции чтения сопровождается сигналом низкого уровня — /RD (ReaD) по шине управления, во время которого данные с выходов ЗУ на шине данных должны быть истинными, а запись в память сопровождается сигналом низкого уровня — /WR (WRite), по которому данные фиксируются запоминающим устройством. (Здесь и далее символом "/" обозначен низкий активный уровень сигнала.) В том случае, когда микропроцессор допускает разделение пространств памяти и УВВ, сигналы /WR и /RD с помощью простой схемы разделяют на две пары: /MEMWR, /MEMRD — сигналы обращения к ЗУ и /IOWR, /IORD — сигналы обращения к УВВ.
В том случае, когда микросхемы ЗУ или УВВ обладают меньшим быстродействием, чем сам микропроцессор, при обращении к ним в процедурах записи или чтения специальная схема вырабатывает активный сигнал, который по шине управления подается на вход микропроцессора /RDY (READY — готовность, иногда этот сигнал обозначают также WAIT — ожидание), в результате чего микропроцессор приостанавливает свою работу, удерживая активные сигналы на шинах и выполняя внутренние такты ожидания до тех пор, пока этот сигнал не будет деактивирован, что позволяет согласовать работу микропроцессора с любыми устройствами более низкого быстродействия.
Для разделения пространства памяти на области ПЗУ и ОЗУ в таких МПС обычно применяют дешифратор адресного пространства, подключаемый к старшим разрядам адресной шины и активирующий отдельные микросхемы ПЗУ и ОЗУ сигналами /CS0…/CSn (CS — Cheap Select — выбор микросхемы).
ПЗУ обычно занимает часть памяти МПС, физически выполняется на основе микросхем энергонезависимого ЗУ, содержит управляющую служебную, тест–мониторную программу или базовую систему ввода–вывода и располагается в диапазоне адресов пространства памяти, откуда микропроцессор начинает свою работу после начального пуска системы или по включению питания.
Одной из распространенных проблем, возникающих при разработке аппаратуры на основе микропроцессоров, является отладка записываемой в ПЗУ программы. Обычно для этой цели используют так называемые репрограммируемые ПЗУ (РПЗУ) со стиранием информации ультрафиолетовым облучением. Поскольку любое изменение программы приводит к необходимости стирать РПЗУ и заново записывать в него информацию, отладка отнимает много времени, так как процесс стирания довольно длителен. К тому же уже после 10—25 циклов записи и стирания надежность хранения данных в РПЗУ уменьшается. Таким образом, нудный и длительный механический процесс перезаписи, снижает производительность и повышает трудоемкость отладки, не говоря уже о финансовой стороне вопроса: РПЗУ при большом количестве циклов перезаписи могут выйти из строя, а микросхемы памяти с ультрафиолетовым стиранием недешевы.
Существуют инструментальные средства, ускоряющие процесс разработки системного программного обеспечения и отладки для МПС: эмуляторы ПЗУ, встроенные мониторы–отладчики и наиболее удобное средство — внутрисхемные эмуляторы (ВЭ).
Для профессиональных разработчиков внутрисхемный эмулятор является основным отладочным средством, которое позволяет быстро и качественно провести отладку микропроцессорной системы, но стоимость этих устройств может в ряде случаев превышать стоимость партии отлаживаемых изделий в мелкосерийном производстве, а с учетом того, что ВЭ представляют собой устройства жестко ориентированные на конкретный тип микропроцессоров, их применение в условиях средних и мелких фирм, ремонтных предприятий, а также учебного процесса становится экономически нерентабельным.
В этой связи представляет интерес использование в процессе отладки бюджетных отладочных устройств, которые, тем не менее, при наличии развитой функциональности, вполне способны повысить производительность и снизить трудоемкость процесса отладки микропроцессорных систем без значительных материальных затрат.
Известен ‘Имитатор ПЗУ’ (Радиолюбитель № 5, 1997 с.18-19), включающий в свой состав статическое ОЗУ соответствующей ёмкости с опцией сохранения записанной информации при пониженном напряжении питания в режиме микропотребления, регистры для фиксации адреса запрашиваемого байта, буферный шинный формирователь, осуществляющий согласование выходов микросхемы ОЗУ с шиной данных микропроцессорной системы, низковольтный элемент питания с безынерционным переключателем и схему управления с узлом контроля напряжения питания, в функции которой входит слежение за величиной питающего напряжения устройства и корректное отключение микросхемы ОЗУ от шин адреса, данных и управления отлаживаемой микропроцессорной системы в случае снижения питающего напряжения с переводом БИС ОЗУ в режим хранения с питанием от автономного низковольтного гальванического элемента.
С точки зрения отлаживаемой микропроцессорной системы такое устройство полностью имитирует функции замещаемого им ПЗУ, может быть запрограммировано имеющимися аппаратными средствами (программатором), а упрощение процесса отладки, повышение его производительности и снижение трудоёмкости при использовании подобного устройства происходит за счет исключения длительной по времени процедуры стирания микросхем ПЗУ ультрафиолетовым излучением, поскольку микросхема статического ОЗУ в любой момент готова к перезаписи сохраняемой ею информации.
Недостатком подобного решения является то, что, несмотря на исключение из процесса отладки процедуры стирания микросхем ПЗУ, остаётся необходимость извлечения устройства из контактной панели ПЗУ отлаживаемой микропроцессорной системы, размещения его в программаторе, программирования посредством внешней ЭВМ и последующей установки в контактную панель эмулируемого ПЗУ. Трудоёмкость процесса и стоимость устройства многократно возрастают в случае отладки микропроцессорной системы с большей разрядностью шины данных микропроцессора (16, 32, 64 бита). В этом случае сложность и себестоимость устройства (или совокупности устройств) отладки может быть сравнима со сложностью и себестоимостью самой отлаживаемой системы. Так для 32-разрядной системы потребуется уже 4 микросхемы статического ОЗУ, 8 адресных регистров, 4 шинных формирователя, пропорционально увеличится и число остальных элементов, а сама процедура программирования устройств и их установки в контактные панели ПЗУ отлаживаемой микропроцессорной системы существенно усложнится.
Недостатком является также то, что, будучи установленным в отлаживаемую микропроцессорную систему, имитатор ПЗУ никаких дополнительных функций отладки, как, например, пошаговое прохождение программы с остановом в контрольных точках, не обеспечивает.
Известен ‘Эмулятор ПЗУ’ (Радио № 6, 2000, с.27-29). Устройство использует часть памяти внешней управляющей ЭВМ (или, иначе говоря, инструментального компьютера) для хранения программы для целевой системы, а порт принтера (LPT–порт) инструментального компьютера выполняет здесь функцию интерфейса связи с отлаживаемой системой (её обычно принято называть целевой). Эмулятор ПЗУ состоит из следующих функциональных блоков: тактового генератора, синхронизатора тактовых импульсов, устройства запуска, счетчика импульсов, формирователя импульсов записи блоков адреса, регистра данных и мультиплексора адреса. Он соединяется многоштырьковой вилкой с панелькой ПЗУ целевого отлаживаемого устройства, через которую эмулятор получает доступ к шине данных и шине адреса целевой системы, а также к сигналам выбора ПЗУ — /CS (Cheap Select) и разрешения выходных данных ПЗУ — /OE (Output Enable).
С приходом от целевого микропроцессорного устройства низкого уровня сигнала /CS на вход устройства запуска, оно своим активным выходным уровнем разрешает прохождение сигналов тактового генератора на двоичный счетчик, имеющий коэффициент пересчета 5. Поскольку LPT–порт инструментального компьютера сильно асимметричен, и имеет 12 выходных и всего пять входных линий, в схеме эмулятор ПЗУ приходится мультиплексировать принимаемый инструментальным компьютером 16-разрядный адрес байта эмулируемого ПЗУ, поэтому выходы двоичного счетчика через формирователь импульсов записи блоков адреса управляют мультиплексором адреса, который за четыре импульса тактового генератора передает в инструментальный компьютер весь 16-разрядный адрес блоками по 4 бита через 4 входных линии LPT–порта. По пятой входной линии инструментальный компьютер получает информацию о подсчете двоичным счетчиком эмулятора тактовых импульсов посредство специального сигнала, создаваемого формирователем импульсов. В момент прихода пятого сигнала инструментальный компьютер через 8 разрядов данных LPT–порта выдает из своей внутренней памяти байт, соответствующий принятому ранее адресу, на входы регистра данных эмулятора.
После прихода от целевого микропроцессорного устройства сигнала /CS низкого уровня, согласно логике работы, поступает и сигнал /OE разрешения выходных данных ПЗУ, который поступает на вход синхронизатора тактовых импульсов и на одноименный вход регистра данных, после чего на выходах последнего появляются логические уровни отдельных битов байта данных, выданные инструментальным компьютером на линии данных LPT–порта. Эти данные считываются микропроцессором целевой системы, и процесс получения байта данных от целевой ЭВМ завершается снятием активных уровней сигналов /CS и /OE.
Понятно, что в силу особенностей приема инструментальным компьютером 16-разрядного адреса байта четырьмя блоками и управления им выдачей байта данных через LPT–порт программным способом, эмулятор ПЗУ не может работать с той же скоростью, с какой целевое микропроцессорное устройство запрашивает байты, поэтому в составе устройства имеется синхронизатор тактовых импульсов, в задачу которого входит перевод микропроцессора целевой системы в режим ожидания по входу /READY своим выходным сигналом, сформированным по поступлению от микропроцессора активного уровня сигнала /OE (сигнал /RD, выдаваемый микропроцессором). По завершению двоичным счетчиком эмулятора ПЗУ процесса подсчета 5 импульсов тактового генератора синхронизатор тактовых импульсов снимает со входа /READY микропроцессора целевой системы активный уровень сигнал, микропроцессор выходит из режима ожидания и продолжает свою работу на полной скорости.
Таким образом, принцип работы эмулятора ПЗУ заключается в следующем: по активному уровню сигнала /CS, поступившему от целевой микропроцессорной системы, эмулятор начинает передавать в инструментальный компьютер через LPT–порт адрес запрашиваемого целевой системой байта. По поступлению от микропроцессора активного уровня сигнала /OE эмулятор ПЗУ через синхронизатор тактовых импульсов приостанавливает микропроцессор целевой системы до тех пор, пока инструментальный компьютер не получит полностью адрес запрашиваемого целевой системой байта и не выдаст этот байт через LPT–порт на входы регистра данных эмулятора, после чего микропроцессору целевой системы разрешается считать запрашиваемый байт и продолжить свою работу.
Существенным недостатком такого решения является неспособность устройства выполнять свои функции уже при необходимости обслуживания целевой микропроцессорной системы даже с 16-разрядным микропроцессором, не говоря уже о системах с более высокой разрядностью. То есть, несмотря на свою относительную сложность, устройство не обладает универсальностью в плане практического применения, поскольку при работе всего лишь с 16-разрядным микропроцессором таких устройств необходимо два, а наличие двух LPT–портов у современных компьютеров явление достаточно редкое, не говоря уже о том, что этот интерфейс может отсутствовать совсем, поскольку он, как устаревший, был практически вытеснен современным компактным и высокопроизводительным интерфейсом USB. Для обслуживания же целевой системы с 32-разрядным микропроцессором этот эмулятор ПЗУ в оригинальном виде практически неприменим, поскольку для его функционирования потребуется уже четыре независимых LPT–порта.
Недостатком устройства является также и то, что в протоколе обмена с инструментальным компьютером через LPT–порт управляющие линии порта не задействованы. То есть, весь протокол обмена рассчитан на то, что инструментальный компьютер при подобранной частоте тактового генератора эмулятора ПЗУ должен успевать программно принять четыре полубайта адреса и выдать соответствующий байт в LPT–порт. Такое решение помимо того, что само по себе является недостаточно надежным, поскольку инструментальный компьютер и целевая отлаживаемая система являются асинхронными друг относительно друга, и в этом случае обмен между ними предпочтительно вести по принципу "рукопожатия" ("handshake"), сопровождая передаваемые адреса и возвращаемые данные сигналами квитирования, но и обладает существенным недостатком, состоящем в том, что инструментальный компьютер практически лишен возможности оперативно влиять на процесс исполнения программы эмулируемого ПЗУ, поскольку он не использует сигнал подтверждения истинности выданных им в LPT–порт данных. То есть, в устройстве отсутствует возможность отладки даже в таких ограниченных вариантах, как пошаговое прохождение и останов в контрольных точках.
Недостаткам устройства является и используемое в процессе его работы побитное программное управление LPT–портом инструментального компьютера специальной программой. Кроме того, что такая программа в силу рассмотренных уже выше конструктивных особенностей эмулятора должна работать под управлением операционной системы (ОС) реального времени (в авторском варианте это MS DOS), так и выбранный протокол обмена с эмулятором является совершенно уникальным, что требует написания собственного программного обеспечения и драйверов, и серьезно затрудняет применение эмулятора ПЗУ с современными многозадачными операционными системам, как, например, распространенная ныне ОС MS Windows.
Отметим так же, как недостаток, тот факт, что уникальный протокол обмена с LPT–портом не позволит использовать с данным эмулятором ПЗУ современный высокопроизводительный интерфейс USB через специальные кабели-переходники USB–LPT, имеющие в своем составе специальный микроконтроллер, осуществляющий преобразование интерфейса. Побитного управления LPT–портом, подобные адаптеры, к сожалению, не допускают, а поддерживают лишь характерный для LPT–порта протокол обмена с принтером по стандарту ‘Centronics’, который предполагает строго определенную последовательность подачи сигналов на внешнее печатающее устройство и опрос сигналов его готовности.
Наиболее близким по технической сущности к заявляемому изобретению, принятым за прототип, является ‘Система без ПЗУ, загружаемая через порт принтера’ (Sistema senza ROM. Caricabile dalla porta stampante. http://stor.altervista.org/z80/ schema_2.htm). В этой конструкции было найдено элегантное, хотя и несколько необычное решение: для частичной эмуляции функций физически отсутствующего в системе ПЗУ, с целью начальной загрузки в ОЗУ целевой системы исполняемой программы, также используется часть памяти внешнего инструментального компьютера, из которой под управлением специальной программы-загрузчика в ОЗУ целевой системы без ПЗУ через LPT–порт инструментального компьютера выдаются коды команд, которые немедленно исполняются микропроцессором целевой системы. С этой целью в систему без ПЗУ, загружаемую через порт принтера, введен механический переключатель, который перенаправляет сигнал чтения микропроцессором ОЗУ низкого уровня — /RD — на вход разрешения сигнала выходных линий — /OE (Output Enable) — тристабильного восьмиразрядного буферного шинного формирователя, подключающего выходные линии данных LPT–порта к шине данных целевой системы. Поскольку программно-управляемый порт принтера инструментальной ЭВМ физически не способен выдавать коды команд с той скоростью, с которой их может исполнять микропроцессор целевой системы, в систему без ПЗУ также введено простейшее устройство синхронизации, представляющее собой бистабильный RS-триггер, на один из входов которого через формирователь короткого импульса поступает сигнал чтения /RD, а на второй вход, также через формирователь короткого импульса — сигнал стробирования данных портом принтера /STROBE. Выход RS-триггера через вторую пару контактов механического переключателя соединяется со входом /WAIT микропроцессора целевой системы. Таким образом, при выполнении им операции чтения из ОЗУ, происходит чтение кода с выходов LPT–порта инструментального компьютера, а при выполнении операции записи — происходит запись байта непосредственно в ОЗУ самой целевой системы, при этом устройство синхронизации приостанавливает микропроцессор целевой системы активным уровнем сигнала по входу /WAIT в операции чтения, и в этот момент активный сигнал /RD низкого уровня позволяет поступить на шину данных сигналам данных с выходов LPT–порта, а программа-загрузчик, опрашивающая выход RS-триггера через линию BUSY этого порта, определяет состояние чтения из LPT–порта и выдаёт на линии данных LPT–порта очередной код загружаемой программы, сопровождая его сигналом стробирования данных принтера /STROBE. Этот сигнал через формирователь короткого импульса сбрасывает RS-триггер устройства синхронизации, который своим выходом деактивирует сигнал на входе /WAIT микропроцессора, после чего последний считывает поступивший на шину данных код и исполняет его. При следующем обращении микропроцессора к ОЗУ операцией чтения весь описанный выше процесс повторяется. Согласно этому алгоритму, микропроцессору после сброса обычно передают короткую программу начального циклического загрузчика, которая в дальнейшем считывает байты кодов из LPT–порта и записывает их в ОЗУ. По завершению процесса передачи кодов загружаемой программы в ОЗУ целевой системы следует нажать кнопку начального сброса микропроцессора, и, удерживая её, осуществить переключение механического переключателя, осуществляющее отключение выхода RS-триггера от входа /WAIT микропроцессора и подключение его выхода /RD к соответствующему входу микросхемы ОЗУ. После отпускания кнопки начального сброса микропроцессора, он по сигналу чтения низкого уровня /RD считывает первый код операции уже из собственного ОЗУ и начинает выполнять загруженную в ОЗУ программу.
Таким образом, существует возможность оперативно и довольно просто загружать в ОЗУ микропроцессорной системы без ПЗУ отлаживаемые программы, которые могут быть в дальнейшем размещены в системном ПЗУ после их тестирования и выявления ошибок, причем само устройство загрузки, частично имитирующее функции ПЗУ, отличается простотой схемотехнического решения и низкой себестоимостью.
Основным недостатком конструкции, выбранной в качестве прототипа, несмотря на явную простоту и оригинальность, является её ненадежность и неудобство, связанные с относительно сложным процессом изменения режима целевого устройства с загрузки программы на её исполнение с помощью механического переключателя при удержании микропроцессора отдельной кнопкой в состоянии начального сброса. Некорректное выполнение такого переключения может привести к сбою исполнения загруженного кода, потере управления микропроцесором и разрушению программы в ОЗУ. Подобное решение также не может быть применимо к законченной отлаживаемой конструкции, поскольку потребует вмешательства в её схемотехнику, связанного с необходимостью коммутации сигнала /RD шины управления.
Другим существенным недостатком является то, что устройство неспособно выполнять свои функции уже при необходимости обслуживания микропроцессорной системы даже с 16-разрядным микропроцессором, не говоря уже о системах более высокой разрядности.
И, наконец, к недостаткам устройства следует отнести используемое в процессе его работы побитное программное управление LPT–портом инструментального компьютера программой-загрузчиком. Этот весьма существенный недостаток заключается в том, что LPT–порт является устаревшим интерфейсом персональных ЭВМ, и в современных компьютерах, особенно в лэптопах и ноутбуках, столь удобных для использования в качестве инструментальных компьютеров, этот интерфейс отсутствует совсем, поскольку он был вытеснен современным компактным и высокопроизводительным интерфейсом USB. Для управления оборудованием, имеющим интерфейс, совместимый с LPT–портом, в настоящее время используются специальные кабели-переходники USB–LPT, имеющие в своем составе специальный микроконтроллер, осуществляющий преобразование интерфейса, но, к сожалению, подобные адаптеры не допускают побитное управление LPT–портом, а поддерживают лишь характерный для этого порта протокол обмена с принтером по стандарту ‘Centronics’, который предполагает строго определенную последовательность подачи сигналов на внешнее печатающее устройство и опрос сигналов его готовности, что в данном простом устройстве аппаратно не соблюдается.
Следует также отметить, что возможности отладки программы данным устройством практически ограничены. Если сам процесс загрузки еще можно рассматривать как разновидность пошагового прохождения программы с возможностью останова, то после загрузки программы в ОЗУ и механического отключения устройства во время начального сброса целевой системы, возможность инструментального компьютера как-то влиять в дальнейшем на процесс выполнения загруженной программы в ОЗУ целевой системы практически отсутствует.
Задачей заявляемого технического решения является создание конструкции отладочного устройства для широкого круга целевых микропроцессорных систем, обладающего функциями отладчика, загрузчика программ и эмулятора ПЗУ, при сохранении схемотехнической простоты и бюджетной доступности устройства.
Технический результат заключается в повышении производительности и снижении трудоемкости процесса отладки микропроцессорных систем и устройств, а также снижении материальных затрат на этот процесс.
Указанный технический результат достигается тем, что в конструкцию отладочного устройства, использующего часть памяти внешнего инструментального компьютера для хранения программы целевой отлаживаемой микропроцессорной системы, и имеющего в своем составе интерфейс LPT–порта принтера для передачи программ и данных в отлаживаемую микропроцессорную систему через тристабильный восьмиразрядный буферный шинный формирователь, а также простейшее устройство синхронизации, представляющее собой бистабильный RS-триггер с подключенными к его входам формирователями коротких импульсов, согласно решению, в зависимости от разрядности N микропроцессора отлаживаемой системы, вводятся дополнительно N/8 восьмиразрядных регистров-защелок с тристабильным выходом, входы которых объединяются поразрядно и подключаются через тристабильный восьмиразрядный буферный шинный формирователь соответственно к линиям данных интерфейса принтера, а выходы посредством многоштырьковых вилок соединяются через панельки ПЗУ отлаживаемого устройства с его шиной данных.
Со входами записи восьмиразрядных регистров-защелок соединены выходы введенного в устройство дешифратора типа “код-позиция”, к входным линиям которого подключены выходы двоичного счетчика, на счетный вход которого через буферный элемент в необходимой полярности поступает сигнал подтверждения истинности выданных инструментальным компьютером в LPT–порт данных — /STROBE, в нужной полярности подаваемый через буферный элемент также на входы разрешения работы дешифратора. Двоичный счетчик и дешифратор в таком включении образуют демультиплексор–распределитель сигнала /STROBE, направляющий каждый следующий сигнал подтверждения истинности выданных инструментальным компьютером данных на вход записи соответствующего регистра-защелки.
В зависимости от разрядности микропроцессора отлаживаемой целевой системы к одному из выходов демультиплексора–распределителя сигнала /STROBE (нулевому, первому, третьему или седьмому) через соответствующий переключатель подсоединен формирователь короткого импульса, выходной сигнал которого поступает через вентиль, выполняющий логическую функцию ИЛИ, на вход сброса RS-триггера устройства синхронизации, а также — на входы сброса двоичного счетчика, что позволяет осуществлять подсчет количества байт, необходимых конкретному типу процессора за одно обращение к ПЗУ.
Через второй вход этого вентиля на вход сброса двоичного счетчика подается сигнал начальной установки /INIT с вывода LPT–порт инструментального компьютера, а через третий вход — сигнал начальной установки по включению питания, формируемый интегрирующей RC-цепью, что инициализирует двоичный счетчик начальным нулевым значением, а также устанавливает по входу сброса в исходное состояние RS-триггер устройства синхронизации.
На вход установки RS-триггера устройства синхронизации через формирователь короткого импульса, подключенный к выходу двухвходовой схемы совпадения, выполняющей логическую функцию "И", с панельки ПЗУ отлаживаемого устройства через контакты многоштырьковой вилки поступают сигналы выборки ПЗУ и строба чтения ЗУ отлаживаемой микропроцессорной системы, таким образом, что выходной сигнал схемы совпадения активен, когда активны оба сигнала. Этот выходной сигнал поступает на все входы разрешения выдачи данных восьмиразрядных регистров-защелок, позволяя им выдать записанные в них байты на шину данных отлаживаемого устройства.
С выхода RS-триггера устройства синхронизации сигнал необходимой полярности через буферные элементы подается на вход готовности /READY микропроцессора целевой системы. К одному из выходов RS-триггера также подключается светодиодный индикатор, в задачу которого входит визуальное отображение фазы процесса загрузки или отладки, а также индикация включения и начальной инициализации отладочного устройства.
Со счетным входом двоичного счетчика, на который в необходимой полярности через буферный элемент поступает сигнал подтверждения истинности выданных инструментальным компьютером в LPT–порт данных — /STROBE, соединен вход схемы задержки импульса, на выходе которой логическим вентилем формируется сигнал занятости устройства BUSY, поступающий на вход LPT–порта. С выхода схемы задержки импульса через подсоединенную к нему дополнительную схему задержки и формирователь импульса на соответствующий вход LPT–порта подается сформированный таким образом сигнал /ACK — подтверждения принятия данных и готовности устройства принять следующие данные.
Таким образом, при выдаче инструментальным компьютером в LPT–порт байта данных и подтверждения его истинности сигналом /STROBE устройство отладки имитирует сигналы интерфейса обмена с принтером по стандарту ‘Centronics’, что позволяет использовать для обмена с ним стандартные низкоуровневые подпрограммы вывода байта на принтер, имеющиеся в большинстве распространенных операционных систем. С точки зрения же инструментального компьютера работа с устройством отладки программно и аппаратно выглядит как вывод последовательности байт на печать принтеру, поддерживающему стандартный интерфейс обмена, поэтому для работы с устройством подходит большинство программ, имеющих опцию печати бинарного файла. Для более сложных манипуляций с устройством вполне подойдут простые программы, содержащие операторы вывода байта на печать, опроса клавиатуры, работы с файлом и написанные на распространенных языках высокого уровня, поскольку всю низкоуровневую часть поддерживает непосредственно операционная система. При этом достигается максимальная скорость обмена через стандартный LPT–порт — до 100…200 Кбайт/с и более, поскольку само устройство отладки, в отличие от принтера, является чисто электронным прибором и потому не вносит в процедуру обмена задержек, характерных для принтера, имеющего механическую часть.
Заявляемое отладочное устройство подключается кабелем к разъему LPT–порта инструментального компьютера и шлейфами с многоштырьковыми вилками — ко входу готовности микропроцессора отлаживаемого устройства и его панелькам ПЗУ, через которые из отлаживаемой системы поступает также и питающее напряжение.
При включении питания отлаживаемой системы интегрирующая RC-цепь формирует сигнал начальной установки длительностью пропорциональной постоянной времени этой цепи. Этот сигнал инициализирует двоичный счетчик начальным нулевым значением и устанавливает RS-триггер устройства синхронизации по его второму входу в положение, при котором микропроцессор отлаживаемой системы остановлен активным уровнем сигнала по входу готовности, выполняя при этом такты ожидания, а на вход контроля занятости разъема LPT–порта инструментального компьютера подаётся логический уровень, сообщающий о том, что отладочное устройство не занято и готово принять байт данных отлаживаемой программы. Эта ситуация отображается горящим светодиодным индикатором, после чего на инструментальном компьютере запускается программа вывода на принтер (“печати”) бинарного файла отлаживаемой программы, при этом через LPT–порт выдается сигнал начальной инициализации принтера, в функции которого входит произвести все те предустановки, которые были сделаны сигналом начальной установки, формируемым интегрирующей RC-цепью при включении питания. Такую начальную инициализацию программа вывода на принтер осуществляет каждый раз при начале печати, приводя в исходное состояние двоичный счетчик и устройство синхронизации в том случае, если они остались в некорректном состоянии после предыдущего сеанса работы.
Программа вывода на принтер далее проверяет состояние линии занятости устройства, и в том случае, если устройство не занято, выводит на линии данных LPT–порта первый байт программы, сопровождая его, согласно стандартному протоколу обмена с принтером, сигналом стробирования — подтверждения истинности выданных в порт данных. Двоичный счетчик по сигналу начальной установки инициализирован нулевым значением, поэтому дешифратор, получив разрешение низким уровнем сигнала стробирования, распределяет этот сигнал на вход записи первого из восьмиразрядных регистров-защелок, в который и записывается байт с линий данных LPT–порта по спаду стробирующего сигнала.
В этот же момент из сигнала стробирования формируется сдвинутый по времени сигнал занятости отладочного устройства, который выдается на соответствующую линию порта принтера инструментального компьютера, чтобы программа печати не могла послать следующий байт, пока не закончены процессы в отладочном устройстве.
По заднему фронту сигнала стробирования двоичный счетчик подсчитывает этот сигнал, а дешифратор отключается от входов записи восьмиразрядных регистров-защелок. В этот момент сигнал занятости на соответствующей линий LPT–порта становится неактивным, сообщая инструментальному компьютеру, согласно стандартному протоколу обмена, что отладочное устройство не занято, а сформированный сигнал подтверждения принятия данных и готовности устройства принять следующие данные через соответствующую линию LPT–порта сигнализирует инструментальному компьютеру, что можно выдать в порт следующий байт отлаживаемой программы.
Программа печати снова проверяет состояние линии занятости устройства, и в том случае, если устройство не занято, выводит на линии данных LPT–порта следующий байт программы, опять сопровождая его, согласно стандартному протоколу обмена с принтером, сигналом стробирования. Весь процесс, изложенный выше, повторяется с той лишь разницей, что байт записывается во второй восьмиразрядный регистр-защелку. Далее вся процедура выдачи байта повторяется вновь и так происходит до тех пор, пока сигнал стробирования не будет подан на вход записи того регистра-защелки, к которому через переключатель подсоединен формирователь короткого импульса, сигнал с выхода которого подается на первый вход сброса RS-триггера устройства синхронизации и через вентиль, выполняющий логическую функцию "ИЛИ", — на входы сброса двоичного счетчика.
Положение переключателя зависит от разрядности микропроцессора отлаживаемой системы и устанавливается до начала процесса отладки. В зависимости от положения этого переключателя, байты отлаживаемой программы будут записаны через LPT–порт в один регистр-защелку — для 8-битного микропроцессора, в два регистра-защелки — для 16-битного микропроцессора, в четыре регистра-защелки — для 32-битного и в восемь регистров — для 64-битного прибора.
Как только сигнал стробирования появляется на входе формирователя короткого импульса, он формирует короткий импульс сброса, которым переводит двоичный счетчик в исходное состояние с нулевым значением на выходах, а RS-триггер устройства синхронизации сбрасывается в состояние, при котором на соответствующую линию LPT–порта выдается активный сигнал занятости, а сигнал готовности микропроцессора отлаживаемой системы деактивируется. Микропроцессор прекращает такты ожидания и, в зависимости от своей разрядности, считывает при активизированных им сигналах выбора и чтения ПЗУ соответственно 8, 16, 32 или 64 бита данных с выходов регистров-защелок, которые в этот момент активным сигналом чтения подключены к шине данных отлаживаемой системы.
Микропроцессор отлаживаемой системы выполняет полученный код в реальном масштабе времени и вновь обращается к отладочному устройству, как к ПЗУ сигналами выбора ПЗУ и чтения. В этот момент через формирователь короткого импульса происходит установка RS-триггера устройства синхронизации в состояние, при котором микропроцессор отлаживаемой системы останавливается активным уровнем сигнала по входу готовности, выполняя при этом такты ожидания, а на вход контроля занятости разъема LPT–порта инструментального компьютера подаётся логический уровень, сообщающий о том, что отладочное устройство не занято и готово принять байт данных отлаживаемой программы.
Инструментальный компьютер вновь “выдает на печать” через свой LPT–порт требуемое количество байт, отладочное устройство вновь разрешает микропроцессору отлаживаемой системы выполнить полученный код, приостановив инструментальный компьютер сигналом занятости. Таким об