
- •Лекція . Послідовний інтерфейс – сом-порт.
- •Мал. 2.1 Повна схема з'єднання по rs-232c
- •Мал. 1 з'єднання по rs-232c нуль-модемным кабелем
- •Мал .2 Прийом сигналів rs-232c
- •Мал. 3. Послідовність сигналів інтерфейсу, що управляють
- •2.2. Споріднені інтерфейси і перетворювачі рівнів
- •Мал. 4 Стандарти послідовних інтерфейсів
- •2.3. Асинхронний режим передачі
- •2.4. Управління потоком даних
- •Мал. 7 Апаратне управління потоком
- •Xoff xon
- •2.5. Мікросхеми асинхронних приймачів
- •2.6. Системна підтримка сом-порТіВ
- •2.7. Конфіггурування сом-порТіВ
- •2.8. Використання сом-порТіВ
2.4. Управління потоком даних
Для управління потоком даних (Flow Control) можуть використовуватися два варіанти протоколу — апаратний і програмний. Іноді управління потоком плутають з квитуванням. Квитування (handshaking) має на увазі посилку повідомлення про отримання елементу, тоді як управління потоком припускає посилку повідомлення про можливість або неможливість подальшого прийому даних. Часто управління потоком засноване на механізмі квитування.
Апаратний протокол управління потоком RTS/CTS (hardware flow control) використовує сигнал CTS, який дозволяє зупинити передачу даних, якщо приймач не готовий до їх прийому (мал. 2.13). Передавач «випускає» черговий байт тільки при включеній лінії CTS. Байт, який вже почав передаватися, затримати сигналом CTS неможливо (це гарантує цілісність посилки). Апаратний протокол забезпечує найшвидшу реакцію передавача на стан приймача. Мікросхеми асинхронних приймачів мають не менше двох регістрів в приймальній частині — що зрушує, для прийому чергової посилки, і що зберігає, з якого прочитується прийнятий байт. Це дозволяє реалізувати обмін по апаратному протоколу без втрати даних.
T
D
CTS
Н еготовність приймача
Мал. 7 Апаратне управління потоком
Апаратний протокол зручно використовувати при підключенні принтерів і плоттерів, якщо вони його підтримують. При безпосередньому (без модемів) з'єднанні двох комп'ютерів апаратний протокол вимагає перехресного з'єднання ліній RTS — CTS.
При безпосередньому з'єднанні у передавального терміналу повинен бути забезпечене стан «включено» на лінії CTS (з'єднанням власних ліній RTS — CTS), інакше передавач «мовчатиме».
Вживані в IBM РС приймачі 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
(11h),
прийнявши який протилежний пристрій
відновлює передачу. Час реакції передавача
на зміну стану приймача в порівнянні з
апаратним протоколом збільшується,
принаймні, на час передачі символу (XON
або XOFF)
плюс час реакції програми передавача
на прийом символу (мал. 2.14). З цього
виходить, що дані без втрат можуть
прийматися тільки приймачем, що має
додатковий буфер даних, що приймаються,
і що сигналізує про неготовність завчасно
(маючи в буфері вільне місце).
TD
RD