Implementace protokolu pro RS-485?

Ladislav Vaiz spam na nagano.cz
Neděle Červen 13 22:53:49 CEST 2010


Zdravim,
>
> Na predstava.
> Komunikace je asynchronni, je tedy nutne ji v MCU zpracovavat v preruseni.

Ano, hlavní program by musel mít definovanou a nízkou latenci. Lépe je 
zpracovat přijatý paket v přerušení. Co s ním dál, závisí na vás. Buď 
můžete nastvit příznak a zpracovávat v hlavní smyčce. Nebo v hlavní 
smyčce měřit a v paměti udržovat aktuální teplotu. V přerušení pak 
můžete po přijetí posledního znaku zaklíčovat budič a hned vysílat. 
Záleží na konkrétním případě, co je vhodnější.

> V preruseni se vyhodnoti zda je prijaty byte byten synchronizacnim 
> pokud ano, tak se zjisti zda druhy byte odpovida adrese daneho MCU, 
> pokud ano tak se tyto dva 

k čemu je pak budete potřebovat? Podle mě už k ničemu. Možná adresu, 
abyste po přijetí celého paketu věděl, zda odpovídat. Ale to se dá 
nahradit jedním příznakem.

> a vsechny nasledujci prijate byty nacpou do fronty v XRAM. Nasledne se 
> overi zda jsou data autenticka (CRC-16), pokud ano muze dalsi funkce 
> felegram vyhodnotit.

Podle mě by se dalo spokojit i s jednodušší kontrolou než CRC16, ale 
rozhodně to ničemu nevadí a pokud ji již máte napsanou, tak proč ne.

> Nebo je to cele bldost a dela se to jinak?
>
> Vysilani nevim zda resit take pres frontu v XRAM nebo felegram 
> seskladat primo ve vysilaci funkci treba pomoci printf?

Já mám k printf v jednočipech nedůvěru, protože netuším, co se děje 
uvnitř. Raději posílám data binárně ve formátu nativním pro jednočip. PC 
si s tím už poradí, lépe se to píše a ladí.
Pokud musí jednočip něco dělat během odeslání paketu, tak bych si paket 
připravil v RAM a odeslal v přerušení. Tady si asi vystačíte s posíláním 
v hlavní smyčce a čekání na příznak odeslání (TI). Firmware tak bude 
jednodušší.
Pro poslání pár bytů si vystačíte s interní RAM.

Láďa


More information about the Hw-list mailing list