www.An500.narod.ru

Главная
 
Прямая оптическая связь
(на лазерных указках)
 
Описание интерфейса
COM-порта
Cхема
Принцип построения
Лазерная указка
Фотодиод
Корпус
Оптика
Софт
Как это заставить работать
Увеличение скорости


Сайт основан 20 июля 2003г.

Web-мастерам:
Если вы захотели что-то позаимствовать, то обязательно сообщите мне. По-моему, на мой сайт не стыдно сделать ссылку, я же со своей стороны обязуюсь уведомить вас об изменениях сайта, при наличии у меня вашего мэйла.

Абсолютно полного цивильного описания COM порта от А до Я у меня нет (физический интерфейс, регистры UART, API функции Windows да еще бы с примерчиками). Есть всякие обрывки, которые вы и сами можете найти без труда в интернете. Если программировать COM-порт под Windows то необходимо использовать API функции, под DOS (можно и под Windows 98) лучше на уровне портов ввода-вывода, использовать функции DOS или BIOS, по-моему, не целесообразно, выгоды это ни какой не дает, при том, что они накладывают ограничение на скорость. Ниже приведена статья, в которой имеется минимум необходимых сведений.

В реальности электически интерфейс COM портов современных материнских плат отличаеться от стандарта RS-232 описанного ниже. Гистерезиса на входе такого как описано нет, и все может работать с уровнями 0В и 5В проверено.

Описание интерфейса COM-порта.

Последовательный интерфейс для передачи данных в одну сторону использует одну сигнальную линию, по которой информационные биты передаются друг за другом последовательно. Такой способ передачи и определяет название интерфейса и порта, его реализующего. Эти названия соответствуют английским терминам Serial Interface и Serial Port. Последовательная передача данных может осуществляться как в асинхронном, так и синхронном режимах.

При асинхронной передаче каждому байту предшествует старт-бит, сигнализирующий приемнику о начале очередной посылки, за которым следуют биты данных и, возможно, бит паритета (контроля четности). Завершает посылку стоп-бит, гарантирующий определенную выдержку между соседними посылками.

Формат последовательной посылки

Старт-бит следующего посланного байта может посылаться в любой-момент после окончания стоп-бита, то есть между передачами возможны паузы произвольной длительности. Старт-бит, имеющий всегда строго определенное значение (лог. 0), обеспечивает простой механизм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена, измеряемой в количестве передаваемых бит в секунду. Внутренний генератор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема начала старт-бита. Этот счетчик генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые биты. В идеале эти стробы располагаются в середине битовых интервалов, что обеспечивает возможность приема данных и при некотором рассогласовании скоростей приемника и передатчика.

Нетрудно заметить, что при передаче 8 бит данных, одного контрольного и одного стоп-бита предельно допустимое рассогласование скоростей, при котором данные будут распознаны верно, не может превышать 5%. С учетом фазовых искажений (затянутых фронтов сигнала) и дискретности работы внутреннего счетчика синхронизации реально допустимо меньшее отклонение частот. Чем меньше коэффициент деления опорной частоты внутреннего генератора (чем выше частота передачи), тем больше погрешность привязки стробов к середине битового интервала, и, следовательно, требования к согласованности частот более строгие. Также, чем выше частота передачи, тем больше влияние искажений фронтов на фазу принимаемого сигнала. Такое "дружное" действие этих двух факторов приводит к повышению требований согласованности частот приемника и передатчика с ростом частоты обмена.

Формат асинхронной посылки позволяет выявлять возможные ошибки передачи:

  • Если принят перепад, сигнализирующий о начале посылки, а по стробу старт-бита зафиксирован уровень логической единицы, старт-бит считается ложным и приемник снова переходит в состояние ожидания. Об этой ошибке формата приемник может и не сообщать.
  • Если во время, отведенное под стоп-бит(ы), обнаружен уровень логической единицы, фиксируется ошибка стоп-бит (тоже ошибка формата).
  • Если применяется контроль четности (паритета), то после посылки от данных (перед стоп-битом) передается контрольный бит. Этот бит дополняет количество единичных бит данных до четного или нечетного в зависимости от принятого соглашения. Прием байта с неверным значением контрольного бита при включенном контроле паритета приводит к фиксации ошибки принятых данных.

Контроль формата позволяет обнаруживать обрыв линии: при этом обычно принимается логический нуль, который сначала трактуется как старт-бит и нулевые биты данных, но потом сработает контроль стоп-бита.

Для асинхронного режима принят ряд стандартных скоростей обмена: 50, 75, 110, 150, 300, 600, 1200, 2400. 4800, 9600, 19200, 38400, 57600 и 115200 бит/с. В данном случае бит/с = бод.

Количество бит данных может составлять 5, 6, 7 или 8 (5-и, 6-битные форматы малораспространены). Количество стоп-бит может быть 1, 1,5 и 2 ("полтора бита" подразумевает, естественно только длительность стопового интервала).

Асинхронный обмен в PC реализуется с помощью СОМ-порта с использованием протокола RS-232C. Этот интерфейс имеет низкую помехо защищённость от синфазной помехи.

Электрический интерфейс. Стандарт RS-232C использует несимметричные передатчики и приемники - сигнал передается относительно общего провода - схемной земли (симметричные дифференциальные сигналы используются в других интерфейсах - например, RS-422). Интерфейс не обеспечивает гальванической развязки устройств. Логической единице соответствует уровень напряжения на входе приемника в диапазоне -12...-3 В. Для линий управляющих сигналов это состояние называется ON ("включено"), для линий последовательных данных называется MARK. Логическому нулю соответствует напряжение в диапазоне +3...+12 В. Для линий управляющих сигналов это состояние называется OFF ("выключено"), для линий последовательных данньгх называется SPACE. Между уровнями -3...+3 В имеется зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения соответствующего порога. Уровни сигналов на выходах передатчиков делжныы быть в диапазонах -12...-5 В и +5...+12 В для представления единицы и нуля соответственно. Разность потенциалов между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие сигналов.

