Последовательные интерфейсы
1
Последовательные интерфейсы
2
Интерфейс RS-232C
3
Электрический интерфейс
4
Ресурсы СОМ – портов
5
Конфигурирование СОМ – портов
6
Использование СОМ – портов
1 Последовательные
интерфейсы
Последовательный
интерфейс для передачи данных в одну сторону использует одну сигнальную линию,
по которой информационные биты передаются друг за другом последовательно. Такой
способ передачи определяет название интерфейса и порта, его реализующего (Serial
Interface и Serial Port). Последовательная передача данных может осуществляться
в синхронном и асинхронном режимах.
При
асинхронной передачи каждому байту предшествует старт-бит, сигнализирующий
приемнику о начале очередной посылки, за которой следуют биты данных или бит
паритета (конроля четности). Завершает посылку стоп-бит. Старт-бит (имеющий
значение лог. "0") следующего посланного байта может посылаться в
любой момент после окончания стоп-бита. Старт-бит обеспечивает механизм
синхронизации приемника по сигналу от передатчика. Внутренний генератор
синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый
в момент приема начала старт-бита. Этот счетчик генерирует внутренние стробы,
по которым приемник фиксирует последующие принимаемые биты.
Формат
асинхронной посылки позволяют выявить возможные ошибки передачи.
Для асинхронного
режима принят ряд стандартных скоростей обмена: 50,75,110,150,300,600,1200,2400,4800,
19200,38400,57600,115200 бит/сек. Количество бит данных может составлять
5,6,7,8 бит. Количество стоп битов может быть 1,1.5,2 бита. Асинхронный в РС
реализуется с помощью СОМ-порта с использованием протокола RS-232C.
Синхронный
режим передачи предполагает постоянную активность канала связи. Посылка
начинается с синхробайта, за которым плотно следует поток информационных бит. Если
у передатчика нет данных для передачи, он заполняет паузу непрерывной посылкой
байтов синхронизации. При передаче больших массивов данных накладные расходы на
синхронизацию в данном режиме необходима будет ниже, чем в асинхронном. Однако
в синхронном режиме необходима внешняя синхронизация приемника с передатчиком,
поскольку даже малое отклонение частот приведет к быстро накапливающейся ошибке
и искажению принимаемых данных. Внешняя синхронизация возможна либо с помощью
отдельной линии передачи для передачи сигнала синхронизации, либо с
использованием самосинхронизирующего кодирования данных, при котором на
приемной стороне из принятого сигнала могут быть и импульсы синхронизации. В
любом случае синхронный режим требует либо дорогих линий связи, либо дорогого
оконеченного оборудования. Для РС существуют специальные платы - адаптеры SDLC,
поддерживающие синхронный режим обмена. Они используются в основном для связи с
большими машинами IBM и в настоящее время мало распространены. Из синхронных
адаптеров в настоящее время чаще всего применяются адаптеры интерфейса V.35.
Последовательный
интерфейс на физическом уровне может иметь различные реализации, различающиеся
способом передачи электрических сигналов. Существует ряд родственных
международных стандартов: RS-232C,RS-432A,RS-422A,RS485.
Несимметричные
линии интерфейсов RS-232C,RS-432A имеют самую низкую защищенность от синфазной
помехи. Лучшие параметры имеет двухточечный интерфейс
RS-422A
и его магистральный (шинный) родственник RS-485, работающие на симметричных
линиях связи. В них для каждого сигнала используются дифференциальные сигналы с
отдельной (витий) парой приводов.
Наибольшее
распространение в РС получил простейший из этих - стандарт RS-232C. В
промышленной автоматике широко применяется RS - 422А, а также RS-485,
встречающийся и в некоторых принтерах. Существуют относительно несложные
преобразователи сигналов для согласования всех этих интерфейсов.
2 Интерфейс
RS-232C
Интерфейс
RS-232C предназначен для подключения аппаратуры, передающей или принимающей
данные (АПД-аппаратура передачи данных), к оконечной аппаратуре каналов данных
(АКД). В роли АПД может выступать компьютер, принтер, плоттер и другие ПУ. Этой
аппаратуре соответствует аббревиатура DTE-Data Terminal Equipment. В роли АКД
обычно выступает модем - DCE (Data Communication Equipment). Конечной целью
подключения является соединение двух устройств DTE, полная схема соединения
приведена на рис.2. Интерфейс позволяет исключать канал удаленной связи вместе
с парой устройств DTE, соединив устройства непосредственно с помощью
нуль-модемного кабеля (рис.3).
Стандарт
описывает управляющие сигналы интерфейса, пересылку данных, электрический
интерфейс и типы разъемов. Стандарт описывает синхронный и асинхронный режимы
обмена, но СОМ-порты поддерживают только асинхронный режим. Функционально
RS-232C эквивалентен стандарту МККТТ V.24/V.28 и стыку С2, но они имеют
различные названия одних и тех же используемых сигналов.
Рис.1-Стандарт последовательного интерфейса
Рис.3-Соединение по RS-232C нуль-модемным кабелем
3 Электрический интерфейс
Стандарт
RS-232C использует несимметричные передатчики и приемники - сигнал передается
относительно общего провода - схемной земли cимметричные дифференциальные
сигналы используются в других интерфейсах - например,RS-422). Интерфейс НЕ
ОБЕСПЕЧИВАЕТ ГАЛЬВАНИЧЕСКОЙ РАЗВЯЗКИ устройств. Логической единице
соответствует уровень напряжения на входе приемника в диапазоне - 12... - 3 В. Для
линий управляющих сигналов это состояние называется ON ("включено"),
для линий последовательных данных называется MARK. Логическому нулю
соответствует напряжение в диапазоне +3... +12 В. Для линий управляющих
сигналов это состояние называется OFF ("выключено"), для линий
последовательных данных называется SPACE. Между уровнями - 3... +3 В имеется
зона нечувствительности, обусловливающая гистерезис приемника: состояние линии
будет считаться измененным только после пересечения соответствующего порога. Уровни
сигналов на выходах передатчиков должны быть в диапазонах - 12... - 5 В и +5...
+12 В для представления единицы и нуля соответственно. Разность потенциалов
между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при
более высокой разности потенциалов возможно неверное восприятие сигналов.
Интерфейс
предполагает наличие ЗАЩИТНОГО ЗАЗЕМЛЕНИЯ для соединяемых устройств, если они
оба питаются от сети переменного тока и имеют сетевые фильтры.
Подключение
и отключение интерфейсных кабелей устройств с автономным питанием (не
питающихся от интерфейса, таких как, например, мышь) должно производиться при
отключении питания. В противном случае разность не выровненных потенциалов
устройств в момент коммутации (присоединения или отсоединения разъема) может
оказаться приложенной к выходным или входным (что опаснее) цепям интерфейса и
вывести из строя микросхемы.
Для
интерфейса RS-232C специально выпускаются буферные микросхемы приемников (с
гистерезисом) и передатчиков двуполярного сигнала. При несоблюдении правил
заземления и коммутации включенных устройств они обычно являются первыми (хорошо,
если единственными) жертвами "пиротехнических"эффектов. Иногда их
устанавливают в "кроватках", что сильно облегчает замену. Часто
буферные схемы входят прямо в состав интерфейсных БИС. Это удешевляет изделие,
экономит место на плате, но в случае аварии обычно оборачивается крупными
финансовыми потерями. Вывести из строя интерфейсные микросхемы замыканием
сигнальных цепей маловероятно, поскольку ток короткого замыкания передатчиков
обычно ограничен на уровне 20 мА.
Стандарт
RS-232C регламентирует типы применяемых разъемов, что обеспечивает высокий
уровень совместимости аппаратуры различных производителей.
На
аппаратуре DTE (в том числе, и на СОМ-портах PC) принято устанавливать вилки, (male
- "папа") DB25-P или более компактный вариант - -DB9-P.
Девятиштырьковые
разъемы не имеют контактов для дополнительных сигналов, необходимых для
синхронного режима (в большинстве 25тырьковых разъемов эти контакты не
используются).
На
аппаратуре DCE (модемах) устанавливают розетки (female - "мама") DB25-S
или DB-9S.
Это
правило предполагает, что разъемы DCE могут подключаться к разъемам DTE
непосредственно (если позволяет геометрия конструктива) или через переходные
"прямые" кабели с розеткой и вилкой, у которых контакты cоединены "один
в один". Переходные кабели могут являться и переходниками с 9 на
25-штырьковые разъемы.
Если
аппаратура DTE соединяется без модемов, то разъемы устройств (вилки) соединяются
между собой нуль-модемным кабелем (Zero-modem или Z-modem), имеющим на обоих концах
розетки, контакты которых соединяются перекрестно.
Если
на каком-либо устройстве DTE (принтер, плоттер, дигитайзер) установлена розетка
- это почти стопроцентный признак того, что к другому устройству (компьютеру) оно
должно подключаться прямым кабелем, аналогичным кабелю подключения модема. Розетка
устанавливается обычно на тех устройствах, у которых удаленное подключение
через модем не предусмотрено (или бессмысленно, как, например, у дигитайзера).
В табл.1
приведено назначение контактов разъемов СОМ-портов (и любой другой аппаратуры
DTE). Назначение контактов разъема DB25S определено стандартом EIA/TIA-232-Е,
разъем DB9S определен стандартом EIA/ TIA-574.
У
модемов (DCE) название цепей и назначение контактов, естественно, совпадает, но
роли сигналов (вход-выход) меняются на противоположные.
Таблица 1 - Разъемы и сигналы интерфейса RS-232C
1* - шлейф 8-битных мультикарт.
2* - шлейф 16-битных мультикарт и
портов на системных платах.
4* - широкий шлейф к 25-контактному
разъему.
|
Подмножество
сигналов RS-232C, относящихся к асинхронному режиму, рассмотрим с точки зрения
СОМ-порта PC, являющегося по терминологии RS-232C терминалом данных (DTE). Следует
помнить, что активному состоянию сигнала ("включено") и логической
единице передаваемых данных соответствует отрицательный потенциал (ниже - 3 В) сигнала
интерфейса, а состоянию "выключено" и логическому нулю - положительный
(выше +3 В). Назначение сигналов интерфейса приведено в табл.2.
Таблица 2-Назначение сигналов интерфейса
Начиная
с первых моделей в PC имелся последовательный интерфейс - СОМ-порт (Communications
Port - коммуникационный порт). Этот порт обеспечивает асинхронный обмен по
стандарту RS-232C. Компьютер может иметь до четырех последовательных портов СОМ
1-COM4 (для машин класса AT типично наличие двух портов). СОМ-порты имеют
внешние разъемы-вилки (Male "папа") DB25P или DB9P, выведенные на
заднюю панель компьютера (назначение выводов приведено в табл.1)
СОМ-порты
реализуются на микросхемах UART, совместимых с семейством 18250. Они занимают в
пространстве ввода/вывода по 8 смежных 8-битных регистров и могут располагаться
по стандартным базовым адресам 3F8h (COM1), 2F8h (COM2), 3E8h (COM3), 2E8h (COM4).
Для портов COM3 и COM4 возможны альтернативные адреса 3EOh, 338h и 2EOh, 238h
соответственно. Для PS/2 стандартными для портов СОМЗ-СОМ8 являются адреса
3220h, 3228h,4220h, 4228h, 5220h и 5228h соответственно.
Порты
могут вырабатывать аппаратные прерывания IRQ4 (обычно используются для COM1 и
COM3) и IRQ3 (для COM2 и COM4). Кроме того, возможно использование линий
прерываний IRQ11 (вместо IRQ4) и IRQ10 (вместо IRQ3). Возможность разделяемого
использования одной линии запроса несколькими портами (или ее разделения с
другими устройствами) зависит от реализации аппаратного подключения и
программного обеспечения. При использовании портов, установленных на шину ISA,
разделяемые прерывания обычно не работают.
Управление
последовательным портом разделяется на два этапа - предварительное конфигурирование
(Setup) аппаратных средств порта и текущее (оперативное) переключение режимов
работы прикладным или системным ПО. Способ и возможности конфигурирования
СОМ-портов зависят от его исполнения и местоположения. Порт, расположенный на
плате расширения (обычно на мультикарте), устанавливаемой в слот ISA или
ISA+VLB, обычно конфигурируется джамперами на самой плате. Порт, расположенный
на системной плате, обычно конфигурируется через BIOS Setup.
Конфигурированию
подлежат следующие параметры:
*
Базовый адрес, который может иметь значение 3F8h, 2F8h, 3E8h (3EOh,338h), 2E8h
(2EOh, 238h). При инициализации BIOS проверяет наличие портов по адресам именно
в этом порядке и, соответственно, присваивает обнаруженным портам логические
имена СОМ1, COM2, COM3 и COM4.
* Используемая
линия запроса прерывания: для СОМ1 и COM3 обычно используется IRQ4 или IRQ11,
для COM2 и COM4 - IRQ3 или IRQ10. В принципе номер прерывания можно назначать в
произвольных сочетаниях с базовым адресом (номером порта), но некоторые
программы и драйверы (например, драйверы последовательной мыши) настроены
только на стандартные сочетания. Каждому порту, нуждающемуся в аппаратном
прерывании, обычно назначают отдельную линию, не совпадающую с линиями запроса
прерываний других портов или устройств. Разделяемое использование линий
прерывания адаптеров шин ISA проблематично. Прерывания необходимы для портов, к
которым подключаются устройства ввода (мышь, дигитайзер), UPS и модемы. При
подключении принтера или плоттера прерываниями пользуются только многозадачные
ОС (и то не всегда), и этот дефицитный ресурс PC можно сэкономить. Также
прерываниями обычно не пользуются и при связи двух компьютеров нуль-модемным
кабелем.
*Использование
канала DMA (для UART 16450 или 16550, расположенных на системной плате) - разрешение
использования и номер канала DMA. Режим DMA при работе с СОМ-портами используют
редко, поэтому в большинстве случаев каналы DMA порту не назначают.
Режим
работы порта по умолчанию (2400 бит/с, 7 бит данных, 1 стоп-бит и контроль
четности), заданный при инициализации порта во время BIOS POST, может
изменяться в любой момент при настройке коммуникационных программ или командой
DOS MODE COMx: с указанием параметров.
6 Использование
СОМ-портов
Вопреки
названию, СОМ-порты чаще всего используют для подключения манипуляторов (мышь,
трекбол). В этом случае порт используется в режиме последовательного ввода,
обеспечивая питание устройства от интерфейса. Мышь может подключаться к любому
исправному порту, для согласования разъемов порта и мыши возможно применение
переходника DB9S-DB25P или, наоборот,DB25S-DB9P. Для работы с мышью обязательно
требуется использование линии прерывания, причем для порта СОМ1 - IRQ4, а для
COM2 - IRQ3.
Следующим
по популярности идет подключение внешних модемов для связи с удаленными
компьютерами или выхода в глобальные сети. Модемы должны подключаться полным (9-проводным)
кабелем DTE-DCE. Этот же кабель может использоваться и для согласования
разъемов (по количеству контактов), возможно и применение переходников 9-25, предназначенных
для мышей. Для работы коммуникационного ПО обычно требуется использование
прерываний, но здесь, как правило, больше свободы выбора сочетаний номера (адреса)
порта и номера линии прерывания. Если предполагается работа на скоростях 9600
бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550A или
совместимой с ней. Возможности работы с использованием FIFO-буферов и обмена по
каналам DMA зависят от коммуникационного ПО.
Для
связи двух компьютеров, удаленных друг от друга на небольшое расстояние,
используют и непосредственное соединение их СОМ-портов нуль-модемным кабелем. Использование
программ типа Norton Commander или Interink MS-DOS позволяет обмениваться
файлами со скоростью передачи до 115,2 Кбит/с без использования аппаратных
прерываний. Это же соединение может использоваться и сетевым пакетом Lantastic,
предоставляющим более развитый сервис.
Подключение
принтеров и плоттеров к СОМ-порту требует применения кабеля, соответствующего
выбранному протоколу управления потоком: программному XON/XOFF или аппаратному
RTS/CTS. Аппаратный протокол предпочтительнее, поскольку он не требует
программной поддержки со стороны PC. Прерывания при выводе средствами DOS (командами
COPY или PRINT) не используются.
СОМ-порт
иногда используется и для подключения электронных ключей (Security Devices),
предназначенных для защиты от нелицензированного использования программных
продуктов. Эти устройства могут быть как "прозрачными", позволяя
воспользоваться тем же портом и для подключения периферии, так и полностью
занимающими порт.
СОМ-порт
при наличии соответствующей программной поддержки позволяет превратить PC в
терминал, эмулируя систему команд распространенных специализированных
терминалов (VT-52, VT-100 и других). В принципе простейший терминал получается,
если замкнуть друг на друга функции BIOS обслуживания СОМ-порта (Int 14h),
функцию телетайпного вывода видеосервиса (Int 10h) и клавиатурный ввод (Int 16h).
Однако такой терминал будет работать лишь на малых скоростях обмена (если,
конечно, его делать не на Pentium), поскольку функции BIOS хоть и универсальны,
но работают не самым быстрым образом.