Главная » Статьи » Сигнализация » Пожарная сигнализация
МАШ XPA (Схема, принцип работы)

Avtor+

Обзор модуля подключения адресных пожарных извещателей - МАШ  XPA6.
 
 Давно не добавлял материалов на сайт что в первую очередь связано с катастрофической нехваткой свободного времени, ну и немного с полным отсутствием стимуляции т.к. основные поисковые системы (Яндекс и Google) давно и похоже безвозвратно снизили рейтинг моего сайта по причинам мне неведомым.....
Ну да ладно, в конце концов - наши руки не для скуки а сайт создавался не ради рейтингов. В этой статье предлагаю изучить и попытаться подробно разобраться с модулем МАШ XPA6, его принципиальной электрической схемой, алгоритмом работы, используемым протоколом обмена данных с устройствами...

 Как известно модуль МАШ ХРА6 используется в составе системы адресной пожарной сигнализации АСПС "Бирюза" позволяя подключать к ней до 127 адресных устройств посредством кольцевого шлейфа XPA. В качестве подключаемых к МАШ адресных устройств могут выступать : дымовые адресные извещатели RF03-ДО, тепловые пожарные извещатели RF03-Т (ИП101-01-ВМ), ручные пожарные извещатели RF03-Р или адресные расширители МШ4. Причем все вышеперечисленные типы пожарных извещателей питаются от модуля МАШ XPA6 и обмениваются информацией с ним по двум проводам а расширителям МШ-4 требуется дополнительное отдельное питание для работы реле и контроля неадресных шлейфов находящихся на их бору. Полученные от адресных извещателей данные по интерфейсу XPA, модуль МАШ буферизирует их в своей памяти и передает контроллеру МК-1 по стандартному интерфейсу RS-485 объектовой линии передачи данных (ОЛС), также но в обратном порядке передаются команды управления адресными устройствами от контроллера "Бирюзы" МК-1. Таким образом МАШ XPA служит своеобразным буфером и мостом между адресными пожарными извещателями и контроллером Бирюзы. К одному контроллеру МК-1, актуальной на сегодняшний момент версии, можно подключить до восьми модулей МАШ XPA6, и контролировать таким образом более 1000 пожарных извещателей. В свою очередь контроллеры "Бирюзы" МК-1 можно объединять по магистральной линии связи (МЛС) с интерфейсом RS-485, но это уже тема для другой статьи...     
  Выпускаются модули МАШ XPA в виде платы красного или зеленого цвета
 Возможно я заблуждаюсь но платы с зеленой маской относятся к более старому исполнению, несколько лет назад производились модули МАШ v3 со скоростью обмена по RS485 - 19200 кбит/сек, или скорость обмена могла переключатся при помощи перемычки №4 JP2 на 57600 кбит/сек. Современные модули автоматически настраиваются на нужную скорость, поэтому на плате используются только перемычки № 1,2,3 JP2 - для установки адреса модуля МАШ XPA в объектовой линии. (Есть один нюанс, если скорость по ОЛС изменилась "на ходу", нужно отключить и подключить питание МАШ). Если вам в руки попал старый модуль, не работающий корректно на скорости 57600 кбит/сек, можно без труда самостоятельно перепрошить его на пятую версию, для этого производитель предоставил специальный файл, для прошивки не нужен специальный программатор, достаточно при помощи любого преобразователя интерфейсов USB - RS485 подключить МАШ XPA к компьютеру, в настройках указать используемый СОМ порт и запустить утилиту. Существует две версии утилиты в зависимости от типа используемого в МАШ процессора, этот вопрос обсуждался на форуме.
    Принципиальная схема модуля МАШ XPA:
Чтобы более точно попытаться разобраться в принципе работы модуля МАШ , я перерисовал его схему (кликнуть для увеличения):
 Про перемычки JP2 мы выяснили.
 JP1- предназначены для подключения согласующих резисторов к объектовой линии связи, они обычно устанавливаются на крайних устройствах линии, особенно это актуально на протяженных линиях RS485. На некрайних модулях ОЛС перемычки лучше снять, особенно это актуально при большом количестве модулей на линии.        
 JP3- отключает питание от повышающего преобразователя, который выполнен на микросхеме U1. На этом чипе собрана схема преобразующая питающие 12 вольт в напряжение необходимое для питания устройств (датчиков) адресного кольцевого шлейфа с интерфейсом XPA (около 30-и вольт). Причем в зависимости от нагрузки и соответственно от падения напряжения на резисторе R34 модуля, выходное напряжение может ступенчато увеличиваться за счет подтягивания выводов 4 или 5 микроконтроллера (U5) к общему проводу. Величина напряжения на линии XPA контролируется выводом 2 микроконтроллера.
 JP4- отключает шлейф XPA от повышенного преобразователем питающего напряжения.
