Передача rs232 через gsm
Последовательный порт (далее ПП) удобный инструмент для общения между разными периферийными устройствами (как собранные самостоятельно на основе какого-нибудь МК, так и заводские: принтеры, осциллографы и т.д.) с одной стороны, и ПК с другой. На сегодняшний день наиболее популярные из всех ПП являются RS232 стандарт (переводится как «Recommended Standard») за его простоту и USB стандарт («Universal Serial BUS») за его резвость.
USB бесспорно вещь полезная, но жудко навороченная. Поскольку многим самодельным устройствам бешенный обмен данными с ПК неособо нужон, тогда на помощи приходит простой, надежный и многоопытный RS232 Интерфейс.
По RS232 стандарту устройства участвующие в обмене данными бывают двух типов:
Data Terminal Equipment (DTE) (устройство отдающее команды — ведущий) и
Data Circuit-Terminating Equipment (DCE) (периферия, обслуживающая хозяина — ведомый). Нередко, некоторые периферийные устройства ведут себя как DTE (например осциллографы, или наши с вами девайсы).
Типы соединения
Модемное соединение — подрозумеваеи наличие некой иерархии, тоесть в случае когда в обмене данными участвуют больше чем два устройства им необходим некий арбитр (модем), разрешающий в определенный момент времени отсылать данные только одному устройству (в то время как читать могут хоть все остальные). Модемом может быть что угодно: отдельный девайс, или один из участников обмена данными, главное недопустить потери данных.
В случае когда устройств только два, или есть явный ведущий которого слушаются все остальные, никакого посредника им не нужно, а это означает что к их общению больше никто не подключится, и никакого арбитра в лице модема им не надо ( в отличие от предыдущего типа соединения, когда к одному принтеру можно подключить штук 10 ПК ). Опять-же главное недопустить одновременной отправки данных — в определенный момент времени, общатся может только одна пара устройств. Такое соединение называется нуль-модемное соединение:
Типы передач данных
Минимальное количество проводков необходимое для обмена данными равно двум (этокий жадный изврат), если передача является односторонней ([Tx, GND]). В случае когда необходимо полноценное — двухстороннее общение число проводков возростает аж до трех ([Rx, Tx, GND]). Большинство периферийных устройств поддерживают одновременную передачу и прием данных — full-duplex, но если один из собеседников на такое не способен, обмен переходит в разряд неполноценных — half-duplex (пока один не закончил передачу/прием другой пляшит под его дудку).
Распиновка COM разъёма
В столбце Signal Name, DATA Terminal можно заменить на ПК (то есть Data Terminal Ready соответствует ПК готов к работе), а DATA Set на Периферия.
Как следует из предыдущей таблицы, все пины делятся на управляющие (control pins) и транспортные (Data pins). Каждый пин в определенный момент времени может находьтся только в одном из двух состояний: активном (on) или неактивном (off). Чтобы не запутатся, и както защитить данные от помех, разработчики решили что во время передачи данных они были сначало усилены (+5В –> +12В, 0В –> -12В ) а потом инвертированы, в то время как c управляющими сигналами они долго не парились и просто их усилели (тоесть положительное стало еще положительней а отрицательное — отрицательнее, относительно общего провода).
Назначение управляющих пинов ([RTS, CTS], [DTR, DSR] и [CD, RI]) сводится к следующему:
• Отслеживать состояние собеседника
• Отслеживать поток данных
Пара [RTS, CTS] — используется для обозначения готовности данной пары устройств к передачи/приему соответственно.
1. DTE устройство устанавливает RTS = on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем RTS =off.
2. DCE устройство устанавливает CTS =on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем CTS =off.
Кто каким пином будет управлять (тоесть кому быть DTE а кому DCE) решать вам. Соответственно программы управления этими устройствами должны выставить RTS(выход)/CTS (вход), или наоборот, иначе могут быть глюки.
Пара [DTR, DSR] — большинство устройств используют эти пины для сигнализирования что они подключены и готовы к работе.
1. DTE устройство устанавливает DTR=on, сообщая DCE устройству что оно готово к работе. Соответственно когда DTE устанавливает DTR=off, то оно больше не желает (или не может) общатся (положила трубку :) )
2. DCE устройство устанавливает DSR=on, сообщая что оно подключено, а когда DSR=off – оно отключено.
Такой метод контроля потока данных называется – hardware handshaking (чтото вроде аппаратное управление). Пары [DTR, DSR] и [RTS, CTS] могут быть с легкостью взаимо-заменены без всякого ущерба.
Пара [CD, RI] – используется для обозначения (в тот самом случае когда один принтер на отару кампов) что в данный момент линии передачи данных кем-то заняты.
Как правило этой парой управляет модем, но не обязательно.
• St – Стартовый Бит (начало передачи данных) – логический ноль
• 0..8 – позиция бита (данных) в пакете (позиция «0» – LSB)
• P – бит парности (проверка успешной передачи данных)
• Sp1,Sp2 – стоп биты (завершают передачу пакета) – логическая единица
• [] – в скобках обозначены биты которые могут отсутствовать
(биты данных с 5 по 8 так или иначе будут переданы, но не рассмотрены — мусор)
• IDLE – ожидание (логическая единица)
Как я уже говорил, во время передачи — данные инвертируются, так что если будете проверять осциллографом как отсылается пакет — не пугайтесь.
Поскольку MAX232 поддерживает аппаратное управление COM портом, и если с разводкой данной схемы проблем нет, почемуб и не использовать эту возможность, вдруг когда пригодится (не пропадать же добру). В противном случае, можно обойтись без аппаратного управления, как зачастую и происходит.
Софт
UPD: заменил вывод cout на printf, и убрал флаги RxClear и TxClear
ПП по сути является фаилом из которого ведется чтение/запись, поэтому основные операции которые применяются над ПП можно группировать следующим способом:
Также много интересного можно узнать на следующих сайтах: Programming Serial Connections , Serial programming in win32 OS
Запихните предыдущий код в хидэр фаил, например с именем COM_INIT.h и можно использовать ПП.
Надеюсь эти скромные знания кому-то помогут. Если есть вопросы попытаюсь ответить.
Появилась необходимость подключить удаленые приборы болида к удаленому пульту, по линии RS485 без использования ПК. Создавать радиоканал нет возможности. Тянуть провода тем более. Появилась мысль создать канал GSM на приборах GSM модем с интерфейсом RS-485.
Приглянулись модемы TELEOFIS. Они работают с двумя интерфейсами 485 и 232. И работают по интеренту, через статические ip по сим картам. То есть покупаем два модема, две сим карты. Один настраиваем сервер, другой клиент.
В теории все красиво и работает. Но в практике, будет ли работать?
– Налетов Константин 1 год назад
Удаленный прибор будет только один Сигнал 10, принимающая сторона с2000м с управлением на постановку и снятие БКИ– Александр Сергеевич 1 год назад
Александр Сергеевич, примените не болидовское оборудование. Контроллеров с управлением по GSM пруд пруди. У охранника поставьте планшет с симкой, будет модно, красиво, мобильно, не дорого и относительно дёшево в эксплуатации. Кстати, суммарная стоимость оборудования обоих вариантов будет сопоставима, а может не болидовский вариант даже дешевле окажется (зависит от выбора контроллеров).– Налетов Константин 1 год назад
Постановка и снятие должна быть только по кнопке. Нажал и ок. Без смс и тд. Максимально упрощаем..Не в цене дело– Александр Сергеевич 1 год назад
– Налетов Константин 1 год назад
Так связь будет только по интернет трафику идти. Сейчас на тарифах это настраивается. А на кормпоративных, так тем более дешевле. Минус только, что платить дополнительно за фиксированный ip– Александр Сергеевич 1 год назад
Какая у Вас модель TELEOFIS предполагается? А то что-то я засомневался про интернет трафик. Вы Александр Сергеевич явно что-то путаете, выдаёте желаемое за действительное. Для всех контроллеров TELEOFIS написано "передача данных по технологии CSD", а это очень медленный канал и что важно не мобильный интернет!– Налетов Константин 1 год назад
Модель пока под вопросом. Подбираем в районе 7 тыс за штуку, но их куча там. Смотрю в разделе Терминалы GPRS/3G
Интересно, как высчитать количества трафика, при обмене данных с прибором сигнал 10
– Александр Сергеевич 1 год назад
А почему считатаем только от Сигнала-10? От пульта то весь трафик пойдет к сегменту. Нет возможности транслировать только обращение к С10– Леготин В В 1 год назад
Само собой идет обмен данными между приборами, но тут знать хотя бы сигнал 10. А Там примерно можно накидать и все остальное– Александр Сергеевич 1 год назад
А что тут прикидывать? Скорость известна, порубим ее пополам - если сегмент пустой, это нижний предел. Полная скорость - если вобще все приборы за мостом. Добавить накладные на канальное шифрование ЖПРС (тут не скажу сколько) . Очень приблизительно, конечно.– Леготин В В 1 год назад
Теперь задумался, переплатить и брать терминал с передачей по 3g или по 2G со скоростью: (GPRS class 10: скорость приема до 85.6 кбит/с, передачи до 42.8 кбит/с)
Техподержка от оборужования и болида бессильна в этом вопросе
– Александр Сергеевич 1 год назад
– Налетов Константин 1 год назад
Тут уж лучше по устойчивости связи смотреть.
А так то вроде все протягивают, другое дело, что вечное отпадение пойдет прибора. ОПСОСы делеи не гарантируют.
– Леготин В В 1 год назад
Ваш номер телефона будет доступен только администраторам сайта.
Спасибо за понимание.
ПОКАЗАН
ЗАДАН
ПРОДУКТЫ
По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.
Американская фирма Enfora специализируется на разработке и изготовлении модулей, модемов и готовых изделий для систем беспроводной связи. Фирма Enfora известна российским разработчикам по ряду публикаций [1—4].
Продукты Enfora выпускаются как в виде модулей GSM0107/0108, так и в виде терминалов GSM1209/ 1218. Подробные технические сведения о GSM/GPRS-продукции Enfora представлены в документах [5—7], которые свободно доступны на сайте [8]. Дополнительную информацию на русском языке можно найти на сайте [9].
Идеология модулей Enabler построена на том, что основные случаи пользовательских приложений уже зашиты в базовое программное обеспечение и реализуются с помощью АТ-команд. Таким образом, в модулях Enabler пользователю предоставляется возможность сопряжения с традиционными схемами счетчиков, охранных систем и тому подобной аппаратуры. Фирма Enfora предлагает разработчикам не тратить время на написание собственных уникальных приложений, а вместо этого воспользоваться готовыми стандартными программными блоками, включенными в базовую прошивку.
Семейство продуктов Enabler представляет собой целостную платформу с большим набором разнообразных функций, упрощающих разработку и интеграцию сложных встраиваемых M2M-приложений.
Модули Enfora Enabler позволяют обойтись базовыми настройками для реализации многих стандартных задач, которые при использовании продукции других фирм требуют разработки сложного ПО и аппа ратного обеспечения. Кроме того, модули Enabler имеют мощный IP-ориентированный программный блок, интегрированный в базовое программное обес печение.
Передача данных в режиме GSM
При передаче данных в режиме GSM наименьшее время соединения достигается при использовании обоими GSM-терминалами протокола V. 110 и прозрачного асинхронного режима передачи. В этом случае время, необходимое для установления соединения, может быть уменьшено до 2 секунд [10].
Актуальной для новых пользователей является задача замены проводных телефонных модемов, например Acorp-EMSF, на современные GSM/GPRS-модемы.
В стандартных телеметрических задачах устройства, доступ к которым необходимо получить, имею т интерфейс RS-232. При этом часто для работы используются только линии данных RXD и TXD, а также протоколы обмена Modbus, Bitbus и им подобные. В простейшем случае используется режим асинхронной передачи, 8 бит, без четности, на скорости 9600 бит/с.
В модулях ENFORA поддерживается прозрачный режим. Для этих целей используется команда [11]:
AT+CBST = A, B, C,
где A, B, C — параметры, задаваемые пользователем и определяющие: A — скорость передачи, B — имя, C — выбор режима (прозрачный, непрозрачный или оба режима с предпочтением одному из двух).
AT+CBST=71,0,0
означает прозрачный режим передачи данных на скорости 9600 бит/с (V110), без определения имени.
Рис 1. Внешний терминал ENFORA GSM1218
Подробно данная команда рассмотрена в [11]. (Все документы, без ограничений, доступны на сайте [8].)
Наименьшее время инициализации достигается при использовании на обоих GSM-терминалах протокола V110 в прозрачном режиме.
Следует учитывать, что при работе в прозрачном режиме снижается помехозащищенность передачи данных. Кроме того, ужесточаются требования по минимально допустимому уровню сигнала (около –60 дБм) [10].
Для передачи данных между двумя терминалами «точка-точка» в режиме GSM необходимо получить у оператора сотовой связи дополнительный номер для приема/передачи данных MSISDN.
Для того чтобы перевести модем в командный режим и работать с АТ-командами, необходимо выполнить команду +++.
После отработки этой команды модем переходит в режим offline, в котором становится доступным АТ-интерфейс.
Для конфигурирования пользовательских I/O применяется прикладная программа Enfora Event Tools. Никакого дополнительного оборудования для этого не требуется.
Работа с программой осуществляется в диалоговом режиме.
Под термином «события» понимаются состояния вводов/выводов, режим питания, связи и т. д. Для того чтобы представить себе потенциальные возможности, предоставляемые пользователям для перепрограммирования вводов/выводов, целесообразно привести варианты возможных значений входящих и исходящих событий.
Программа Enfora Event Tools позволяет сконфигурировать COM-порт (номер порта, скорость обмена, скорость передачи, четность, управление).
Все события могут быть дополнительно разбиты по отдельным группам, которые будут обрабатываться поочередно.
Кроме описанных единичных событий можно задать и множественные последовательные события. Например, «Состояние вводов/выводов» и «Сетевые IP-события».
Передача данных в режиме GPRS
Большинство продуктов других произ водителей позволяют работать с ус трой ством по IP через «внутренний» последовательный интерфейс, пользуясь лишь «внешним» IP-адресом, и только после того, как установлено внешнее GPRS-соединение с оператором. Таким образом, при потере соединения с GPRS-сетью или при изменении внешнего IP-адреса теряется связь с беспроводным устройством по IP через «внутренний» последовательный интерфейс.
Модули и терминалы Enfora могут работать в автоматическом и ручном режимах установления соединения с сетью GSM/GPRS.
Команда at$areg=1 обеспечивает автоматическую регистрацию в сети GSM.
Автоматическая GPRS регистрация зада ется командой: at%cgaatt=0,1.
Переключение в ручной режим задаетс я командой: at$areg=0.
Из специальных команд Enfora следует отметить команду $HOSTIF, определяющую тип подключения через последовательный порт, а также команды %CGPPP и %CGPCO, с помощью которых задаются необходимые параметры PPP-идентификации.
Просмотреть текущий IP-адрес и адрес DNS-сервера можно с помощью команды AT$NETIP. Следует учитывать, что устройство имеет динамический IP-адрес только в том случае, если активирован режим GPRS и установлена PPP-сессия с оператором.
Терминалы и модули ENFORA позволяют сконфигурировать несколько вариантов соединения с модемом через последовательный порт.
Например, может быть выбрана схема соединения с поддержкой стандартного PPP-протокола (Point To Point Protocol). Этот вариант широко используется, когда необходимо организовать передачу данных в асинхронном режиме. При этом для подключения к GPRS может быть использован стандартный интерфейс (Windows PPP interface).
Если устройство, подключенное к модему, не имеет TCP/IP-стека и не поддерживает протокол PPP, терминалы и модули ENFORA могут использоваться для подключения устройства к IP-сети в режиме, называемом «Сборка/разборка пакетов» (Packet Assembler / Disassembler — PAD). Подробно этот режим описан в [15].
Функция PAD позволяет конвертировать, упаковывать и передавать данные со стандартного последовательного интерфейса без специального протокола, необходимого внешнему устройству. Сопряжение с устройствами, не поддерживающими TCP/IP, реализуется с помощью команды AT$HOSTIF=<type>.
В режиме PAD терминал Enfora может быть сконфигурирован либо как клиент (active), либо как сервер (passive). В активном режиме предусмотрена возможность установления TCP-соединения по известному IP-адресу посредством команды ATDT<IP address>/<port>. В пассивном режиме терминал может ожидать внешнее TCP-соединение на заданном порту (см. описания команд AT$ACTIVE, AT$PADSRC).
Работа модулей в режиме GPRS подробно описана в документах [11, 15–18].
Ниже приведен пример настройки терминалов Enfora при отсылке информации в режиме GPRS на центральный сервер.
Настройка терминала GSM1208/1218 в режиме passive/server с отсылкой уведомлений (wakeup-пакетов) на центральный сервер
В данном примере рассматривается вариант использования модема в режиме TCP PAD passive/server (модем ожидает соединения с центрального сервера, после установления TCP-соединения модем принимает/передает данные).
Для построения стенда требуется следующее оборудование и ПО (рис. 2):
Рис 2. Стенд для тестирования режима TCP PAD passive/server
Последовательность действий по настройке стенда:
- Если на центральном сервере установлена операционная система Microsoft Windows XP, требуется временно отключить брандмауэр (снять настройку «Защитить мое подключение к Интернету») в свойствах соединения с Интернетом (рис. 3).
Рис. 3. В свойствах соединения с Интернетом нужно временно отключить защиту
- Далее необходимо подключиться к Интернету, как обычно.
- После успешного подключения, используя стандартную утилиту ipconfig, необходимо выяснить, какой ip-адрес в данный момент выдан центральному серверу. На центральном сервере в меню Windows, в строке запуска программ по имени Start ? Run, набираем «cmd.exe /K ipconfig /all» (рис. 4).
Рис. 4. Необходимо определить, какой ip-адрес в настоящий момент присвоен центральному серверу
- Выбираем UDP-порт, на котором центральный сервер будет ожидать wakeup-пакеты от модема Enfora. Допустим, выбран порт 5452.
- На центральном сервере запускаем утилиту netcat. В меню Windows, в Start ? Run, набираем «cmd.exe /K c:tmpnetcat — l — u — o c:tmptrafdump.txt — p 5452 — vv»
- На ПК, к которому подключен GPRS-модем Enfora, воспользовавшись терминальным ПО (например, HyperTerminal), производим предварительную настройку модема (табл. 1).
- Переводим модем в режим установки GPRS/PPP-соединения (рис. 5).
Рис. 5. Настройка модема в режиме passive/server, инициирование GPRS/PPP соединения
- После того как модем успешно соединился с сетью оператора (т. е. после установления PPP-соединения), на центральном сервере видим отправленные модемом уведомления (wakeup-пакеты), содер жимое которых позволяет определить присвоенный модему в сети GPRS-динамический ip-адрес, а также видеть индентификатор модема-отправителя (рис. 6).
Рис. 6. Модем отсылает уведомления после того, как установит GPRS/PPP-соединение, центральному серверу доступна актуальная информация об ip-адресе и индентификаторе модема
- Проверяем, доступен ли модем с центрального сервера. На центральном сервере в меню Windows, в Start ? Run, набираем «cmd.exe /K telnet 213.87.8.11 5000», где 213.87.81.7 — ip-адрес GPRS-модема (см. п. 7.2, рис. 6). После успешного установления TCP-соединения с сервера к модему, набираем: test test test<enter>
Рис. 7. Проверка установления TCP-соединения с модемом с центрального сервера через сеть Интернет
- Видим, что модем успешно работает в режиме TCP PAD (рис. 8).
Рис. 8. Набранная в telnet-сессии строка отображается в окне HyperTerminal’а — модем получил данные по TCP/IP, отбросил заголовки IP, затем передал данные хосту (через COM-порт)
RS-232 соединения
Прямой кабель используется для соединения DTE (например, компьютера) с DCE (например, модемом), причем все сигналы на одной стороне соединяются с соответствующими сигналами на другой стороне один на один (напрямую). Пересекающийся (нуль-модемный) кабель используется для непосредственного соединения двух DTE без промежуточного модема. Они пересекают передачу и прием сигналов данных между двумя сторонами, и есть много вариантов того, как другие сигналы управления подключены, ниже одни из них:
Прямое соединение (DB-9) | Нуль-модемное, кроссовое соединение (DB-9) | ||||||||
---|---|---|---|---|---|---|---|---|---|
(DTE) | (DCE) | (DTE) | (DTE) | ||||||
1 | DCD | ------- | DCD | 1 | 1 | DCD | DCD | 1 | |
2 | RxD | ------- | TxD | 2 | 2 | RxD | ------- | TxD | 3 |
3 | TxD | ------- | RxD | 3 | 3 | TxD | ------- | RxD | 2 |
4 | DTR | ------- | DSR | 4 | 4 | DTR | ------- | DSR | 6 |
5 | GND | ------- | GND | 5 | 5 | GND | ------- | GND | 5 |
6 | DSR | ------- | DTR | 6 | 6 | DSR | ------- | DTR | 4 |
7 | RTS | ------- | CTS | 7 | 7 | RTS | ------- | CTS | 8 |
8 | CTS | ------- | RTS | 8 | 8 | CTS | ------- | RTS | 7 |
9 | RI | ------- | RI | 9 | 9 | RI | RI | 9 |
Сигналы RS-232
Логическая форма сигнала RS-232 (8N1)
На рисунке выше показан типичный логический сигнал RS-232 (формат данных: 1 стартовый бит, 8 битов данных, без контроля четности, 1 стоповый бит). Передача данных начинается с начального бита, за которым следуют биты данных (LSB отправляется первым, а MSB отправляется последним) и заканчивается битом «Стоп».
Напряжение логической «1» (метка) находится в диапазоне от -3 В до -15 В постоянного тока, в то время как логическое «0» (пробел) находится в диапазоне от + 3 В до + 15 В постоянного тока.
RS-232 соединяет заземление двух разных устройств вместе, что является так называемым «несбалансированным» соединением. Несбалансированное соединение более восприимчиво к шуму и имеет ограничение расстояния 15 метров.
Шаг 2: Узнайте о протоколе
Протокол - это один или несколько наборов аппаратных и программных правил, согласованных всеми сторонами связи для правильного и эффективного обмена данными.
Синхронная и асинхронная передача данных
Синхронная связь требует, чтобы отправитель и получатель использовали одни и те же часы. Отправитель передает синхронизирующий сигнал получателю, чтобы получатель знал, когда «читать» данные. Синхронная связь, как правило, имеет более высокие скорости передачи данных и большую возможность проверки ошибок. Принтер - это форма синхронного общения. Асинхронная связь не имеет тактового сигнала или тактового сигнала. Вместо этого он вставляет стартовые / стоповые биты в каждый байт данных, чтобы «синхронизировать» связь. Поскольку для связи используется меньше проводов (без тактовых сигналов), асинхронная связь проще и экономичнее. RS-232 / RS-485 / RS-422 / TTL являются формами асинхронной связи.
Развертывание: биты и байты
Внутренняя компьютерная связь состоит из цифровой электроники, представленной только двумя условиями: ВКЛ или ВЫКЛ. Мы представляем их двумя числами: 0 и 1, которые в двоичной системе называются битами. Байт состоит из 8 битов, которые представляют десятичное число от 0 до 255 или шестнадцатеричное число от 0 до FF. Как описано выше, байт является основной единицей асинхронной связи.
Скорость передачи, биты данных, четность и стоповый бит
Скорость передачи - это скорость передачи данных, которая измеряет количество битовых передач в секунду. Например, 19200 бод - это 19200 бит в секунду.
Биты данных являются измерением фактических битов данных в пакете связи. Например, вышеприведенный рисунок показывает восемь (8) битов данных в пакете связи. Пакет связи относится к передаче одного байта, включая биты пуска / останова, биты данных и четность. Если вы передаете стандартный код ASCII (от 0 до 127), достаточно 7 бит данных. Если это расширенный код ASCII (от 128 до 255), то требуется 8 бит данных.
Четность - это простой способ проверки ошибок. Есть четные, нечетные, отметки и пробелы. Вы также можете использовать без паритета. Для четного и нечетного контроля четности последовательный порт устанавливает бит четности (последний бит после бита данных) в значение, чтобы гарантировать, что пакет данных имеет четное или нечетное число старших логических битов. Например, если данные равны 10010010, для четности четности последовательный порт устанавливает бит четности равным 1, чтобы сохранить количество старших логических битов четности. Для нечетной четности бит четности равен 0, поэтому число старших логических битов нечетно. Метка четности просто устанавливает бит четности на высокий логический уровень, а пробел устанавливает бит четности на низкий логический уровень, чтобы принимающая сторона могла определить, повреждены ли данные.
Стоповые биты используются для сигнализации об окончании пакета связи. Это также помогает синхронизировать различные часы на последовательных устройствах.
Рукопожатие (управление потоком)
Рукопожатие также называется «Управление потоком». Основное назначение Handshaking - предотвратить перегрузку приемника. Используя сигналы квитирования, получатели смогут сообщить отправляющему устройству приостановить передачу данных, если приемник перегружен. Существует три типа квитирования: программное квитирование, аппаратное квитирование и оба.
Программное обеспечение рукопожатия использует два управляющих символа: XON и XOFF. Приемник отправляет эти управляющие символы, чтобы приостановить передатчик во время связи. XON - это десятичное 17, а XOFF - десятичное 19 на графике ASCII. Недостаток программного рукопожатия заключается в том, что эти два управляющих символа нельзя использовать в данных. Это очень важно при передаче двоичных данных, так как вам может понадобиться использовать эти два кода в ваших данных.
Аппаратное подтверждение связи использует фактические аппаратные линии, такие как RTS / CTS, DTR / DSR и DCD / RI (для модема).
В связи DTE / DCE RTS (Запрос на отправку) является выходом на DTE и входом на DCE. CTS (Clear to Send) - ответный сигнал от DCE. Перед отправкой данных DTE запрашивает разрешение, устанавливая высокий уровень выходного сигнала RTS. Данные не будут отправлены, пока DCE не предоставит разрешение по линии CTS. DTE использует сигнал DTR (Data Terminal Ready), чтобы указать, что он готов принять информацию, тогда как DCE использует сигнал DSR для той же цели. DTR / DSR обычно включены или выключены для всего сеанса соединения (например, снята трубка), тогда как RTS / CTS включены или выключены для каждой передачи данных. DCD (Data Carrier Ready) используется модемом, когда установлено соединение с удаленным оборудованием, а RI (индикатор вызова) используется модемом для индикации сигнала вызова с телефонной линии.
Форматы данных (двоичные, шестнадцатеричные, декабрьские, октябрьские и ASCII)
Последовательные устройства используют Binary для связи, который состоит из двух уникальных чисел: 0 и 1.
Двоичный код - это система нумерации Base-2. Один байт данных состоит из 8 двоичных цифр от 0000 0000 до 1111 1111. Шестнадцатеричная система - это система base-16, которая состоит из 16 чисел: от 0 до 9 и букв от A до F (десятичное число 15).
Шестнадцатеричная система нумерации полезна, потому что она может представлять каждый байт в виде двух последовательных шестнадцатеричных цифр, и людям легче читать шестнадцатеричные числа, чем двоичные числа. Большинство производителей используют шестнадцатеричное в своей документации протокола. Преобразовать значение из шестнадцатеричного в двоичное просто. Просто переведите каждую шестнадцатеричную цифру в ее 4-битный двоичный эквивалент. Например. Шестнадцатеричное число F3 равно двоичному числу 1111 0011.
Десятичное число относится к числам в базе 10, которая является системой нумерации, которую мы используем чаще всего в повседневной жизни. Это не так просто, как шестнадцатеричное и восьмеричное в десятичное число, чтобы преобразовать десятичное число, но нам легче понять десятичное число.
Восьмеричное относится к системе нумерации base-8, которая использует только восемь уникальных символов (от 0 до 7). Программисты часто используют формат Octal, потому что люди относительно легко читают и могут быть легко переведены в двоичный формат: каждая цифра Octal представляет 3 двоичные цифры. Например. Восьмеричное число 73 соответствует двоичному числу 111 011.
ASCII (американский стандартный код для обмена информацией) - это кодировка символов, основанная на английском алфавите. Коды ASCII (как читаемые, так и нечитаемые) широко используются в коммуникациях, таких как модемная связь. Буквы от A до Z и цифры от 0 до 9 являются читаемыми кодами ASCII. Некоторые коды ASCII не читаются, такие как управляющие коды: XON и XOFF, которые используются в управлении потоком программного обеспечения.
В компания KS-is возможно купить адаптеры RS232 различных моделей и ценовых сегментов.
Примеры протокольных команд
Команда протокола представляет собой строку данных, отправленную с одного последовательного устройства (например, компьютера) на другое (то есть модем). Вот некоторые примеры:
Пример команды ASCII: ATI1 для запроса информации производителя модема. (Примечание: контрольные коды возврата каретки и перевода строки).
Преобразуйте приведенную выше командную строку в шестнадцатеричное, и она становится: 41 54 49 31 0D 0A
Преобразуйте приведенную выше командную строку в десятичную, и она становится: 065 084 073 049 013 010
Преобразуйте приведенную выше строку команды в восьмеричное, и оно становится: 101 124 111 061 015 012
Преобразуйте приведенную выше командную строку в двоичную, и она становится: 01000001 01010100 01001001 00110001 00001101 00001010
Шаг 3: Управляйте своими устройствами RS232 с помощью 232Analyzer
232Analyzer - это расширенный анализатор протокола последовательного порта, который позволяет вам контролировать / отлаживать, отслеживать / прослушивать последовательные устройства (RS-232 / RS-485 / RS-422 / TTL) прямо с вашего ПК. 232Analyzer является условно-бесплатной версией, БЕСПЛАТНАЯ версия имеет некоторые ограничения, но ее более чем достаточно для тестирования и управления вашими последовательными устройствами. Нажмите здесь, чтобы скачать бесплатную копию.
Расчет контрольной суммы
232Analyzer поставляется с калькулятором контрольной суммы, который позволяет вам вычислять сложный байт контрольной суммы в секундах, вот пример:
Предположим, что вы управляете проектором, и протокол проектора использует xOR для получения дополнительного байта контрольной суммы, строка команды для включения проектора: «1A 2B 3C» плюс байт контрольной суммы. Используйте следующие процедуры для вычисления байта контрольной суммы:
Выберите Hex в качестве формата операндов
Выберите xOr в качестве оператора
Введите строку команды и добавьте запятую (,) после каждого байта кода команды: например, 1A, 2B, 3C,
Нажмите на кнопку «Рассчитать», и вы получите результат 0D (0 опущен)
Выберите COM-порт и настройте форматы связи
В приведенном выше примере панели инструментов COM-порт, подключенный к проектору, был настроен следующим образом: COM-порт: 5, скорость передачи данных: 19 200 бит / с, бит данных: 8, четность: четный, стоп-бит: 1. Примечание. После того, как вы установили правильные форматы связи (они должны совпадать с настройками COM-порта проектора), нажмите кнопку «Подключить» слева, чтобы активировать COM-порт.
Настройки управления потоком
Управление потоком можно установить из окна выше. Можно выбрать «Программное обеспечение» (XON / XOFF), «Оборудование» (RTS / CTS), «Оба» («Программное обеспечение + оборудование») или «Нет».
Управляйте своими устройствами RS232 Контроль / мониторинг состояния линии
232Analyzer позволяет вам контролировать / контролировать состояние линий ваших COM-портов. Состояния линии RTS и DTR будут переключаться при нажатии на соответствующий светодиод, вы можете использовать измеритель напряжения для проверки изменений, вы должны получить от + 6 В до + 15 В, когда состояние линии включено, и от -6 В до -15 В, когда состояние линии ВЫКЛ. Другие состояния линии могут контролироваться через виртуальные D, такие как RX, TX, DSR, CTS, DCD и RI.
Команды отправки / получения
Примечания:
В бесплатной версии режим Hex недоступен. Вы можете использовать десятичный формат для отправки командной строки: «26,43,60,13»
Вы можете использовать любое устройство RS-232 для тестирования, если Вы знаете команды протокола.
Читайте также: