01.03.2019

Интерфейс RS-232 имеет следующие характеристики:


  • Используется 9-контактный разъем "DB-9" (старые ПК используют 25 пиновый   "DB-25").
  • Позволяет передачу  двухнаправленной полнодуплексной связи (ПК может отправить и получить данные в то же время).
  • Может передавать информацию  на максимальной скорости  10KBytes/s.

Разъем DB-9 

Вы, наверное, уже видели этот разъем на задней панели компьютера.




Он имеет 9 контактов, но 3 основные:


контакт 2: RxD (прием данных).

контакт 3: TxD (передача данных).

Контакт 5: GND (заземление).

Используя    3 провода,   вы можете передавать и получать данные.


Данные обычно отправляются  частями  по 8 бит ( байтом) и "сериализуются": сначала отправляется LSB (бит данных 0), затем бит 1 ... и MSB (бит 7) - последний.


Асинхронная связь

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


В случае RS-232, это сделано таким образом:


  1. Обе стороны кабеля заранее согласовывают параметры связи (скорость, формат). Это делается вручную перед началом связи.
  2. Передатчик посылает "idle" (="1") когда и пока линия неработающая.
  3. Передатчик посылает "старт" (="0") перед каждым переданным байтом, так, что приемник сможет вычислить, что байт приходит.
  4. Передаются 8 битов байтовых данных.
  5. Передатчик посылает "стоп" (="1") после каждого байта.

Давайте посмотрим, как выглядит байт 0x55 при передаче:




Байт 0x55 является 01010101 в двоичном формате.

Но так как сначала передается LSB (bit-0), то линия переключается следующим образом: 1-0-1-0-1-0-1-0.


Вот еще один пример:




Вот данные 0xC4.

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


Как быстро мы можем отправить данные?

Скорость указывается в бодах, т.е. сколько бит в секунду может быть отправлено. Например, 1000 БОД означают 1000 бит в секунду, или что каждый бит длится одну миллисекунду.


Общие реализации интерфейса RS-232 (как у ПК) не позволяют использовать любую скорость. Если вы хотите использовать 123456 БОД, вам не повезло. Приходится довольствоваться какой-то "стандартной" скоростью. Общие значения:


  • 1200 БОД.
  • 9600 БОД.
  • 38400 БОД.
  • 115200 БОД (обычно самый быстрый).

На 115200 БОД, каждый бит длится (1/115200) = 8.7 µs. Если вы передаете 8-разрядные данные, это длится 8 x 8.7 µs = 69µs. Но каждый байт требует дополнительного стартового и стопового Бита, Поэтому вам действительно нужно 10 x 8.7 µs = 87µs. Это означает максимальную скорость 11.5 Кбайт в секунду.


На 115200 бодах, некоторые ПК с багги-чипами требуют "длинного" стоп-бита (1,5 или 2 бита), что делает падение максимальной скорости до  10.5 Кбайта в секунду.


Физический уровень

Сигналы на проводах используют положительную/отрицательную схему напряжения тока.


  • "1" послано используя -10V (или между -5V и -15V).
  • "0" послано используя +10V (или между 5V и 15V).

Таким образом, холостая линия несет   -10V.