UART protokol - dekodovanie

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: UART protokol - dekodovanie

Príspevok od používateľa peterple » 11 Máj 2022, 23:02

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.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 14 Jan 2023, 18:30

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
0

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: UART protokol - dekodovanie

Príspevok od používateľa solec » 15 Jan 2023, 11:17

:)
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 15 Jan 2023, 12:22

No daj, co ta tak pobavilo :applause:
0

nighthunter
Okoloidúci
Okoloidúci
Príspevky: 48
Dátum registrácie: 11 Jan 2009, 00:00
Bydlisko: Zilina

Re: UART protokol - dekodovanie

Príspevok od používateľa nighthunter » 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?
0

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: UART protokol - dekodovanie

Príspevok od používateľa solec » 15 Jan 2023, 15:02

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
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 15 Jan 2023, 17:37

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
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 15 Jan 2023, 17:45

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
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 15 Jan 2023, 17:49

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
0

nighthunter
Okoloidúci
Okoloidúci
Príspevky: 48
Dátum registrácie: 11 Jan 2009, 00:00
Bydlisko: Zilina

Re: UART protokol - dekodovanie

Príspevok od používateľa nighthunter » 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).
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 15 Jan 2023, 20:50

Mozes mi prosim ta definovat, co znamena pretecenie na 1 bajt? Pripadne priklad celeho zapisu vzorca? Dakujem
0

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: UART protokol - dekodovanie

Príspevok od používateľa solec » 16 Jan 2023, 09:59

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 ?
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 16 Jan 2023, 10:27

Vyvody Rx/Tx idu do MB90439S, co je mikrokontroler.
https://www.alldatasheet.com/view.jsp?S ... d=MB90439S
0

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: UART protokol - dekodovanie

Príspevok od používateľa solec » 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
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 16 Jan 2023, 13:46

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
0

nighthunter
Okoloidúci
Okoloidúci
Príspevky: 48
Dátum registrácie: 11 Jan 2009, 00:00
Bydlisko: Zilina

Re: UART protokol - dekodovanie

Príspevok od používateľa nighthunter » 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.
0

nighthunter
Okoloidúci
Okoloidúci
Príspevky: 48
Dátum registrácie: 11 Jan 2009, 00:00
Bydlisko: Zilina

Re: UART protokol - dekodovanie

Príspevok od používateľa nighthunter » 16 Jan 2023, 17:57

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.
0

solec
Stály člen
Stály člen
Príspevky: 116
Dátum registrácie: 12 Máj 2016, 14:41
Bydlisko: Prešov

Re: UART protokol - dekodovanie

Príspevok od používateľa solec » 17 Jan 2023, 14:07

jasné, len som sa zamyslel, prečo nie nejaké LTC485, MAX485 a pod.
0

martin63
Ultimate člen
Ultimate člen
Príspevky: 1738
Dátum registrácie: 11 Máj 2008, 00:00
Bydlisko: Námestovo
Vek: 34

Re: UART protokol - dekodovanie

Príspevok od používateľa martin63 » 18 Jan 2023, 12:31

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
0

Daevid
Stály člen
Stály člen
Príspevky: 206
Dátum registrácie: 15 Nov 2007, 00:00

Re: UART protokol - dekodovanie

Príspevok od používateľa Daevid » 18 Jan 2023, 16:49

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
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok