Stránka 1 z 2

Komunikace procesoru

Napsal: 14 čer 2007, 09:46
od michalekkk
ahoj, mam jeden dotazek ohledne komunikace nekolika procesoru mezi sebou. melo by to fungovat tak, ze jeden bude posilat prikazy a ostatni budou poslouchat, pokud se bude jednat o prikaz pro ne, budou konat. to jen na uvod. predstavu mam, ze komunikace bude probihat tak, ze napr. logicka 1 bude impuls dlouhy 100us, logicka 0 pak bude impuls dlouhy 50us. komunikace bude tak, bude porad vysilana logicka 0, pokus se posle po sobe 9 jednicek, zbystri vsechny procesory a za temito deviti jednickami bude adresovy byte, pote datovy. chtel bych to implementovat na procesory avr, programovat v bascomu. problem je vsak v tom, ze nevim, jak to naprogramovat. respektive by se melo pouzit timeru, ktery by nejspis v intervalu napr 5us zjistoval stav linky a vyhodnocoval tak delku impulsu. resil uz nekdo neco podobneho? dik za tip.

Napsal: 14 čer 2007, 11:07
od ZdenekHQ
Do začátku bude lepší, když použiješ komunikaci přes RS-232 a 9-bitový slovo, přičemž 9. bit řídí komunikaci. 0=data, 1=příkaz . Až ti to bude chodit, přepiš si to, do čeho chceš.

Dál je lepší to celý zabezpečit nějakým protokolem, např. přes CRC apod.

Napsal: 14 čer 2007, 11:10
od ZdenekHQ
Ještě je jedna alternativa, 9.bit=1 je adresa SLAVE, tím ho "probudíš" a ostatní opět "usnou".

Napsal: 14 čer 2007, 11:18
od Crifodo
zkus pro inspiraci http://duch.cz/spejbl/ myslím, že autor je ke komunikaci (mailové) ochotný, nebudeš muset vymýšlet vymyšlené.

Napsal: 14 čer 2007, 12:27
od michalekkk
diky za vase reakce...seriova komunikace to byt nemuze, nebot musi byt moznost cteni dat po obu linkach (jak logicka jedna, tak i jeji negace). v podstate jde o to napodobit protokol dcc, ktery pouzivaji vlacky modelove zeleznice.

Napsal: 15 čer 2007, 07:08
od michalekkk
docela me udivuje, ze je tu tolik programatoru a nikdo se nevyjadri, jak by to resil. ta komunikace je popsana tady:
http://www.volny.cz/mtbbus/dcc/dcc-doc.htm
melo by to fungovat obdobne...samozrejme klidne s jinymy casy, jinymy byty, atd... jde mi jen o nazor, jak to resit. uvazoval jsem o timeru, ktery by napr. co 5us zjistoval stav portu (pro jistotu jsem to jeste ted vstahnul na casy, co jsou v tomhle standardu) a inkrementoval nejake promene. pri zmene stavu by pak podle obsahu promene vyhodnotil, zda-li jde o logickou jedna, nebo nula a tak by postupoval s celym paketem. Impletemntace by mela byt na platforme AVR, programovano v bascomu. Mam koupenu posledni verzi, co maj na netu. no ale treba je v implementaci bascomu nejaky prikaz ci jina moznost, jak tohle zpracovavat. bojim se totiz toho, abych stihl vyhodnotit vsechny podminky, kdyz by byl cas preruseni timeru tak kratke.

Napsal: 15 čer 2007, 10:23
od ZdenekHQ
michalekkk píše:docela me udivuje, ze je tu tolik programatoru a nikdo se nevyjadri, jak by to resil.


To asi proto, že si tady nikdo další nehraje s vláčkama. Jsou desítky komunikačních protokolů, každej má výhody a nevýhody, takže si každej musí vybrat, co chce.

Co se týká komunikace, pokud bych se nemusel držet tohoto standartu, tak tam dám převodník RS-232 na RS-485, ta je symetrická a nemusím vymýšlet kodér a dekodér. Použít potom můžu např. standartní protokol MODBUS a klidně to řídit přes nějaký profi uživatelský rozhraní v PC :lol:

Napsal: 15 čer 2007, 10:29
od Návštěvník
no a to je presne ta odezva, na kterou jsem cekal...urcite neni podminkou tento protokol, bylo to kvuli inspiraci a vubec neslo o vlacky. dekuji za tip.

Napsal: 15 čer 2007, 10:30
od michalekkk
jen se jeste zeptam, to reseni s tim rs by zajisitlo i napajeni ze stejneho vedeni?

Napsal: 15 čer 2007, 10:41
od mikollar
rs 232 ma +-10mA na jeden vodic, dufam ze som sa nesekol

Napsal: 15 čer 2007, 10:45
od ZdenekHQ
Na straně vysílače to "namoduluješ" na obě koleje (se zdvihem cca +-2V) a na straně přijímače to stejnosměrně oddělíš - pokud je to teda jednosměrná komunikace. Podívej se na katalogovej list SN75176 (stojí pár korun) , je to převodník 232/485.

Napsal: 15 čer 2007, 11:53
od michalekkk
diky za tip, je to na me dost slozite. jsem zacatecnik. na ten obvod jsem koukal, aji jsem nasel nejaky priklad na netu, takze k jednocipaku bych to asi zapojil a pres nejake prikazy, co posilaji na seriovou linku data bych to mozna rozjel...to zrejem bude podobne jak rs232, ale co se tyka te modulace, byl bych vdecny za nejaky link ohledne teto problematiky. predem diky.

Napsal: 15 čer 2007, 12:08
od ZdenekHQ
Jako začátečník sis vybral "hodně tučný sousto" a já mám zas moc málo informací, co, jak kde čím chceš řídit.

S modulací musíš trošku popřemýšlet a vyzkoušet, já jsem to nikdy neřešil. Šlo by požít např. regulaci zdroje a "modulovat" napájení lokomotiv, nebo transformátory na způsob AM apod...

Napsal: 15 čer 2007, 12:25
od michalekkk
no, hned jak jsi to poprve psal, tak se mi to zdalo dost slozite...takze asi nejlepsi bude se drzet toho puvodniho navrhu s sirkou impulsu...je to jednoduche a jde jen o to to dobre naprogramovat...takze se zeptam, jestli napad s timerem, ktery bude vzorkovat prichozi signal je dobra myslenka, nebo je nejake lepsi reseni? diky za diskuzi.

Napsal: 15 čer 2007, 12:55
od ZdenekHQ
Dodatek : Nakonec můžeš použít i tu jejich variantu modulace, já jsem to celý nečetl.

Jenom by mě zajímalo, jak moc je to odolný proti prskání uhlíků,já si tady občas vrtačkou zazvoním na bezdrátovej zvonek...