www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Dekodiranje serijske komunikacije

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Sre Avg 20, 2014 6:25 pm    Naslov sporočila:  Dekodiranje serijske komunikacije Odgovori s citatom

Spravil sem se k prvemu poskusu dekodiranja serijskega signala z AVRjem, in sicer gre za manchester kodiranje. Imam RFID čitalec (kitajski), ki je kot samostojna naprava "čuden", ampak doseg ima odličen ( reda 7-8cm), pa sem našel, kje je direkt signal iz kartice(mimo njihovega dekoderja). Na osciloskopu sem že ročno "dekodiral" signal in koda kartice se ujema. Zdaj pa to rabim brati z avrjem.
Kako se tega lotiti? Sklepam da nekako s timerjem...mi lahko nekdo napiše kakšne osnovne smernice?

TNX!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Vlado
Član
Član



Pridružen-a: Sre 03 Mar 2004 21:35
Prispevkov: 561
Aktiv.: 2.53
Kraj: Ljubljana

PrispevekObjavljeno: Sre Avg 20, 2014 7:18 pm    Naslov sporočila:   Odgovori s citatom

Mogoče bo v pomoč:
http://evertdekker.com/Joomla/index.php?option=com_content&task=view&id=56&Itemid=92

http://avrhelp.mcselec.com/index.html?readhitag.htm

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Sre Avg 20, 2014 7:43 pm    Naslov sporočila:   Odgovori s citatom

Ti že veš, da uporabljam bascom...

hm...ja, zaenkrat moram ugotoviti bitrate kartice....na osciloskopu so ozki pulzi 250 us, široki pa 500us... če prav sklepam, moram ujeti bitrate, sicer ne bo nič...

pa tudi...če prav razumem, ima čip RM4095 tudi manchester izhod, pa RC5, torej bi mogoče lahko uporabil tiste rutine, samo kot rečeno, bitrate mora biti enak, pa finta je tudi v dolžini sporočila...če ne bo enak, po moje spet ne bo nič...
zato bi bilo mogoče najbolje iz nule narediti sprejem (kar pa zna biti komplicirano...)

tole bo spet igračkanje, že vidim...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Sre Avg 20, 2014 10:29 pm    Naslov sporočila:   Odgovori s citatom

protoncek je napisal/a:
hm...ja, zaenkrat moram ugotoviti bitrate kartice....na osciloskopu so ozki pulzi 250 us, široki pa 500us... če prav sklepam, moram ujeti bitrate, sicer ne bo nič...

... zato bi bilo mogoče najbolje iz nule narediti sprejem (kar pa zna biti komplicirano...)

tole bo spet igračkanje, že vidim...
Brez strahu.

S prekinitvijo čakaš prvo spremembo, nato počakaš ČETRTINO dolžine bita, nato SteviloBitov-krat vzorčiš vsako celo dolžino bita in pomikaš podatek.

Če boš čakal s pavzami, si odvisen od natančnosti zanke.
Lahko pa zaznaš prvo spremembo, letiš v prekinitev, onemogočiš prekinitve ob spremembi stanja pina, prvi vzorec zanemariš, omogočiš prekinitve ob stanju Timerja in letiš ven. Naslednjo prekinitev bo sprožil Timer. Vzorčiš pin, premakneš podatek, povečaš števec bitov, nastaviš Timer za naslednjič.

Spremenjeno: Če je res Manchester koda , potem je treba na začetku počakati četrtino dolžine bita, naprej pa celega. Za občasne in kratke komunikacije z nekaj byti v paketu je to dovolj, saj stanje pina neposredno pomeni stanje bita in ne rabiš celotnega preverjanja pravilnosti prehodov po pravilih protokola.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor


Nazadnje urejal/a igo Čet Avg 21, 2014 9:50 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14551
Aktiv.: 65.53
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Sre Avg 20, 2014 10:53 pm    Naslov sporočila:   Odgovori s citatom

