- •5.2 Последовательный асинхронный адаптер
- •5.2.1 Физический уровень интерфейса последовательного порта
- •5.2.2 Подключение к порту.
- •5.2.3 Структурная схема порта
- •Таким образом для процессора порт
- •5.2.4 Функции регистров порта
- •5.2.4.2 Регистр управления прерывания
- •5.2.4.3 Регистр идентификации прерываний
- •5.2.4.4 Управляющий регистр (ххв)
- •5.2.4.5 Регистр управления модемом (xxc)
- •5.2.4.6 Регистр состояния линии
- •5.2.4.7 Регистр состояния модема
- •Вопросы к разделу 5.2.4
- •5.2.5 Управление потоком в интерфейсе rs-432
- •Вопросы к разделу 5.2.5
- •5.2.6 Программное управление потоком
- •5.6.2.1 Алгоритм процесса передачи
- •5.6.2.2 Алгоритм процесса приема
- •Контрольные вопросы к разделу 5.6.2
- •5. 7. Телефонная сеть общего пользования.
- •5.7.1 Сеть абонентского доступа
Вопросы к разделу 5.2.5
Почему движением материальных объектов надо управлять?
Почему происходит переполнение приемного буфера в системе передачи.
Организация управления в дуплексной системе передачи интерфейса RS-232. Какие сигналы используются для управления потоком.
Как организуется доступ к порту в современных ОС.
Что такое аппаратное управление потоком данных.
Как процесс приема управляет процессом передачи.
1
5.2.6 Программное управление потоком
Программным управлением потока будем называть управление процессом передачи, для реализации которого используются специально выделенные буквы (символы) используемого алфавита. Символ который используется для приостановки процесса передачи принято обозначатьXoff(off – выключить), а символ, который используется для возобновления процесса передачи, принято обозначатьXon(on – включить). Выбор символов для управления потоком определяется протоколом взаимодействия DTE c DCE. Для указания этих символов драйверу порта используются специальные API функции Windows. По умолчанию, для программного управления потоком драйвер использует управляющие коды DC1=11h (Xon) DC3=13h (Xoff) (См. Таблицу кодов ASCII).
Если передаваемая информация представляет собой текст, то используемые для передачи информации коды алфавита ASCII не совпадают с кодами символов Xoff и Xon. В этом случае говорят, что канал прозрачендля используемых символов. Если передаваемая информация может представляться произвольными кодами ASCII, то информационные символы, совпадающие с символами Xoff и Xon, будут восприниматься каналом как управляющие. В этом случае говорят, чтоканал не прозрачендля используемого алфавита. Такая ситуация возникает в процессе передачи целых и вещественных чисел. Например при передаче статистических данных или целеуказаний. Для обеспечения прозрачности канала в этих случаях
Представляют числа в символьной форме, что вдвое увеличивает объем передаваемых символов или
Используют специальные управляющие символы для изменеия смысла передаваемого вслед за ним символа (Escape- последовательности или байт стаффинг).
Схема взаимодействия процессов приема и передачи при программном управлении потоком изображена на следующем рисунке (Рис. 9)

На этом рисунке показано, что для организации взаимодействия процессов приема и передачи в дуплексной линии передачи управляющие сигналы порта не используются. Такой способ передачи часто используется для экономии проводников (экономии меди).
На рисунке 10 изображены алгоритмы, которые реализуются процессами приема и передачи в DTE и DCE. Эти алгоритмы, для упрощения изложения, реализуют передачу текстовых данных. Для реализации процессов приема и передачи в драйвере порта, в частности, используются:
Buf_T– буфер передачи, в который прикладные процессы помещают данные для передачи в канал, и из которого процесс передачи берет данные для записи в регистр передачи порта ХХ8, выполняя функцию Send(unsiugned char bt);
Buf_R– буфер приема, в который процесс приема помещает принятые информационные символы (Xoff и Xon туда не записываются), и из которого прикладные процессы извлекают полученную информацию для обработки;
F_Xoff – флаг, которым процесс приема информирует процесс передачи о необходимости приостановки передачи;
S(F_Xoff=0) – сигнал, которым процесс приема информирует процесс передачи о том, что можно возобновить передачу.
S(Buf_T не пуст) - сигнал, которым драйвер информирует процесс передачи о том, что прикладной процесс поместил в пустой буфер передачи порцию данных и необходимо возобновить прерванный процесс передачи.
