RS 485 + komunikacni protokol ?
PaPouch
papouch
Středa Březen 17 11:53:21 CET 2004
Napisi zde pro zajemce nekolik pravidel, kterych se drzim pri navrhu
protokolu pro mala zarizeni
1. Komunikace ASCII - pokud nejsou problemy s rychlosti, vzdy se vyplati pri
ladeni, ozivovani, psani sw dalsimi lidmi a podobne.
2. Pokud se prece musi prenaset binarni znaky, delat skupiny vzdy po max N
znacich, nejlepe N je 1 nebo 2
3. Jako hlavicku kazde zpravy pouzit jedinecny znak - pri ASCII komunikaci
jeden, pokud jsou vkladana binarni data, tak retezec o delce N+1 - na ten
pak muze slave cekat a je jistota, ze se nevyskytne.
4. Jako konec zpravy pouzit jedinecny znak (neni nutne dodrze zasadu 2.)
5. Zavest testovaci instrukci, na kterou slave odpovi - pokud je to jedno
zarizeni, vyplati se ji udelat slozenou ze stejnych znaku - pak po startu
mastera vysila jednotlive tento znak tak dlouho, az se slave prihlasi -
odstraneni se tim ruzne veci na lince po pripojovani, zapinani a tak.
6. Nekdy neni na zavadu, kdyz zpravy maji konstantni delku -to souvisi s
psanim programu. V preruseni se ceka na hlavicku, pak se ulozi konstantni
pocet znaku. Az prijdou vsechny, zkontroluje se koncovy znak a kdyz je vse v
poradku (treba i CRC), zprava se zpracuje. V preruseni tedy jen ukladani do
bufferu. Viz nedavna diskuze o strukture programu.
7. Na kazdou zpravu odezva, i kdyz doslo k chybe.
8. Zavazne instrukce (nastaveni na dalku, kalibrace) povolit jen po
bezprostredne predchozim prefixu.
9. Zabezpeceni CRC.
Aby to nevypadalo jako skryta reklama :-)) ale namatkou treba komunikace
naseho DRAKA3 se programatorum docela libi. Ale to je hodne jednoduchy
protokol. Slozitejsi komunikace je u DRAKA4, ale programatori se na me
mraci.
Komunikaci s konstantni delkou zpravy ma ucebna, kterou jsme delali a na to
se pod Windows velmi pekne psal program. Ale na webu to neni.
Ale urcite je dobre pridrzet se i nejakych standardu, treba profibusu, to uz
tu myslim psal pan ing. Drajsajtl.
S pozdravem
ing. Pavel Poucha
Navstivte prosim nase stranky: www.pap-el.cz
Další informace o konferenci Hw-list