Meni je bila v pomoč AN od U2270B (glej stran 14) Spisal sem si lastne rutine. Assemblersko kodo lahko najdem, če si boš z njo lahko kaj pomagal. Sucer sem uporabil tiny13. Članek rfid ključavnice je bil objavljen v 16. naši številki.
_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Čet Avg 21, 2014 7:02 am    Naslov sporočila:   Odgovori s citatom

uff...hvala. Upam, da mi kaj uspe... približno mi je jasno, kako misliš, se bom malo poigral s tem...

Silvo, sem prebral tvoj članek. Za ta čip se včeraj že našel demo kodo celo v bascomu. Praviš, da je domet pri tebi 8cm s obeskom? To je ogromno! Namreč, sedaj imam doma RFM6300 z ebaja, pa je domet največ 2-3cm. Potem sem pa zadevo še dal v ohišje, pa se zmanjša še za tistih par mm debeline ohišja. Potem če imam še kakšen ključ zraven, pa ne dela več Brick wall Zato sem se spravil k izdelavi druge verzije, ker imam tudi en čitalnik, ki ima sam dekoder narejen z dvema 74xx čipoma in par elementov in ima kar soliden domet, a ima kompletno elektroniko v enem ohšju (torej bi bila zunaj), kar mi ni všeč, pa tudi sam njihov sistem mi ne sede...

Če ima U2770B res tak domet, bom pa kar tega nekje nabavil...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
psevdonim
Član
Član



Pridružen-a: Čet 21 Sep 2006 21:42
Prispevkov: 3366
Aktiv.: 15.78
Kraj: slo

PrispevekObjavljeno: Čet Avg 21, 2014 11:08 am    Naslov sporočila:   Odgovori s citatom

RS232 Datenlogger (elv.de)
imajo še več tega če iščeš pod RS232

_________________
___
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Čet Avg 21, 2014 11:42 am    Naslov sporočila:   Odgovori s citatom

Žal karkoli sliši na rs232 ni uporabno. Sem bral podatke z FTDI čipom in sicer meče ven ene številke, a nič v povezavi s pravimi informacijami. Poanta je ker je manchester koda popolnoma drugače zasnovana kot rs232. Mogoče bi se dalo, če bi lahko čitalec konfiguriral kot 8 bitov, no start, no stop, no parity ali pa start, 64 bitov, stop, no parity (če je to sploh mogoče). Potem bi celotno prejeto kodo dal v eno dolgo spremenljivko in jo dekodiral. Pri manchester je namreč enka 01, ničla pa 10...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
dejko1
Član
Član



Pridružen-a: Ned 16 Mar 2008 0:21
Prispevkov: 265
Aktiv.: 1.36
Kraj: Ljubljana

PrispevekObjavljeno: Čet Avg 21, 2014 1:20 pm    Naslov sporočila:   Odgovori s citatom

RS232 brez start bita ne obstaja, ker je to edina reč na katero se sinhroniziraš - da sploh veš kdaj se podatek začne...

RS232 lahko uporabiš tako da nastaviš baudrate tako da ti bo kratek pulz dal eno vrednost in dolg pulz drugo vrednost. Potem dobiš en bit na bajt podatkov.

Alternativno pa z timerjem brat pin ali pa s spremembo pina prožit input capture ali interrupt pa merit čas med spremembami pinov.

Wink cel kup načinov za isto stvar naredit...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Čet Avg 21, 2014 1:48 pm    Naslov sporočila:   Odgovori s citatom

Moja informacija je dolga 64 bitov neprekinjeno po sistemu 9 enic - 4 biti info - en bit parity - 4 info - 1 parity... tako da start in stop bit pomeni izgubo informacije. V primeru RFID začetni sync pomeni 9 enic na začetku telegrama, če sem prav razumel.
aha, ti misliš da bi dal bitrate tako velik, da bi rs232 en sam bit iz RFID razumel kot 8 bitov, start in stop...hja... mogoče bi šlo...