Микросхема U3 преобразует интерфейс RS485 в UART, связывая его с микроконтроллером U5, который в свою очередь является сердцем системы. Понятное дело я пытался считать память микроконтроллера но она конечно защищена от чтения а у меня нет ресурсов чтобы преодолеть эту защиту. 
  ХР1 - разъем предназначенный для внутрисхемного программирования микроконтроллера PIC18F25..
  Q7 - сдвоенный полевой ключ, предназначен для разделения шины данных ХРА на две части и реализации функций кольцевой структуры шлейфа. Управляющие ключами сигналы формируются на выводах 11, 12 микроконтроллера.
  U4 - операционный усилитель в совокупности с обвязкой Т3, Т4 принимает данные от устройств кольцевого шлейфа и формирует необходимую для восприятия микроконтроллером форму сигнала. Принятый сигнал поступает на 6-й и 21-й вывод микроконтроллера. Почему задействовано два вывода остается только догадыватся.
  VT1, VT2, Т5 - цепочка участвующая в модуляции передаваемого микроконтроллером сигнала в шлейф XPA. Модулирующий сигнал поступает с 13-й ноги процессора. Здесь для меня остался непонятен вопрос почему напряжение, при передачи просаживается лишь примерно до 20 вольт, на сколько я понимаю, при открытии транзистора VT2, напряжение должно просесть до напряжения падения на двух p-n переходах, а это около одного вольта, да и транзистор VT2 в этом случае должен был быть помощнее. Вероятно здесь гдето порылась собака да и я не силен в схемотехнике (подскажите в комментариях).  
 Вывод 3 микроконтроллера вероятно использовался в первых версиях модулей или наоборот планировался использоваться вдальнейшем, для подключения датчика вскрытия корпуса или контроля величины питающего напряжения, в исследуемых мной экземплярах модулей МАШ XPA элементы в цепи этого вывода не распаяны
 Ну вот по схеме наверно и все, про пятивольтовый стабилизатор, индикацию, защитные диоды и прочие мелкие элементы я думаю говорить особо нечего.
 
     Протокол обмена данных "XPA"     ЧАСТЬ 1 (алгоритм):
 Теперь предлагаю разобраться каким образом по линии питания кольцевого шлейфа передается информация.
Если подключить к кольцевому шлейфу осциллограф, можно четко увидеть что напряжение питания, около 30 вольт, импульсами просаживается примерно на 7-9 вольт, эти импульсы и есть биты данных которыми обменивается оборудование в шлейфе по XPA протоколу далее следует разобратся где здесь нулики, де единицы и какие части чего значат.
 Для начала я конечно попытался найти информацию в интернете, но кроме того что протокол открытый , что амплитуда питания модулируется полезным сигналом и других общих фраз я не нашел полезной инфы, возможно конечно плохо искал да и в английском я не силен (кто найдет - тыкните носом, я добавлю ссылку на описание).
 Далее я попытался сам понять смысл этих импульсов, для этого нужна была минимальная посылка данных с максимально известной информацией, зашифрованной в ней.
  В дальнейшем мне немного помогло следующее открытие: если на адресный пожарный извещатель просто подать постоянное напряжение (конечно через токоограничивающий резистор)  то он , с периодичностью примерно в одну секунду начинал выдавать пачку импульсов уже известным нам способом (просаживая питание). Лично я, работая с "Бирюзой" с момента ее выхода на рынок, к моему стыду, узнал об этом только сейчас а до этого думал что извещатель все время работает на "прием" и лишь отвечает на запросы МАШ. Однако изолятор извещателя при таком подключении остается включенным (разомкнутым) поэтому если вы подадите питание на шлейф правильно подключенных датчиков, заработает только первый.
  Итак подаем через резистор в несколько сот Ом на извещатель напряжение 24 вольта (в принципе работать он начинает примерно от 16 вольт) в соответствии с полярностью, подключаем параллельно извещателю осцилограф и видим такую картину маслом:
  Немного поясню рисунок: первая осциллограмма- это пачка в более сжатом виде, остальные растянуты для лучшей детализации, минимальная длительность импульса в пачке везде около 1mS, длительность всей пачки может отличатся в зависимости от адреса и типа подключенного извещателя.

