Последовательный порт и последовательная связь

Последовательный порт DS работает в двух режимах:

Режим маршрутизации данных. Входящие последовательные данные передаются в Ethernet-порт, а данные из Ethernet - в последовательный порт. Именно в этом режиме DS выполняет свою функцию маршрутизации. После включения питания DS работает в режиме маршрутизации данных.

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

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

Работа последовательного порта в режиме маршрутизации данных определяется несколькими настройками (см. ниже), некоторые из которых (скорость, чётность и т. д.) имеют соответствующие параметры. Эти параметры передаются в DS через сеть командой Parameter (P) и обычно называются оперативными командами (или, более официально, параметрами со стороны сети). Оперативные команды позволяют узлу сети сразу изменить режим связи последовательного порта без перезагрузки DS. Также есть инструкции со стороны сети (Set I/O Pin Status (Sx) и Get I/O Pin Status (Gx)), которые используются для установки и чтения состояния линий RTS, CTS, DTR, DSR, а также дополнительных линий P0 и P1* DS.

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

  • Полудуплексный или полнодуплексный режим работы, задаваемый настройкой Serial Interface (SI);
  • Скорости до 115200 бит/с, задаваемые текущей настройкой/параметром Baudrate (BR);
  • 7 или 8 бит на байт, задаваемые текущей настройкой/параметром Bits Per Byte (BB);
  • Несколько вариантов чётности, задаваемых текущей настройкой/параметром Parity (PR)**;
  • Есть также несколько вариантов настройки для линий RTS, CTS, DTR и DSR:
  • В полнодуплексной связи линии RTS и CTS могут работать как линии управления потоком между DS и подключённым последовательным устройством - это задаётся текущей настройкой/параметром Flow Control (FC);
  • В полудуплексной последовательной связи линия RTS служит линией управления направлением (подробности см. в настройке Serial Interface (SI)). Поэтому эту линию называют «RTS/DIR»;
  • Линия CTS может дополнительно использоваться для выбора между полнодуплексной и полудуплексной связью (см. режим «auto» в настройке Serial Interface (SI)).
  • Линией DTR можно управлять так, чтобы она отражала текущее состояние соединения данных - см. настройку DTR Mode (DT);
  • Линией DSR можно управлять так, чтобы она запускала и завершала установление соединения данных - см. настройку Connection Mode (CM);
  • Состояние линий RTS и DTR также может задаваться (устанавливаться) другим узлом сети с помощью инструкции Set I/O Pin Status (Sx), а состояние линий CTS и DSR можно отслеживать (опрашивать) с помощью инструкции Get I/O Pin Status (Gx);
  • Кроме того, DS можно настроить так, чтобы он уведомлял другой узел сети об изменениях состояния линий RTS, CTS, DTR, DSR, P0 и P1*. Какие линии отслеживаются, определяет текущая настройка/параметр Notification Bitmask (NB). Уведомления передаются в виде сообщений Notification (J) на порт, заданный настройкой Notification Destination (ND).

* Физически ли реализованы эти линии, зависит от модели DS.

** Установить количество стоп-бит напрямую нельзя, но второй стоп-бит можно эмулировать, задав текущий Parity (PR) равным 3 (mark).

*** Состояния HI и LOW описаны для последовательных портов DS100R, DS100B, DS203. Для EM100, EM120, EM200, EM203(A) сигналы инвертированы.