КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

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

Иногда управление потоком пута¬ют с квитированием. Квитирование (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) передачи.

Hosted by uCoz