Обзор последовательного порта

Введение

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

Что такое последовательная передача?

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

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

Стандарт последовательного порта

Интерфейс последовательного порта для того, чтобы соединить два устройства задан стандартом TIA/EIA-232C, опубликованным Ассоциацией Телекоммуникационной отрасли.

Изначально стандарт последовательного порта был задан RS-232, что означает Рекомендуемый Стандарт номер 232. Термин RS-232 все еще находится в популярном употреблении и используется в этом руководстве при обращении к последовательному порту, который следует стандарту TIA/EIA-232. RS-232 задает эти характеристики последовательного порта:

  • Максимальный битрейт и длина кабеля

  • Имена, электрические характеристики и функции сигналов

  • Механические связи и назначения контактов

Первичная коммуникация выполняется с помощью трех контактов: контакт Transmit Data, контакт Recieve Data и Заземляющий контакт. Другие контакты доступны для управления потоком данных, но не требуются.

Другие стандарты, такие как RS-485 задают дополнительную функциональность, такую как более высокие битрейты, более долгие длины кабеля и связь с количеством устройств вплоть до 256.

Соединение двух устройств последовательным кабелем

Стандарт RS-232 задает эти два устройства, соединенные последовательным кабелем как Data Terminal Equipment (DTE) и Data Circuit-Terminating Equipment (DCE). Эта терминология отражает источник RS-232 как стандарт для связи между компьютерным терминалом и модемом.

В этом руководстве ваш компьютер рассматривается DTE, в то время как периферийные устройства, такие как модемы и принтеры рассматриваются DCEs. Много научных приборов функционируют как DTEs.

Поскольку RS-232 в основном включает соединение DTE к DCE, назначения контактов заданы таким образом, что сквозные кабельные соединения используются, где контакт 1 соединяется с контактом 1, контакт 2 соединяется с контактом 2 и так далее. Следующая схема показывает DTE DCE последовательная связь с помощью контакта данных о передаче (TD) и контакта приема данных (RD).

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

Если вы соединяете два DTEs или два DCEs использование прямого последовательного кабеля, контакты TD на каждом устройстве соединяются друг с другом, и контакты RD на каждом устройстве соединяются друг с другом. Поэтому, чтобы соединиться два как устройства, необходимо использовать кабель null modem. Как показано в следующей схеме, нуль-модемные кабели пересекают передачу и получают строки в кабеле.

Примечание

Можно соединить несколько RS-422 или RS 485 устройств к последовательному порту. Если вы имеете RS-232/RS-485 адаптер, можно использовать объект последовательного порта MATLAB с этими устройствами.

Сигналы последовательного порта и назначения контактов

Последовательные порты состоят из двух типов сигнала: сигналы данных и управляющие сигналы. Чтобы поддержать эти типы сигнала, а также сигнальную землю, стандарт RS-232 задает 25-контактную связь. Однако большая часть Windows® и платформ UNIX® используют 9-контактную связь. На самом деле только три контакта требуются для коммуникаций последовательного порта: один для получения данных, один для передачи данных, и один для сигнальной земли.

Следующая схема показывает схему назначения контактов 9 штырьковых разъемов на DTE.

Контакты и сигналы, сопоставленные с 9-контактным коннектором, описаны в следующей таблице. Обратитесь к стандарту RS-232 для описания сигналов и назначений контактов, используемых для 25-контактного коннектора.

Контакт последовательного порта и присвоения сигнала

КонтактМеткаИмя сигналаТип сигнала

1

CD

Обнаружение несущей

Управление

2

RD

Полученные данные

Данные

3

TD

Transmitted Data

Данные

4

DTR

DataTerminalReady

Управление

5

GND

Signal Ground

Земля

6

DSR

Data Set Ready

Управление

7

RTS

RequestToSend

Управление

8

CTS

Clear to Send

Управление

9

RI

Ring Indicator

Управление

Термин data set синонимичен с modem или device, в то время как термин data terminal синонимичен с computer.

Примечание

Контакт последовательного порта и присвоения сигнала относительно DTE. Например, данные передаются от контакта TD DTE к контакту RD DCE.

Состояния сигнала

Сигналы могут быть или в состоянии active или в состоянии inactive. Активное состояние соответствует двоичному значению 1, в то время как неактивное состояние соответствует двоичному значению 0. Активное состояние сигнала часто описывается как logic 1, on, true или mark. Неактивное состояние сигнала часто описывается как logic 0, off, false или space.

Для сигналов данных происходит состояние on, когда полученное напряжение сигнала меньше-3 вольт, в то время как состояние off происходит для больше 3 вольт напряжений. Для управляющих сигналов происходит состояние on, когда полученное напряжение сигнала больше 3 вольт, в то время как состояние off происходит для меньше-3 вольт напряжений. Напряжение между-3 вольтами и +3 вольтами рассматривается областью перехода, и состояние сигнала не определено.

