
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Комсомольский-на-Амуре государственный технический университет»
Кафедра «Промышленная электроника»
Тестирование СОМ-порта персонального компьютера
Методические указания к лабораторной работе по курсу
«Отладочные средства микропроцессорных систем» для студентов направления 210100 «Электроника и наноэлектроника»
Комсомольск-на-Амуре 2013
УДК 681.3.06
Тестирование СОМ-порта персонального компьютера:
Методические указания к лабоpатоpной работе по курсу "Отладочные средства микропроцессорных систем" для студентов направления 210100 «Электроника и наноэлектроника» / Сост. С.М. Копытов. - Комсомольск-на-Амуpе: Комсомольский-на-Амуpе гос. техн. ун-т, 2013. - 20 с.
Рассмотрены последовательный интерфейс RS-232C, сигналы и программная поддержка СОМ-порта персонального компьютера, приведены рекомендации по его тестированию.
Предлагаемые методические указания предназначены для студентов направления 210100.
Печатается по постановлению редакционно-издательского совета Комсомольского-на-Амуре государственного технического университета.
Согласовано с отделом стандартизации.
Рецензент В.А. Егоров
Цель работы: изучить устройство последовательного интерфейса RS-232C, физику его работы, разъемы и выводы COM – портов, научиться проверять их работоспособность.
1 Основные сведения
Последовательный СОМ-порт компьютера является одним из самых распространенных интерфейсов связи компьютера с внешним миром. Множество электронных приборов и устройств подключаются к компьютеру именно через последовательный СОМ-порт. Не смотря на появление портов нового поколения USB, СОМ-порт до сих пор уверенно присутствует в самых последних моделях компьютеров, и стандартная конфигурация компьютера содержит как минимум один такой порт.
Большим подспорьем данный порт оказывается в практике разработчиков, поскольку позволяет легко подключаться к разрабатываемым микропроцессорным устройствам. Подавляющее большинство выпускаемых в настоящее время микропроцессоров и микроконтроллеров имеют встроенный последовательный универсальный асинхронный приемопередатчик UART (Universal Asynchronous Receiver And Transmitter), полностью совместимый по формату передаваемых данных с СОМ-портом.
Последовательный интерфейс для передачи данных использует одну сигнальную линию, по которой информационные биты передаются друг за другом последовательно. В ряде последовательных интерфейсов применяется гальваническая развязка внешних сигналов от схемной земли устройства, что позволяет соединять устройства, находящиеся под разными потенциалами.
Компьютеры типа IBM PC могут иметь до четырех последовательных СОМ-портов. Для этого в служебной области данных BIOS (базовой системы ввода вывода) компьютера зарезервированы служебные ячейки памяти 0000:0400, 0000:0402, 0000:0404 и 0000:0406, в которых хранятся адреса портов и СОМ1, COM2, COM3 и COM4 соответственно. Если какой-либо из портов не подключен или заблокирован, в соответствующей ячейке будет храниться ноль, что будет означать отсутствие такого порта в компьютере. Стандартными базовыми адресами портов СОМ1 - COM4 являются 3F8h, 2F8h, 3E8h и 2E8h. Допускается использование и некоторых других свободных адресов в области портов ввода-вывода компьютера.
Ячейки памяти BIOS с адресами 0000:047С, 0000:047D, 0000:047E и 0000:047F содержат величину тайм-аута соответствующего порта, т.е. максимальное время ожидания отклика от порта в тиках. Один тик равен 18 мс. Карта адресов СОМ-портов приведена в табл. 1.
Таблица 1 - Карта адресов СОМ-портов
-
Адрес памяти (hex-формат)
Содержимое
Значение по умолчанию (hex-формат)
0000:0400
Адрес СОМ1
3F8
0000:0402
Адрес COM2
2F8
0000:0404
Адрес COM3
3Е8
0000:0406
Адрес COM4
2Е8
0000:047С
Тайм-аут СОМ1
1
0000:047D
Тайм-аут COM2
1
0000:047Е
Тайм-аут COM3
1
0000:047F
Тайм-аут COM4
1
Любой из СОМ-портов может быть назначен на обработчик прерывания IRQ3 или IRQ4 с помощью программы SETUP компьютера.
Современные материнские платы обычно содержат штыревой разъем одного встроенного СОМ-порта, сигналы которого с помощью стандартного шлейфа можно вывести на заднюю скобу. Приобретя и мультикарту портов, число СОМ-портов можно внедрить в компьютер дополнительные СОМ-порты, назначив их на зарезервированные адреса.
Вначале рассмотрим сигналы, выводимые на разъем СОМ-порта.
Компьютеры могут иметь девяти- или двадцатипятиконтактные разъемы для СОМ-портов. Назначение сигналов и соответствие их контактам этих разъемов стандартизовано. Описание сигналов СОМ-порта приведено в табл. 2.
Таблица 2 - Описание сигналов разъемов DB-9M и DB-25M последовательного СОМ-порта
Контакт |
Сигнал |
Направление |
Название |
Назначение |
-(1) |
PG |
- |
Protect Ground |
Защитная земля |
3(2) |
TxD |
Выход |
Transmit Data |
Передаваемые данные |
2(3) |
RxD |
Вход |
Receive Data |
Принимаемые данные |
7(4) |
RTS |
Выход |
Request to Send |
Запрос на передачу |
8(5) |
CTS |
Вход |
Clear to Send |
Готовность к приему |
6(6) |
DSR |
Вход |
Data Set Ready |
Данные готовы |
5(7) |
SG |
- |
Signal Ground |
Сигнальная земля |
1(8) |
DCD |
Вход |
Data Carrier Detect |
Обнаружена несущая данных |
4(20) |
DTR |
Выход |
Data Terminal Ready |
Готовность терминала |
9(22) |
RI |
Вход |
Ring Indicator |
Индикатор вызова |
В скобках приведен номер контакта для 25-контактного разъема, без скобок — для 9-контактного.
Из таблицы следует, что СОМ-порт имеет три выходных и пять входных сигналов. При двустороннем обмене между компьютером и устройством по СОМ-порту достаточно использовать всего лишь две сигнальные линии связи: TxD и RxD. Именно эти сигнальные линии переносят информацию между двумя устройствами посредством последовательной передачи и приема бит. Остальные сигналы могут служить для установления протокола связи, поддержки протоколов старт-стопного режима, синхронной передачи данных и т. п.
Последовательная передача данных может осуществляться в асинхронном или синхронном режимах. Как правило, СОМ-порт используется для асинхронной последовательной передачи данных. В этом режиме каждому байту предшествует старт-бит, сигнализирующий приемнику о начале посылки, за которым следуют биты данных. Кроме того, слова могут дополняться битом контроля четности или нечетности (битом паритета). Завершает посылку стоп-бит высокого уровня, гарантирующий паузу между посылками (рис. 1).
Рисунок 1 - Формат слов СОМ-порта
Старт-бит следующего байта посылается в любой момент после стоп-бита, то есть между передачами возможны паузы произвольной длительности. Старт-бит, имеющий всегда строго определенное значение (логический 0), обеспечивает простой механизм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена. Внутренний генератор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема начала старт-бита. Этот счетчик генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые биты. В идеале стробы располагаются в середине битовых интервалов, что позволяет принимать данные и при незначительном рассогласовании скоростей приемника и передатчика.
Данный формат слов поддерживается в компьютерах и устройствах, имеющих последовательные порты, с помощью микросхем UART типа 16550А. Эти микросхемы являются более развитыми моделями своих предшественников I8052 фирмы Intel, применявшихся в самых первых компьютерах типа IBM PC.
В современных компьютерах подобные микросхемы могут не присутствовать в явном виде на материнской плате. В таких случаях, как правило, один из чипов компьютера выполняет функции UART. Микросхемы UART имеют в своем составе регистры, с помощью которых и поддерживается программное формирование различных длин слов, скоростей обмена данными и др. параметров СОМ-порта.
Формат асинхронной посылки позволяет выявлять возможные ошибки передачи: если принят отрицательный перепад, сигнализирующий о начале посылки, а по стробу старт-бита зафиксирован уровень логической единицы, старт-бит считается ложным и приемник снова переходит в состояние ожидания. Об этой ошибке приемник может и не сообщать, если во время, отведенное под стоп-бит, обнаружен уровень логического нуля, фиксируется ошибка стоп-бита.
Если применяется контроль четности, то после посылки бит данных передается контрольный бит. Этот бит дополняет количество единичных бит данных до четного или нечетного в зависимости от принятого соглашения. Прием байта с неверным значением контрольного бита приводит к фиксации ошибки.
Контроль формата позволяет обнаруживать обрыв линии: при этом принимается логический нуль, который сначала трактуется как старт-бит, и нулевые биты данных, потом срабатывает контроль стоп-бита.
Для асинхронного режима принят ряд стандартных скоростей обмена: 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-485.
Интерфейс RS-232C предназначен для подключения оконечного оборудования данных (ООД, DTE - Data Terminal Equipment) к аппаратуре каналов данных (АКД, DCE - Data Communication Equipment). В роли ООД может выступать компьютер, принтер, плоттер и другое периферийное оборудование. В роли АКД обычно выступает модем. Конечной целью подключения является соединение двух устройств ООД. Полная схема соединения приведена на рис. 2.
Рисунок 2 - Полная схема соединения по RS-232C
Интерфейс позволяет исключить канал удаленной связи вместе с парой устройств АКД, соединив устройства ООД непосредственно с помощью нуль-модемного кабеля (рис. 3), в котором перекрещиваются соответствующие пары проводников, чтобы выходы соединялись с входами. Например, должны быть связаны выводы TxD и RxD.
Рисунок 3 - Соединение по RS-232C нуль-модемным кабелем
Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но СОМ-порты поддерживают только асинхронный режим.
Стандарт RS-232C использует несимметричные передатчики и приемники - сигнал передается относительно общего провода - схемной земли. Интерфейс не обеспечивает гальванической развязки устройств. Логической единице соответствует напряжение на входе приемника в диапазоне -25...-3 В. Логическому нулю соответствует диапазон +3...+25 В. Диапазон -3...+3 В - зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения порога. Уровни сигналов на выходах передатчиков должны быть в диапазонах -15...-5 В и +5...+15 В для представления единицы и нуля соответственно.
Для решения проблемы электрической совместимости при подключении к ПК микроконтроллерных устройств с ТТЛ-уровнями используют преобразователи уровней, например, микросхемы MAX232.
Стандарт RS-232C регламентирует типы применяемых разъемов. На аппаратуре ООД (в том числе на СОМ-портах) принято устанавливать вилки (male) DB-25P или более компактный вариант - DB-9P. Девятиштырьковые разъемы не имеют контактов для дополнительных сигналов, необходимых для синхронного режима (в большинстве 25-штырьковых разъемов эти контакты не используются). На аппаратуре АКД (модемах) устанавливают розетки (female) DB-25S или DB-9S.
Если аппаратура АПД соединяется без модемов, то разъемы устройств (вилки) соединяются между собой нуль-модемным кабелем, имеющим на обоих концах розетки, контакты которых соединяются перекрестно.
Как и многие интерфейсы, данный порт подвержен опасности выхода из строя в результате некорректных действий пользователя. Причиной неисправности может послужить разряд статического электричества или высокая разность потенциалов между компьютером и подключаемым к нему через СОМ-порт устройством.
Опасность пробоя возрастает особенно в зимний период, когда воздух становится сухим от мороза. Другой причиной может быть неграмотное соединение двух компьютеров через СОМ-порт, имеющих разный потенциал на корпусе относительно земли. В результате перечисленных неблагоприятных воздействий порт перестает нормально функционировать, но все же поддается «лечению». Обычно, как правило, выходит из строя буферная микросхема, обеспечивающая преобразование ТТЛ-уровней сигналов в сигналы стандарта RS-232, которые должны находиться в диапазоне от -3...-25 В до +3...+25 В.
Для программной поддержки СОМ-портов в BIOS компьютера имеется специальное программное прерывание INT 14h. Ниже дается описание основных функций этого программного прерывания. Выбор номера функции этого прерывания задается в регистре процессора АН.
Функция: 0 — инициализация порта
Вход: АН=0
DХ=номер порта (0=СОМ1, 1=СОМ2, 2=СОМЗ, 3=СОМ4)
АL=параметры инициализации порта (битовые разряды):
1,0 - Длина слова: 09=5 бит, 01=6 бит, 10=7 бит, 11=8 бит
2 - Длина стоп бита: 0=1 бит, 1=2 бита
4,3 - Контроль четности: 00=нет, 01=нечетность,11=четность
7...5 - Скорость (бод): 000=110, 001=150, 010=300, 011=600, 100=1200, 101=2400, 110=4800, 111=9600
Выход: АL=состояние модема (битовые разряды):
0- изменение сигнала CTS
1- изменение сигнала DSR
2- изменение сигнала RI
3- изменение сигнала RxD
4- готовность приемника
5- данные к передаче готовы
6- обнаружен вызов
7- обнаружен сигнал приемной линии
АН=состояние линий (битовые разряды):
0- готовность данных
1- ошибка скорости
2- ошибка четности
3- ошибка кадрирования
4- обнаружен перерыв
5- регистр буфера передатчика пуст
6- регистр сдвига передатчика пуст
7- тайм-аут
Функция:1 — передать слово
Вход: АН=1
DХ=номер порта (0=СОМ1, 1=СОМ2, 2=СОМЗ, 3=СОМ4)
АL=передаваемое слово
Выход: АН, АL=состояние линий и модема (см. функцию 0)
Функция: 2 — принять слово
Вход: АН=2
DХ=номер порта (0=СОМ1, 1=СОМ2, 2=СОМ3, 3=СОМ4)
АL=не используется
Выход: АL=принятое слово
АН=состояние линий (см. функцию 0)
Функция: 3 — чтение состояния порта
Вход: АН=3
DХ=номер порта (0=СОМ1, 1=СОМ2, 2=СОМ3, 3=СОМ4)
AL - не используется
Выход: АН, АL=состояние линий и модема (см. функцию 0)
Для примера, вызов функции 0 данного прерывания на языке Ассемблер выглядит следующим образом:
MOV AH, 0 ; функция 0
MOV AL, 11111011В ; 9600 бод, четность, 1 стоп бит, длина 8 бит
MOV DX, 2 ; номер порта 2=COM3
INT 14H ; вызов прерывания 14h
Теперь СОМ-порт будет настроен для работы на скорости 9600 бод, с контролем по четности, одним стоповым битом и длиной слова 8 бит, а регистры АН и AL будут хранить коды состояния СОМ-порта.
Ниже приведены примеры программ для работы с последовательным портом на языке Ассемблер. В первом примере производиться инициализация СОМ-порта. Сначала в программе определяется базовый адрес порта, затем производится установка параметров СОМ-порта для работы на скорости 4800 бод, с одним стоп-битом, контролем на четность и восемью битами в слове. Затем маскируются прерывания.
; Инициализация СОМ-порта
MOV АХ, 40 ; Запишем адрес порта СОМ1
MOV ES, АХ ; в регистр ES = 0040Н
MOV DX, ES:[00] ; Запишем в регистр DX базовый адрес СОМ1
MOV COM1_ADR, DX ; Запомним адрес порта СОМ1 в переменной
ADD DX, 3 ; DX = адресу регистра управления
MOV AL, 80H ; Установим в 1 старший бит
OUT DX, AL ; регистра управления
DEC DX ; Установим скорость = 4800 бод
DEC DX ; DX = адресу старшего байта делителя скорости
MOV AL, 0 ; Установка старшего байта делителя
OUT DX, AL
DEC DX ; DX = адресу младшего байта делителя скорости
MOV AL, 18H ; Установка младшего байта делителя
OUT DX, AL
ADD DX, 3 ; DX = адресу регистра управления
MOV AL, 11011011В ; 4800 бод, четность, 1 стоп бит, длина 8 бит
OUT DX, AL
DEC DX
DEC DX ; DX = адресу регистра разрешения прерываний
MOV AL, 00Н ; Прерывания запрещены
OUT DX, AL
Следующие два примера демонстрируют способ чтения и передачи слова через СОМ-порт с ожиданием готовности.
; Чтение слова с ожиданием:
MOV DX, СОM1_ADR ; DX = базовому адресу СОМ1
ADD DX, 5 ; DX = адресу регистра состояния
WAIT:
IN AL, DX ; Чтение байта состояния
TEST AL, 01H ; Если бит 1 = 1 слово принято
JZ WAIT ; Если нет - ждем
SUB DX, 5 ; DX = адресу регистра приемника
IN AL, DX ; Чтение принятого байта
; Передача слова из АН с ожиданием:
MOV DX, COM1_ADR ; DX = базовому адресу СОМ1
ADD DX, 5 ; DX = адресу регистра состояния
WAIT:
IN AL, DX ; Чтение байта состояния
TEST AL, 40H ; Бит 6=1 (готов к передаче байта)
JZ WAIT ; Если нет - ждем
SUB DX, 5 ; DX = адресу регистра передатчика
MOV AL, АН
OUT DX, AL ; Передача слова
Для настройки подключения к СОМ-портам ПК нового и экспериментального оборудования удобно использовать готовые терминальные программы. Одна из таких программ - Terminal 1.9b является монитором COM порта персонального компьютера. С помощью программы можно легко отправлять и принимать данные через COM порт компьютера по протоколу RS232. Среди достоинств программы - гибкая настройка программы под различные режимы работы (различная скорость работы, конфигурация стоп-битов, конфигурация количества бит-данных и многое другое). Интерфейс программы Terminal 1.9b прост и понятен. Скриншот окна программы Terminal 1.9b приведен на рис. 4.
Рисунок 4 - Окно программы Terminal 1.9b
Для настроек скорости передачи, номера порта, параметров передачи и прочих потребностей нужно просто выделить требуемый параметр. Выставив галочку, можно выдать информацию в разных системах счисления, что порой бывает очень удобно. В один клик доступна таблица ASCII, а среди особых преимуществ — возможность выдать поток данных в виде графика с размахом от 0 до 255 точек. Также можно писать скрипты на паскалеподобном языке, делающие с входящими-исходящими данными всевозможные преобразования.
Для настройки параметров СОМ-порта в операционной системе Windows необходимо выполнить следующую последовательность действий: Пуск-» Настройка-» Панель управления-» Система-» Оборудование-» Диспетчер устройств-» Порты-» Последовательный порт-» Параметры порта. При этом на экране мониторе появится изображение, подобное приведенному на рис. 5. С помощью раскрывающихся меню устанавливаются все необходимые параметры работы СОМ-порта.
Рисунок 5 - Окно параметров СОМ-порта
Тестирование портов в составе компьютера можно выполнить с помощью тестовой программы Checkit или Norton Diagnostic. Заглушку для СОМ-порта при использовании этих тестовых программ можно изготовить, воспользовавшись табл. 3.
Таблица 3 - Назначение цепей заглушки, для тестирования СОМ-порта
Вывод |
Сигнал |
Направление |
Вывод |
Сигнал |
Направление |
1 |
DCD |
Вход |
6 |
DSR |
Вход |
2 |
RxD |
Вход |
7 |
RTS |
Выход |
3 |
TxD |
Выход |
8 |
CTS |
Вход |
4 |
DTR |
Выход |
9 |
RI |
Вход |
5 |
SG |
Вход |
Заглушка изготавливается из разъема-розетки DB-9F путем распайки перемычек между контактами 3-2, 4-6-1-9 и 7-8.
Для проверки работоспособности порта необходимо убедиться в исправности всех выходных и входных цепей сигналов, присутствующих на его разъеме, а также в способности микросхемы, обслуживающей порт, передавать и принимать данные. Предлагаемая в [1] программа Testrs.exe и простой пробник позволяют выполнить эту процедуру.
Кроме того, эта программа позволяет убедиться в исправности порта, когда драйвер порта некорректно себя ведет. Это достигается тем, что обращения к порту из предлагаемой программы производятся с использованием стандартных функций Windows, так называемых API.
Программа написана на языке программирования C++ в среде разработки Visual C++ и работает под управлением операционных систем Windows 9X/Me/NT/2000/XP и т. п. После запуска программа производит поиск имеющихся в компьютере СОМ-портов и выбирает для работы первый найденный по порядку порт. Если порты в компьютере не обнаружены, будет выдано соответствующее сообщение, и программа завершит свою работу. В процессе работы программы можно выбрать другой доступный компьютеру порт для тестирования.
Изменить параметры настройки порта можно, вызвав окно параметров СОМ-порта (рис. 5).
После запуска программы Testrs.exe на экране монитора появиться окно, приведенное на рис. 6.
Рисунок 6 - Окно работы программы Testrs
В центре окна программы изображены разъемы компьютера с назначением контактов и сигналов СОМ-порта. Для удобства тестирования приводятся два рисунка: для 9- и 25- контактного разъема соответственно. Номера контактов разъемов, их тип и назначение сигналов соответствуют стандартным и общепринятым для данных портов сигналам. В дальнейшем при работе программы контакты разъемов будут окрашены в красный или зеленый цвет, что соответствует положительному или отрицательному потенциалу на них соответственно.
Ниже разъемов присутствуют две программные кнопки для сигналов RTS и DTR соответственно. Щелкая левой клавишей мышки по этим кнопкам, можно менять потенциал соответствующих выходных сигналов порта на противоположный потенциал. Данные операции будут сопровождаться автоматической сменой цветов на экране и потенциалов на контактах разъема.
Третья программная кнопка TD предназначена для начала передачи данных через порт: Содержимое передаваемых данных представлено в поле «Передано» и может быть изменено после щелчка левой кнопкой мыши по этому полю или с помощью кнопок, расположенных в меню программы. Принимаемые из СОМ-порта данные отображаются в поле «Принято».
Для проверки работоспособности порта можно воспользоваться обычным тестером и контролировать поочередно тестируемые сигналы. Однако гораздо удобнее для проверки использовать простое устройство под названием «пробник». Схема этого устройства приведена на рис. 7.
Рисунок 7 - Схема пробника
Из схемы пробника следует, что все сигналы объединены в три разные группы. В каждой из групп присутствует только один выходной сигнал и от одного до трех входных сигналов. Пробник состоит из одного разъема-розетки типа DB-9F и нескольких светодиодов и резисторов, распаянных на небольшой макетной плате. Разъем припаивается к шлейфу длиной около метра, второй конец которого припаивается к плате с установленными светодиодами и резисторами. Пробник можно после подключения положить на стол рядом с пользователем и обеспечить удобство наблюдения за процессом тестирования порта.
Состояние любого сигнала видно по светящемуся светодиоду. Цвет светящегося светодиода указывает полярность сигнала. Сравнивая эти сигналы с отображаемыми сигналами в программе, можно легко определить неисправную линию. Цепи передатчика и приемника порта замыкаются пробником между собой. Поэтому передаваемые данные будут приниматься этим же портом. Сравнивая передаваемые и принятые данные, можно проверить исправность приемопередатчика.
Исполняемый код программы состоит из одного файла testrs.exe и не требует предварительной установки на компьютер. С целью уменьшения размера данного файла программа транслировалась в режиме Shared DLL, т. е. стандартные библиотечные файлы DLL не включались в тело программы, а используются после запуска программы из доступного системного каталога C:\WINDOWS\SYSTEM.
Программа Testrs использует следующие стандартные библиотечные файлы: MFC42.DLL, KERNEL32.DLL, GDI32.DLL, USER32.DLL и MSVCRT. DLL. Поэтому в случае, если программа выдаст сообщение об отсутствии некоторых из перечисленных библиотечных файлов DLL, необходимо поместить их в указанный выше каталог. Эти файлы являются стандартными и устанавливаются самой операционной системой Windows9X. Их можно также найти в Интернете, например, по адресу www.ya.ru. В дальнейшем эти файлы еще много раз пригодятся вам, поскольку большинство программ транслируется без включения их в тело программы с целью уменьшения своего размера.
Очень важным является вопрос помехоустойчивости передаваемой информации, особенно, если требуется передача на относительно большие расстояния.
При передаче цифровых данных с достаточно высокой скоростью и на относительно большие расстояния возникают специфические проблемы. На форму высокочастотного сигнала при этом существенно влияют: емкостной характер нагрузки вентилей, синфазные перекрестные помехи и эффекты "длинной линии" (отражения от несогласованной нагрузки). Некоторые из перечисленных проблем могут возникать даже на отдельной печатной плате. Для обеспечения надежной передачи цифровых сигналов обычно применяют специальные методы и соответствующие интегральные схемы.
Действиям помех наиболее подвержен маломощный сигнал. Особенно, если он передается на значительное расстояние. Источниками помех могут являться как внешнее электромагнитное излучение, так и внутренние переходные процессы в системе. Чтобы уверенно выделять полезный сигнал среди помех необходимо, прежде всего, обеспечить уровень сигнала существенно превосходящий средний уровень помех. Для защиты от электромагнитных помех при передаче сигналов применяют также "витые пары" или экранированный кабель для прокладки шин. Шины, выполненные таким образом, обладают повышенной емкостью. Емкостной характер нагрузки (при сохранении высокой скорости передачи данных) требует в свою очередь повышенной мощности выходных вентилей. Работа же мощных и быстродействующих вентилей сопряжена с большими импульсными токами при переключениях. Это ведет к кратковременным выбросам напряжения в цепях питания этих элементов. Таким образом, выходные вентили, работающие на шины, становятся сами мощными источниками помех, распространяющихся как по цепям шин передачи данных, так и внутрь системы по цепям питания. Избавиться от этих помех крайне сложно.
Длинные шины и сами по себе могут стать причиной искажения сигнала. Это связано с эффектом "длинных линий", который приводит к тому, что несогласованная линия отражает высокочастотный сигнал от концов шины (и от других неоднородностей) и сигнал многократно накладывается сам на себя. В результате чего искажается форма сигнала.
Для того, чтобы избежать перечисленных неприятностей шинную схемотехнику организуют специальным образом. Для формирования выходного сигнала используют специальные шинные формирователи - мощные ключи, способные в целях согласования по волновому сопротивлению и для быстрого перезаряда емкостной нагрузки работать на низкоомные цепи. Во входных цепях принимающей стороны используют обычно триггеры Шмитта. Для компенсации помех, распространяющихся вдоль шин, часто используют дифференциальные структуры и токовые петли.
Стандарт RS-232C определяет уровни сигналов обеих полярностей. Поэтому выходной формирователь согласно стандарту должен иметь двухполярное питание.
Входные цепи должны иметь гистерезис. Для этих целей имеются стандартные микросхемы: 1488 - выходной формирователь и 8Т16 - входной формирователь с триггером Шмита (рис. 8). В этом случае при емкостной нагрузке линии не более 330 пФ фронты нарастания и спада импульсов обеспечиваются на уровне менее 1 мкс.
Рисунок 8 - Шина стандарта RS - 232С и временная диаграмма сигналов шины
Для работы с линиями средней длины при достаточно высоком быстродействии применяют несимметричные схемы с ТТЛ вентилями (рис. 9).
Рисунок 9 - Несимметричная линия с ТТЛ вентилями
Схема, приведенная на рис. 10, отличается очень высокой помехоустойчивостью. Помехоустойчивость достигается, благодаря передаче парафазного сигнала по витой паре в сочетании с дифференциальным приемником. Схема обеспечивает высокую степень подавления синфазных помех и хорошо восстанавливает логические уровни сигналов, искаженные при передаче по линии связи. Форма сигналов, показанных на рисунке, позволяет понять, за счет чего обеспечивается относительно неискаженная передача.
Рисунок 10 - Симметричная линия с дифференциальным приемником
Если в качестве выходных формирователей использовать коммутируемые токовые вентили (рис. 11), то получится шина "токовая петля".
Рисунок 11 - Линия типа "токовая петля"
Данная схема использует симметричный коаксиальный кабель или низкоомную витую пару. При импедансе 50 Ом такая "токовая петля" обеспечивает скорость передач 1 Мбит в 1 с на расстояние до 500 м или 10 Мбит/с на расстояние до 100 м.