Применение интерфейса RS485.

Опыт использования интерфейса RS485 для систем распределенного сбора данных.


    Введение.

     При автоматизации узлов учета расхода жидкости и газа, а также при автоматизации поверочных установок для расходомеров и счетчиков мы часто сталкиваемся с проблемой сбора данных от датчиков, сильно разнесенных в пространстве. Система обычно должна была собирать данные о температуре, давлении и плотности от удаленных источников и обрабатывать их по соответствующему алгоритму. В качестве центрального процессора мы применяли обыкновенный офисный компьютер, как в силу своей распространенности, так и чисто по экономическим соображениям.
      От системы, в которой платы АЦП, счетчиков и дискретного ввода-вывода ставятся внутрь корпуса компьютера мы сразу решили отказаться. Во-первых, потому, что придется тянуть множество проводов от датчиков на большое расстояние (что вносит дополнительную погрешность в измерения), во-вторых, из-за ограниченного количества свободных слотов, и в третих - из-за низкой помехозащищенности.
      Было решено, что целесообразнее всего применить несложные контроллеры, которые устанавливались бы непосредственно возле датчиков, производили измерения и передавали данные в компьютер по каналу связи. Выгоднее всего оказалось применить в качестве канала связи последовательный интерфейс, так как для этого требуется более дешевый кабель с меньшим числом проводов, что в свою очередь облегчает задачу гальванической развязки.
      В начале наши системы строились на базе интерфейса RS232, но ряд ограничений, налагаемых применением интерфейса, таких как небольшая дальность передачи данных (10 метров) и трудность при построении многоточечной сети при наличии в компьютере одного свободного COM-порта привели нас к применению интерфейса RS485.
      Я не буду останавливаться подробно на вопросах, касающихся расчета канала связи - это описано в литературе [1]. Остановлюсь только на чисто практических аспектах применения данного интерфейса.

    Технические характеристики.

      Основные технические характеристики приведены в таблице 1.

Таблица 1.

Параметр
Значения
1. Тип линии связи симметричная
2. Выходное напряжение передатчика без нагр., В ± (1,5...6)
3. Выходное напряжение передатчика на нагр. Rn = 5 Om, В ± (1,5...6)
4. Ток короткого замыкания на общий провод, mA менее 250
5. Синфазное напряжение на выходе передатчика, В -1...+3
6. Синфазное напряжение на входе передатчика, В -7...+11
7. Чувствительность приемника, В ± 0,2 *
8. Входное сопротивление приемника, kOm более 12
9. Максимальная длина кабеля, м 1200
10. Максимальная скорость передачи, Мб/с 10 **
11. Число приемников, нагружаемых на один передатчик 32

      * В случае применения оптронной развязки чувствительность может оказаться ниже порядка 0,5 В из-за падения на переходе входного светодиода.
      ** В таблице приведены данные стандарта EIA RS485. Реальная скорость зависит от длины кабели и применяемых схем передатчиков и приемников.

      Передача полезного сигнала осуществляется изменением направления протекания тока (1 - в прямом направлении, 0 - в обратном, рис.1).

      В неактивном состоянии передатчик переводится в 3-е состояние с высоким импендансом. Обычно вход приемника и выход передатчика объединены вместе и связь осуществляется по двум проводам (витой паре). Кроме того, прокладывается и третий провод, так называемый дренажный проводник, который присоединяется к сигнальным землям каждого устройства. Допускается непосредственное присоединение сигнальной земли к точкам с нулевым потенциалом (корпусная земля) на устройстве, но только в случае гарантированного равенства потенциалов земли в местах размещения оборудования системы.
      Для большей помехозащищенности провода рекомендуется поместить в экран. Не следует использовать экран в качестве дренажного провода.
      Возможно увеличение дальности передачи числа устройств до 256 при применениии репитеров.

    Программная реализация.

      Клиенты сети подключаются простым подсоединением к витой паре с соблюдением полярности. В этом случае возможен конфликт, когда могут работать передатчики нескольких устройств. Он решиется чисто программными методами. Дело в том, что при реализации интерфейса RS485 существует главное устройство, именуемое хостом и устройства, которыми оно управляет - клиенты. Каждому клиенту обычно присваивается уникальный адрес. Клиенты изначально находятся в состоянии приема сигнала. Хост посылает в сеть команду, в начале которой указывается адрес клиента, которому она предназначается. Команда выполяется только в случае совпадения адреса клиента и адреса, указанного в самой команде. Остальные устройства находятся в пассивном состоянии.
      Стандарт EIA RS485 определяет только электрические и физические характеристики интерфейса. Программная же реализация определяется конкретным применением. В нашем случае удобнее всего было применить протокол обмена интерфейса RS232. Временная диаграмма передачи байта изображена на рис.2

      В этом случае с точки зрения программиста обмен между устройствами ничем не отличается от обмена по RS232, что позволяет использовать одни и те же драйвера.
      В наших разработках в основном используются промышленные модули снятия сигнала фирмы Advantech серии Adam4000. В этих модулях обмен осуществляется в ASCII-кодах. Команда передается в следующем формате: в начале идет символ - признак команды (обычно это один из редко используемых символов #, $, ~ и т.д), затем два байта - адрес модуля, к которому идет обращение. Далее следует код команды. Вся посылка завершается кодом CR - "перевод каретки"(0Dh). После выполнения команды модуль посылает ответ опрашивающему устройству, подтверждающий успешное выполнение или ошибку. Например, команда сброса счетчика по адресу 01 канала 1 модуля ADAM4080 будет выглядеть следующим образом:

Команда:     $01R1<CR>

Ответ:     !01<CR>

      Подобную систему команд мы применяем и для разработанных нами контроллеров.
      Построение команд способом, изложенным выше, позволяет использовать для контроля и настройки оборудования любую терминальную программу, не используя при этом специального программного обеспечения, например, терминал из Norton Commander'a версии 5.0.
     
      В дальнейшем будет описана аппаратная реализация.

      Свои отзывы направляйте по адресу: measure@chat.ru.

    Литература.

1. "В записную книжку инженера", журнал "СТА" N 3/97, стр.110-119.
2. Н.Курилович "Не только RS232!", журнал "Радио" N 9/99, стр.20-22.


на основную страницу