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

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

  1. Почему движением материальных объектов надо управлять?

  2. Почему происходит переполнение приемного буфера в системе передачи.

  3. Организация управления в дуплексной системе передачи интерфейса RS-232. Какие сигналы используются для управления потоком.

  4. Как организуется доступ к порту в современных ОС.

  5. Что такое аппаратное управление потоком данных.

  6. Как процесс приема управляет процессом передачи.

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 не пуст) - сигнал, которым драйвер информирует процесс передачи о том, что прикладной процесс поместил в пустой буфер передачи порцию данных и необходимо возобновить прерванный процесс передачи.