Принести сигнал к состоянию on, управляющее устройство unasserts (или lowers) значение для контактов передачи данных и asserts (или raises) значение для контактов управления. С другой стороны, чтобы принести сигнал к состоянию off, управляющее устройство утверждает значение для контактов передачи данных и не утверждает значение для контактов управления.

Следующая схема показывает on и состояния off для сигнала данных и для управляющего сигнала.

Контакты передачи данных

Большинство устройств последовательного порта поддерживает коммуникацию full-duplex, означающую, что они могут отправить и получить данные одновременно. Поэтому отдельные контакты используются для передачи и получения данных. Для этих устройств используются TD, RD и контакты GND. Однако некоторые типы устройств последовательного порта поддерживают только односторонний или коммуникации half-duplex. Для этих устройств только используются TD и контакты GND. Это руководство принимает, что полнодуплексный последовательный порт соединяется с вашим устройством.

Контакт TD несет данные, переданные DTE к DCE. Контакт RD несет данные, которые получены DTE от DCE.

Контакты управления

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

РТС и CTS контакты.  РТС и CTS контакты используются, чтобы сигнализировать, готовы ли устройства отправить или получить данные. Этот тип управления потоком данных — названный hardware handshaking — используется, чтобы предотвратить потерю данных во время передачи. Когда включено и для DTE и для DCE, аппаратное квитирование с помощью RTS и CTS выполняет эти шаги:

  1. DTE утверждает контакт RTS, чтобы сообщить DCE, что это готово получить данные.

  2. DCE утверждает контакт CTS, указывающий, что это ясно отправить данные по контакту TD. Если данные больше не могут отправляться, контакт CTS не утверждается.

  3. Данные передаются к DTE по контакту TD. Если данные больше не могут приниматься, контакт RTS не утверждается DTE, и передача данных останавливается.

Чтобы включить аппаратное квитирование в программном обеспечении MATLAB, смотрите Управление Потоком Данных: Квитирование.

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

  1. DTE утверждает контакт DTR, чтобы запросить, чтобы DCE соединился с линией передачи данных.

  2. DCE утверждает контакт DSR, чтобы указать, что это соединяется.

  3. DCE не утверждает контакт DSR, когда это отключается от линии передачи данных.

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

CD и RI контакты.  CD и RI контакты обычно используются, чтобы указать на присутствие определенных сигналов во время соединений модем-модем.

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

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

Формат последовательных данных

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

Следующее обозначение выражает формат для данных о последовательном порте:

number of data bits - parity type - number of stop bits

Например, 8-N-1 интерпретирован как восемь битов данных, бит четности отсутствует, и один стоп-бит, в то время как 7-E-2 интерпретирован как семь битов данных, четность и два стоп-бита.

Биты данных часто упоминаются как character, потому что эти биты обычно представляют символ ASCII. Остающиеся биты называются framing bits, потому что они структурируют биты данных.

Байты по сравнению со значениями

byte является набором битов, которые включают формат последовательных данных. Сначала, этот термин может казаться неточным, потому что байт составляет 8 битов, и формат последовательных данных может расположиться между 7 битами и 12 битами. Однако, когда последовательные данные хранятся на вашем компьютере, предельные биты сняты, и только биты данных сохраняются. Кроме того, восемь битов данных всегда используются независимо от количества битов данных, заданных для передачи с неиспользованными битами, присвоенными значение 0.

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

Синхронная и асинхронная коммуникация

Стандарт RS-232 поддерживает два типа протоколов связи: синхронный и асинхронный.

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

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

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

Примечание

Когда используется в этом руководстве, условиях synchronous и asynchronous относятся к или операции чтения, или операции записи блокируют доступ к командной строке MATLAB. Для получения дополнительной информации смотрите Управление доступ к командной строке MATLAB.

Как биты передаются?

По определению последовательные данные передаются один бит за один раз. Порядок, в котором передаются биты:

  1. Старт-бит передается со значением 0.

  2. Биты данных передаются. Бит First Data соответствует младшему значащему биту (LSB), в то время как последний бит данных соответствует старшему значащему биту (MSB).

  3. Бит четности (если задано) передается.

  4. Один или два стоп-бита передаются, каждый со значением 1.

baud rate является количеством битов, переданных в секунду. Переданные биты включают старт-бит, биты данных, бит четности (если задано), и стоп-биты.

Стартовый и стоповый биты

Как описано в Синхронной и Асинхронной Коммуникации, большинство последовательных портов действует асинхронно. Это означает, что переданный байт должен быть идентифицирован стартовыми и стоповыми битами. Старт-бит указывает, когда байт данных собирается начаться; стоп-бит (стоп-биты) указывает (s), когда байт данных был передан. Процесс идентификации байтов с форматом последовательных данных выполняет эти шаги:

  1. Когда контакт последовательного порта неактивен (не передача данных), это находится в состоянии on.

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

  3. Последовательный порт прикрепляет переключатели обратно к on, утверждают из-за стоп-бита (стоп-битов). Это указывает на конец байта.

DataBits

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

