Аппаратные интерфейсы ПК

         

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


Для управления потоком данных (Flow Control) могут использоваться два вари­анта протокола — аппаратный и программный. Иногда управление потоком пута­ют с квитированием. Квитирование (handshaking) подразумевает посылку уведом-

2.4. Управление потоком данных____________ :_________________________________________________ 61

ления о получении элемента, в то время как управление потоком предполагает посылку уведомления о возможности или невозможности последующего приема данных. Зачастую управление потоком основано на механизме квитирования.

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

Рис. 2.13. Аппаратное управление потоком

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

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

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

62

Глава 2. Последовательный интерфейс — СОМ-порт

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



 

Рис. 2.14. Программное управление потоком XON/XOFF

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

Кроме этих двух распространенных стандартных протоколов, поддерживаемых и ПУ, и ОС, существуют и другие.


Содержание раздела