Strana 2 z 3

Re: UART protokol - dekodovanie

Napísané: 11 Máj 2022, 23:02
od používateľa peterple
A čo taký wireshark? Podľa mňa špičkový open tool na hackovanie protokolov. Používal som keď som lúskal IrDA. Ale vie lúskať hocičo. Evidentne aj CAN. Podporuje kde jaký USB - CAN prevodník. Nevidím v tom veľký problém. Dokonca to možeš lúskať aj offline. Tak že ti niekto s príslušným vybavením a vedomosťami odchytí komunikáciu do súboru.

Re: UART protokol - dekodovanie

Napísané: 14 Jan 2023, 18:30
od používateľa martin63
Ahojte. Celkom dost som pokrocil. Ale momentalne bojujem s jednou vecou a tou je, aka je zavislot medzi poslednym bajtom a tymi predoslymi. Ostatne bajty viem, co znamenaju, ale neviem prist na nejaky vzorec ako vypocitat tu poslednu hodnotu. Ma niekto na to nejake finty ako sa dostat k nejakemu vysledku?

Kód: Vybrať všetko

31 09 F6 46 00 00 00 00 01 01 01 89
31 09 F6 46 00 00 00 00 01 01 FF 77
31 09 F6 46 00 00 00 00 FF 01 FF 89
31 0F F0 45 01 00 7F 02 07 07 7F 02 04 08 04 02 7F FF
31 0F F0 45 01 00 7F 02 07 07 7F 02 04 08 04 03 7F FE
31 0F F0 46 00 00 00 00 07 07 FF FF FF FF FF FF FF 77
31 0F F0 46 00 00 00 00 FF 07 FF FF FF FF FF FF FF 8F
31 0F F0 46 01 00 00 00 07 07 FF FF FF FF FF FF FF 76
31 0F F0 46 01 00 7F 02 07 07 7F 02 04 08 04 03 7F FD
31 0F F0 46 01 00 7F 02 07 07 7F 02 04 7F 04 02 7F 8B
31 0F F0 46 01 00 7F 02 07 07 FF FF FF FF FF FF FF 0B

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 11:17
od používateľa solec
:)

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 12:22
od používateľa martin63
No daj, co ta tak pobavilo :applause:

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 13:55
od používateľa nighthunter
ten log mi pride skor ako neaka odnoz modbusu, nie CAN, 31 - adresat 09 - pocet bajtov, a na konci je jednoduche CRC mozno len sucet s pretecenim? kedze tie dve spravy co tam maju v datach rozdiel 02 a 03 maju v poslednom bajte rozdiel iba 1 teda FE a FF...
Nie je to nahodou komunikacia z neakeho FVE menica, pripadne zal. zdroja?

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 15:02
od používateľa solec
09 a 0F budí dojem počtu bytov, ale v MODBUS-e RTU je druhý byt funkcia, nasledujú 2byty adresy a 2byty počtu bytov ...
https://www.modbustools.com/modbus.html

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 17:37
od používateľa martin63
nighthunter napísal:
15 Jan 2023, 13:55
ten log mi pride skor ako neaka odnoz modbusu, nie CAN, 31 - adresat 09 - pocet bajtov, a na konci je jednoduche CRC mozno len sucet s pretecenim? kedze tie dve spravy co tam maju v datach rozdiel 02 a 03 maju v poslednom bajte rozdiel iba 1 teda FE a FF...
Nie je to nahodou komunikacia z neakeho FVE menica, pripadne zal. zdroja?
Nie nie, Je to komunikacia riadiacej jednoty z displeyom. Prenost dat prebieja cez CAN. Po spravnosti su tam 2xCAN. Jedna je na odosielanie dat z jednotky do displeja a druha je na prijimanie dat z displeja. Cize standardna CAN to nie asi nie je.

Tvoje myslienky su celkom spraven
31 - adresa (ID)
09 - pocet datovych bajtov (DLC)
F6 - kontrolny sucet (0xFF-DLC)
46 00 00 00 00 01 01 01 89 - datove bajty. Z toho posledny bajt je zatial neznamy ale viem, ze jeho hodnota zavisi na predoslych bajtoch

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 17:45
od používateľa martin63
Ak mam kratsie prikazy napr:

