Управление потоками данных через интерфейс RS-232

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

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

Аппаратное управление потоком

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

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

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

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

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