Начинать анализ данных интерфейса XPA без подключения к МАШ весьма удобно так как в этом случае мы точно знаем о том что с нами "общается" только извещатель с известным адресом, известным типом, известной версии, известными параметрами. Несмотря на столько "известных" , глядя на осциллограммы (при этом я их сохранял от разных типов датчиков с разными адресами в гораздо большем количестве чем на рисунке ), у меня возникло больше вопросов чем ответов.
  Существует несколько методов кодирования информации при использовании амплитудной модуляции, но забегая вперед сразу скажу что здесь используется обычная NRZ кодировка совместно с определенным канальным протоколом. Когда я понял эту тонкость, все стало на свои места и я корректно разложил эти "загогульки" на единички и нолики.
 
   Возможно этот абзац покажется кому-то через чур занудным, но я все-же остановлюсь более подробно на этом моменте. Для удобства предлагаю вам открыть и сохранить рисунок с осциллограммами на своем компьютере перед тем как продолжить чтение.  Давайте для примера рассмотрим осциллограммы "дип в3 адр17", что значит это сигнал дымового адресного пожарного извещателя RF03-ДО версии 3 с адресом 17 (значение АЦП на данном этапе для нас не имеют значения, т.к. как выяснилось позже в этом сообщении его нет), и "дип адр 24", что означает это сигнал того-же пожарного извещателя но адрес уже изменен на 24. 
Если принять низкий уровень линии за логический "0" а высокий за логическую "1", длительность импульса одного бита 1mS, то эти осциллограммы можно расшифровать как:
  0101100010001000100010011001000110  - для адреса 17
  01011000110000010100010011100100010 - для адреса 24
 На этом этапе уже можно заподозрить неладное из-за разного количества бит. Как известно число 17 можно представить как 00010001 или 0х11h, а число 24 как 00011000 или 0х18h. Хотя что касается адреса , все кажется совпадает и нужная последовательность двоичного кода, четко прослеживается начиная с шестого бита. Однако проанализировав кучу данных все оказалось не так "гладко" и местами логики не было. Еще казалось очень подозрительным что в последовательностях всех данных небыло посылок с более чем пятью одинаковыми битами подряд. Фишка оказалась в том самом канальном протоколе, когда к данным добавляется один противоположный незначащий бит, если в потоке данных имеется более пяти одинаковых бит подряд. В общем если в потоке имеется пять одинаковых бит, то при расшифровке, шестой надо просто пропустить. Таким образом рассмотренные ранее последовательности будут выглядеть так :
   0101100010001000100010011001000110  - для адреса 17
   0101100011000000100010011100100010 - для адреса 24
После этого открытия все стало подчинятся логике, все адреса стали совпадать а длина всех посылок стала 32 бита (4 байта) если не учитывать первый и последний нулевые биты (они возможно имеют значение стартового и стопового битов).
  На этом этапе уже можно было подключатся к модулю МАШ и исследовать обмен между оборудованием, но мне хотелось максимально понять остальную информацию (кроме адреса) зашифрованную в передаваемом устройствами шлейфа XPA блоке данных. Отбросив стартовый и стоповый биты и проанализировав множество данных удалось примерно разделить пакет данных на блоки, получается:
               1011 00011000 0001 0001 0011 10010001
    где:
1011     -   постоянный блок, возможно режим работы устройства (приамбула) (4 бита);
00011000 - адрес устройства (8 бит);
0001   - число передаваемых байт после адреса (не считая байта CRC) (4 бит);
0001 0011  - содержится информация о типе устройства и его версии (4+4 бит);
10010001 - контрольная сумма CRC-8 (8 бит).

Над контрольной суммой тоже пришлось немного поломать голову. Не смотря на то что исходя из анализа, с большой вероятностью можно было предположить что последние биты являются рассчитанной контрольной суммой, методы вычисления могли быть разными. Именно на этом этапе, методом научного тыка и при помощи очумелых ручек удалось подобрать метод расчета и понять что последний ноль в блоке данных не учитывается.
  Приведу очень кратко пример расчета:
к примеру имеется блок данных - 0101100000101000100100011011100110
отбрасываем незначащие крайние нули, получаем - 10110000010100010010001101110011
отделяем последние 8 бит контрольной суммы, остается - 101100000101000100100011
переводим этот блок в HEX  - B0 51 23
 вводим это значение в онлайн калькуляторе 
