Концентратор данных на микроконтроллере 16F676

А. А. Шабронов    

 

 

В данной работе представлена схема, конструкция   и принцип   функционирования универсального концентратора данных    на микроконтроллере (МК) 16F676 в комбинации с передачей данных по интерфейсу RS485.  Рассмотрены схемные решения для двух интерфейсов  RS485 и 1WIRE. Представлена схема для формата интерфейса 1WIRE.

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

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

Работа выполнена в рамках Государственного задания 071-03-2023-001 от 19.01.2023.  

 

Ключевые слова:  16F676, FORTH, RS485,1WIRE     

 

 

1.  Введение

 

 

 Микроконтроллер (МК) 16F676 cоздан для широкого применения, доступен и выпускается уже более 20 лет [1]. Он работает с тактовой частотой от внутреннего RC-генератора в 4 мегагерца; имеет АЦП, универсальные входы, которые могут работать и с цифровыми, и с аналоговыми сигналами и поэтому выбран для данной реализации концентратора.

Задача концентратора (К) заключается в получении данных от устройств и датчиков данных, которые объединяются в шину и работают по принципу «запрос-ответ».   Сам К имеет свой адрес и так же работает по принципу «запрос-ответ». Последующие  К тоже включаются и запрашивают данные по принципу «запрос-ответ».

Рассмотрим схемные решения подключения  двух известных интерфейсов RS485 [2] и 1WIRE [3] .

 

2.  Схема подключения для RS485 на МК 16F676

 

Принципиальная схема согласования МК с устройствами обмена данными по интерфейсу RS485 представлена на рисунке 1.

Назначение элементов:

·         На входную шину К0 подключены элементы Q1(78L05) C1 для формирования напряжения питания +5 Вольт для концентратора. С1,2 выполняют фильтрацию помех по питанию.

·         Элемент U1(SR485) – специальная микросхема преобразования биполярных сигналов    интерфейса RS485 в уровни ТТЛ логики и положительной полярности. Выходные сигналы U1 объединяются через схему «монтажного ИЛИ», что позволяет использовать один вывод RA1 МК U2(16F676) и для передачи данных, и для приема.

·         Направление передачи для интерфейса RS485 шины К0 определяется выводом RA0 МК. 

·         Аналогичным схемным решением построены линии управления для выходных шин К1…4 Для соответствующих шин используются свои сигналы МК. Шина К1 использует выводы RC0, RC1 МК, шина К2 использует RC2, RC3, шина К3 использует RC4, RC5 и шина К4 использует RA4, RA5. 

 

 

Рисунок 1.  Схема концентратора для интерфейса RS485.

·         Для включения теста задействован вывод RA3, на который поступает сигнал +5 Вольт при нажатии тестовой кнопки S1.

·         Индикация состояния выполняется через вывод RA2 на светодиоде D3, который включен через ограничительное сопротивление R1.

Таким образом, обращаясь к схеме по шине К0 получаем доступ к шинам К1…4. Для получения данных без потерь на время переключения необходимо учитывать возможности первичных каналов и их скорость доступа. Данная схема работает в режиме синхронизации от внешнего сигнала для скоростей до 19800 килобод. Если планируется большая скорость обмена, то необходимо перейти к микроконтроллерам с большей тактовой частотой соответственно.

Далее рассмотрим способ подключения к интерфейсу RS485 интерфейса 1WIRE и вариант их объединения.

 

3.  Схема подключения для 1WIRE на МК 16F676

 

Принципиальная схема согласования МК с устройствами обмена данными по интерфейсу 1WIRE представлена на рисунке 2.

 

Схема построена по аналогичному входному согласованию уровней напряжений и схемному решению для шины K0 интерфейса RS485. Но далее есть отличия в связи использованием интерфейса 1WIRE. Рассмотрим отличительные особенности и элементы схемы:

·          Элемент U1(SR485) – специальная микросхема преобразования биполярных сигналов    интерфейса RS485 в уровни ТТЛ логики и положительной полярности подключена так, что не требуется двунаправленного вывода МК. Прием осуществляется по выводу RA3 от U1 или S1-кнопки тестов.  Передача выполняется от вывода RA0 меньшим количеством байт, поскольку сигнал для передачи DI замкнут на 0 Вольт.

 

 

 

Рисунок 2.  Схема концентратора для интерфейса 1WIRE

 

·         Вывод RA3 в МК U2(16F676) может работать только для приема, и он работает только в таком режиме данной схемы. На передачу в шину К0 используется RA0, который и формирует требуемые длительности сигнала.

