3. Порт программируется на режим 1200 бит/с, 7 бит данных, без паритета, 1 стоп-бит, и на 0,2 с снимается сигнал DTR. После этого устанавливается DTR=1, а еще через 0,2 с устанавливается и RTS=1.
4. В течение 0,2 с ожидается приход первого символа от устройства. По приходе символа начинается прием идентификатора (см. ниже). Если за это время символ не пришел (рис. 2.18), выполняется вторая попытка опроса (см. п. 5), несколько отличающаяся от первой.
5. На 0,2 с снимаются оба сигнала (DTR=0 и RTS=0), после чего они оба устанавливаются (DTR=1 и RTS==1).
6. В течение 0,2 с ожидается приход первого символа от устройства, по приходе символа начинается прием идентификатора (см. ниже). Если за это время символ не пришел, то в зависимости от состояния сигнала DSR переходят к проверке отключения Verify Disconnect (при DSR^O) или в дежурное состояние Connect Idle (при DSR=1).
7. В дежурном состоянии Connect Idle устанавливается DTR=1, RTS=0, порт программируется на режим 300 бит/с, 7 бит данных, без паритета, 1 стоп-бит. Если в этом состоянии обнаружится DSR=0, ОС следует уведомить об отключении устройства.
Посимвольный прием идентификатора устройства имеет ограничения по тайм-ауту в 0,2 с на символ, а также общее ограничение в 2,2 с, позволяющее принять строку длиной до 256 символов. Строка идентификатора РпР должна иметь маркеры начала (28h или 08h) и конца (29h или 09h), между которыми располагается тело идентификатора в стандартизованном формате. Перед маркером начала может находиться до 16 символов, не относящихся к идентификатору РпР. Если за первые 0,2 с ожидания символа (шаг 4 или 6) маркер начала не пришел, или же сработал тайм-аут, а маркер конца не получен, или же какой-либо символ принят с ошибкой, происходит переход в состояние Connect Idle. Если получена корректная строка идентификатора, она передается ОС.
Для проверки отключения (Verify Disconnect) устанавливается DTR=1, RTS=0 и через 5 с проверяется состояние сигнала DSR. При DSR=1 происходит переход в состояние Connect Idle (см. п. 7), при DSR^O происходит переход в состояние Disconnect Idle, в котором система может периодически опрашивать сигнал DSR для обнаружения подключения устройства.
Описанный механизм разрабатывался фирмой Microsoft с учетом совместимости с не РпР устройствами - невозможность их вывода из строя и устойчивость системы к сообщениям, не являющимся РпР идентификаторами. Например, обычная Microsoft Mouse при включении питания от интерфейса ответит ASCII-символом "М" (трехкнопочная - строкой "МЗ").
Лекция 9. Программируемый связной интерфейс.
Как пример устройства последовательного интерфейса, рассмотрим микросхему 8251А программируемого связного интерфейса, схема которой представлена на рис. 9.13. Эту микросхему можно запрограммировать для асинхронной или синхронной передачи. Буферные регистры входных и выходных данных разделяют порт с одним и тем же адресом. Последовательный двоичный поток со входа RxD вводится в регистр сдвига приемника, а затем биты данных передаются в буферный регистр входных данных, а оттуда в процессор. Выводимые биты данных процессор помещает в буферный регистр выходных данных, затем они передаются в регистр сдвига передатчика и вместе с битами синхронизации — на выход TxD. Содержимое регистра режима, который инициализируется выполняемой программой, определяет синхронный или асинхронный режим и формат передаваемых и принимаемых символов. Регистр управления, который также устанавливается программой, координирует работу интерфейса, а регистр состояния обеспечивает программе определенную информацию. Для синхронной связи необходимы регистры для хранения символов синхронизации.

Рис. 9.13. Последовательный связной интерфейс 8251А
Несмотря на то, что процессор может адресовать семь регистров микросхемы, она ассоциируется с адресами всего двух портов. Вход C/D подключается к линии адреса АО и она дифференцирует адреса двух портов. Микросхема интерпретирует сигналы C/D RD и WR в соответствии с табл. 9.1.
Таблица 9.1
Интерпретация сигналов управления

Остальные комбинации сигналов переводят тристабильные выходы D7-DO в высокоимпедансное состояние.
Выбор регистров режима, управления или символа синхронизации зависит от последовательности обращения, схема которой представлена на рис. 9.14. После аппаратного сброса или приказа с установленным в 1 битом сброса следующий вывод с АО = 1 (т. е. с C/D = 1, RD = 1 и WR = 0) предназначен для регистра режима. Форматы регистра режима для асинхронного и синхронного случаев показаны на рис. 9.15. Если два младших бита режима содержат нули, интерфейс переводится в синхронный режим и старший бит определяет число символов синхронизации. При этом следующие один или два байта, выводимые с АО = 1, становятся символами синхронизации. Если два младших бита режима не равны 0, интерфейс работает в асинхронном режиме. В любом случае все последующие байты до другого сброса направляются в регистр управления (если АО = 1) или в буферный регистр выходных данных (если АО = 0).
В синхронном режиме скорости в бодах передатчика и приемника, равные частотам сдвига регистров сдвига, совпадают с частотами сигналов на входах ТхС и RxC соответственно. При работе в асинхронном режиме три оставшиеся комбинации младших бит в регистре режимов определяют множитель скорости. Взаимосвязь между частотами Т\С и RxC входов синхронизации и скоростями в бодах передатчика и приемника имеет следующий вид
частота синхронизации = множитель X скорость в бодах.