получаем ответ 0хCE h  (11001110) что и является реверсированным значением нашего последнего байта.


     Протокол обмена данных "XPA"     ЧАСТЬ 2 (инициализация):
 Когда формат обмена данных извещателя по протоколу XPA стал немного понятен, можно двигаться дальше. Подключаем пока один дымовой пожарный извещатель (ДИП)  к модулю МАШ ХРА и наблюдаем за обменом информации. А чтобы можно было понимать какая часть данных исходит от адресного устройства а какая от модуля МАШ ХРА, подключил два канала осциллографа к выводам 13 и 6 микроконтроллера. (красный - данные от МАШ, синий - данные от извещателя).
 Сразу после подключения ДИПа , модуль МАШ реагирует выдачей длинного (около 8mS) импульса,
 а спустя примерно 1 - 1.3 сек ДИП сам вещает в линию информацию о своем присутствии путем выдачи в линию блока данных в рассмотренном ранее формате, затем у извещателя и модуля МАШ завязывается диалог:    что будет означать : (далее все данные я буду отображать уже без незначащих битов)
ДИП (32 бита)-  10110000100000010001010000011010                  - пауза 8ms
МАШ (40 бит)-  0111000010000010000000010000000100101100  - пауза 8ms
ДИП (24 бита)-   010100001000000010111001                 - пауза 8ms
МАШ (32 бита)- 10010000100000010000001000100011     - пауза 8ms
ДИП (24 бита)  - 010100001000000010111001    
   если вы внимательно читали статью, то думаю поняли с каким адресом извещатель установлен в этом примере. Очень похоже на то, что МАШ в этом диалоге отправляет датчику какие-то две команды, а ДИП подтверждает их прием.
Затем длинная пауза и  ДИП переходит в режим циклической передачи пачек данных, с интервалом примерно 8 секунд (назовем этот режим - "дежурным"), но эти данные отличаются от первоначального блока и для этого-же датчика выглядят так:
1101000010000010000000010000011111001000   
(ДИП, адрес 8, дым 7%, светодиод-откл, изолятор-норма)

В этих блоках (после диалога) уже нет информации о версии и типе устройства, зато есть информация состояния его сенсора, изолятора, светодиода....
  В таком режиме извещатели кольцевого шлейфа работают самостоятельно, т.е. передают данные без синхронизации или каких-либо запросов со стороны МАШ. Модуль МАШ принимает всю информацию со шлейфа и вмешивается только в случае возникновения ошибок или при необходимости передачи команд управления этим устройствам. Такой режим конечно существенно снижает трафик (загруженность) линии но остается пока непонятным как адресным устройствам в шине XPA удается синхронизировать момент передачи данных чтобы не поругаться с соседями. Чтобы это понять надо подключить к кольцевому шлейфу несколько устройств и попытаться проследить последовательности обмена информацией....

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


Категория: Пожарная сигнализация | Добавил: yuriks75 http://oruki.ru (15.01.2018)
Просмотров: 314 | Комментарии: 5 | Рейтинг: 0.0/0
Понравилась статья ? Нажми чтобы посоветовать в гугле. >>
Всего комментариев: 5
2  
Структура посылки не совсем верна. Для посылки от датчика без МАШ выглядит так:
1. Преамбула (команда) - 4 бита
2. Адресс - 8 бит
3. Количество байт после адреса без CRC - 4 бита
4. Тип устройства и версия - 4 бита + 4 бита (В Вашем случае: тип 1-дымовой, версия 3)
5. CRC
Структура посылки прослеживается и в ответах датчиков и в запросах МАШ.

0
3  
Спасибо за поправочку и проявленный интерес к материалу. Обязательно подкорректирую в статье. А назначение четырех бит идущих после адреса случайно вам не известно ?

4  
Пункт 3. число передаваеммых байт после адреса, CRC не считается

0
5  
Теперь понял и добавил. Спасибо.

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

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Возможно вас заинтересует : 

Линйный дымовой пожарный извещатель "Луч-3" ( ИП212-08 ) (19511)[Пожарная сигнализация]
Съемник пожарного извещателя своими руками (6569)[Пожарная сигнализация]
Съемник колпаков пожарных извещателей (4581)[Пожарная сигнализация]
Охранная сигнализация на беспроводных датчиках (8517)[Системы ОПС]
Ремонт указателя направления эвакуации "Асто-12" (12345)[Пожарная сигнализация]
Зачем мне нужен сайт ? или Как создать свой сайт "чайнику" (26267)[Разное]
Выдвижная полка для сканера (13846)[Может пригодится]
Автономный пожарный извещатель (25734)[Пожарная сигнализация]
Windiws заблокирован вирусом (6956)


 
             Copyright http://oruki.ru/ 2012 -©- 2018 |