20. Опишите адресное пространство последовательного порта СОМ.

 

Адреса в пространстве ввода/вывода: COM1=3F8h, COM2=2F8h, COM3=3E8h, COM4=2E8h

В подавляющем большинстве компьютеров имеются два последовательных порта с интерфейсом RS232: СОМ1 и COM2, реже встречаются компьютеры, оснащенные четырьмя последовательными портами: СОМ1, COM2, COM3 и COM4. Базовые адреса портов следующие: СОМ1 - 3f8h, COM2 - 2f8h, COM3 - 3e8h и COM4 — 2e8h. Порт СОМ1 занимает адресное пространство от 3f8h flo3ffh.

Все программы будут приводиться для порта СОМ1. Адаптировать программы к другим портам не составляет большого труда. В скобках дано международное название регистра порта. Рассмотрим регистры порта СОМ 1 более детально.

Регистр данных (data register). Адрес 3f8h. Доступен по записи и по чтению. Используется для двух целей. 1. Ввод из порта и вывод в порт байта данных.

корость обмена по интерфейсу устанавливается следующим образом. Вначале в порт с адресом 3fbh (см. далее) необходимо записать байт, равный 80h, далее в порт с адресом 3f8h — младший байт делителя максимальной скорости обмена 115200 бод, а затем в порт 3f9h -старший байт делителя. Как правило, старший байт делителя используется достаточно редко (для очень медленных скоростей обмена), поэтому он должен быть равен нулю.

Если в младший байт (3f8h) записать 1, то скорость обмена будет равна, как указывалась, 115200 бод. При записи 2 имеем: 115200/2 = 57600 бод; при записи 3 - 115200/3-38400 бод; при записи 12 - 115200/12 = 9600 бод и т.п.

 

Базовые   адреса  COM портов выглядят так:

COM1: 3F8h

COM2: 2F8h

COM3: 3E8h

COM4: 2E8h

При включении или перезагрузке компьютера BIOS проверяет  адреса  всех уста новленных  последовательных   портов . Если она находит такой порт, то заносит базовый  адрес  (двухбайтовое слово) в определенную ячейку памяти. Для COM1 это ячейки 0000:0400h  и  0000:0401h.  Базовый   адрес  можно получить, считав их содержи мое. Ячейки памяти, в которых содержится информация о  базовых   адресах  установленных  последовательных   портов , приведены ниже:

COM1: 0000:0400h - 0000:0401h

COM2: 0000:0402h - 0000:0403h

COM3: 0000:0404h - 0000:0405h

COM4: 0000:0406h - 0000:0407h

Однобайтовая ячейка памяти 0000:0411h в первом, втором  и  третьем битах содержит общее количество установленных COM-портов:

бит 3 = 0, бит 2 = 0, бит 1 = 0

COM-порты не установлены

бит 3 = 0, бит 2 = 0, бит 1 = 1

установлен один COM-порт

бит 3 = 0, бит 2 = 1, бит 1 = 0

установлено два COM-порта

бит 3 = 0, бит 2 = 1, бит 1 = 1

установлено три COM-порта

бит 3 = 1, бит 2 = 0, бит 1 = 0

установлено четыре COM-порта

 

????????????????

 

Сайт создан в системе uCoz