[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