·         Такой метод позволяет принимать любые байты от 0 до FF, а передаются только байты с постоянным нулем: FF, FE, FC, F8, F0, E0, C0, 80, 00. Вид данных сигналов представлен на рисунке 3.

 

Рисунок 3.  Используемые байты для передачи в концентраторе для интерфейса 1WIRE

·         Данное распределение выводов позволяет на других выводах МК создать три независимых канала интерфейса 1WIRE c индикацией и диагностикой состояния шин питания, данных и схемой «импульсной подтяжки» шины 1WIRE. 

·         Уменьшение количества доступных байт на передачу компенсируется увеличением  количества их передачи, что равносильно меньшей скорости передачи. Однако шина 1WIRE  так же относительно медленная и, кроме того, используемые датчики температуры DS18B20 имеют время минимального получения данных в 50 миллисекунд.  Эксплуатация данной схемы не создала заметных задержек в работе системы сбора данных [6].

·         «Импульсная подтяжка» шины 1WIRE компенсирует потери сигнала на емкость линии, что позволяет увеличить длину линии  и количество подключаемых датчиков без замены кабеля с лучшими характеристиками. Используется метод приведенный в [5].

·         Для выполнения «импульсной подтяжки» используются транзисторы Q2..4(2N7000), которые в «открытом состоянии» имеют сопротивление десятые доли Ома. Управление их открытием выполняется программой через вывод RC1 МК. Транзисторы открываются одновременно все, но «подтягивает» сигнал только работающая шина К1..К3.

·         Режим работы «импульсной подтяжки» задается программно. Если не предусматриваются «длинные линии», то допускается не паять эти транзисторы и не использовать «импульсную подтяжку».  Примерная оценка определяется из погонной емкости линии. Примерно, без «импульсной подтяжки» возможна работа для емкости линии до 35…40 нанофарад, с подтяжкой – работа до 60..70 нанофарад.

·         Примерно погонная емкость кабеля типа UTF-5 составляет 100 пикофарад на один метр. Соответственно 35000..40000 пФ/ 100пф= 350…400 метров составит доступная длина линии 1WIRE.    Однако, надо помнить и об помехах, вызванных индуктивностью для длинных линий, что сокращает примерно на 20..30% общую длину линии.

·         Поскольку схема имеет три независимых выхода, то и подключить можно 350..400метров к каждому выходу и тем самым значительно увеличить количество датчиков.

·         Резисторы R10,11,12 выполняют роль защиты при коротком замыкании по шине питания. Эти резисторы соответственно подключены и к выводам МК, которые работают в режиме АЦП RC0, RA2, RA4. Поскольку потребляемый ток для датчиков DS18B20  в рабочем режиме составляет доли миллиампера, и в режиме ожидания сотые доли миллиампера, падение напряжения на этих резисторах не превышает 0.1..0.2 вольта. В случае аварии ток будет ограничен и не приведет к аварийным ситуациям. В этом случае АЦП сообщит об аварии на соответствующей шине.

·         Индикация выполняется светодиодами D2,3,5 индивидуально для каждой выходной шины. Если программа обнаружит замыкание или по питанию +5 вольт, или по шине 1WIRE, включится соответствующий светодиод, который на плате расположен рядом с соответствующей шиной.  Таким образом поиск неисправности для персонала заключается в поиске постоянно горящих светодиодов. Если светодиод кратковременно вспыхивает, это означает что все исправно и возможная неисправность находится в другом месте.

·         Кнопкой S1 тест проверки позволяет определить наличие подключенных датчиков без использования программы верхнего уровня. Предусматривается ситуация монтажа по шине 1WIRE с одновременной проверкой монтируемых датчиков с помощью предлагаемой схемы и сигнализации исправности. В случае наличия на шине 1WIRE датчиков, они отвечают на сигнал RST (cброс), что и фиксируется с помощью трех светодиодов.  Применено следующее правило – загорелся один светодиод и затем второй или третий – это означает тест прошел. Если горит в режиме теста только один светодиод, это означает, что на линии датчиков нет, т.к., нет ответа.

·         В связи с использованием двунаправленной  передачи по одному проводу 1WIRE большое значение имеет стабильность напряжения и отсутствие импульсных помех. В схеме на все выходные шины К1..К3 по питанию +5 Вольт установлены фильтрующие конденсаторы с большой емкостью и защитные диоды для исключения возможных импульсных помех.

 

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

 

 

4.  Конструкция  концентратора

 

