alarmcentrale - welk serieel protocol is dit?

Hallo allemaal,

Onder het motto, niet geschoten altijd mis:
Ik heb een oude alarmcentrale liggen. Het gaat om een oude aritech advisor CD91. Dit systeem heeft een centrale welke bediend wordt via een remote bedien paneel.

Ik was eens benieuwd of ik dit paneel voor andere toepassingen kon misbruiken. Naar mijn idee zijn deze panelen 'dom' dat wil zeggen dat alle tekst op het display vanuit de centrale komt. In de eeprom van de centrale zijn dan ook alle mogelijke teksten terug te vinden.

De panelen zijn aangesloten op een bus waarbij max 16 onderdelen aangesloten kunnen worden. De bus bestaat uit 4 draden: voeding, ground, 1x data vanaf centrale naar paneel, en 1 keer data vanaf paneel naar centrale.

Om te kijken of hier wat mee aan te rommelen valt ben ik eens benieuwd of ik kan uitlezen wat er verstuurd wordt. Echter heb ik geen idee wat van protocol gebruikt wordt. Wellicht dat iemand het herkent. Het is in ieder geval geen normale rs232.

Ik heb met een arduino als logic analyzer wat stukjes signaal gevangen en geplot. pin 8 is de data uit de centrale, pin 9 uit het paneel. De centrale geeft continu een stroom data, het paneel alleen op korte intervallen. Wat mij opvalt is dat de centrale telkens afwisselend lange en kortere symbolen verstuurd.

Iemand die toevallig kan herkennen of achterhalen wat dit voor een protocol zou moeten zijn, of in welke richting ik wat kan proberen? Ik heb geen idee hoever ik hiermee kom, maar het lijkt me eens leuk om te proberen.

Spanning staat en stroom gaat!
High met Henk

Special Member

Op 17 juni 2020 05:55:49 schreef meander:
... Het is in ieder geval geen normale rs232.

...

Hoe heb je dat getest??
Het ziet er wel als zoiets uit..
Let op rs232 op ttl niveau kun je niet zo op een pc aansluiten natuurlijk.

Ben met je eens dat de berichten langer lijken dan 8 bits, maar zou het toch eens proberen.
Wordt wel gokken met startbit, baudrate, stopbits en parity inderdaad..

E = MC^2, dus de magnetische compatibiliteit doet kwadratisch mee???

Ah nu is het mij duidelijk. Ik heb de broncode uit de link van Peter112 eens doorgenomen. Het is dus wel degelijk rs232 / uart maar dan met een afwijkende baudrate (volgens die code 1953 bps).

ik had mijn arduino al eens gebruikt als seriele poort, en met een een paar transistoren een level shifter gemaakt om zo het signaal te kunnen tappen. Alleen ik kreeg hier niks zinvols uit, geen wonder met die baudrate.

Ik heb nu mijn arduino er aan hangen en gebruik de software serial om de afwijkende baudrate te kunnen lezen. Ik stuur het daarna door naar de pc voor verdere analyze. (kon zo snel niet voor elkaar krijgen dat de pc de afwijkende baudrate accepteert).

Die code uit die link is erg zinvol, aangezien je er het protocol uit kan halen. Daar moet iemand wat tijd ingestoken hebben om dat te ontcijferen.

Spanning staat en stroom gaat!

Even ter lering en vermaak....

je hebt een logic analyser... Meet de kortste pulse die je op het oog ziet.... (in het eerste plaatje bijvoorbeeld zie ik er een) stel je meet dat die 512 microseconde breed is. Dan doe je 1/512us = 1953 bits/sec.

Ik weet niet of jou logic analyser dat kan, maar ik zou dan even een "serial analyser" op het kanaal hangen, en de baudrate op 1953 instellen. Dan laat de mijne zien waar ie de bitjes sampled en per 8 bits laat ie zien wat het karakter is wat ontvangen is.... (*)

Doordat ik uitgerekend heb hoe lang 1 bitje is, denk ik ondetussen te weten dat de nominale baudrate niet 1953 maar 1953.125 is... :-) (niet dat je het zo nauwkeurig moet weten, maar goed...).

Die 512 us per bitje is een mooi deeltal van dingen als 1MHz dat je als klokfrequentie zou kunnen hebben van processortjes die op die bus zitten.

(*) Ik had laatst zelf wat gemaakt, en dat werd maar niet correct ontvangen. Blijkt dat ik het deeltal in de uart niet goed had ingesteld. Dus ook ZELF op deze manier m'n baudrate zitten reverse-engineeren.... en dan correctie-factor uitgerekend en toegepast. Doordat ik de correctiefactor op 1.1250000 heb afgerond vermoed ik dat ik het nu gewoon precies goed heb gedaan. De docu zegt dat de uart bit rate wordt afgeleid van "HCLK" en dat is een clock in het systeem waarvan ik niet direct weet op welke frequentie ie draait. Ik zou het vast kunnen uitzoeken.

[Bericht gewijzigd door rew op 17 juni 2020 12:24:02 (25%)]

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
bprosman

Golden Member

In mijn soortgelijk alarm systeem is de "Physical layer" RS485, heb er ook wel eens een monitor kort opgehad maar kon er toen geen chocola van maken, waarschijnlijk ook door de afwijkende baudrate.

Wat ik wel merkte is dat als ik wat verkeerd deed met de belasting van de lijn het alarm wel in een alarm-status sprong (tampering).

De jongere generatie loopt veel te vaak zijn PIC achterna.

Oh! Netjes!

Op zich is het denkbaar dat als je een "pand" beveiligd het wel eens gebeurt dat de "bad boys" net dat ene plekje weten te vinden waar zo'n bekabeling voor hun beschikbaar is. Als je centrale dan alarm slaat als de belasting "een beetje" verandert, dan... als je aan het klussen bent moet het systeem uit staan of bij iedere nieuwe bus-belasting even gereset worden. Maar als jij ligt te slapen en de inbrekers sluiten een afluister/injecteer module aan, dan is dat alarm wel gewenst denk ik....

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Die logic analyzer stelt niet heel veel voor. Het is niks meer dan een arduino die veranderingen van signalen vastlegt en doorstuurt naar de pc. op de pc wordt met het programma 'processing' een plot gemaakt. (https://create.arduino.cc/projecthub/vincenzo-g/diy-logic-analyzer-f61…)

Dus veel functionaliteit heeft het niet, maar goed genoeg om even een signaal te vangen en te bekijken. Met mijn oude analoge scope gaat dat zo lastig.

Heb inmiddels al een beetje door hoe de boel werkt. De centrale stuurt berichten met daarin de ID van de keypad gevolgd door enkele commando's en/of tekst. De keypad reageert op zijn eigen ID (in te stellen met switches) en print de tekst of veranderd de status van de ledjes en uitgangen.

De keypad stuurt periodiek 4 bytes aan data terug, met daarin o.a. zijn ID, de toetsaanslag die al dan niet gedaan is en verder de status van zijn input zones. (op de keypad kan je 4 alarmzones aansluiten en 1 output).

Wat alle commando's precies doen weet ik nog niet, maar ik kan weer even vooruit met uitproberen denk ik.

Spanning staat en stroom gaat!
Shiptronic

Golden Member

Op com poort aansluiten en wat met een terminal progje spelen, baudrates en 7/8 bit even/od.

dan zie je vast een keer iets voorbij komen, baudrate kan je evt. met en scoop vast stellen.

Zo pas ook de instellingen van mijn VW T-Roc CAN-bus gevonden :)

Wie de vraag stelt, zal met het antwoord moeten leren leven.