Stránka 2 z 2
Napsal: 02 úno 2014, 09:55
od procesor
Tvoj prijímač sa musí synchronizovať na byt 255, ak je tam v každom rámci.
Hľadať postupnosť 8x za sebou vysokú úroveň. Predpokladám, že byt 0xFF slúži presne na synchronizáciu prijímača. Toto sa nedá prijímať ako Byt, musí sa to robiť nazačiatku príjmu po bitoch.
Ak zistíš 8x bit vysokej úrovne spustíš príjem po bytoch.
To isté platí aj ak máš integrovaný UART, alebo to prijímaš softom.
Napsal: 02 úno 2014, 12:28
od p32
petrfilipi píše:p32 píše:Jak jsi přišel na to, že to tak má být ? Nemůže to být posunuto např. o 1 nebo 2 bity doleva ?
Když ví co má přečíst, tak to asi u vzorlu dat může napasovat do rámce správně.
PF
Ale o tom to právě není. Kdyby to všechno věděl, tak sem nepíše. Kdysi jsem dělal programy pro čtení bezdotykových karet na vrátnicích a nikdo nemusel vědět, co má číst a kde. To z toho vycházelo jaksi automaticky.
Napsal: 02 úno 2014, 13:00
od Atlan
Aby ti ten IR prijimac neotacal polaritu signalu teda to co primas ako log1 nebola log0 v skutocnosti.
Napsal: 02 úno 2014, 13:34
od petrfilipi
Kdyby Ti ten RfId kod vysilalo neco porad dokola, tak taky nebudes vedet, co ctes. Jestli jsi cetl Weigand26, tak aspon vis, ze je tam 26 bitu. Proste kdyz prides nahodne k zarizeni, ktere neustale neco vysils, tak se musis nekde chytit A kdyz vis, co mas cekat, je synchronizace jednodussi a rychlejsi.
PF
Napsal: 02 úno 2014, 13:39
od procesor
Podľa mňa a toho osciloskopu to má zobrazené a označené dobre. Musí sa to najprv zosynchronizovať na nejakú jedinečnú kombináciu bitov a potom sa už prečíta príslušný počet bytov. A tou kombináciou je určite 255, asi sa bude stále opakovať a v datách sa nebude používať. Na to sa dobre "chytne".
Napsal: 02 úno 2014, 14:52
od Zmije
Asi blbej nápad, ale nepřenáší se tam někde CRC, či jiná ochrana? Pak by se dalo synchronizovat podle toho.
Napsal: 02 úno 2014, 15:31
od procesor
Fakt blbý
Zatiaľ sa mu nepodaril preniesť čo i len jeden znak(Byt).
Napsal: 02 úno 2014, 17:22
od Zmije
Další blbý nápad, použít log. analyzátor např. vzor saleae, na podobné opičárný je to výborný a cena velmi příznivá.
Napsal: 03 úno 2014, 09:39
od Jenda_KL
Je ta mezera na konci (255) dlouhá alespoň 0.00105?
Ověřil jsi funkčnost převodníku TTL-232?
Na neznámé kódování použijeme MCU, jeho 1 pin a 2 přerušení:
data připojit na MCU pin EXINT0
event EXINT0 nastavit na sestupnou hranu.
časovač0 nastavíme na bitovou rychlost.
INT_EXINT0:
- zablokovat EXINT0
- reset počítadla bitů, reset počítadla stop-bitu
- počkat 0.5bitu, povolit a nastartovat TIMER0 v bitové rychlosti
INT_TIMER0:
- není-li konec, rotovat 64b, načíst stav linky do volného bitu, přičíst počítadlo bitů a vyhodnotit
- je-li dosaženo konce, přičítej stop-bit počítadlo pokud je v tom stavu linka, v opačném ho resetuj.
- pokud dovrší stop-bit počítadlo, předej data dál, povol EXINT0, zastav TIMER0
dodatek: volnou sériovou linku procesoru použijeme na monitoring a lazení konstant dekodéru-reciveru a pak uvidíme co dál.
konstanty: bitrate, bits, stops