Организация ввода вывода в микропроцессорной системе
Скачать 343 Kb.
|
Рис. 5.1. Пример схемы пользовательского интерфейсаЧасто для внешнего устройства данные необходимы в аналоговом виде, в то время как микропроцессорная система работает с двоичными числами. В этом случае для преобразования сигналов необходимы цифро-аналоговые преобразователи (ЦАП). Данные от различных датчиков (температуры, давления и других) часто передаются как непрерывные аналоговые напряжения или токи. Чтобы микропроцессорная система могла их обработать, аналоговые сигналы должны быть преобразованы в цифровые двоичные сигналы, которые могут читаться микропроцессором. Подобные функции выполняют аналого-цифровые преобразователи (АЦП). Интерфейсные схемы при использовании АЦП и ЦАП строятся так же, как и в обычном случае. В составе интерфейса должен быть регистр, куда помещаются данные. Этот регистр может быть частью ЦАП или АЦП, но чаще это дополнительный регистр. Кроме него в интерфейсе должен быть предусмотрен еще один регистр, который используется для управления АЦП или ЦАП. Процессор просто передает параллельные цифровые данные в регистры в интерфейсе устройства. Преобразование и передача данных между этими регистрами и внешними устройствами осуществляются автоматически электронными схемами интерфейса. Интерфейсы дисководов, графических дисплеев, и других сложных устройств ввода/вывода работают подобным же образом. Несмотря на существенные различия между характеристиками различных типов периферийных устройств, большинство из них рассматривается микропроцессором как набор адресуемых регистров. Эти интерфейсы включают в себя специальные регистры управления и состояния, в которые микропроцессор передает команды интерфейсу или считывает его текущее состояние. Ниже приведен фрагмент программы передачи одного байта данных на принтер. Интерфейс принтера представлен для микропроцессора двумя портами: регистром данных (Dat_Reg) и регистром состояния (Stat_Reg). Программа читает и проверяет младший бит регистра состояния устройства. Если этот бит – 1, устройство не готово принять данные от процессора, и программа ожидает в цикле, когда бит поменяет значение. Если бит – 0, устройство готово принимать данные и микропроцессор посылает информацию в регистр данных интерфейса устройства. Check: IN AL,Stat_Reg ; чтение регистра состояния AND AL, 00000001B ; проверка младшего бита JNE Check ; регистра состояния MOV AL,Data ;пересылка в регистр данных OUT Dat_reg,AL ; интерфейса Для того чтобы облегчить создание электронных схем интерфейсов разработано большое число различных специализированных больших интегральных схем. Одна из них – БИС 8255 (российский аналог 580ВВ55) – программируемое периферийное параллельное устройство ввода/вывода, предназначенное для использования в микропроцессорных системах. Микросхема используется как универсальный компонент параллельных интерфейсов. Конфигурация и режим работы БИС 8255 могут быть запрограммированы разработчиком интерфейса таким образом, что для связи периферийного устройства и микропроцессора обычно не требуется никаких дополнительных логических схем. Блок-схема программируемого периферийного адаптера параллельного интерфейса показана на рис. 5.2. Буфер шины данных - двунаправленный 8-разрядный буфер с выходами с тремя состояниями, который используется для связи адаптера 8255 с шиной данных микропроцессорной системы. Данные передаются или принимаются БИС с шины системы при выполнении команд от микропроцессора. Команды и информация о состоянии адаптера также передаются через буфер шины данных. В функции устройства управления входит управление всеми внутренними и внешними передачами данных и слов управления и состояния. Оно принимает информацию с шин данных и адреса микропроцессорной системы и, в свою очередь, вырабатывает управляющие сигналы для портов. Рис.5.2. Блок-схема БИС 8255 Каждый порт может быть программно настроен на выполнение определенных функций, и микропроцессор должен передать в адаптер специальные управляющие слова, которые содержат информацию о режимах, в которых должны работать порты, установке или очистке определенных битов. Для этого в БИС 8255 есть специальный регистр управляющих слов. Этот регистр может быть записан микропроцессором. Микросхема 8255 содержит 3 восьмиразрядных порта (А.В и С). Все они могут быть сконфигурированы программно и каждый имеет свои особенности, что расширяет функциональные возможности микросхемы. Порт С может быть разделен на 2 четырехразрядных полупорта. Каждый полупорт можно использовать самостоятельно или совместно с портами А и В для передачи служебной информации. Адаптер параллельного интерфейса может работать в трех режимах, которые устанавливаются программно: 1. Режим 0 – простой ввод/вывод 2. Режим 1 – стробируемый ввод/вывод 3. Режим 2 – двунаправленный ввод/вывод Когда на микросхему подается сигнал сброса, все порты устанавливаются в режим ввода данных и все 24 выхода портов переходят в состояние 1. После сигнала сброса все порты остаются в режиме простого ввода. Если микросхема должна использоваться именно в этих режимах, то дополнительного программирования не требуется. Если требуются другие режимы, то необходимо записать в регистр управляющих слов соответствующее слово инициализации. Причем перепрограммирование режимов работы микросхемы может быть сделано в любой момент работы программы. Режимы для порта А и порта B могут быть определены отдельно, в то время как для порта C каждая из двух частей может быть запрограммирована отдельно для режима 0 или использоваться как вспомогательная часть портов А и В для режимов 1 и 2. Все выходные регистры, включая триггеры состояния, будут сброшены всякий раз, когда режим изменяется. Режимы могут быть скомбинированы так, что адаптер может быть приспособлен почти к любой структуре интерфейса ввода/вывода. Интерфейсы последовательных каналов ввода/вывода в микропроцессорных системах реализуются с использованием БИС 8251 (российский аналог – 580ВВ51). Микросхема представляет собой универсальный синхронно-асинхронный приемопередатчик последовательной связи, выполняющий функции приема и преобразования параллельных форматов слов в последовательные для их передачи по каналам связи и последовательных форматов, принимаемых из каналов связи в параллельный формат для ввода в процессор. Микросхема может быть запрограммирована для работы в пяти режимах: асинхронная передача, асинхронный прием, синхронная передача, синхронный прием с внутренней синхронизацией, синхронный прием с внешней синхронизацией. На рис. 5.3 приведена структурная схема БИС 8251. Передатчик принимает данные с шины данных, преобразует их в последовательный код, добавляет служебные разряды и выдает их на выход передатчика ТхD под управлением сигналов синхронизации со входа ТхС. Приемник принимает данные со входа RxD, преобразует их в параллельный код, исключает служебные символы и посылает на шину данных. Прием синхронизируется сигналами на входе RxC. В режиме асинхронной передачи/приема скорость передачи или приема кратна частоте сигналов на входе TxC/RxC. Коэффициент кратности устанавливается программно и равен 1; 16 или 64. Сигналы TxRDY и RxRDY используются для связи с процессором. Сигнал TxRDY указывает, что передатчик готов принять новое слово данных от процессора. В единичное состояние сигнал устанавливается после программного запуска передачи и после завершения передачи очередного слова данных, а сбрасывается в нулевое состояние после записи байта данных в регистр данных передатчика. Сигнал RxRDY показывает, что данные в приемнике готовы для ввода в процессор. Он устанавливается в единичное состояние после приема слова данных и сбрасывается после считывания данных процессором. Оба сигнала могут быть использованы как сигналы требования прерываний, в случае программной организации ввода/вывода сигналы не используются. Схема управления содержит регистры управляющих слов, регистр состояния, схему управления модемом. Синхронизируется БИС сигналами, подаваемыми на вход CLK (обычно используют вторую фазу сигналов синхронизации микропроцессора). Сигнал SR длительностью не менее 6 периодов синхронизации используется для установки БИС в исходное состояние. Выход сигнала запроса приемнику терминала RTS устанавливается в 0 программно и используется как требование передачи данных от внешнего устройства. Сигнал на входе готовности приемника терминала CTS указывает (при CTS=0), что передача данных внешним устройством разрешена. Выход сигнала запроса готовности передатчику терминала DTR можно использовать для синхронизации работы передатчика и управления скоростью выборки. Он устанавливается в 0 программно. Вход сигнала готовности передатчика терминала DSR указывает на готовность внешнего устройства к передаче, фиксируется в слове состояния и может быть проанализирован программой. Рис. 5.3. Структурная схема контроллера С процессором БИС сопрягается посредством шины данных DO...D7 и управляющих сигналов CS, C/D, RD и WR. На вход выбора кристалла CS подается сигнал лог.0 с селектора адреса, определяющего адрес, по которому обращаются к БИС при программировании. Вход C/D (управление/данные) обычно управляется разрядом АО шины адреса. Входы управляющие чтением и записью информации RD и WR соединяются с линиями IORC и IOWR процессора (линии управляющие чтением/записью во внешние устройства). Микросхема содержит 7 программно-доступных 8-разрядных регистров: данных (РД), состояния (РС), режима (РР), команд (РК), первого синхросимвола (РСС1), второго синхросимвола (РСС2) и регистр передатчика. В асинхронном режиме работы регистры РСС1 и РСС2 не используются. Перед использованием контроллер должен быть запрограммирован. Программирование осуществляется записью нужной информации в регистры БИС. Порядок записи управляющих слов и данных следующий. После сигнала сброса по линии SR производится запись управляющего слова режима в РР. Следующие управляющие слова в зависимости от содержимого РР интерпретируется либо как первый синхросимвол и записывается в РСС1 (для синхронного режима), либо как команда (в асинхронном режиме). В синхронном режиме третье управляющее слово воспринимается как второй синхросимвол и записывается в РСС2, а четвертое слово как команда. В дальнейшем на микросхему могут поступать данные и команды в произвольном порядке (команды от данных микросхема отличает по сопровождающему их сигналу C/D, логическая 1 – команды, логический 0 – данные). Если необходимо сменить режим, нужно подать команду программного сброса или сигнал SR после чего повторить процедуру начального программирования. Программный контроль за состоянием приемопередатчика возможен посредством слова состояния. |