Управление потоком xon xoff что это

knigechka

Сайт содержит тексты редких методических пособий, лабораторных и контрольных работ. Вообщем, то что трудно найти в сети но очень нужно для подготовки к экзаменам, в частности на заочной форме обучения.

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

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

Управление потоком xon xoff что это

Рис. 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) передачи.

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

Управление потоком xon xoff что это

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

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

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

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Источник

Управление потоком важно, потому что отправляющий компьютер может передавать информацию с большей скоростью, чем конечный компьютер может ее получать и обрабатывать. Это может произойти, если получающие компьютеры имеют большую нагрузку по трафику по сравнению с отправляющим компьютером или если принимающий компьютер имеет меньшую вычислительную мощность, чем отправляющий компьютер.

СОДЕРЖАНИЕ

Остановись и подожди

Операции

Если кадр или ACK потеряны во время передачи, кадр передается повторно. Этот процесс повторной передачи известен как ARQ ( автоматический запрос на повторение ).

Проблема с остановкой и ожиданием заключается в том, что за один раз может передаваться только один кадр, и это часто приводит к неэффективной передаче, потому что, пока отправитель не получит ACK, он не может передать ни одного нового пакета. В это время и отправитель, и канал не используются.

Плюсы и минусы остановки и ожидания

Остановка и ожидание также могут снизить эффективность при отправке более длительных передач. Когда отправляются более длинные передачи, вероятность ошибки в этом протоколе выше. Если сообщения короткие, скорее всего, ошибки будут обнаружены на ранней стадии. Большая неэффективность создается, когда отдельные сообщения разбиваются на отдельные кадры, поскольку это увеличивает продолжительность передачи.

Раздвижное окно

Метод управления потоком, при котором приемник дает передатчику разрешение на передачу данных до тех пор, пока не заполнится окно. Когда окно заполнено, передатчик должен прекратить передачу, пока приемник не объявит о большем окне.

Управление потоком через скользящее окно имеет гораздо лучшую производительность, чем управление потоком с остановкой и ожиданием. Например, в беспроводной среде, если скорость передачи данных низкая, а уровень шума очень высок, ожидание подтверждения для каждого передаваемого пакета не очень возможно. Следовательно, передача данных в виде большого количества данных даст лучшую производительность с точки зрения более высокой пропускной способности.

Вернуться N

Алгоритм автоматического запроса на повторение (ARQ), используемый для исправления ошибок, в котором отрицательное подтверждение (NAK) вызывает повторную передачу слова с ошибкой, а также следующих N – 1 слов. Значение N обычно выбирается таким образом, чтобы время, необходимое для передачи N слов, было меньше, чем задержка приема-передачи от передатчика к приемнику и обратно. Следовательно, в приемнике не требуется буфер.

Выборочный повтор

Сравнение

Остановись и подожди

Выборочный повтор

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

Управление потоком передачи может происходить:

Скорость передачи может контролироваться из-за требований сети или DTE. Управление потоком передачи может происходить независимо в двух направлениях передачи данных, что позволяет скоростям передачи в одном направлении отличаться от скоростей передачи в другом направлении. Управление потоком передачи может быть

Управление потоком может быть выполнено

Аппаратный контроль потока

В обычном RS-232 есть пары линий управления, которые обычно называют аппаратным управлением потоком :

Аппаратным управлением потоком данных обычно занимается DTE или «главный конец», поскольку он сначала поднимает или утверждает свою линию, чтобы передать команду другой стороне:

Примером аппаратного управления потоком данных является полудуплексный радиомодем с компьютерным интерфейсом. В этом случае управляющее программное обеспечение в модеме и компьютере может быть записано так, чтобы отдавать приоритет входящим радиосигналам, так что исходящие данные с компьютера приостанавливаются путем понижения CTS, если модем обнаруживает прием.

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

И наоборот, XON / XOFF обычно называют программным управлением потоком.

Управление потоком без обратной связи

Механизм управления потоком без обратной связи отличается отсутствием обратной связи между приемником и передатчиком. Это простое средство контроля широко используется. Ресурсы должны выделяться по типу «предварительное резервирование» или «переход от участка к узлу».

Управление потоком без обратной связи включает два элемента управления; контроллер и регулятор. Регулятор может изменять входную переменную в ответ на сигнал от контроллера. Система без обратной связи не имеет механизма обратной связи или прямой связи, поэтому входные и выходные сигналы не связаны напрямую, и существует повышенная изменчивость трафика. В такой системе также более низкая скорость поступления и более высокая скорость потерь. В открытой системе управления контроллеры могут управлять регуляторами через равные промежутки времени, но нет гарантии, что выходная переменная может поддерживаться на желаемом уровне. Хотя использование этой модели может быть дешевле, модель с открытым контуром может быть нестабильной.

Управление потоком с обратной связью

