|
Их
именами являются значения от COM1 до COM4. В представленной ниже
программе последовательный порт инициализируется исходно для пе-
редачи данных со скоростью 9600 бод, слов длиной в 8 битов, с
одним битом останова при отсутствии проверки на четность. После
выполнения запроса к функции регистр AH содержит значение состоя-
ние порта.
mov ah,0 ; инициализировать последователь-
; ный порт
mov al,0e3h ; 9600 бод, 8-битовое слово, от-
; сутствие проверки на четность,
; 1 бит останова
mov dx,0 ; порт COM1 инициализируется
int 14h ; вызов системы ПЗУ-BIOS
Таблица 5-4
Параметры связи, задаваемые в регистре AL
-------------T--------------T----------------T-----------------
Скорость ¦ Четность ¦ Биты останова ¦ Длина слова
в бодах ¦ ¦ ¦
-------------¦--------------+----------------+-----------------
Биты Ско- ¦ Биты Чет- ¦ Биты ¦ Биты Длина
7,6,5 рость ¦ 4,3 ность ¦ Бит 2 останова¦ 1,0
-------------+--------------+----------------+-----------------
000 110 ¦x0 Отсутствует 0 1 бит ¦ 10 7 битов
001 150 ¦01 Нечетная ¦ 1 2 бита ¦ 11 8 битов
010 300 ¦11 Четная ¦ ¦
011 600 ¦ ¦ ¦
100 1200 ¦ ¦ ¦
101 2400 ¦ ¦ ¦
110 4800 ¦ ¦ ¦
111 9600 ¦ ¦ ¦
-------------+--------------+----------------+-----------------
В предлагаемом ниже куске программы символ 'x' записывается
в последовательный порт. При возврате, если бит 7 регистра AH ус-
тановлен в значение "0", обращение к функции было успешным. Зна-
чение "0" *, в бите 7 регистра AH указывает на сбой.
--------------------------
* Возможно, в оригинал текста вкралась опечатка: или здесь
или в предыдущем предложении должно стоять значение "1"...
(Примеч. переводчика.)
mov ah,1 ; функция 1= запись символа
mov al,'x' ; регистр AL содержит символ
mov dx,0 ; запись в порт COM1
int 14h ; обращение к системе ПЗУ-BIOS
Время, требуемое для передачи данных через порты, обычно за-
висит от характеристик внешних устройств. Например, время, необ-
ходимое для записи/считывания 1 байта на жесткий диск или с жест-
- 5-13 -
кого диска, зависит от нескольких факторов: типа жесткого диска,
таких параметров жесткого диска, как количество головок и коли-
чество цилиндров, размера порций ввода/вывода на жесткий диск,
структуры файлов, количества файлов и так далее. Если ваша систе-
ма реального времени использует внешние устройства, Вам следует
провести несколько опытов, чтобы снять время, затрачиваемое на
выполнение операций. Поскольку разрешающая способность часов сис-
темы в операционной системе MS-DOS равна 10 м/сек, операция в
опыте должна повторяться много раз с целью получения точных вре-
менных оценок. Они изображены ниже на рисунке 5-7:
--------------------¬
¦ ¦
¦ Передача данных ¦
¦ ¦
L---------T----------
¦
-----------+------------¬
¦ ¦ ¦
---+----¬ ----+-----¬ -----+---¬
¦Метод ¦ ¦ Прямой ¦ ¦Метод ¦
¦упоря- ¦ ¦ доступ ¦ ¦доступа ¦
¦дочен- ¦ ¦ к памяти¦ ¦по пре- ¦
¦ного ¦ ¦ (DMA) ¦ ¦рываниям¦
¦опроса ¦ ¦ ¦ ¦ ¦
L-------- L---------- L---T-----
¦
----------------+--------------¬
¦ ¦ ¦
¦ ¦ ¦
-------+------¬ ----+---¬ -----+----¬
¦ Устройства ¦ ¦ Таймер¦ ¦Программа¦
¦ ввода/выво- ¦ ¦ ¦ ¦ ¦
¦ да ¦ L-------- L----------
L--------------
Рис.
|