Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Управление потоком данных



 

Для управления потоком данных (Flow Control) могут использоваться два варианта протокола – аппаратный и программный. Иногда управление потоком путают с квитированием. Квитирование подразумевает посылку уведомления о получении элемента, в то время как управление потоком предполагает посылку уведомления о возможности или невозможности последующего приема данных.

Аппаратный протокол управления потоком RTS/CTS (hardware flow control) использует сигнал CTS, который позволяет остановить передачу данных, если приемник не готов к их приему (рис. 5). Передатчик «выпускает» очередной байт только при включенной линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки).

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

 

 

Рис. 5. Временная диаграмма управление потоком

 

Аппаратный протокол удобен при подключении принтеров и плоттеров, если они его поддерживают. При непосредственном (без модемов) соединении двух компьютеров аппаратный протокол требует перекрестного соединения линий CTS - RTS.

При непосредственном соединении у передающего терминала должно быть обеспечено состояние «включено» на линии CTS (соединением собственных линий RTS - CTS). В противном случае передатчик будет «молчать».

Применяемые в IBM PC приемопередатчики 8250/16 450/16 550 сигнал CTS аппаратно не обрабатывают, а только показывают его состояние в регистре MSR. Реализация протокола RTS/CTS возлагается на драйвер BIOS Int 14h, и называть его «аппаратным» не совсем корректно. Если же программа, пользующаяся CОМ-портом, взаимодействует с UART на уровне регистров (а не через BIOS), то обработкой сигнала CTS для поддержки данного протокола она занимается сама. Ряд коммуникационных программ позволяют игнорировать сигнал CTS (если не используется модем), и для них не требуется соединения входа CTS с выходом своего сигнала RTS. Однако существуют и иные приемопередатчики (например, 8251), в которых сигнал CTS обрабатывается аппаратно. Для них, а также для «честных» программ использование сигнала CTS на разъемах (а то и в кабелях) обязательно. Преимущество протокола CTS/RTS во времени реакции по сравнению с программным протоколом XON/XOFF остается лишь для буферированной (в режиме FIFO) передачи.

Программный протокол управления потоком XON/XOFF предполагает наличие двунаправленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым оно не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13h). Противоположное устройство, приняв этот символ, приостанавливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ XON (11h), приняв который, противоположное устройство возобновляет передачу. Время реакции передатчика на изменения состояния приемника по сравнению с аппаратным протоколом увеличивается по крайней мере на время передачи символа (XON или XOFF) плюс время реакции программы передатчика на прием символа. Из этого следует, что данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимаемых данных и сигнализирующим о неготовности заблаговременно (имея в буфере свободное место).

Преимущество программного протокола заключается в отсутствии необходимости передачи управляющих сигналов интерфейса – минимальный кабель для двухстороннего обмена может иметь только 3 провода. Недостатком, кроме требования наличия буфера и большего времени реакции (снижающего общую производительность канала из-за ожидания сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом случае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограничивает набор передаваемых символов.

 

 




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.