Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 курс / Интерфейсы / Lab 2 - Организация обмена в последовательных каналах.doc
Скачиваний:
30
Добавлен:
27.04.2015
Размер:
119.3 Кб
Скачать

3. Определение статуса линии

Регистр статуса линии определяет протокол связи. Адрес порта ре-

гистра на 5 больше базового адреса данного канала. Обычно он постоянно

просматривается в процессе обмена через коммуникационный порт. При пе-

редаче данных регистр сообщает, что предыдущий символ уже послан, поз-

воляя программе записать новый символ поверх его. При приеме данных

регистр информирует программу о поступлении следующего символа, с тем,

чтобы программа могла прочитать его прежде, чем он будет уничтожен

очередным. Значения битов этого регистра следующие:

Таблица 5.

-------T-------------------------------------------------------------¬

¦ биты ¦ С м ы м ы с л б и т о в п о л я ¦

+------+-------------------------------------------------------------+

¦ ¦ ¦

¦ 0 ¦ 1 = байт данных получен; ¦

¦ 1 ¦ 1 = ошибка переполнения - полученные данные перезаписаны ¦

¦ ¦ (предыдущий символ не был вовремя считан); ¦

¦ 2 ¦ 1 = ошибка паритета; ¦

¦ 3 ¦ 1 = ошибка синхронизации (число стоп-битов в принятом ¦

¦ ¦ символе не равно установленному значению); ¦

¦ 4 ¦ 1 = обнаружен перерыв (получена длинная строка единиц: ¦

¦ ¦ удаленный абонент запрашивает конец передачи или делает ¦

¦ ¦ паузу); ¦

¦ 5 ¦ 1 = регистр-защелка хранения данных передатчика свободен ¦

¦ ¦ (в этот регистр в параллельном коде заносятся подлежащие ¦

¦ ¦ передаче данные); ¦

¦ 6 ¦ 1 = выходной сдвиговой регистр передатчика пуст (этот ¦

¦ ¦ регистр заполняется содержимым регистра хранения данных ¦

¦ ¦ передатчика и преобразует их в последовательный код); ¦

¦ 7 ¦ 1 = ошибка тайм-аута (передача за установленное время ¦

¦ ¦ не состоялась). ¦

L------+--------------------------------------------------------------

3.1. Программирование 8250

Для определения статуса следует из порта, адрес которого на 5

больше базового адреса, считать байт. Его элементы расшифровываются в

соответствии с указанной выше таблицей. Обработка особых ситуаций

должна предусматривать переход к подпрограммам чтения из файла-источ-

ника очередного передаваемого символа; записи в файл-приемник очеред-

ного принимаемого символа; анализа и обработки ошибок, в том числе

подготовкой и посылкой ARQ-примитивов; завершения работы соединения по

поступлении запроса на конец передачи.

3.2. Использование прерывания 14Н

Для определения статуса следует воспользоваться функцией 3 преры-

вания 14Н. В DX должен быть расположен номер коммуникационного порта,

к которому происходит доступ, где СОМ1 = 0, СОМ2 = 1. После выполнения

команды INT 14H в АН будет размещено содержимое регистра статуса ли-

нии. Его элементы расшифровываются в соответствии с указанной выше

таблицей. В AL будет размещено содержимое регистра статуса модема,

расшифровка которого (см. лабораторную работу N 4) может в некоторых

случаях объяснить причину ошибок.

Обработка особых ситуаций должна предусматривать переход к подп-

рограммам чтения из файла-источника очередного передаваемого символа;

записи в файл-приемник очередного принимаемого символа; анализа и об-

работки ошибок, в том числе подготовкой и посылкой ARQ-примитивов; за-

вершения работы соединения по поступлении запроса на конец передачи.