Сопряжение ЭВМ с каналами связи
Аппаратная реализация интерфейса RS-232 включает в себя последовательный адаптер и собственно механический интерфейс (разъемное соединение).
Когда фирма IBM стала выпускать свои первые персональные компьютеры, на их материнской плате не предусматривалось никаких схем для поддержки последовательной связи. Однако дополнительно мог поставляться асинхронный коммуникационный адаптер. Этот адаптер устанавливался в соответствующий слот материнской платы и обеспечивал связь между микропроцессором и программируемым интерфейсом, подобным RS-232. С тех пор много воды утекло, было продано и установлено буквально несчетное число адаптеров, выпускаемых большим числом фирм. Не смотря на это у всех последовательных адаптеров гораздо больше общего, нежели различий. Причина этого — не отсутствие творческого подхода у разработчиков, а необходимость согласования характеристик адаптера с требованиями простого и жестко определенного стандарта
Рис. 1. Структурная схема адаптера RS-232
Структурная схема типичного варианта адаптера последовательного порта RS-232 представлена на рис. 1.
Преобразование ТТЛ-уровней в уровни интерфейса RS-232 и наоборот производится передатчиками и приемниками EIA, входящими в состав микросхем типа il488 и il489 или их аналогов.
Обычно передача данных осуществляется на одной из нескольких дискретных скоростей: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 или 115200 Бод. Средства BIOS (такие как прерывание Intl4h) поддерживают скорости только до 9600 Бод включительно. Тактовая частота составляет 1,8432 МГц и стабилизирована благодаря использованию кварцевого i снератора. Из этой частоты формируются все остальные необходимые частоты.
В основе контроллера последовательного порта передачи данных лежит микросхема INS8250 (i8250) или ее современные аналоги — 16450, 16550, 16550А. Эта микросхема является асинхронным приемопередатчиком UART (Universal Asinchronouse Receiver Transmitter).
Микросхема 8250 содержит регистры передатчика и приемника данных, а также ряд служебных регистров. Точная последовательность операций, выполняемых UART в каждой конкретной ситуации, контролируется внешними параметрами. В общих чертах работу UART в режимах приема/передачи можно описать следующим образом. При передаче символа UART должен выполнить следующие операции:
> принять символ в параллельной форме через системную шину PC;
> преобразовать символ в последовательность отдельных битов (параллельно-последовательное преобразование);
> сформировать старт-стопный символ путем добавления к информационным разрядам стартового, стопового и, возможно, бита паритета (четности или нечетности);
> передать старт-стопный символ на интерфейс с требуемой скоростью;
> сообщить о готовности к передаче следующего символа.
При приеме символа UART должен выполнить обратную последовательность действий:
> принять данные в последовательной форме;
> проверить правильность структуры старт-стопного символа: стартовый бит, информационные разряды, бит паритета; если выявлена ошибка — выдать сигнал ошибки;
> осуществить проверку паритета; если выявлена ошибка — выдать сигнал ошибки паритета;
> преобразовать старт-стопный символ в информационный и передать его в параллельной форме в PC;
> сообщить, что символ принят.
Первые адаптеры последовательной связи фирмы IBM были построены на микросхеме INS8250 фирмы National Semiconductor. За прошедшее время эта микросхема несколько раз модернизировалась. Выпускались и многочисленные функциональные аналоги другими производителями микросхем. Тем не менее, все модификации микросхемы 8250 идентичны между собой по большинству своих функциональных характеристик. Микросхемы 8250 рассчитаны на максимальную скорость 38400 бит/с. В настоящее время UART такого типа практически не используются.
Появившиеся позже микросхемы UART серии 16450 рассчитаны на максимальную скорость 115200 бит/с. При их разработке были исправлены некоторые ошибки микросхем серии 8250.
Работая со скоростями порядка 9600 бит/с микросхемы 8250 и 16450 превосходно выполняли свои функции, полностью соответствуя по своим характеристикам невысокому (в прошлом) быстродействию PC и однозадачным операционным системам. Однако на сегодняшнем уровне техники связи с ее высокими скоростями передачи информации и многозадачными операционными системами (ОС) микросхемы такого типа стали "узким местом" коммуникационной аппаратуры. Чтобы исправить ситуацию были разработаны и выпущены микросхемы типа 16550 (PC16550C/NS16550AF и ряд их функциональных аналогов).
По умолчанию микросхема 16550 работает в режиме микросхемы 8250 и может быть установлена вместо микросхемы 8250. В совместимом режиме, она является полным функциональным аналогом UART 8250 и 16450 и в отличие от микросхем UART более ранних выпусков микросхема 16550 имеет второй режим работы, предусматривающий сокращение вмешательства центрального процессора в процедуру последовательной передачи данных. В этом режиме внутренние буферные регистры приемника и передатчика расширяются от 1 до 16 байтов и управляются с использованием логики FIFO (First In — First Out
— первым пришел — первым вышел). Буфер FIFO приемника используется также для хранения трех битов информации об ошибках для каждого символа. Ошибки паритета, форматирования и сигналы прерывания (BREAK-сигналы) буферируются вместе с символом, к которому они относятся. Микросхема 16550 выполняет следующие функции:
> обеспечивает простой интерфейс между шиной PC и модемом или другими внешними устройствами;
> автоматически добавляет, удаляет и проверяет форматирующие биты;
> генерирует и проверяет биты паритета под управлением специальной программы;
> выделяет указатели состояния операций передачи и приема, а также состояния линии передачи данных и устройства сопряжения;
> содержит встроенные сдвиговые регистры и регистры хранения для операций передачи и приема данных, что исключает необходимость точной синхронизации работы процессора с потоком последовательных данных;
> содержит программируемый генератор-контроллер скорости передачи, работающий с внешним опорным сигналом частотой до 24 МГц;
> содержит встроенные средства самотестирования;
> может работать под управлением программного обеспечения, разработанного для микросхем 8250 и 16450;
> внутренние буферы позволяют хранить до 16 символов и связанную с ними служебную информацию при операциях передачи и приема данных.
Назначение и использование S-регистров модема.
Hayes-совместимые модемы имеют набор регистров, определяющих различные характеристики модема. Содержимое большинства этих регистров можно считывать и изменять программным способом. Для чтения и записи регистров модема можно использовать AT-команды ATSr? и ATSr=n, где r - номер регистра, а n - число, которое в него записывается.