Рис. 9.14. Схема размещения выводимых байт.
Когда младшие биты регистра режима содержат 10 и скорости в бодах передатчика и приемника равны 300 и 1200, частота на входе ТхС должна быть 4800 Гц, а на входе RxC - 19,2 кГц
В обоих режимах биты 2 и 3 показывают число информационных бит в каждом символе, бит 4 определяет наличие или отсутствие бита паритета, а бит 5 - тип паритета (нечетный или четный). В асинхронном режиме два старших бита показывают число стоповых бит. Для синхронного режима бит 6 показывает, каким является сигнал SYNDET-входным или выходным, а бит 7 задает число символов синхронизации

Рис. 9.15. Форматы регистра режима: асинхронный (а) и синхронный (б)
Если контакт SYNDET служит выходом, его сигнал становится активным, когда обнаружено соответствие входного двоичного потока и символа (ов) синхронизации. Когда же поиск символов синхронизации осуществляется внешним устройством, на вход SYNDET подается сигнал о фиксации соответствия. Этот же контакт, но только в качестве выхода применяется и при асинхронной работе. Сигнал на этом выходе называется сигналом обнаружения разрыва и он высоким уровнем отмечает прием символа, состоящего из одних нулей.
Формат регистра управления приведен на рис. 9.16. Бит 0 этого регистра должен содержать 1 до вывода данных, а бит 2 должен быть в состоянии 1 до приема данных. Программный ответ модему осуществляется установкой в 1 бита 1, так как при этом на выходе DTR формируется 0, а инверсия DTR обычно подключается к линии CD модема. Состояние 1 бита 3 формирует TxD = 0, вызывая передачу символов разрыва. 
Рис. 9.16. Формат регистра управления
Примечание. Во всех случаях действие предпринимается, когда бит установлен в 1
Установка в 1 бита 4 вызывает сброс всех бит ошибок в регистре состояния. Бит 5 применяется для выдачи сигнала "запрос передачи" (RTS) в модем. Если инверсия сигнала на контакте RTS подключена к линии СА модема, то загрузка 1 в бит 5 вызывает высокий уровень на линии СА. Установка бита 6 в состояние 1 вызывает реинициализацию 8251А и переход к последовательности сброса (т. е. осуществляется возврат в начало схемы на рис. 9.14 и следующий вывод производится в регистр режима). Бит 7 применяется только в синхронном режиме; установка его в 1 заставляет 8251А начать поиск символа (ов) синхронизации
На рис. 9.17 показаны типичные схемы подключения к модемам для асинхронной и синхронной передач. При синхронной передаче предполагается, что синхронизацией управляет модем и его связное оборудование. Кроме того, если это же оборудование применяется для обнаружения символа (ов) синхронизации, оно информирует 8251А об их обнаружении по линии SYNDET. С другой стороны, если символ (ы) синхронизации отыскивает сам 8251А, он может использовать линию SYNDET, чтобы сообщить модему об успешном поиске Для удовлетворения требований стандарта RS-232-C необходимы драйверы и приемники, преобразующие ТТЛ-совместимые сигналы TxD и RxD в требуемые уровни напряжения (см рис. 9.10)
Ниже приведен программный фрагмент, который инициализирует регистр режима и содержит приказ разрешения передатчика и запуска асинхронной передачи со следующим форматом: 7 бит символа, бит четного паритета и 2 стоповых бита.
MOV AL,11111010B
OUT 51H, AL
MOV AL,00110011B
OUT 51H, AL
Здесь предполагается, что регистры режима и управления имеют адрес 51Н, а частоты синхронизации в 16 раз больше соответствующих скоростей в бодах.
Следующий фрагмент переводит 8251А в синхронный режим и заставляет его начать поиск двух смежных символов синхронизации:
MOV AL,00111000B
OUT 51H, AL
MOV A1_,16H
OUT 51H, AL
MOV AL,10010100B
OUT 51H, AL 338

Можно также использовать для выбора скорости - линия модема СН
б)
Рис. 9.17. Подключения микросхемы 8251А к асинхронному (а) и синхронному (б) модему Примечание. Подключения линий управления зависят от спецификаций модема
Как и в первом примере, символы содержат 7 информационных бит и бит четного паритета, но, разумеется, стоповые биты отсутствуют.
Формат регистра состояния приведен на рис. 9.18. Биты 1, 2 и 6 отражают состояния сигналов RxRDY, TxE и SYNDET. Бит TxRDY показывает, что буфер выходных данных
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |



