Какой модем способен перевести интерфейс RS232 серийно выпускаемого устройства в беспроводной режим работы?

№ 3’2006
PDF версия
Бурный рост беспроводных технологий, наблюдающийся в последнее время, побуждает многих разработчиков создавать устройства для беспроводной связи уже готовых, серийно выпускаемых приборов, изначально использующих интерфейс RS232 для сопряжения с компьютером. В качестве аппаратных средств, обеспечивающих подобную беспроводную связь, используются радиомодемы, имеющие интерфейс RS232. Однако различия в физических принципах обмена информации в радиомодемах и в проводных интерфейсах, каковым является, например, RS232, создают препятствия, преодолеть которые разработчикам, не сведущим в радиосвязи (и не желающим вдаваться в подробности), представляется отнюдь не тривиальной задачей. В статье рассказывается, по каким параметрам следует выбирать радиомодем, как его протестировать, как обеспечить «прямую видимость» антенн, используя некоторые дополнительные аппаратные средства, а также идет речь о некоторых нюансах в различиях протоколов обмена в модемах и самом интерфейсе RS232, которые необходимо учитывать для решения задач подобного рода.

Постановка задачи

Предположим, имеется серийно выпускаемое некоей фирмой устройство, выполняющее определенную функцию и сопряженное для обмена информацией с компьютером по интерфейсу RS232. К подобным устройствам, например, можно отнести небольшие устройства сбора, обработки, архивирования измеренной информации и передачи ее в компьютер по запросу последнего. В качестве примеров подобных устройств можно привести различные теплосчетчики, газовые корректоры и им подобные устройства, которые уже давно серийно выпускаются промышленностью и годами работают на предприятиях. Для передачи информации с устройства в компьютер уже разработаны и отлажены определенные протоколы обмена данными, запрограммированные в микроконтроллер устройства и использующиеся в программе для компьютера. Требуется «разорвать» провод связи по интерфейсу RS232, сопрячь устройство и компьютер с радиомодемами, имеющими интерфейс RS232 и удалить устройство от компьютера, например, на расстояние в 1 км. При этом программное обеспечение микроконтроллера прибора и компьютера изменять не допускается.

 

Предлагаемое решение задачи

Протоколы обмена информации устройства и модема

Для обеспечения достоверности и надежности информации, передаваемой из устройства в компьютер, для каждого устройства разработаны помехозащищенные протоколы обмена по интерфейсу RS232. Как правило, протокол обмена устроен таким образом, что по определенным командам, поступающим с компьютера в устройство, последнее передает информацию некоторыми порциями или пакетами. Длина такого пакета обычно составляет чуть более 256 байт. Пакет состоит из информационных данных, объем которых не превышает 256 байт, и служебной информации (несколько байт), в которую, в частности, включена длина пакета, контрольная сумма пакета и некоторая дополнительная информация. Принято, что для передачи количества информационных байт в служебной информации отводится не более одного байта (вот почему объем информационных байт не превышает 256). Таким образом, длина пакета может варьироваться от нескольких байт до 256 плюс несколько байт (например, 260–265).

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

Если посмотреть описания большинства радиомодемов, то в глаза сразу бросается несколько проблем. Первая связана с длиной передаваемого и принимаемого пакетов. Длина этих пакетов в модемах не превышает 256 байт. Это вполне можно объяснить: разработчики модемов используют такую длину пакета, поскольку она является, например, максимальной длиной пакета, которую способен передать радиотрансивер, входящий в состав радиомодема. Если, например, прибор передает в компьютер пакет размером в 260 байт, то радиомодем разбивает этот пакет на два, передает вначале 256 байт, а затем еще 4. Причем временная задержка между передачей первого и второго пакета может достигать таких значений, что компьютерная программа, принимающая пакет в 260 байт, может прервать свою работу по тайм-ауту, и, таким образом, обмен сорвется. Поэтому при выборе радиомодема необходимо внимательно отнестись к этой проблеме. К счастью, программное обеспечение некоторых достаточно «навороченных» радиомодемов справляется с этой проблемой. В них предусмотрен специальный буфер (размером намного больше, чем 256 байт, например, 512 или более), куда поступает принятая из эфира информация. Эта информация выдается в интерфейс только тогда, когда весь буфер (например в 260 байт) полностью принят. Причем эти 260 байт выводятся в интерфейс непрерывно и, таким образом, компьютерная программа «не чувствует» различия между приемом пакета с радиомодема и чистого интерфейса RS232 и не прерывает работу по тайм-ауту. А вот тайм-аут между приемом пакетов, как правило, в такой программе выбран достаточно большим, что объясняется относительно медленной реакцией прибора на команды компьютера.

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

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

