У чому різниця між DTR / DSR та RTS / CTS управління потоком?


82

Яка різниця між DTR / DSR та RTS / CTS апаратним контролем потоку? Коли використовується кожен з них? Навіщо нам потрібно більше одного виду апаратного контролю потоку? :)

Відповіді:


69
  • DTR - термінал передачі даних готовий
  • DSR - Набір даних готовий
  • RTS - Запит на відправлення
  • CTS - Відправити чітко

Існує безліч способів робити щось, оскільки ніколи не було протоколів, вбудованих у стандарти. Ви використовуєте будь-який спеціальний "стандарт" вашого обладнання.

Просто виходячи з назв, RTS / CTS, здається, є цілком природною. Однак це відстає від потреб, що склалися з часом. Ці сигнали були створені в той час, коли термінал пакетно надсилав екран, повний даних, але приймач може бути не готовим, отже, необхідність управління потоком. Пізніше проблема буде змінена, оскільки термінал не міг встигати за даними, що надходять від хоста, але сигнали RTS / CTS рухаються в неправильному напрямку - інтерфейс не є ортогональним, і відповідні сигнали не йдуть в іншу сторону. Виробники обладнання адаптувались як могли, в тому числі використовуючи сигнали DTR та DSR.

РЕДАГУВАТИ

Щоб додати трохи більше деталей, це дворівнева ієрархія, тому "офіційно" обоє мають відбуватися для спілкування. Поведінка визначена у вихідному стандарті CCITT (нині ITU-T) V.28.

введіть тут опис зображення

DCE - це модем, що з'єднує термінал і телефонну мережу. У телефонній мережі було ще одне обладнання, яке відокремилося від мережі передачі даних, наприклад. Х.25.

Модем має три стани: вимкнений, готовий ( Набір даних Готовий істинний) та підключений ( Виявлення носія даних )

Термінал не може нічого зробити, поки модем не підключений.

Коли модем хоче надіслати дані, він піднімає RTS, і модем задовольняє запит через CTS. Модем знижує CTS, коли його внутрішній буфер заповнений.

Так ностальгічно!


1
Гарно узагальнено. Потім з'явився "м'який" контроль потоку xOn / xOff.
n8wrl

Примітка: DTR / DSR стали рідше, ніж RTS / CTS після середини 80-х. Ядро Linux ніколи не підтримувало DTR / DSR: до того моменту, як ядро ​​Linux підтримувало DTR / DSR, 232 послідовних застаріли.
Девід

8
@david Ці сигнали не обмежені RS232, але також використовуються в TTL UART. І вони далеко не застарілі.
glglgl

Отже, з точки зору DTE (комп’ютер) та DCE (модем) RTS / CTS гарантує, що DCE (модем) не переповнений даними, а DTR / DSR гарантує, що DTE (комп’ютер) не перевантажений даними. Це правильно?
шкіра Наклз

@skinnedKnuckles - це правильно, наскільки мені запам'яталося. Минуло занадто багато років, відколи мені довелося турбуватися про ці речі.
Марк Ренсом

30

Різниця між ними полягає в тому, що вони використовують різні шпильки. Серйозно, все. Причина того, що вони обидва існують, полягає в тому, що спочатку RTS / CTS ніколи не повинен був бути механізмом управління потоком; напівдуплексні модеми мали координувати, хто надсилає, а хто приймає. RTS та CTS зловживають для управління потоком так часто, що це стає стандартним.


1
Я зовсім забув про напівдуплекс. Я неясно пам’ятаю, що бачив це в дії, на комбінованому принтері / зчитувачі карток. Дякую за цю відповідь.
Марк Ренсом

Зараз superuser.com справді існує, і він повідомляє нам, що на момент запиту ядро ​​Linux не підтримувало сигналізацію DTR / DSR. superuser.com/questions/345005/… . Що вказує на ще одну різницю: сигналізація DTR / DSR рідше / не використовувалася смарт-модемами.
Девід

1

Важливою відмінністю є те, що деякі UART (зокрема, 16550) припиняють отримувати символи негайно, якщо їх хост вказує їм встановити DSR як неактивний. На відміну від них, символи все одно будуть отримуватися, якщо CTS неактивний. Я вважаю, що намір тут полягає в тому, що DSR вказує на те, що пристрій більше не слухає, і тому надсилання будь-яких подальших символів безглуздо, тоді як CTS вказує на те, що буфер заповнюється; останній забезпечує певну кількість "заносу", коли лінія управління потоком змінювала стан між DTE, що відбирає його, і наступним переданим символом. У (відносно) пізніших пристроях, що підтримують апаратний FIFO, можливо, що певна кількість символів може бути передана після того, як DCE встановив CTS як неактивний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.