Эта система включает в себя все основные элементы управления, такие как датчик, преобразователь, контроллер и регулятор. Датчик используется для захвата переменной процесса. Переменная процесса отправляется на передатчик, который транслирует переменную в контроллер. Контроллер проверяет информацию относительно желаемого значения и при необходимости инициирует корректирующее действие. Затем контроллер сообщает регулятору, какие действия необходимо предпринять, чтобы убедиться, что значение выходной переменной соответствует желаемому значению. Следовательно, существует высокая степень уверенности в том, что выходная переменная может поддерживаться на желаемом уровне. Система управления с обратной связью может быть системой обратной связи или прямой связи:

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

В замкнутой системе с прямой связью измеряемая переменная процесса является входной переменной. Затем измеренный сигнал используется так же, как в системе обратной связи.

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

Смотрите также

Рекомендации

Источник

Управление потоком xon xoff что это

Имеются 2 типа управления потоком данных: аппаратное и программное (Xon/Xoff).

Аппаратное управление потоком данных использует специальный сигнальный провод, в то время как программное управление потоком данных сигнализирует, посылкой служебных байтов Xon или Xoff по обычному проводу данных. Для аппаратного управления потоком данных, кабель должен быть правильно распаян.

Поток байтов данных в кабеле между 2 последовательными портами двунаправлен так что имеются 2 различных потока:

Можно было удивиться, почему возможно переполнение последовательного порта, так как скорости и передачи, и приема байтов данных последовательных портов, установлены равными (в бит/сек) типа 19,200.

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

Когда содержимое этого маленького аппаратного буфера достигает определенного ограничения (один байт для старого UART’S) генерируется прерывание. Затем компьютерные прерывания, которые были вызваны и программное обеспечение выясняют что случалось. В конце концов они определяют, что требуется извлечь байт (или больше) из буфера последовательного порта. Они берут этот байт(ы) и помещают их в больший буфер (также буфер последовательных портов), который ядро поддерживает в оперативной памяти.

Терминалы также имеют последовательные порты и буфера подобно компьютеру.

Так как скорость потока байтов на терминал обычно намногим больше, чем поток в обратном направлении с клавиатуры на главный компьютер, то терминал с большей вероятностью подвержен переполнению.

Конечно, если вы используете компьютер как терминал (эмуляцией), тогда он аналогично подвержен переполнению.

Опасные ситуации, когда переполнение наиболее вероятно: 1. Когда другой процесс отключил прерывания (для компьютера). 2. Когда буфер последовательных портов в главной (или терминальной) памяти собирается переполняться.

