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