Atmely na jednom seriaku

Delphin delphin
Středa Březen 17 14:23:27 CET 2004


> Zdravim,
> mam tady takovy problem a hledam elegantni reseni,treba by nekdo vedel jak
> na to...
> Budou 3 Atmely,jeden hlavni(89C51) a 2 podrizene(89C2051) ktere by meli
mezi
> sebou komunikovat po seriaku tvorenem diferencialni linkou(ruseni a hlavne
> vzdalenost cca.10m). Slave atmely potrebujou obcas poslat nejaka data do
> master Atmela a master obcas do slave. Slave mezi sebou komunikovat
> nepotrebujou. Moje reseni je takove,ze Master prepina smer seriaku na
jeden
> nebo druhy slave a v nejake smycce bude porad zjistovat z jednoho i
druheho
> slave jestli nemaji nejaka data. Slave je budou bufferovar a az se jich
> Master zepta,tak bud posle data nebo rekne,ze nic posilat nechce. Tim se
> vyresi to,ze nebudou kolize na seriaku,ale zase to bude zbytecne zatezovat
> Mastera neustalym komunikovanim po seriaku :-(

V pripade, ze je pozadavek na diferencialni linku, je vhodne pouzit nejake
jiz existujici reseni, napr RS485 a vsechny procesory pripojit k ni.
Nejjednodussi komunikace je tato:
1) Master vysila s 9-tym bitem v log 1.
2) Slave vysila s 9-tym bitem v log. 0.
3) Slave nezacne vysilat "samo", ale Master vysle zadost a Slave odpovi.
Slave pozna podle 9-bitu, kdo vysila a kdyz to bude log. 1, tak vi, ze
vysila Master a podle toho se zaridi.

Komunikace na Masteru muze byt z vetsi casti navesena na preruseni od
seriove linky a pak zatezuje minimalne.




Další informace o konferenci Hw-list