Kód: Vybrať všetko

00 02 FD 00 FF
08 02 FD 06 F1
tak posledny bajt si viem vypocitat ako napriklad (FD-08)+02-06. To ale plati pri prikazoch ako su vyssie. Ak je bajtov viac, tak to uz neplati. Neviem ale ci spostupujem spravne

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 17:49
od používateľa martin63
Dalsie ukazky prikazov, ktore su tiez spravne

Kód: Vybrať všetko

31 09 F6 0C 00 00 00 00 00 00 00 C2
31 09 F6 0C 00 00 00 00 00 00 01 C3
31 09 F6 0C 00 00 00 00 00 01 00 C3
31 09 F6 0C 00 00 00 00 00 01 01 C2
31 09 F6 0C 00 00 00 00 01 00 00 C3
31 09 F6 0C 00 00 00 00 01 01 00 C2
31 09 F6 0C 00 00 00 00 01 01 01 C3
31 09 F6 0C 00 00 00 01 00 00 00 C3
31 09 F6 0C 00 00 00 01 01 00 00 C2
31 09 F6 0C 00 00 00 01 01 01 00 C3
31 09 F6 0C 00 00 01 00 00 00 00 C3
31 09 F6 0C 00 00 01 01 00 00 00 C2
31 09 F6 0C 00 00 01 01 01 00 00 C3
31 09 F6 0C 00 01 00 00 00 00 00 C3
31 09 F6 0C 00 01 01 00 00 00 00 C2
31 09 F6 0C 00 01 01 00 00 00 00 C2
31 09 F6 0C 01 00 00 00 00 00 00 C3
31 09 F6 0C 01 01 00 00 00 00 00 C2
31 09 F6 0C 01 01 01 00 00 00 00 C3
31 09 F6 0C 01 01 01 01 00 00 00 C2
31 09 F6 0C 01 01 01 01 01 00 00 C3
31 09 F6 0C 01 01 01 01 01 01 00 C2
31 09 F6 0C 01 01 02 01 01 01 01 C0
31 09 F6 0C 01 02 03 04 05 06 07 C2
31 09 F6 0C 01 04 03 08 05 06 07 C8
31 09 F6 0C 02 01 01 01 01 01 01 C0
31 09 F6 0C 02 02 01 01 01 01 01 C3
31 09 F6 0C 02 02 01 03 01 01 01 C1
31 09 F6 0C 02 02 02 02 02 02 03 C1
31 09 F6 0C 07 06 05 04 03 02 01 C2

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 20:26
od používateľa nighthunter
a nebude to FF-(31+0C-(vsetky ostatne bajty s pretecenim iba na 1 bajt) tak mi to vychadza, kazdopadne teda iba na fyzickej vrstve je to CAN (dif. par).

Re: UART protokol - dekodovanie

Napísané: 15 Jan 2023, 20:50
od používateľa martin63
Mozes mi prosim ta definovat, co znamena pretecenie na 1 bajt? Pripadne priklad celeho zapisu vzorca? Dakujem

Re: UART protokol - dekodovanie

Napísané: 16 Jan 2023, 09:59
od používateľa solec
máš už jasnú túto vec:
" aký je tam CAN chip (alebo UART či ako ho voláš :D ) To 82C250 je len budič zbernice - daj tu schému "
čiže kde idú vývody Rx, Tx z 82C250 ?

Re: UART protokol - dekodovanie

Napísané: 16 Jan 2023, 10:27
od používateľa martin63
Vyvody Rx/Tx idu do MB90439S, co je mikrokontroler.
https://www.alldatasheet.com/view.jsp?S ... d=MB90439S

Re: UART protokol - dekodovanie

Napísané: 16 Jan 2023, 12:26
od používateľa solec
takže o žiadny CAN bus sa nejedná - tak len dešifrovať sériový protokol. Len mi nie je jasné, čo viedlo konštruktéra k použitiu 82C250 budiča - potreboval multimaster na zbernici ?? ten v CAN-buse slúži aj na potvrdzovanie framov iným členom na zbernici

Re: UART protokol - dekodovanie

Napísané: 16 Jan 2023, 13:46
od používateľa martin63
Na to ti uz neviem odpovedať. Snažím sa uz len dešifrovať ten posledny bajt. Kolega pisat, ze na to prisiel. Ale velmi tomu nerozumiem ako to myslel

Re: UART protokol - dekodovanie

Napísané: 16 Jan 2023, 17:55
od používateľa nighthunter
nighthunter napísal:
15 Jan 2023, 20:26
a nebude to FF-(31+0C-(vsetky ostatne bajty s pretecenim iba na 1 bajt) tak mi to vychadza, kazdopadne teda iba na fyzickej vrstve je to CAN (dif. par).
Klasicke spocitanie teda sucet, ak vsak pred scitanim mal byte hodnotu FF teda 255 a ja priratam +1 vysledok bude 0, ak priratam 2 vysledok bude 1, ak priratam 8 vysledok bude 7 atd. V hex to znamena ze i ked sme sa dostali o jeden rad vyssie zoberieme vzdy do uvahy ako vysledok iba najnizsi byte.

Re: UART protokol - dekodovanie

Napísané: 16 Jan 2023, 17:57
od používateľa nighthunter
solec napísal:
16 Jan 2023, 12:26
takže o žiadny CAN bus sa nejedná - tak len dešifrovať sériový protokol. Len mi nie je jasné, čo viedlo konštruktéra k použitiu 82C250 budiča - potreboval multimaster na zbernici ?? ten v CAN-buse slúži aj na potvrdzovanie framov iným členom na zbernici
Robi sa to pomerne bezne, C250 je budic na diferencialny par, teda prenos bude odolny voci ruseniu a zaroven zvysis pouzitelnu vzdialenost prenosu.

Re: UART protokol - dekodovanie

Napísané: 17 Jan 2023, 14:07
od používateľa solec
jasné, len som sa zamyslel, prečo nie nejaké LTC485, MAX485 a pod.

Re: UART protokol - dekodovanie

Napísané: 18 Jan 2023, 12:31
od používateľa martin63
nighthunter napísal:
16 Jan 2023, 17:55
nighthunter napísal:
15 Jan 2023, 20:26
a nebude to FF-(31+0C-(vsetky ostatne bajty s pretecenim iba na 1 bajt) tak mi to vychadza, kazdopadne teda iba na fyzickej vrstve je to CAN (dif. par).
Klasicke spocitanie teda sucet, ak vsak pred scitanim mal byte hodnotu FF teda 255 a ja priratam +1 vysledok bude 0, ak priratam 2 vysledok bude 1, ak priratam 8 vysledok bude 7 atd. V hex to znamena ze i ked sme sa dostali o jeden rad vyssie zoberieme vzdy do uvahy ako vysledok iba najnizsi byte.
Dakujem za vysvetlenie. Ale nech skusam ako skusam, tak tvoj postup mi nefunguje. Asi robim nieco zle.

Ak použijem tvoj postup, kde len sčítam bajty, tak mi to nevychádza

Pri tomto príklade by bol výsledok C4
31 09 F6 0C 00 00 00 00 00 01 01 C2

Re: UART protokol - dekodovanie

Napísané: 18 Jan 2023, 16:49
od používateľa Daevid
Z uvedenej vzorky mi to vychádza takto:

Kód: Vybrať všetko

31 09 F6 0C 01 02 03 04 05 06 07 C2
FF - 31 - 0C = C2
C2 xor 01 xor 02 xor 03 xor 04 xor 05 xor 06 xor 07 = C2

napr:

Kód: Vybrať všetko

31 09 F6 0C 01 04 03 08 05 06 07 C8
(FF - 31 - 0C) xor 01 xor 04 xor 03 xor 08 xor 05 xor 06 xor 07 = C8