Дж.Хиллбурн, П.Джулич Микро-ЭВМ и микропроцессоры (1979) (1092080), страница 32
Текст из файла (страница 32)
6.10 для трех устройств. Поскольку приоритет каждого устройства определяется его местом в последовательности опроса, то устройство О, несомненно, имеет наивысший приоритет. Схема реализации программного опроса показана на рис. 6.11. В некоторых процессорах (например, в 1п1е! 4040) выдается сигнал подтверждения запроса на прерывание, затем автоматически запоминается содержимое счетчика команд (в стеке) и управление передается по определенному адресу памяти (в «ячейку захвата»), где осуществляется запоминание содержимого регистров ПП и проверка состояния запроса на прерывание каждого устройства, как это описано для асинхронной передачи. Прн определении требуемого устройства управление передается соответствующей подпрограмме обслуживания прерывания для реализации обмена. Общепринятый метод реализации опроса при помощи технических средств известен под названием дейзи-цепочки.
При этом методе ранее описанная программная процедура опроса выполняется при помощи «жесткой» логики. Структурная схема системы, реализованной при помощи «дейзи-цепочки», показана на рис.6.12. При подтверждении запроса на прерывание сигнал подтверждения прерывания поступает на устройство О, обладающее наивысшим Интерфейс и периферийные устройства 197 Прпретдалип дпдтдпржденип прпретдалия Пития дптдпра дптройптда Р Гтрвд- иттлвиеп дхпда Передала данник йикл лреретдаяия Рис. 6.15.
Временная диаграмма передачи данных с прерыванием программы по вектору. приоритетом. Если запрос поступил от этого устройства, последнее идентифицируется при помощи шины данных и сигнал подтверждения на устройство 1 не поступит. В противном случае устройство 0 передает этот сигнал на устройство 1. Процедура повторяется до тех пор, пока не будет обнаружено требуемого устройства.
Технические средства, необходимые для преобразования сети рис.6.11 и систему «дейзи-цепочки», показаны на рис. 6.13, где вместо линий выбора устройства используются линии разрешения передачи данных. При возникновении прерывания активируется шина под. тверждения прерывания, в результате выдавшее запрос устройство посылает необходимую информацию для обращения к соответст. вующей подпрограмме обслуживания прерывания. Далее производится обмен данными. Общая схема реализации прерывания по вектору показана на рис.
6.14. Здесь для упрощения принято, что периферийным устройством является устройство 2, В ответ на запрос на прерывание сигнал подтверждения прерывания отпирает буферы с тремя состояниями, выдавая адрес прерывания, или вектор идентификации, на шину данных. В результате идентифицируется выдавшее запрос устройство (устройство 2) и управление передается соответствующей подпрограмме обслуживании прерывания. Далее активируется линия выбора устройства 2 и подается строб-импульс входа, помещая данные на шину данных, Содержимое этой шины загружается в аккумулятор, чем и заканчивается передача.
Временная диаграмма передачи данных при помощи рассмотренной схемы приведена на рис. 6.15. Приведем программу на языке ассемблера 1п1е! 8080 для реализации описанной процедуры передачи данных: 198 Глава б ЛМР ПЧТК2; Переход к подпрограмме обслуживания прерываний устройства 2. ; Запомнить содержимое регистров В и С. ; Запомнить содержимое регистров 1л и Е.
; Запомнить содержимое регистров Н и Ь. ; Запомнить содержимое аккумулятора,и регистра состояния. Р11$Н О РАН Н РПЗН РЯЧ Передать команды для устрой- ства 2. РОР Р8% ' Восстановить содержимое аккумулятора и регистра состояния. РОР Н ; Восстановить содержимое регистров Н и Е. РОР О РОР В Е! КЕТ Разрешить прерывания. Возврат в основную програм- му. В ответ на запрос на прерывание от устройства 2 в счетчик команд в соответствии с «вектором» подпрограмм помещается адрес команды ЛМР 1МТК2, В микропроцессоре 1п1е1 8080, например, однобайтовая команда обращения к подпрограммам КБТ используется для адресации одной из восьми ячеек памяти.
На шину данных прн прерывании можно подать код для команды КБТ 2, по которому осуществляется переход к ячейке памяти, где расположена команда 1МР 1ИТК2. Поскольку КЯТ есть команда обращения к подпрограмме, то содержимое счетчика команд автоматически запоминается в стеке. 1ЫТЕ2 — зто подпрограмма обслуживания прерываний для устройства 2. По команде РБЗН запоминается содержимое внут- Интерфейс и аериферийные устройства 199 ренних регистров ЦП. Далее следуют команды, выполняющие передачу данных. При завершении передачи по командам РОР восстанавливается содержимое регистров, а по команде Е1, выдаваемой перед возвратом в основную программу, разрешаются прерывания. В приведенном примере все устройства обладают одинаковым приоритетом при их непосредственном соединении с шиной подтверждения прерывания. Приоритетную систему можно реализовать аппаратными средствами путем подсоединения каждого устройства по схеме «дейзи-цепочки» к шине подтверждения прерывания.
Некоторые процессоры немеют два или более вывода прерывания. Например, в микропроцессоре РАСЕ фирмы )Ча1!опа1 имеются шесть выводов, при помощи которых осуществляется приоритетное прерывание по вектору для шести устройств. Многоуровневые, или каскадироваqные, прерывания (прерывание прерывания) возможны во многих процессорах при использовании флажков разрешения для маскирования и демаскирования отдельных уровней. Такая возможность особенно полезна в системах, где используются периферийные устройства как с низким, так и высоким быстродействием.
6.3. ПЕРЕДАЧА ДАННЫХ ПРИ ПРЯМОМ ДОСТУПЕ К ПАМЯТИ В случае передачи данных при ПДП периферийное устройство связано с памятью непосредственно, минуя внутренние регистры микропроцессора. При .программно управляемой передаче данных, например при передаче данных с прерыванием программы, для выполнения обмена с устройством ввода-вывода может потребоваться несколько сотен микросекунд.
При интенсивном потоке внешних прерываний, которые происходят в среднем каждые 4— 5 мс, возникают значительные задержки в выполнении основной программы 12]. В практических ситуациях, когда требуется высокая скорость обмена между периферийным устройством и памятью (например, при загрузке данных в память с гибкого диска), ПДП-передача данных является наиболее эффективной. Однако для этого случая требуется более сложный интерфейс, чем при программно управляемой передаче данных. В большинстве процессоров с возможностью ПДП имеется специальный вывод, обозначенный как Но1д («Задержка»), Юа(1 («Ожидание») или Ранке («Пауза»), который активируется периферийным устройством для выполнения ПДП-передачи данных.
При активировании этого вывода процессор по завершении выполнения текущей команды переходит в состояние ожидания и блокирует адресную шину и шину данных. При помощи других выводов, таких, как «Подтверждение задержки», подтверждается 200 Глава 6 прием запроса и отпираются внешние схемы, реализующие ПДП- передачу данных. В некоторых процессорах, например СОЗМАС (фирма КСА), имеется возможность осуществления передачи данных с пропуском цикла 11).
Для каждой команды программы существуют, как известно, два цикла: цикл выборки и исполнительный цикл. При активировании шины передачи с пропуском цикла процессор после завершения исполнительного цикла текущей команды и до начала выборки следующей команды предоставляет промежуток времени длительностью в один цикл для непосредственного обмена данными между памятью и периферийным устройством. Для осуществления ПДП-передачи данных необходимо выполнить следующие действия: 1. Выдать с периферийного устройства запрос на ПДП-передачу данных. 2. Подать сигнал подтверждения запроса процессором. 3. Осуществить адресацию памяти при помощи внешних логических схем. 4.
Произвести обмен данными между периферийными устройствами и памятью (ЧТЕНИЕ или ЗАПИСЬ). 5. Закончить ПДП-передачу. На шаге 1 периферийное устройство выдает запрос на ПДП- передачу, отпирая соответствующий вывод процессора. Процессор после завершения текущей команды подтверждает принятие этого запроса и блокирует адресную шину и шину данных (шаг 2). В большинстве процессоров с ПДП в выходных буферах используются устройства с тремя состояниями для обеспечения блокировки шин.
По завершении шага 2 процессор переводится в состояние ожидания, а управление адресной шиной и шиной данных и передача адреса в память (шаг 3) осуществляются с использованием внешних логических схем (контроллера). Далее производится обмен данными, между памятью и выбранным устройством (шаг 4). В случае передачи блока данных контроллер должен выдать начальный адрес, обеспечить переадресацию памяти после передачи каждого информационного слова и подсчет количества передаваемых слов. По окончании передачи данных контроллер завершает ПДП (шаг 5) блокировкой соответствующего вывода процессора (Но!б и т.п.). В процессорах, использующих настоящий метод передачи данных (например, в 1п1е! 8080), отпирание и блокировка упомянутого вывода должны быть синхронизированы генератором тактовых импульсов микропроцессора (равд.
6.4). В других микропроцессорах (таких, как 6800 фирмы Мо1ого!а) ПДП заканчивается при помощи прерывания. Блоксхема реализации передачи при ПДП приведена на рис. 6.16. Структурная схема системы с использованием ПДП показана на рис. 6.2. Представленный на этом рисунке блок ПДП, реализу- Интерфейс и периферийные устройства Яб1 Рнс. б.16. Блок-схема передачи данных прн ПДП. ющий описанную выше ПДП-передачу данных, включает логические элементы, показанные на рис. 6.17.
Сигнал «Адрес устройства» активирует соответствующее периферийное устройство, когда на дешифратор этого устройства поступает сигнал отпирания. Начальный адрес и количество слов загружаются соответственно в счетчик памяти и счетчик слов. Количество слов в данном случае означает количество слов передаваемого блока данных. Далее передается первое слово блока, а содержимое счетчика памяти и счетчика слов соОтветственно увеличивается и уменьшается на единицу путем подачи сигналов на входы «Прибавление» и «Вычитание». Обмен продолжается до тех пор, пока содержимое счетчика слов не станет равным О. В этом случае генерируется сигнал заема, который и используется для завершения ПДП. При передаче более одного блока данных в схему необходимо включить также счетчик блоков, чтобы организовать подсчет количества передаваемых блоков.
202 Глава б угала древа рвйстда Лдрес устрвйстда дадертегае передана следа Нанальный адрес загруьна и адрес леденел след дертенае дььтт /атлульс заема г' нагрузла еле Рис, 6Л7. Логические элементы, используемые при ПДП-передаче блока данных. 6.4. СИНХРОНИЗАЦИЯ Схемы интерфейса должны обеспечивать временную совместимость микропроцессора и периферийных устройств. Эти схемы, как правило, функционируют в основном режиме, что обусловливает получение устойчивых и предсказуемых характеристик системы [81. Иными словами, при основном режиме входные сигналы (как потенциальные, так и импульсные) не должны менять своих логических значений, пока система находится в устойчивом состоянии.
Подобное ограничение предполагает синхронизацию любых изменений с тактовыми импульсами системы. В микро-ЭВМ периферийные устройства часто работают от отдельного генератора тактовых импульсов, поэтому необходима синхронизация сигналов, которыми обмениваются эти устройства (например, при выполнении операции ПДП и прерываний). Синхронизация может потребоваться также для реализации временнйх задержек, возникающих при работе микропроцессора с удаленным периферийным устройством.