на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Последовательные интерфейсы: СОМ-порт
b>Использование СОМ-портов

Вопреки названию, СОМ-порты чаще всего используют для подключения манипуляторов (мышь, трекбол). В этом случае порт используется в режиме последовательного ввода, обеспечивая питание устройства от интерфейса. Мышь может подключаться к любому исправному порту, для согласования разъемов порта и мыши возможно применение переходника 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 хоть и универсальны, но работают не самым быстрым образом.

Этим списком, конечно же, возможности использования СОМ-порта не исчерпываются. Интерфейс RS-232C широко распространен в различных периферийных устройствах и терминалах. Все они, при наличии должной программной поддержки, могут подключаться к PC. Кроме использования по прямому назначению, СОМ-порт может использоваться и как двунаправленный интерфейс, у которого имеется 3 программно-управляемых выходных линии и 4 программно-читаемых входных линии с двуполярными сигналами. Возможность их использования ограничивается только фантазией разработчика. Существует, например, схема однобитного широтно-импульсного преобразователя, позволяющего записывать звуковой сигнал на диск PC, используя входную линию СОМ-порта. Воспроизведение этой записи через обычный динамик обеспечивает разборчивость речи. Конечно, в настоящее время, когда звуковая карта стала почти обязательным устройством PC, это уже не впечатляет, но в свое время такое решение было довольно интересным

Программирование COM-портов

Порт 3F8h.

Этот порт соответствует регистру передаваемых данных. Для передачи в порт 3F8h необходимо записать байт передаваемых данных.

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

Старший байт делителя записывается в порт 3F9h. Зависимость скорости передачи данных от значения делителя частоты приведены в таблице 1:

Таблица 1.

Делитель

Скорость передачи в бодах.

Делитель

Скорость передчи в бодах.

1040

110

24

4800

768

150

12

9600

384

300

6

19200

192

600

3

38400

96

1200

2

57600

48

2400

1

115200

Порт 3F9h.

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

Таблица 2.

Бит

Значение

0

1 - разрешение прерывания при готовности принимаемых данных.

1

1 - разрешение прерывания после передачи байта (когда выходной буфер передачи пуст)

2

1 - разрешение прерывания по обнаружении состояния "BREAK" или ошибки.

3

1 - разрешение прерывания по изменению на разъёме RS-232-C.

4-7

Не используются, должны быть равны 0.

Порт 3FAh.

Регистр идентификации прерывания. По его содержимому программа может определить причину прерывания. Формат регистра приведён в таблице 3.

Таблица 3.

Бит

Значение

0

1 - нет прерываний, ожидающих обслуживания.

1-2

00 - прерывание по линии состояния приёмника, возникает при переполнении приёмника, ошибка чётности или формата данных, или при состоянии "BREAK". Сбрасывается после чтения состояния линии и порта 3FDh.

01 - данные приняты и доступны для чтения. Сбрасывается после после чтения данных из порта 3F8h.

11 - Состояние модема. Устанавливается при изменении состояния входных линий CTS, RI, DCD, DSR.

3-7

Должны быть равны 0.

Порт 3FBh.

Управляющий регистр, доступен по записи и чтению. Его формат показан в таблице 4.

Таблица 4.

Бит

Значение

0-1

Длинна слова в байтах.00 - 5 бит.

01 - 6 бит.

10 - 7 бит.

11 - 8 бит.

2

Количество стоповых битов: 0 - 1 бит, 1 - 2 бита.

3-4

Чётность:

10 - контроль на чётность неиспользуется;

01 - контроль на нечётность.

11 - контроль на чётность.

5

Фиксация чётности. При установки этого бита бит чётности всегда принимает значение 0 (если биты 3-4 равны 11) или 1 (если биты 3-4 равны 01)

6

Установка перерыва. Вызывает вывод строки нулей в качестве сигнала "BREAK" для подключения устройства.

7

1 - порты 3F8h и 3F9h используется для загрузки делителя частоты тактового генератора; 0 - порты используются как обычно.

Порт 3FCh.

Регистр управления модемом.

Управляет состоянием выходных линий DTR, RTS, линий, специфических для модемов OUT1 и OUT2, для запуска диагностики при входе асинхронного адаптера, замкнутым на его выход. Формат порта приведён в таблице 5.

Таблица 5.

Бит

Значение

0

Линия DTR

1

Линия RTS.

2

Линия OUT1 (запасная)

3

Линия OUT2 (запасная)

4

Запуск диагностики при входе асинхронного адаптера, замкнутом на его выход.

5-7

Должно быть равно 0

Порт 3FDh.

Регистр состоянии линии. Значение зарядов регистра приведены в таблице 6.

Таблица 6.

Бит

Значение

0

Данные получены и готовы для чтения, сбрасывается при чтении данных.

1

Ошибка переполнения. Был принят новый байт данных, а предыдущий ещё не был считан программой. Предыдущий байт потерян.

2

Ошибка чётности, сбрасывается после чтения состояния линии.

3

Ошибка синхронизации.

4

Обнаружен запрос на прерывание передачи "BREAK" - длинная строка нулей.

5

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

6

Регистр сдвига передатчика пуст. Этот регистр получает данные из регистра хранения и преобразует их в последовательный вид для передачи.

7

Тайм-аут (устройство не связано с компьютером)

Порт 3FEh.

Регистр состояния модема. Значения битов указаны в таблице 7.

Таблица 7.

Бит

Значение

0

Линия CTS изменила состояние.

1

Линия DSR изменила состояние.

2

Линия IR изменила состояние.

3

Линия DCD изменила состояние.

4

Состояние линии CTS

5

Состояние линии DSR

6

Состояние линии IR.

7

Состояние линии DCD.

Приём и передача данных.

Перед записью байта данных в регистр передатчика нужно убедиться, что регистр хранения передатчика свободен, то есть убедиться в том, что передача предыдущего символа завершена. Признаком свободы регистра передатчика является установленный в 1 бит 5 регистра состояния линии с адресом 3FDh.

Аналогично передачи данных перед вводом символа из порта приёмника 3F8h следует убедиться, что бит 0 порта 3FDh установлен в 1, то есть что символ принят из линии и находиться в буферном регистре приёмника.

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.