Вторник, 29.07.2025, 11:48
| RSS
Главная | Опишите адресное пространство последовательного порта СОМ. - Форум
Сообщество
«ФИиВТ МарГТУ»
факультет информатики и вычислительной техники
марийского государственного технического университета
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Опишите адресное пространство последовательного порта СОМ.
RootДата: Четверг, 30.12.2010, 19:20 | Сообщение # 1
Магистр-выпускник
Группа: Администраторы
Сообщений: 207
Награды: 0
Репутация: 0
Статус: Offline
Опишите адресное пространство последовательного порта СОМ.
 
RootДата: Четверг, 30.12.2010, 19:37 | Сообщение # 2
Магистр-выпускник
Группа: Администраторы
Сообщений: 207
Награды: 0
Репутация: 0
Статус: Offline
Адреса в пространстве ввода/вывода: 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-порта

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

 
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2025