Третья проблема связана с размером пакетов, передаваемых модемом непосредственно в эфир. Хороший модем должен предоставлять пользователю выбор объема в байтах такого пакета (не путать этот объем с объемом пакета, используемым прибором для передачи информации, о котором говорилось ранее). Дело в том, что чем меньше длина пакета передаваемого в эфир, тем больше вероятность его безошибочного приема. Если такой пакет принят с ошибками, то он передается и принимается еще раз (так, как правило, организована работа многих радиотрансиверов и программного обеспечения работы модемов). С другой стороны, чем больше длина пакета, тем меньше вероятность его безошибочной передачи, и в случае приема пакета с ошибками он должен быть повторно передан. Но, и в этом вся суть возможности выбора длины пакета пользователем, чем длиннее пакет, тем больше времени требуется на его повторную передачу и прием. Если это время превысит тайм-аут программы для компьютера, то программа остановит свою работу и сообщит об ошибке, в результате чего обмен сорвется. Выбирая экспериментально длину пакета, можно значительно улучшить надежность обмена. Если такого выбора в модеме не предоставляется пользователю, то к такому модему следует относиться с осторожностью. В большинстве случаев его лучше не использовать в приложениях подобного рода.

И, наконец, четвертая проблема, которую хотелось бы отметить, — это предоставляемая пользователю возможность выбрать скорость передачи/приема в эфире и интерфейсе. А эти скорости могут отличаться. Пусть, например, компьютерная программа и устройство обмениваются информацией по интерфейсу RS232 на скорости 9600 бод. Не факт, что скорость обмена информацией приемного и передающего модема в эфире должна соответствовать также 9600 бод. Дело в том, что чем ниже скорость обмена в эфире, тем больше расстояние, на которое могут быть разнесены модемы при одинаковой надежности обмена информацией и наоборот. Но, с другой стороны, если скорость обмена информацией в эфире меньше скорости на интерфейсе, увеличивается время задержки между приемами пакетов. Если это время превысит тайм-аут программы для компьютера, то обмен сорвется. Экспериментально подбирая скорость обмена в эфире, можно добиться компромисса между расстоянием и надежностью обмена. Поэтому этот фактор также следует принимать в расчет. Как правило, хороший модем позволяет выбирать и скорость обмена по интерфейсу, и скорость обмена в эфире.

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

Устройство тестирования модема

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

Для проверки функционирования модемов автор рекомендует изготовить (пусть даже на макетных платах) нехитрое устройство, схема которого приведена на рис. 1.

Плата сопряжения модема с компьютером

Рис. 1а. Плата сопряжения модема с компьютером (№ 1)

Плата сопряжения модема с AT89С2051

Рис. 1в. Кабель связи с компьютером

Как видно из рис. 1а, б, устройство состоит из двух плат: № 1 и № 2. Первая плата предназначена для сопряжения модема с компьютером по интерфейсу RS232. В схеме используется достаточно надежный преобразователь интерфейса ADM3202. Питание (+5 В) на плату подается через двухконтактный разъем X3. Для индикации включения питания используется светодиод VD1. Сигналы интерфейса TxDC и RxDC подаются на плату через разъем X2, к которому подключается кабель связи с компьютером (COM1). Модем, показанный на плате условно, устанавливается в панельку; к нему подходят сигналы RxDTTL и TxDTTL уже TTL уровня. На схеме можно заметить еще один разъем X1, служащий для прямого соединения двух плат между собой для проверки совместной работы программ компьютера и микроконтроллера. В таком режиме работы плат модемы, естественно, вытаскиваются из панелек.

На плате № 2 в панельке установлен второй модем, также показанный условно; к нему подходят сигналы TxDA и RxDA с микроконтроллера AT89c2051 (DD1). Разъем X1, как и в плате № 1, служит для прямого (безмодемного) соединения двух плат между собой. Питание (и «земля») на плату № 2 в таком режиме работы плат поступает с 3 и 4 контактов разъема X1. При работе плат с модемами к контактам 3 и 4 подключается отдельный блок питания.

Кабель связи с компьютером, показанный на рис. 1в прямоугольнике, очерченном пунктиром, представляет собой обычный плоский ленточный кабель, в котором чередуются сигнальные и «земляные» шины. Цепочка R1-C3, подключенная к выводу RST микроконтроллера, обеспечивает его сброс/запуск при включении питания.

Программы для микроконтроллера и компьютера выполняют следующие действия. Программа для микроконтроллера выводит 150 пакетов (строк) по 260 байт каждый. После вывода очередной строки микроконтроллер ожидает приема от компьютера символа (‘@’ — 40h), означающего, что пакет принят компьютером, и после поступления такого символа выводит следующий пакет. Компьютер, приняв строку из 260 байт (символы русского и латинского алфавита), выводит ее на экран монитора, и посылает в интерфейс символ ‘@’. В программе для компьютера предусмотрен тайм-аут, при превышении которого выдается сообщение о сбое, после которого программа заканчивает работу.

