|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 44.29 Kraj: Mengeš
|
Objavljeno: Sre Avg 20, 2014 6:25 pm Naslov sporočila: Dekodiranje serijske komunikacije |
|
|
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 |
|
|
Vlado Član
Pridružen-a: Sre 03 Mar 2004 21:35 Prispevkov: 561 Aktiv.: 2.45 Kraj: Ljubljana
|
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 44.29 Kraj: Mengeš
|
Objavljeno: Sre Avg 20, 2014 7:43 pm Naslov sporočila: |
|
|
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 |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 16.56
|
Objavljeno: Sre Avg 20, 2014 10:29 pm Naslov sporočila: |
|
|
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 |
|
|
Silvo Moderator
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14621 Aktiv.: 63.76 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Avg 20, 2014 10:53 pm Naslov sporočila: |
|
|
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 |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 44.29 Kraj: Mengeš
|
Objavljeno: Čet Avg 21, 2014 7:02 am Naslov sporočila: |
|
|
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č 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 |
|
|
psevdonim Član
Pridružen-a: Čet 21 Sep 2006 21:42 Prispevkov: 3385 Aktiv.: 15.35 Kraj: slo
|
Objavljeno: Čet Avg 21, 2014 11:08 am Naslov sporočila: |
|
|
RS232 Datenlogger (elv.de)
imajo še več tega če iščeš pod RS232 _________________ ___ |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 44.29 Kraj: Mengeš
|
Objavljeno: Čet Avg 21, 2014 11:42 am Naslov sporočila: |
|
|
Ž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 |
|
|
dejko1 Član
Pridružen-a: Ned 16 Mar 2008 0:21 Prispevkov: 265 Aktiv.: 1.31 Kraj: Ljubljana
|
Objavljeno: Čet Avg 21, 2014 1:20 pm Naslov sporočila: |
|
|
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.
cel kup načinov za isto stvar naredit... |
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 44.29 Kraj: Mengeš
|
Objavljeno: Čet Avg 21, 2014 1:48 pm Naslov sporočila: |
|
|
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 |
|
|
igo Član
Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 16.56
|
Objavljeno: Čet Avg 21, 2014 4:35 pm Naslov sporočila: |
|
|
Če je "pihniti mimo" glagol, sem jaz naredil samostalnik. Mimopih.
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 |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 44.29 Kraj: Mengeš
|
Objavljeno: Čet Avg 21, 2014 6:22 pm Naslov sporočila: |
|
|
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 |
|
|
dejko1 Član
Pridružen-a: Ned 16 Mar 2008 0:21 Prispevkov: 265 Aktiv.: 1.31 Kraj: Ljubljana
|
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 44.29 Kraj: Mengeš
|
Objavljeno: Pet Avg 22, 2014 3:42 pm Naslov sporočila: |
|
|
Ja, C se bo res treba naučit še posebej ker imam v daljnem planu ARMe...
Ampak pred tem bom pa vseeno nekaj spacal v bascomu |
|
Nazaj na vrh |
|
|
|
|
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: 265 dni
Powered by phpBB © 2001, 2005 phpBB Group
|