Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
112
Добавлен:
27.04.2015
Размер:
776.7 Кб
Скачать

5.2.4.4 Управляющий регистр (ххв)

Управляющий регистр служит для установки основных параметров работы порта:

  • Установки скорости передачи (устанавливает режим ввода делителя),

  • Длины передаваемого блока данных,

  • Количества стоповых бит,

  • Режима контроля передачи,

  • Установки режима BREAK для перефирийного устройства.

Например, если требуется указать скорость передачи порта, то необходимо установить старший бит этого регистра, а затем записать младшие разряды делителя в регистр данных (3F8h) и старшие в регистр управления прерываниями (3F9h), после чего сбросить старший бит регистра управления. Если необходимо установить режим передачи блоков данных из пяти бит, с двумя стоповыми битами и без проверки на четность, то в регистр управления необходимо записать код:

0000 0100b =04h

5 бит

2 стопа

нет контроля четности

5.2.4.5 Регистр управления модемом (xxc)

Регистр управления модемом служит для переключения состояний выходных линий порта:

  • DTR

  • RTS

  • OUT1

  • OUT2

Например, если необходимо установить сигнал готовности передаваемых данныхDTR, то в регистре управления модемом нужно установит младший бит, выполнив инструкцию o 3FC 01.

Четвертый бит этого регистра позволяет организовать внутренний шлейф передачи данных (соединяем RD и TD). Для создания шлейфа необходимо установить четвертый разряд регистра управления модемом.

5.2.4.6 Регистр состояния линии

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

Читая состояние этого регистра можно определить можно ли записывать очередную порцию данных в порт (управление методом опроса). Для этого необходимо периодически считывать значение регистра состояние линии и проверять состояние разрядов 5 и 6. Если разряд 5 установлен, то в порт можно записывать очередную порцию данных для передачи.

Проверяя состояние младшего разряда регистра можно определить момент готовности очередной порции данных, которые приняты от периферийного устройства (модема).

5.2.4.7 Регистр состояния модема

Регистр состояния модема хранит состояние входных управляющих сигналов порта (управляющих сигналов, которые получены от периферийного устройства – модема): DCD, RI, DSR и CTS. Кроме этого регистр фиксирует изменение состояния этих сигналов. Состояние сигналов храниться в старших битах регистра, а изменение состояния фиксируется установкой соответствующих разрядов в 4-х младших битах.

Вопросы к разделу 5.2.4

  1. Размещение регистров портов в адресном пространстве ввода/вывода.

  2. Инструкции для доступа к портам в программе debug и их интерпретация машинными командами.

  3. Описать функциональное назначение регистров порта.

5.2.5 Управление потоком в интерфейсе rs-432

Любое движение материальных объектов должно регулироваться. Нерегулируемое движение (Броуновское) иногда приводит к нежелательным последствиям. Поэтому для организации движения используют специальные системы управления:

  • воздушным движением,

  • железнодорожным транспортом,

  • автомобильным и

  • водным транспортом.

Эти системы воздействуют на движущиеся объекты путем

  • ограничения скорости,

  • приостановки движения,

  • пространственного и временного разграничения.

Известной нам со школьной скамьи задачей управления движением является задача о бассейне V, в который по одной трубе А втекает жидкость, а по другой Б вытекает. Если поток жидкости WАл/мин, который втекает в бассей, больше чем поток жидкости WБл/мин, который вытекает из бассейна, то при любом конечном объеме бассейна V (в литрах) существует такое конечное

Т=мин,

после которого бассейн начнет переполняться.

В системах передачи, при отсутствии управления потоком информации, возможно явление подобное «переполнению бассейна». Данные поступающие по каналу связи либо сразу обрабатываются, либо накапливаются в буфере для последующей обработки преобразования, накопления или передачи. Если скорость обработки меньше чем скорость поступления данных, то данные будут в лучшем случае потеряны, а в худшем случае может произойти авария (пример с Протоном). Действительно, если скорость поступления данных (поток или говорят трафик) превышает скорость обработки, полученных данных, то при любом объеме приемного буфера возможно его переполнение (потеря данных).