Большинство последовательных портов использует от пяти до восьми битов данных. Двоичные данные обычно передаются как восемь битов. Основанные на тексте данные передаются или как семь битов или как восемь битов. Если данные основаны на наборе символов ASCII, минимум семи битов требуется, потому что существует 27 или 128 отличных символов. Если восьмой бит используется, он должен иметь значение 0. Если данные основаны на расширенном наборе символов ASCII, восемь битов должны использоваться, потому что существует 28 или 256 отличных символов.

Бит четности

Бит четности обеспечивает простую проверку ошибок (четности) для передаваемых данных. Следующая таблица показывает типы проверки четности.

Типы контроля четности

Тип контроля четностиОписание

Даже

Биты данных плюс бит четности приводят к четному числу 1 с.

Марк

Бит четности всегда равняется 1.

Нечетный

Биты данных плюс бит четности приводят к нечетному числу 1 с.

Пробел

Бит четности всегда 0.

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

Процесс проверки четности выполняет эти шаги:

  1. Устройство передачи устанавливает бит четности на 0 или на 1, в зависимости от значений бита данных и типа выбранной проверки четности.

  2. Приемное устройство проверяет, сопоставим ли бит четности с передаваемыми данными. Если это, биты данных приняты. Если это не, ошибка возвращена.

Примечание

Проверка четности может обнаружить только 1-битные ошибки. Несколько битных ошибок могут появиться как допустимые данные.

Например, предположите, что биты данных 01110001 передаются к вашему компьютеру. Если четность выбрана, бит четности собирается в 0 устройством передачи произвести четное число 1 с. Если отрицательная четность выбрана, бит четности собирается в 1 устройством передачи произвести нечетное число 1 с.

Нахождение информации о последовательном порте для платформы

В этом разделе описываются способы найти информацию о последовательном порте для платформ UNIX и Windows.

Примечание

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

Использование функции seriallist

Функция seriallist возвращает список всех последовательных портов в системе. Список включает виртуальные последовательные порты, обеспеченные USB-to-serial устройствами и Bluetooth Serial Port Profile устройствами. Это предоставляет список последовательных портов, к которым вы имеете доступ на вашем компьютере и могли использовать для коммуникации последовательного порта. Например:

seriallist

ans = 

  1×2 string array

  "COM1"    "COM3"

Платформа Microsoft Windows

  1. Откройте Панель управления Windows Control Panel.

  2. Нажмите Device Manager.

  3. В диалоговом окне Device Manager расширьте узел Портов.

  4. Дважды кликните узел Communications Port (COM1).

  5. Выберите вкладку Port Settings.

Платформа UNIX

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

На платформе Linux® устройства последовательного порта обычно называют ttyS0, ttyS1, и т.д. Используйте команду setserial, чтобы отобразить или сконфигурировать информацию о последовательном порте. Например, чтобы отобразиться, какие порты доступны:

setserial -bg /dev/ttyS*
/dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A
/dev/ttyS1 at 0x02f8 (irq = 3) is a 16550A

Отобразить подробную информацию о ttyS0:

setserial -ag /dev/ttyS0
/dev/ttyS0, Line 0, UART: 16550A, Port: 0x03f8, IRQ: 4
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000, closing_wait2: infinte
        Flags: spd_normal skip_test session_lockout

Примечание

Если команда setserial -ag не работает, убедитесь, что вы читали и разрешение записи для порта.

Для всех поддерживаемых платформ UNIX используйте команду stty, чтобы отобразить или сконфигурировать информацию о последовательном порте. Например, чтобы отобразить свойства последовательного порта для ttyS0, введите:

stty -a < /dev/ttyS0

Сконфигурировать скорость в бодах к 4 800 битам в секунду, введите:

stty speed 4800 < /dev/ttyS0 > /dev/ttyS0

Используя виртуальные последовательные порты USB

Если у вас есть устройства, которые представляют себя как последовательные порты на вашей операционной системе, можно использовать их в качестве виртуальных последовательных портов USB в MATLAB. Примером таких устройств был бы USB Последовательный Аппаратный ключ. Для устройств Bluetooth® используйте поддержку Bluetooth в Instrument Control Toolbox™. См. Обзор Интерфейса Bluetooth (Instrument Control Toolbox) для получения дополнительной информации.

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

Выбранная библиография

[1] TIA/EIA-232-F, Взаимодействуйте через интерфейс Между Data Terminal Equipment и Data Circuit-Terminating Equipment, Использующим Последовательный Обмен Двоичных данных.

[2] Ян Акселсон, завершенный последовательный порт, исследование Лейквью, Мадисон, WI, 1998.

[3] Инструментальное коммуникационное руководство, IOTech, Inc., Кливленд, OH, 1991.

[4] 200 рядов TDS два образовывают канал цифровое руководство программиста осциллографа, Tektronix, Inc., Уилсонвилль, OR.

[5] Руководство пользователя высокоскоростных модемов курьера, U.S. Robotics, Inc., Скоки, IL, 1994.

Для просмотра документации необходимо авторизоваться на сайте