Все элементы концентратора расположены на печатной плате, которая имеет специальные пазы для установки на DIN-рейку.  На рисунке 4 показана слева 3d модель печатной платы для интерфейса 1WIRE с установленными элементами и справа - изготовленная печатная плата.

На рисунке 5 представлена фотография крепления плат концентратора на DIN-рейку.

 

 

 

 

 

 

Рисунок 4.  3d модель печатной платы концентратора и готовая печатная плата

 

 

Рисунок 5.   Печатная плата концентратора с креплением на DIN-рейку.

 

 

Принципиальная схема (файл rs_485_1w_16f676_berds_v1.dch) и печатная плата (файл rs_485_1w_16f676_berds_v1.dip) подготовлены в редакторе DIP-TRACE и могут извлекаться из тела программы [7]. Способ  извлечения представлен в описании аналогичной авторской программы [6].   Допускается использовать отечественные или зарубежные компоненты, а также  их аналоги.

 

 

5.  Программное обеспечение для концентратора

 

Для  концентратора на МК  16F676  подготовлено программное обеспечение на языке программирования FORTH [4]. Используется авторский FORTH-ACEМБЛЕР для семейства PIC 12/16,  который находиться так же в теле программы [7]. Извлекается способом приведенном  [6]. Файл assmb_pik12f_v1.f  содержит мнемоники всех команд МК и структуры компиляции и файл 1wire_16f676_asupport_v1.f  - это непосредственно  текст программы, которая компилируется в HEX-код.

При выполнении «извлечения» hex код формируется в отдельном каталоге 1wire_16f676_asupport_v1  и может быть использован сразу же для программирования МК.

Концентратор выполняет опрос данных для датчиков температур 1WIRE DS18B20 и соответствующие АТ-команды приведены в тексте.

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

Принцип получения данных основывается на построении АТ-команд, в которых необходимо установить соответствующие опции данных соответствующего устройства RS485.

Программа содержит пояснения и комментарии, и ее описание выходит за рамки данного изложения.

 

 

6. Заключение.

В предложенной  схеме  концентратора выполняется сбор данных от устройств интерфейса 1WIRE датчиков температуры DS18B20.

Для концентрации данных от устройств интерфейса RS485 предложена подобная схема с подобными возможностями.

Аварийные состояния при эксплуатации линии измерений диагностируются визуально по индикаторным светодиодам. Допускается замыкание шин +5 Вольт 1WIRE на общий провод для диагностики работоспособности.

Схема концентратора 1WIRE разработана и подготовлена по хозяйственному договору и используется на элеваторах в Новосибирской области.

 

Литература и источники Интернет

 

1.        Описание 16F676  https://elin.ru/files/pdf/1-Wire/app148ru_p.pdf

2.        Интерфейс rs-485:  http://www.bookasutp.ru/Chapter2_3.aspx

3.        Интерфейс 1WIRE: http://micpic.ru/articles/128-opisanie-interfejsa-1-wire.html

4.        Описание  языка Форт spf4.exe, автор  версии А.Черезов http://www.forth.org.ru/ 

5.        Патент «Одновибраторный компенсатор искажений импульсных сигналов, создаваемых погонной емкостью линии интерфейса 1wire»   N2771776 от 24 мая 2021г http://90.189.213.191:4422/temp/dp5_regen2_pt/

6.        Журнал «Современная электроника»  2022г№8 с.50 «Термометрия элеватора по системе «Power over Ethernet» https://www.soel.ru/rubrikator/inzhenernye-resheniya/ 

7.        Программа, схема и печатные платы концентратора: http://90.189.213.191:4422/doc_sh/nsb_berdsk_2022_elivator/test/

 

Шабронов Андрей Анатольевич

 Cтарший преподаватель кафедры ТЭ СибГУТИ, тел. +7-913-905-8839, e-mail: shabronov@ngs.ru

Data concentrator on microcontroller 16F676

A. A. Shabronov

This paper presents the scheme, design and principle of operation of a universal data concentrator on a microcontroller (MC) 16F676 in combination with data transmission via the RS485 interface. Circuit solutions for two RS485 and 1 WIRE interfaces are considered. A diagram for the 1 WIRE interface format is presented.

The main advantage is the ability to combine various data formats into a single data package for subsequent transmission and processing of information.

Additional advantages are the work on the principle of self–synchronization from the host computer, which makes it possible to abandon the quartz generator and the possibility of using the circuit power via a connecting cable due to low electrical energy consumption.

Keywords: 16F676, FORTH, RS 485.1WIRE