Интерфейс предполагает наличие защитного заземления для соединяемых устройств, если они оба питаются от сети переменного тока и имеют сетевые фильтры.

Подключение и отключение интерфейсных кабелей устройств с автономным питанием (не питающихся от интерфейса таких как, например, мышь) должно производиться при отключении питания. В противном случае разность не выровненных потенциалов устройств в момент коммутации (присоединения или отсоедииения разъема) может оказаться приложенной к выходным или входным (что опаснее) цепям интерфейса и вывести из строя микросхемы.

В таблице приведено назначение контактов разъемов СОМ-портов. Назначение контактов разъема DB25S определено стандартом EIA/TIA-232-E, разъем DB9S определен стандартом EIA/TIA-574.

Обозначение цепи
RS232
Контакт разъема Направление
I/O
Название цепи
DB25S DB9S
PG 1 - - Protect Ground - Защитная земля
TD 2 3 0 Transmit Data -Передаваемые данные
RD 3 2 I Receive Data -Принимаемые данные
RTS 4 7 O Request To Send - Запрос на передачу
CTS 5 8 I Clear To Send - Готовность модема к приему данных для передачи
DSR 6 6 I Data Set Ready -Готовность модема к работе
SG 7 5 - Signal Ground - Схемная земля
DCD 8 1 I Data Carrier Detected -Несущая обнаружена
DTR 20 4 0 Data Terminal Ready -Готовность терминала (PC) к работе
RI 22 9 I Ring Indicator - Индикатор вызова

Следует помнить, что активному состоянию сигнала ("включено") и логической единице передаваемых данных соответствует отрицательный потенциал (ниже -3 В) сигнала интерфейса, а состоянию "выключено" и логическому нулю - положительный (выше +3 В). Назначение сигналов интерфейса приведено в следующей таблице.

Сигнал Назначение
PG Защитная земля, соединяется с корпусом устройства и экраном кабеля
SG Сигнальная (схемная) земля, относительно которой действуют уровни сигналов
TD Последовательные данные - выход передатчика
RD Последовательные данные - вход приемника
RTS Выход запроса передачи данных; состояние "включено" уведомляет модем о наличии у терминала данных для передачи. В полудуплексном режиме используется для управления направлением - состояние <включено> является сигналом модему на переключение в режим передачи
CTS Вход разрешения терминалу передавать данныне. Состояние "выключено" аппаратно запрещает передачу данных. Сигнал используется для аппаратного управления потоками данных
DTR Выход сигнала готовности терминала к обмену данными. Состояние "включено" поддерживает коммутируемый канал в состоянии соединения
DSR Вход сигнала готовности от аппаратуры передачи данных (модем в рабочем режиме подключен к каналу я закончил действия по согласованию с аппаратурой на противоположном конце канала)
DCD Вход сигнала обнаружения несущей удаленного модема
RI Вход индикатора вызова (звонка). В коммутируемом канале этим сигналом модем сигнализирует о принятии вызова

Управление потоком передачи. Для управления потоком данных (Flow Control) могут использоваться два варианта протокола - аппаратный и программный.

Аппаратный протокол управления потоком RTS/CTS (Hardware Flow Control) использует сигнал CTS, который позволяет остановить передачу данных, если приемник не готов к их приему. Передатчик "выпускает" очередной байт только при включенном состоянии линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки). Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состояние приемника. Обычно микросхемы асинхронных приемопередатчиков имеют не менее двух регистров в приемной части - сдвигающий для приема очередной посылки и хранящий, из которого принятый байт считывается. Это позволяет реализовать обмен с аппаратным протоколом без потери данных, не прибегая к программной буферизации.

При непосредственном (без модемов) соединении двух компьютеров аппаратный протокол требует перекрестного соединения линий RTS - CTS. На рисунке полный нуль-модемный кабель.

Полный нуль-модемный кабель

Если аппаратный протокол не используется, то при непосредственном соединении у передающего терминала должно быть обеспечено состояние "включено" на линии CTS (обычно соединением собственных линий RTS - CTS). Минимальный нуль-модемный кабель показан на следующем рисунке.

Программный протокол управления потоком XON/XOFF предполагает наличие двунаправленного канала передачи данных. Работает он следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым оно не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13Н). Противоположное устройство, приняв этот символ, приостанавливает передачу. Далее, когда принимающее устройство снова становится готовым к приему данных, оно посылает символ XON (11H) приняв который противоположное устройство возобновляет передачу. Время реакции передатчика на изменение состояния приемника по сравнению с аппаратным протоколом увеличивается по крайней мере на время передачи символа (XON или XOFF) плюс время реакции программы передатчика на прием символа Из этого следует, что данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимаемых данных и сигнализирующим о неготовности заблаговременно (имея в буфере свободное место).

Преимущество программного протокола при непосредственном соединении устройств заключается в отсутствии необходимости передачи управляющих сигналов интерфейса - минимальный кабель для двустороннего обмена может иметь только 3 провода . Недостатком, кроме требования наличия буфера и большего времени реакции (снижающего и общую производительность канала из-за ожидания прохождения сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом случае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограничивает набор передаваемых символов.

©Вялков Андрей, 2003-2004

Rambler's Top100

Hosted by uCoz