Дж.Хиллбурн, П.Джулич Микро-ЭВМ и микропроцессоры (1979) (1092080), страница 59
Текст из файла (страница 59)
Для многих применений на начальной стадии проектирования и на этапе макетирования полезно использовать специализированную микро-ЭВМ или комплект разработки. В приводимых ниже рассуждениях будем полагать, что на начальной стадии работ по созданию программного обеспечения и интерфейса мы располагаем комплектом разработки 1п1е1!ес 40 (равд. 7.3).
ПРОЕКТИРОВАНИЕ На этапе проектирования системы разработка программного обеспечения и конструирование технических средств системы осуществляются одновременно. Конструирование технических средств обычно заключается в решении проблем построения интерфейса и проектировании оборудования, необходимого для реализации функций ввода-вывода. Тесная координация работ на этой стадии необходима ввиду того, что программное обеспечение системы в значительной степени определяется ее техническими средствами.
При проектировании необходимо предусмотреть ряд возможностей для испытания системы 14), что обычно требует некоторых дополнительных технических средств, а также специальных программных средств для обеспечения отладки системы. При хорошем планировании эти средства могут оказаться весьма ценными на стадии отладки. В нашем примере мы используем комплект разработки 1п1еПес 40 для машины МСЯ-40.
В состав этого комплекта входит ряд мощных средств отладки. Для простоты изложения будем считать, что комплект разработки содержит соответствуюшие средства и для испытания системы. По завершении стадии испытаний отдельные компоненты комплекта разработки можно заменить с,целью получения промышленного образца системы. В рассматриваемом примере (интерфейс устройства Бе!ес1Пс) проектирование технического оборудования начинается с построения схемы системы, показанной на рис. 8.5. Дешифратор сигналов управления служит для дешифрирования выходных сигналов выбора кристалла интерфейса 4289 с целью отпирания соответствующих портов ввода и вывода.
На рис. 8.7 представлены технические средства, необходимые для решения этой задачи. Устройство 4289 выдает 4-разрядный сигнал выбора кристалла (Св — 'Св), который служит номером страницы (четыре старших разряда) в адресах памяти команд. При выполнении операций ввода-вывода код устройства поступает на Са — Сз вместе с соответствующим уровнем сигнала на зажимах «Вход» и «Выход». Дешифратор 1-из-16 используется для адресации памяти команд и портов вво- Методология проектирования 351 Рнс. 8.7. Дешнфрнрованне н управление для операций ввода-вывода н обреще- ння к памяти. да.
При выполнении команды ВВОД зажим «Вход» находится в состоянии 1 и восемь портов ввода отпираются при помощи линий 8 — 15 дешифратора. Линии 0 — 7 могут использоваться для адресации до восьми кристаллов ППЗУ памяти команд. При выполнении команды вывода в состоянии 1 находится «Выход», в результате чего отпирается дешифратор 1- из -8.
Согласование временных расхождений в работе системы осуществляется при помощи схем фиксаторов, которые, однако, не могут обеспечить запуск реле устройства Бе!ес1Нс. Поэтому для возбуждения магнитов устройства от сигналов выходных фиксаторов (порты вывода 2, 3, 4 н 5) необходимы высокоамперные формирователи (такие, как Ха1юпа! РН0006) „ 352 Глава 8 тв"-ленный адрес Манные Рис. 8.8, Таблица распределения ПЗУ 6 для интерфейса пишущей машинки. При разработке программного обеспечения следует учитывать особенности технических средств системы. Прежде всего необходимо составить блок-схему основной программы, поскольку конструкйгиввое исполнение интерфейса оказывает непосредственное влияние на программное о~беспечение системы.
Программу можно разбить на небольшие задания, соответствующие, например, подпрограммам ввода или вывода или внутренней обработки данных. В рассмотренном выше примере интерфейса пишущей машинки одна подпрограмма вывода написана как часть зталонной программы. Другим важным моментом при разработке программы является преобразование кода АБСП в коде Яе!сс1г)с. Это преобразование можно осуществить табличным способом. Восьмиразрядный код АЯСП по существу является 7-разрядным кодом с добавлением разряда 8 для контроля на четность, Предположим, что мы произвели проверку четности поступившего слова и затем установили этот разряд в нуль.
В результате получим код, принимающий значения в диапазоне 00 — 7Е (для размещения всех комбинаций требуется 2' ячеек памяти). Если этот код использовать в качест- Методология проектирования 353 0-ретрярний ней синрена 5е?ес!сгс 1 й Уприйнение ? = Вернний регисспр 0 = гангрен 0 = Вигиний регистр Рис. 0.9. Формат слова в коде Бе!ес!г!с. ве адресов памяти для соответствующих символов в коде Яе1ес1Пс, то преобразование можно осуществить непосредственным образом.
На рис. 8.8. показано размещение кода 8е!ес1г!с в памяти. Коды символов в системе Яе1ес1г!с соответствуют только магнитам выборки символов для печати на машинке. Для осуществления, например, возврата каретки необходимо возбудить отдельный магнит. Один из семи разрядов кода Яе!ес1г!с используется для контроля на честность. Если этот разряд временно не учитывать, то два разряда в слове можно использовать для идентификации служебных кодовых комбинаций. Формат представления кода Яе1ес1Пс в памяти для этого случая показан на рис. 8.9.
Рис. 8.10. Таблица распределения внутренних регистров 1п!е! 4040. 23 — ? 19 Методология проектирования 355 А» — РЕГ. О. СДВИГ РАЗРЯДА ЧЕТНОСТИ В РАЗРЯД ПЕРЕНОСА ИСКЛЮЧИТЬ РАЗРЯД ЧЕТНО- СТИ ВОССТАНОВИТЬ КОД СИМВОЛА РЕГ, 0» — А ПЕРЕСЛАТЬ КОД ЗЕ1ЕСТГс!С В РЕГИСТРОВУЮ ПАРУ 0 С1.С КАГс ХСН 0 Р151 2 БЛОК 2 23е При чтении из памяти кода Зе!ес1Нс проверяется содержимое разряда 7. Если в этом разряде содержится 1, то 6-разрядный код, записанный в разрядах 0 — 5, указывает, какой из управляющих магнитов необходимо возбудить (например, магнит перевода строки или возврата каретки).
При нулевом содержимом разряда 7 6-разрядный код представляет собой код печатаемого символа. Перед выводом кода символа на пишущую машинку необходимо сгенерировать разряд контроля на четность и послать соответствующее значение на место наименьшего значащего разряда. На рнс. 8.10 показана таблица распределения внутренних регистров машины 4040. Такие таблицы удобны при расчетах регистровой памяти, отводимой для размещения данных. В системах, где используется память с произвольным доступом, весьма полезны таблицы распределения памяти (в них указывается размещение данных в ячейках ОЗУ). На рис.
8.11 представлена блок-схема подпрограммы, выполняющей описанные преобразования. Подпрограмма начинает работать после того, как символ в коде АЗСП считан с калькулятора и записан в регистровую пару 0 (регистры 0 и 1). Данная подпрограмма начинается с выполнения преобразования из' кода АЗСП в код Зе!ес1г(с. Вначале из кода АЗСП исключается разряд четности, далее для считывания кода Зе!ес1Пс используется команда косвенной выборки Р151. По этой команде 8-разрядйое содержимое пары 0 индексных регистров (регистры 0 и 1) интерпретируется как адрес на странице, где размещена команда Р!Ь). Восьмиразрядное слово, расположенное по данному адресу, загружается в указанную в команде пару регистров. В нашем примере команда Р151 должна размещаться на странице 0 памяти команд.
Программу, соответствующую рассмотренной блок-схеме, можно записать следующим образом: ; БЛОК 1 РИС. 8.11 ЫЭ 0 КА1 366 Глава а ЯАЬ ,1СН 2, СТКЬ СТК1. — ЭТО ПОДПРОГРАММА ВОЗБУЖДЕНИЯ УПРАВЛЯ. ЮШИХ МАГНИТОВ ; РАСПЕЧАТКА СТЯ1 НЕ ПРИВОДИТСЯ БЛОК 3 КАЬ 1 ЗЕТЦР: БЛОК 6 ЗЕТ:Ж 2 ЯАЬ С1.С ,1СН 2, ЗЕТЦР БЛОК 4 1.0М 8 ХСН 6 ЛЗН ЗЕТ БЛОК 6 ЬРМ 4 ХСН 6 С1.С КАЬ С1.С ЦИКЛИЧЕСКИЙ СДВИГ СЕДЬ. МОГО РАЗРЯДА В РАЗРЯД ПЕРЕНОСА ПЕРЕХОД К СТЯ1„ЕСЛИ КОД СООТВЕТСТВУЕТ ОПЕРАЦИИ УПРАВЛЕНИЯ ЦИКЛИЧЕСКИЙ СДВИГ РАЗРЯ- ДА СОСТОЯНИЯ ГОЛОВКИ В РАЗРЯД ПЕРЕНОСА УСТАНОВИТЬ БИТ НИЖНЕГО РЕГИСТРА УСТАНОВИТЬ БИТ ВЕРХНЕГО РЕГИСТРА ЗАМЕНИТЬ СТАРШИЕ РАЗРЯ- ДЫ КОДА ЗЕЬЕСТК!С ИСКЛЮЧИТЬ РАЗРЯД УПРАВ- ЛЕНИЯ ИСКЛЮЧИТЬ РАЗРЯД СОСТОЯ- НИЯ ГОЛОВКИ ДВА СТАРШИХ РАЗРЯДА КОДА ЗЕ1ЕСТЯ1С ЗАПИСАНЫ В РАЗ- РЯДЫ 1 и 2 АККУМУЛЯТОРА 358 Глава 8 УСТАНОВИТЬ В 1 РАЗРЯД ПЕРЕ- НОСА СМС ХСН ХСН ХСН АЭО ПЕРЕСЛАТЬ В ЬЗВ СОДЕРЖИ- МОЕ РАЗРЯДА ЧЕТНОСТИ ЗАВЕРШИТЬ ИНТЕРПРЕТАЦИЮ ХСН ЕЫП 8: НОР Переход по 1.
Увеличить на 1 содержимое индекс- ного регистра. 2, АР111 11, ВРЕТ О 9 11,' КРЕТ О ВВЬ АРО 1: 1ЫС !ЗХ ВВ1. Оставшаяся часть программы составляется подобным же образом. Каждый блок идентифицируется, а затем составляется программа, реализующая выполняемую блоком, функцию. МАКЕТИРОВАНИЕ Весьма полезно макетирование системы при помощи комплекта разработки (такого, как 1п1е!!ес 40). Подобный комплект состоит из микро-ЭВМ с набором программ, предназначенных для испытаний и отладки систем. Он также включает внешнее оборудование и необходимые интерфейсы. Пакет прикладных программ, которые частично отлажены при помощи ассемблера, выполняется на аппаратуре прототипного Программа составлена непосредственно по описанной выше блок-схеме.
Подпрограмма СВ1Т, в которой реализуется подсчет количества единиц 4-разрядного слова, используется для определения разряда четности (контроль на четность) кода в блоке 8. Эту подпрограмму можно записать в следующем виде: СВ1Т: 10М ОСН ХСН 11 г~, Установить индексный регистр. 10 2 ; Загрузить регистр 2. КРЕТ: КАК .)СХ 1Ы Методология проектирования 359 комплекта; здесь осуществляется и окончательная отладка этих программ.
На данной стадии разработки системы большинство проблем решается путем модификации программного обеспечения, поскольку переделка технического оборудования обходится дорого ,[4~. При проверке функционирования макета внимание концентрируют прежде всего на контроле выполнения операций одним или двумя специфическими блоками.
При построении макета системы удобно хранить программы в ОЗУ, что позволяет быстро вносить в них изменения в процессе испытаний системы. ИСПЫТАНИЯ После построения макета системы начинаются его испытания. Необходимо построить план испытаний, позволяющий проконтролировать выполнение системой всех функций, которые она должна выполнять. Такое глубокое проникновение в работу системы необходимо для локализации потенциальных неполадок и построения соответствующих методик испытаний.