Po eni strani se mi pa zdi neumno odkrivati ameriko, če ima bascom za branje EM4095 in HTRC110 že rutine. In ker ta dva čipa, kot sem ugotovil, v bistvu tudi oddajata samo manchester kodo, se bom najprej malo poigral s temi rutinami, potem pa naprej.
Je pa izziv zanimiv, da bi sam naredil dekodiranje. Seveda bi bilo mogoče pametneje začeti s kakšno bolj enostavno (beri krajšo) informacijo...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
igo
Član
Član



Pridružen-a: Sre 11 Okt 2006 19:11
Prispevkov: 3638
Aktiv.: 17.11

PrispevekObjavljeno: Čet Avg 21, 2014 4:35 pm    Naslov sporočila:   Odgovori s citatom

d'oh! Anxious
Če je "pihniti mimo" glagol, sem jaz naredil samostalnik. Mimopih. Mr. Green

Povsem sem namreč spregledal osnovno lastnost Manchester kodiranja, da je CLK ves čas prisoten v signalu.

Če se ne oddaja ničesar, se v bistvu oddajajo podatki s samimi ničlami. Po kodiranju pa iz podatka 0000000000000000000... nastane veriga 010101010101010101010101... .

Torej s prekinitvami ves čas zaznavaš spremembe stanja na pinu in vsakič resetiraš Timer (da bo naslednja Timer prekinitev čez 5/4 periode CLK signala). Šele ko se neka sprememba stanja ne zgodi, ko bi se morala, ampak novo prekinitev četrt bita kasneje sproži pretečen Timer, to pomeni začetno enico od podatka.
Od tam naprej lahko načeloma onemogočiš prekinitve ob spremembi stanja pina in 64-krat vzorčiš signal ob Timer prekinitvi vsake 4/4 periode CLK, nato spet zaznavaš verigo.

V času zaznavanja 10101010... verige lahko prekinitev tudi meri čas od prejšnje spremembe stanja pina in iz povprečja uglasi spremenljivko za Timer, da bo čim natančneje ciljal tistih 5/4 in 4/4. Sicer pa je 250us ogromno časa za polovico CLK periode in po 64 bitih ne bi smelo priti do opaznejšega zamika.

_________________
Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Čet Avg 21, 2014 6:22 pm    Naslov sporočila:   Odgovori s citatom

Kakorkoli že, zadeva je, kot vidim, kar malo komplicirana, tako da bo tole nastajalo počasi, če bo šlo takole z nule...
sicer zaenkrat malce sveti sonce name, namreč, nekako mi je delno uspelo oživiti vgrajeno rutino bascoma, samo vse skupaj moram še sinhronizirati, pa sem zmagal (upam). Čeprav bom kljub temu poskusil tole sprogramirat...že zaradi trme, ter da se naučim spet nekaj novega..
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
dejko1
Član
Član



Pridružen-a: Ned 16 Mar 2008 0:21
Prispevkov: 265
Aktiv.: 1.36
Kraj: Ljubljana

PrispevekObjavljeno: Pet Avg 22, 2014 9:52 am    Naslov sporočila:   Odgovori s citatom

Sem malo bolj pogledal pa z RS232/uart izgleda ni možno dekodirat manchester enkodinga, ker lahko "meriš" samo trajanje pozitivne ali samo negative periode signala ne pa obeh (kar tu rabiš za uspešno dekodiranje).

Ena knjižnica za arduino:
https://github.com/mchr3k/arduino-libs-manchester/blob/master/Manchester.cpp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.83
Kraj: Mengeš

PrispevekObjavljeno: Pet Avg 22, 2014 3:42 pm    Naslov sporočila:   Odgovori s citatom

Ja, C se bo res treba naučit Whistle še posebej ker imam v daljnem planu ARMe...

Ampak pred tem bom pa vseeno nekaj spacal v bascomu
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group