Когда обнаруживается, что приемник почти переполнен входящими байтами, то отправителю посылается сигнал прекращения передачи. Это называется управлением потоком данных, и сигналы управления потоком данных всегда направлены против потока данных, которыми они управляют (хотя не в том же самом канале или проводе). Этот сигнал может быть или управляющим символом (^S = DC3 = Xoff), посланный как обычный байт данных по проводу данных («внутрипотоковая» сигнализация), или переходом напряжения с положительного на отрицательный урвень по rts-cts (или другим) сигнальным проводам(внепотоковая сигнализация

Использование Xoff называется «программное управление потоком данных», а использование перехода напряжения в специальном сигнальном проводе (внутри кабеля) называется «аппаратное управление потоком данных».

Когда терминал просят остановить посылку данных, терминал «блокирует» клавиатуру. Это редко случается, но когда он это делает, сообщение, или индикатор должны сообщить вам, что клавиатура блокирована. Все, что вы напечатаете на блокированной клавиатуре, игнорируется. Термин «блокированный» также используется, когда компьютер просят прекратить передачу данных терминалу. Клавиатура не блокируется так что, все, что вы напечатаете, идет на компьютер. Так как компьютер не может послать что-нибудь обратно вам, символы, которые вы напечатаете, не отображаются на экране словно клавиатура заблокирована, но это не так.

Когда приемник обработал данные и готов получать остальные байты данных, он сообщает об этом отправителю. Для программного управления потоком данных этим сигналом является управляющий символ ^Q = DC1 = Xon, который пересылается как обычная строка данных. Для аппаратного управления потоком данных напряжение в сигнальном проводе переходит из отрицательного (инвертированного) уровня в положительный (установленному).

Если терминалу говорят, чтобы он продолжил отправку, клавиатура разблокируется, и она снова готова к использованию.

Некоторые старые терминалы не имеют аппаратного управления потоком данных, в то время как другие для этого используют широкий выбор различных выводов на последовательном порту. Наиболее популярный, кажется, вывод DTR.

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

Linux PC использует RTS/CTS, но управление потоком данных с помощью DTR (используемое многими терминалами) ведет себя аналогично (за исключением то, что оно однонаправленное). RTS/CTS использует выводы RTS и CTS на последовательном разъеме (EIA-232). RTS означает «Запрос передачи (Request To Send)».

Связь с помощью интерфейса DTR с RTS/CTS управлением потоком данных

Многие терминалы используют DTR управление потоком данных. Это исключительно одностороннее управление потоком данных для предохранения терминала от переполнения. Это не защищает компьютер от кого-то, печатающего слишком быстро для компьютера. Как можно использовать это с Linux, который использует управление потоком данных RTS/CTS?

Так как вывод DTR ведет себя подобно выводу RTS, то на терминале обрабатывают только вывод DTR, как будто это вывод RTS, присоединенный к выводу CTS на компьютере. Для этого вам вероятно потребуется сделать специальный кабель (или перепаять разъем). Таким образом можно использовать DTR управление потоком данных на терминальном конце кабеля с RTS/CTS управлением потоком данных на компьютерном конце кабеля. Тогда при использовании этого вы должны «stty local» так как терминальный вывод DTR не может выполнить свою обычную функцию сообщения главному компьютеру, что терминал включен.

Отличие от старого подтверждения связи RTS/CTS

При объяснении значений сигналов возникает путаница, из-за того, что имеется первоначальное значение RTS, которое противоположно вешеприведенному объяснению. Первоначальное его значение: я запрашиваю разрешение на посылку вам данных (Request To Send). Этот запрос был предназначен для посылки с терминала (или компьютера) на модем, который, если решит удовлетворить запрос, пошлет обратно установленный сигнал CTS с вывода CTS на вывод CTS компьютера: для посылки мне все чисто (Cleared to Send). Обратите внимание, что в отличие от современного RTS/CTS двунаправленного управления потоком данных, этот метод защищает поток только в одном направлении: от компьютера (или терминала) к модему.

Обратный канал

Старые аппратные терминалы могут иметь вывод обратного канала (типа вывода 19), который ведет себя подобно выводу RTS в RTS/CTS управлении потоком данных. Но этот вывод будет также инвертироваться, если бумага или лента выходит наружу. Часто можно соединить этот вывод с выводом CTS главного компьютера.

Может иметься dip-переключатель для установки полярности сигнала.

Некоторые думают, что аппаратное управление потоком данных выполнено аппаратными средствами, но (если вы не используете интеллектуальную последовательную плату с несколькими последовательными портами) это фактически выполнено программным обеспечением вашей операционной системы. Чипы UART и связанные аппаратные средства обычно не знают ничто вообще о аппаратном управлении потоком данных. Когда аппаратный сигнал управления потоком данных получен, сигнальный провод меняет полярность, и аппаратные средства дают электрический сигнал прерывания центральному процессору. Однако, аппаратные средства понятия не имеют, что это прерывание означает. Центральный процессор останавливает работу и переходит к таблице в оперативной памяти, которая сообщает центральному процессору, где находится программу, которая выяснит то, что случилось и предпримет соответствующие действия.

Это та программа (часть драйвера последовательного устройства), которая останавливает (или возобновляет) передачу. Эта программа проверяет содержание регистров в чипе UART, чтобы выяснить, какой из проводов изменил полярность.

Затем программное обеспечение понимает, что был получен сигнал управления потоком данных и останавливает (или запускает) поток. Однако, если был получен сигнал останова, поток останавливается почти немедленно по прибытии сигнала, потому что прерывание останавливает любой процесс, выполняемый центральным процессором (включая программу, которая посылала данные и помещала ее в аппаратные буфера последовательных портов для передачи).

Источник

Русские Блоги

Управление последовательным потоком UART (управление потоком)

Как правило, при последовательной связи на некоторых компьютерах верхнего уровня мы увидим параметры RTS / CTS, DTR / DSR и XON / XOFF.Это параметр для управления потоком, который обычно применяется к интерфейсу RS232, который является данными от модема. Общение

1. Роль управления потоками

Упомянутый здесь «поток» относится к потоку данных; при передаче данныхУправление потокомЭто процесс управления скоростью передачи данных между двумя узлами для предотвращения заполнения буфера данных на принимающей стороне, в то время как отправляющая сторона продолжает отправлять данные, что приводит к потере данных.

2. Принцип работы

Когда буфер данных на принимающей стороне заполнен и данные не могут быть обработаны, он отправит сигнал «больше не принимает», а отправляющая сторона прекратит отправку, пока отправляющая сторона не получит сигнал «можно продолжить отправку» перед отправкой данных. В компьютерах обычно используются два типа управления потоком: аппаратное управление потоком (RTS / CTS, DTR / DSR и т. Д.) И программное управление потоком (XON / XOFF).

Три, определение контакта RS232

RS-232 в настоящее время имеет разъемы типа DB-25 и DB-9, а интерфейсы типа DB-9 используются чаще.

Назначение контактов типа DB-9 в RS-232:

Описание его сигнального контакта:

Положение стопыСтенографиязначимостьсигналОписание
Pin1DCDData Carrier DetectОбнаружение носителя данных (DCD)Модем сообщает компьютеру об обнаружении носителя.
Pin2RXDReceiverПолучение данных (RD, RXD)Получите данные.
Pin3TXDTransmitОтправить данные (TD, TXD)отправить данные.
Pin4DTRData Terminal ReadyПодготовка терминала данных (DTR)Компьютер сообщает модему, что он может передавать.
Pin5GNDGroundОбщие основанияПровод заземления.
Pin6DSRData Set ReadyДанные готовы (DSR)Модем сообщает компьютеру, что все готово.
Pin7RTSRequest To SendЗапрос на отправку (RTS)Компьютер просит модем передать данные.
Pin8CTSClear To SendОчистить для отправки (CTS)Модем сообщает компьютеру, что он может отправлять данные.
Pin9RIRing IndicatorИндикация звонка (RI)Модем сообщает компьютеру о входящем звонке.

4. Аппаратное управление потоком (в основном RTS / CTS)

RTS / CTS был первоначально разработан для полудуплексной совместной связи между телетайпом и модемом, и только один модем может отправлять данные одновременно. Терминал должен отправить запрос на отправку сигнала, а затем ждать, пока модем не ответит разрешением на отправку. Хотя в RTS / CTS квитирование осуществляется аппаратно, у него есть свои преимущества.

1. Стандартный метод подключения RS232
Управление потоком xon xoff что это
Когда оборудование на стороне A готово, сигнал DTR (оборудование для передачи данных готово) будет отправлен на RI (вызывной сигнал) и DSR (оборудование связи готово) на стороне B. Таким образом, пока A готов (DTR), B будет генерировать вызов (RI) и быть готовым (DSR).

Обратите внимание, что RTS (запрос на отправку), CTS (разрешена отправка) и CD (обнаружение несущей) на стороне B соединены вместе, что означает, что как только A запрашивает отправку (RTS), он будет немедленно разрешен (CTS) и сделает обнаружение B Несущий сигнал (CD). TXD терминала A соединен с RXD терминала B, и A отправляет, а B принимает.

2. Упрощенный способ подключения RS232.
Управление потоком xon xoff что это
Исходные RTS и CTS используются, чтобы спросить и ответить, можно ли передавать данные. Но в этом режиме соединения он просто сообщает другой стороне, могут ли они общаться. В настоящее время для управления потоком данных могут использоваться как RTS, так и DTR.

DTR (готовность устройства данных) на стороне A. Когда сторона B готова, DTR (готовность устройства данных) на стороне B отправляет сигнал DSR (устройство связи готово) на стороне A. Затем вы можете контролировать связь через RTS (запрос на отправку) и DTR (разрешить отправку).

3. Дальнейшее упрощение (то есть на основе RTS / CTS)

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

Стоит отметить, что аппаратное управление потоком данных зависит не только от оборудования, оно также требует программного обеспечения для обработки идентификации, поскольку аппаратное управление потоком данных дает только уровни сигналов, а реальный контроль разрешения отправки зависит от программной обработки.

Пять, программное управление потоком

Кодовое имясмыслASCIIДесятичныйШестнадцатеричный
XOFFПриостановить передачуDC31913
XONВозобновить передачуDC11711

Стоит отметить, что получатель отправляет отправителю сигналы XON / XOFF, чтобы контролировать, когда отправитель отправляет данные.Эти сигналы противоположны направлению передачи отправленных данных.

Программное управление потоком широко используется в низкоскоростных устройствах, особенно в принтерах и немых терминалах, чтобы указать, что они временно приостанавливают получение данных; преимущество программного управления потоком данных состоит в том, что оно уменьшает количество проводников цепи между отправляющей и принимающей сторонами и при наличии общей цепи заземления, Для отправки и приема необходимы только две схемы, и никакой дополнительной конкретной аппаратной реализации не требуется; недостаток состоит в том, что для отправки XOFF требуется хотя бы один символ, и его необходимо обрабатывать после данных, которые получила другая сторона.

XON / XOFF, как правило, не рекомендуются. Рекомендуется заменить их потоком управления RTS / CTS. Потому что, если вы передаете двоичные данные, в отправляемых вами данных могут быть двоичные значения, соответствующие XON и XOFF, что может привести к неправильной работе. Это дефект программного управления потоком, и аппаратное управление потоком не будет иметь этой проблемы; конечно, вы Вы также можете избежать XON и XOFF

Шесть, управление нижним уровнем UART

Как упоминалось выше, окончательная реализация аппаратного управления потоком все еще связана с программным обеспечением. Если вы собираетесь написать управление хост-компьютером с последовательным портом, вы можете просмотреть ссылку ниже, чтобы понять соответствующие регистры

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *