[elektro] USB - RS232 nagyon nem megy
Moczik Gabor
pm_levlista at progzmaster.hu
Wed Mar 10 01:24:55 CET 2010
Borza Attila wrote:
> Graun:
> sajnos úgy néz ki, hogy az átalakitó működik, kipróbáltam most a file
> átvitelt, és működött rendesen, meg a port monitor program is ugyan azt az
> adatot látja az alaplapival, és az átalakitóval is :(
Nézz rá azért szkóppal a TXD lábra, hogy tényleg annyi-e az a baud rate
amennyinek lennie kell.
> Igazából az a bajom, hogy 4 , 9, éa 12 bytos csomagok mennének át PC-re,
> visszafele meg csak 4 bytosak, igazából gondolkodtam rajta, hogy bytonként
> kezelem, csak akkor macerásabb, mert az első byte mindig egy parancs, a
> többi meg az adott parancshoz tatozó adat. Igaz már gondolkodtam rajta, amit
> mondtál, hogy 9 biteseket küldök, és jelölöm a parancsot, de nem szeretnék
> még ezel is külön foglalkozni, hogy számolgatom, hogy éppen melyik parancs
> után hány byte érkezett meg, illetve ami miatt még nem biztos, hogy ez
> működne, hogy nem mindig jöttek át megfelelő értékek, tehát, ha bytonként is
> kezelném le, akkor is lennének benn hibás adatok.
Sajnos szerintem ezt csak így fogod tudni megoldani. Honnan tudod melyik
az első byte, van valami csomag eleje/csomag vége szinkron karakter?
Arra ne alapozz, hogy a FIFO-ba belefér az egész csomag, vagy ha bele is
férne, akkor nem valószínű hogy kivárja a driver (ez így jobb is) az
összes byte-ot mire megszakítást kapsz.
Én úgy csinálom, hogy amint jön egy byte azonnal kiolvasom, a működési
állapottól függően azonnal le is kezelem. Sajnos kiesik a szinkronból a
rendszer, ha elvész egy byte vagy valami történik és nincs egyértelmű
szinkron karakter, úgyhogy jó ha timeout-ot is teszel hozzá, hogy
mittudomén, a csomag elejétől számított x időn belül ha nem ér ide a
vége, akkor eldobod az egészet, és alaphelyzet.
Nem ártana egy checksum se a végére...
--
((( Móczik Gábor )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))
More information about the Elektro
mailing list