Проектирование устройств сопряжения (1083567), страница 6
Текст из файла (страница 6)
Остальные сигналы не являются, вообще говоря, обязательными.
РЕ — сигнал конца бумаги. Получив его, компьютер переходит в режим ожидания. Если в принтер вставить лист бумаги, то сигнал снимается.
SLCT — сигнал готовности приемника. С его помощью принтер говорит о том, что он выбран и готов к работе. У многих принтеров имеет постоянно высокий уровень.
-SLCT IN — сигнал принтеру о том, что он выбран и последует передача данных.
-ERROR — сигнал ошибки принтера. Активен при внутренней ошибке, переходе принтера в состояние off-line или при отсутствии бумаги. Как видим, здесь многие сигналы дублируют друг друга.
-INIT — сигнал инициализации (сброса) принтера. Его длительность не менее 2,5 мкс. Происходит очистка буфера печати.
Временная диаграмма цикла передачи данных представлена на рисунке 1.7.
Рис 1.7. Временные диаграммы цикла передачи данных в Centronics (все временные интервалы в наносекундах).
Перед началом цикла передачи данных компьютер должен убедиться, что сняты сигналы BUSY и -АСК. После этого выставляются данные, формируется строб, снимается строб, и снимаются данные. Принтер должен успеть принять данные с выбранным темпом. При получении строба принтер формирует сигнал BUSY, а после окончания обработки данных выставляет сигнал -АСК, снимает BUSY и снимает -АСК. Затем может начинаться новый цикл.
Все сигналы интерфейса Centronics передаются в уровнях ТТЛ и рассчитаны на подключение одного стандартного входа ТТЛ. Максимальная длина соединительного кабеля по стандарту — 1,8 м.
Как видно из таблицы 1.10, в интерфейсе Centronics для подключения к компьютеру произвольных УС мы можем использовать 17 линий, назначение которых можно выбирать по своему усмотрению.
Формирование и прием сигналов интерфейса Centronics производится путем записи и чтения выделенных для него портов ввода/вывода. В компьютере может использоваться три порта Centronics, обозначаемых LPT1 (базовый адрес 378h), LPT2 (базовый адрес 278h) и LPT3 (базовый адрес 3BCh). При этом LPT3 используется в том случае, когда контроллер принтера находится на плате графического адаптера Hercules или EGA. Прерывания портов принтеров (IRQ5 для LPT2 и IRQ7 для LPT1) используются очень редко.
Базовый адрес порта используется для передачи принтеру байта данных. Установленные на линиях данные можно считать из этого же порта.
Следующий адрес (базовый + 1) служит для чтения битов состояния принтера (бит 3 соответствует сигналу -ERROR, бит 4 — сигналу SLCT, бит 5 — сигналу РЕ, бит 6 — сигналу -АСК, бит 7 — сигналу BUSY). Последний используемый адрес (базовый + 2) предназначается для записи битов управления принтером (бит 0 соответствует сигналу -STROBE, бит 1 — сигналу -AUTO FD, бит 2 — сигналу -INIT, бит 3 — сигналу -SLCT IN и наконец бит 4, равный единице, разрешает прерывание от принтера).
1.4. Порядок обмена по интерфейсу RS-232C
Интерфейс RS-232C предназначен для подключения к компьютеру стандартных внешних устройств (принтера, сканера, модема, мыши и др.), а также для связи компьютеров между собой. Основными преимуществами использования RS-232C по сравнению с Centronics являются возможность передачи на значительно большие расстояния и гораздо более простой соединительный кабель. В то же время работать с ним несколько сложнее. Данные в RS-232C передаются в последовательном коде побайтно. Каждый байт обрамляется стартовым и стоповыми битами. Данные могут передаваться как в одну, так и в другую сторону (дуплексный режим).
Компьютер имеет 25-контактный (DB25P) или 9-контактный (DB9P) разъем для подключения RS-232C. Назначение контактов разъема приведено в таблице 1.11.
Цепь | Контакт (25-контактный разъем) | Контакт (9-контактный разъем) | I/O |
FG | 1 | - | - |
-TxD | 2 | 3 | О |
-RxD | 3 | 2 | I |
RTS | 4 | 7 | О |
CTS | 5 | 8 | I |
DSR | 6 | 6 | I |
SG | 7 | 5 | - |
DCD | 8 | 1 | I |
DTR | 20 | 4 | О |
RI | 22 | 9 | I |
Табл. 1.11. Назначение контактов разъемов интерфейса RS-232C (I — входной сигнал компьютера, О — выходной сигнал).
Назначение сигналов следующее.
FG — защитное заземление (экран).
-TxD — данные, передаваемые компьютером в последовательном коде (логика отрицательная).
-RxD — данные, принимаемые компьютером в последовательном коде (логика отрицательная).
RTS — сигнал запроса передачи. Активен во все время передачи.
CTS — сигнал сброса (очистки) для передачи. Активен во все время передачи. Говорит о готовности приемника.
DSR — готовность данных. Используется для задания режима модема.
SG — сигнальное заземление, нулевой провод.
DCD — обнаружение несущей данных (детектирование принимаемого сигнала).
DTR — готовность выходных данных.
RI — индикатор вызова. Говорит о приеме модемом сигнала вызова по телефонной сети.
Наиболее часто используются трех- или четырехпроводная связь (для двунаправленной передачи). Схема соединения для четырехпроводной линии связи показана на рис. 1.8.
Для двухпроводной линии связи в случае только передачи из компьютера во внешнее устройство используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом.
Формат передаваемых данных показан на рис. 1.9. Собственно данные (5, 6, 7 или 8 бит) сопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определенные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми (допустимое расхождение — не более 10%). Скорость передачи по RS-232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с.
Рис. 1.8. Схема 4-проводной линии связи для RS-232C.
Все сигналы RS-232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рис. 1.10). Отметим, что данные передаются в инверсном коде (логической единице соответствует низкий уровень, логическому нулю — высокий уровень).
Для подключения произвольного УС к компьютеру через RS-232С обычно используют трех- или четырехпроводную линию связи (см. рис. 1.8), но можно задействовать и другие сигналы интерфейса.
Рис. 1.9. Формат данных RS-232C.
Рис. 1.10. Уровни сигналов RS-232C на передающем и принимающем концах линии связи.
Обмен по RS-232C осуществляется с помощью обращений по специально выделенным для этого портам СОМ1 (адреса 3F8h...3FFh, прерывание IRQ4), COM2 (адреса 2F8h...2FFh, прерывание IRQ3), COM3 (адреса 3E8h...3EFh, прерывание IRQ10), COM4 (адреса 2E8h...2EFh, прерывание IRQ11). Форматы обращений по этим адресам можно найти в многочисленных описаниях микросхем контроллеров последовательного обмена UART (Universal Asynchronous Receiver/ Transmitter), например, 18250, KP580BB51. Здесь же мы не имеем возможности описывать все возможные режимы их работы.
Разработка устройств сопряжения для ISA
При разработке УС необходимо в первую очередь сформулировать требования, предъявляемые к нему, проанализировать функции, которые компьютер должен выполнять с помощью данного УС. В общем случае эти функции могут быть реализованы как аппаратурой УС, так и программным обеспечением компьютера. В свою очередь, УС может включать в себя процессор, однокристальный контроллер, микропрограммный автомат или жесткую логику. Сочетания перечисленных решений различаются между собой стоимостью, сложностью решаемых задач, гибкостью (способностью перенастройки на другую задачу), быстродействием (рис. 2.1).
Рис. 2.1. Сравнение методов реализации функций УС.
Отметим, что изменение каждого параметра показано на рисунке в предположении, что остальные параметры не изменяются. При выборе того или иного решения надо учитывать также степень трудоемкости его реализации. Очень часто значительные трудности вызывает составление программного обеспечения для встроенного контроллера или микропрограммного обеспечения для встроенного микропрограммного автомата. Для этого обычно требуются сложные системы разработки. В то же время проектирование жесткой логики требует большого мастерства по части схемотехники. Вместе с тем при прочих равных условиях представляется наиболее разумным сочетание программных средств компьютера и жесткой логики УС с перенесением сложной обработки на компьютер и достижением высокого быстродействия с помощью жесткой логики. К сожалению, это удается не всегда.
Функции, выполняемые УС, можно разделить на две группы. К первой группе относятся интерфейсные функции, то есть которые обеспечивают обмен с выбранным интерфейсом компьютера (ISA, Centronics, RS-232C или какие-нибудь еще). Вторую группу образуют операционные или основные функции, ради которых, собственно, и создается УС. Строго говоря, если УС предназначено для сопряжения компьютера с каким-нибудь другим устройством, также имеющим стандартный интерфейс, то добавляются еще и функции обмена с этим интерфейсом, но мы о них говорить не будем.
Соответственно с этими двумя выделенными группами функций в структуре УС можно также выделить две части: интерфейсную и операционную. При этом подходы к проектированию этих двух имеют принципиальные отличия. Ведь операционные части различных УС могут быть самыми разнообразными. Здесь простор для творчества, нестандартных решений, оптимизации и экспериментирования с целью наилучшего решения той уникальной задачи, для которой создается УС. А вот интерфейсные части практически у всех УС одинаковы или очень похожи между собой, так как интерфейсные функции жестко определяются протоколом выбранного стандартного интерфейса. Конечно, интерфейсные части могут быть более или менее сложными в зависимости от задачи, решаемой УС, но все-таки все они состоят из одного и того же набора блоков и узлов, реализующих одинаковые функции и строящиеся, как правило, по стандартным схемам. Поэтому основное внимание в этой и следующих главах будет удалено проектированию именно интерфейсных частей, однако будет также рассмотрено несколько конкретных схем УС, имеющих наиболее характерные операционные части.