Для организации управления потоком данных в дуплексной системе передачи интерфейса RS-232 предусмотрены специальные цепи управления. Процесс передачи данных между портом и периферийным устройством (модемом) показан на рисунке 8.

На этом рисунке данные от DTE передаются на DCE по линии TD-RD – передаваемые данные DTE являются принимаемыми данными для DCE. И наоборот, по линии RD-TD DTE получает данные от DCE. По технологическим соображениям (Обозначения сигналов на обоих концах кабеля должны быть одинаковы) линия передающая данные на DCE обозначается TD, но внутри модема подключается к приемнику данных RD. Управление потоком данных от DTE к DCE (переполняет буфер передатчик) реализуется сигналми CTS и DTR, которые обозначенными со стороны DTE. Сигнал DTR включает процесс приема в DCE, а сигнал CTS, формируемый DCE как RTS, управляет процессом передачи – предотвращает переполнение буфера и потерю данных. Процесс передачи со стороны DCE управляется аналогичными сигналами. Переполнение приемного буфера в DTE предотвращается сигналом CTS, который на стороне DTE именуется RTS.

В современных операционных системах взаимодействие с портом реализуется специальной системной программой – драйвером порта. Драйвер представляет собой процесс операционной системы для обработки событий (прерываний), происходящих в порту. Доступ к функциям (методам) и свойствам (полям) этого процесса реализуется механизмом API (Application Programming Interface)-набор функций, используемых прикладными программами для запросов и исполнения низкоуровневых сервисов, выполняемых ОС.

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

На рисунке 8 изображены процессы передачи и приема, которые являются частью драйвера порта и взаимодействуют с ним при помощи сигналов.

Процесс передачи.

П1. После создания процесс передачи устанавливает выходной сигнал DTR=1, оповещая этим подключенный к нему через интерфейс процесс приема о начале передачи.

П2. Процесс передачи ждет готовности передатчика (освобождения регистра передачи).

П3. После того как регистр передатчика освободился процесс передачи проверяет состояние входного управляющего сигнала CTS, который устанавливается подключенным процессом приема после получения сигнала начала передачи или отсутствия переполнения его буфера приема. Если сигнал CTS установлен, то процесс передачи переходит к П4 для проверки буфера передачи, иначе процесс передачи ждет сигнала об установке CTS.

П4. Процесс передачи проверяет состояние буфера передачи Buf_T. Если буфер передачи не пуст, то процесс передачи переходит к П5 для передачи очередного байта, иначе процесс передачи ждет сигнала о заполнении буфера передачи.

П5. Процесс передачи извлекает из непустого буфера передачи очередной байт и записывает его для передачи в регистр данных порта ХХ8, после чего возвращается к П2, где ждет готовности передатчика.

Процесс приема.

П1. После запуска процесс приема ждет установки входного сигнала DSR, установленного соответствующим процессом передачи как DTR, который оповещает его о начале передачи.

П2. После получения сигнала о начеле передачи процесс приема очищает буфер приема Buf_R.

П3. Прцесс приема устанавливает выходной сигнал RTS, оповещая прцесс передачи о том, что он готов принимать данные (в буфере естьместо для приема данных).

П4.Прцесс приема ждет готовности приемника (заполнения регистра приема).

П5. После получения байта процесс приема помещает его в буфер приема.

П6. После этого процесс приема проверяет состояние буфера приема. Если буфер приема не полн, то процесс приема переходит к П4 для приема следующего байта, иначе процесс приема сбрасывает выходной сигнал RTS (у передатчика это будет CTS) и ждет сигнала о том, что буфер приема не полн (прикладные процессы забирают байты из буфера приема).

П7. После получения сигнала о том что буфер приема не полн, процесс приема переходит к П3, где устанавливает выходной сигнал RTS.