Скорость обмена в программах установлена в 9600 бод. Текст программы для компьютера (tstmodem.cla), написанной на языке Clarion v. 3.100 и работающей в ОС MS-DOS, приведен ниже. Далее приведен файл-проект для трансляции программы: tstmodem.pr. Вслед за ним приведен текст программы для микроконтроллера на макро-ассемблере. Программы достаточно просты и в комментариях (кроме тех, что приведены в текстах) не нуждаются.

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

 

Обеспечение прямой видимости антенн

Как правило, все производители радиомодемов настоятельно рекомендуют использование направленных антенн, расположенных таким образом, чтобы обеспечивалась прямая видимость. Это неудивительно, поскольку эта рекомендация отражает физическую сущность радиопередачи в диапазоне ВЧ и СВЧ. Однако обеспечить прямую видимость антенн не всегда удается, используя только кабель интерфейса RS232 или фидер, высокочастотный кабель, соединяющий модем с антенной. Дело в том, что расположение объектов, в том числе зданий на территории, где используются модемы, в подавляющем большинстве случаев не позволяет обеспечить прямую видимость антенн. Если прибор (например, газовый корректор) расположен где-нибудь в подвале (а именно там проходят все газовые магистрали), а компьютер находится в здании (скажем, на 2 этаже), да еще с другой его стороны (надеюсь, понятно, о чем идет речь), то единственным способом обеспечить прямую видимость антенн является их установка на крышах обоих зданий. Но, предположим, расстояние от корректора, расположенного в подвале, до крыши и расстояние от компьютера до крыши превышает длину фидера (как правило, менее 10 м) и максимальную длину кабеля связи прибора и компьютера с модемами, составляющую по стандарту RS232 не более 15–20 м. Что можно предпринять в такой ситуации?

Одно из решений, предлагаемое автором, — «удлинить» интерфейс RS232, преобразовав его в интерфейс RS485/RS422 с помощью двух одинаковых и достаточно простых устройств. Как известно, длина кабеля связи для интерфейса RS485 может достигать 1200 м. Принципиальная схема подобных устройств — преобразователей интерфейса RS232 в интерфейс RS485 и обратно — была опубликована в [1]. В настоящей статье также приведены примеры несколько модифицированных устройств, использующихся для аналогичных целей.

Конструкция модема

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

Во-вторых, модем должен иметь крепежные отверстия (или свободные места, где их можно просверлить), с помощью которых его можно достаточно прочно прикрепить к основной плате (например, винтами к стойкам с просверленными вдоль них отверстиями с нарезанной резьбой). Кроме того, желательно, чтобы к модему уже был бы припаян разъем для соединения с фидером (например, типа SMA).

 

Результаты решения задачи

Пример использования модема для беспроводного сопряжения газового корректора Corus с компьютером по интерфейсу RS-232

В качестве демонстрации применения вышеописанных рассуждений на практике далее приводится пример использования модема для беспроводного сопряжения газового корректора Corus с компьютером по интерфейсу RS232. Вначале несколько слов о выборе модема. Были проверены и протестированы три модема (правда, в разное время), два из которых — отечественного производства и один импортный. Два из них были отбракованы, так как не прошли тест, о котором упоминалось выше. Единственный модем, с успехом прошедший тест и, тем самым, подходящий для нашего приложения — отечественный. Кроме того, его свойства, как читатель смог уже догадаться, удовлетворяют всем параметрам, указанным ранее.

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

 

Технические характеристики Corus-модем

Как уже упоминалось выше, комплект устройств Corus-модем предназначен для беспроводной передачи информации с газового корректора Corus в компьютер по радиоканалу и позволяет производить обмен информацией между компьютером и газовым корректором по радиоканалу в нелицензируемом диапазоне частот 433…435 МГц на расстоянии до 1 км при использовании направленных антенн, находящихся в условиях прямой видимости. Для работы устройств используются стабилизированные источники питания +5 В 0,2 А и +9 В 0,2 А. Для того, чтобы обеспечить требуемую функциональность, был разработан комплект связи, в состав которого входят три устройства: устройство AT_COMP, предназначенноe для сопряжения компьютера с ОЕМ-модемом по интерфейсам RS232 и RS485; устройство AT_CORUS, предназначенноe для сопряжения газового корректора Corus Actaris с ОЕМ-модемом по интерфейсам RS232 и RS485 и устройство RS485_2 — двунаправленный преобразователь интерфейсов RS232-RS485, предназначенный для сопряжения компьютера с AT_COMP по интерфейсу RS485, а также для сопряжения газового корректора с AT_CORUS по интерфейсу RS485. Кроме того, для обеспечения функционирования системы понадобятся два ОЕМ-модема, направленные антенны для диапазона частот 433…435 МГц, а также вспомогательные комплектующие: необходимые для соединения устройств кабели и разъемы, а также блоки питания с выходными стабилизированными напряжениями +5 В и +9 В. Варианты подключения устройств приведены на рис. 2. Рассмотрим по очереди устройства, входящие в комплект.

Варианты подключения устройств

Рис. 2. Варианты подключения устройств

Устройство AT_COMP

Общий вид основной платы устройства AT_CORUS

Рис. 3. Общий вид основной платы устройства AT_CORUS

Устройство AT_COMP заключено в пластиковый корпус и состоит из двух плат: основной платы, на которой расположены все необходимые разъемы и клеммы для подключения кабелей, и платы OEM-модема, подключаемой к основной плате специальным разъемом и прикрепленной к ней винтами (рис. 3). Для выбора проводного интерфейса — RS232 или RS485 — на плате имеются перемычки. Кроме того, на плате расположены клеммники для подключения кабелей сопряжения по интерфейсам, разъем питания, а также штыревой разъем для подключения платы OEM-модема. Сердцем платы является микроконтроллер AT89C2051 (DD5), установленный в панель и в который «зашита» программа функционирования всего устройства. Принципиальная схема сопряжения устройства с компьютером по интерфейсам RS232 и RS485 (подключение необходимых кабелей и установка джамперов) показана на рис. 4.

Схема соединения компьютера с устройством AT_COMP по интерфейсу RS232
Рис. 4. Схема соединения компьютера с устройством AT_COMP по интерфейсу RS232

Устройство AT_CORUS

Фотография общего вида устройства AT_CORUS со снятой крышкой корпуса

Рис. 5. Фотография общего вида устройства AT_CORUS со снятой крышкой корпуса

Устройство AT_CORUS рзаключено в корпус и состоит из двух плат: основной платы, на которой расположены все необходимые разъемы и клеммы для подключения кабелей, и платы OEM-модема, подключаемой к основной плате специальным разъемом и прикрученной к ней винтами через специальные стойки. Внешний вид устройства приведен на рис. 5. Как и ранее рассмотренное устройство, AT_CORUS имеет клеммники для подключения кабелей сопряжения по интерфейсам RS232 и RS485, разъем для подключения OEM-модема и внешнего источника питания. Здесь также вся функциональность реализована на базе микроконтроллера AT89C2051. Принципиальная схема сопряжения устройства с компьютером по интерфейсам RS232 и RS485 (подключение необходимых кабелей и установка джамперов) приведена на рис. 6.

Схема соединения газового корректора с устройством AT_CORUS по интерфейсу RS232

Рис. 6. Схема соединения газового корректора с устройством AT_CORUS по интерфейсу RS232

Устройство RS485_2

Устройство RS485_2 представляет собой двунаправленный преобразователь интерфейсов RS485 и RS232. Оно предназначено для обеспечения большей дальности линии связи между устройством AT_COMP и компьютером, а также между устройством AT_CORUS и прибором CORUS до 1200 м (см. варианты подключения устройств на рис. 2). Устройство RS485_2 расположено в корпусе и представляет собой плату, на которой по краям находятся необходимые клеммники для подключения кабелей и подачи напряжения питания с внешнего источника. Внешний вид устройства показан на рис. 7.

Фотография устройства RS485_2 со снятой крышкой корпуса

Рис. 7. Фотография устройства RS485_2 со снятой крышкой корпуса

 

Заключение

Представленный читателю материал не претендует на полноту охвата темы, поскольку автор не является специалистом в области радиосвязи и конструирования радиомодемов. Правда, в настоящее время фирмы-производители радиотрансиверов прилагают все больше усилий для того, чтобы сконструировать радиомодем смог и специалист по микроконтроллерам, не обладающий специальными знаниями в области связи. В связи с этим автор хотел бы упомянуть одну из новейших разработок компании Chipcon — радиотрансивер CC1110 с интегрированным мощнейшим 8051-совместимым микроконтроллером, который, насколько это известно автору, появится в продаже к концу текущего года [2, 3].

Надеюсь, что эта статья поможет специалистам более обоснованно подходить к выбору радиомодемов для своих разработок. Автор был бы благодарен за ваши замечания, предложения и вопросы.

Литература
  1. Кузьминов А. Современные аппаратные средства связи микроконтроллера с компьютером по интерфейсу RS232 // «Компоненты и технологии». 2006. № 5.
  2. www.chipcon.com
  3. www.ti.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *