Ukázky práce
USB CAN FD adaptér s logováním na SD kartu
Firmware a .NET knihovna pro připojení až dvou CAN FD sběrnic k PC a záznam komunikace na SD kartu. Prototyp na vývojovém kitu umožnil ověřit komunikaci a logování před navazujícím vývojem vlastního hardwaru.
Vývoj pro společnost Oakrey s.r.o. · moje role: firmware a .NET klientská knihovna
Studie popisuje prototypové řešení ve stavu, v jakém bylo v dané fázi projektu předáno. Nereflektuje současnou podobu ani technický stav produktu společnosti Oakrey s.r.o.
- Oblast použití
- Testování a diagnostika zařízení s CAN
- Hardware
- NXP LPCXpresso54618 (LPC54618J512, Cortex-M4F)
- Rozsah
- Firmware + .NET klientská knihovna
- Zaměření
- CAN FD, USB, FreeRTOS, logování na SD
Zadání
Oakrey potřebovala prototyp USB adaptéru pro komunikaci PC s až dvěma CAN FD sběrnicemi a záznam přijaté komunikace na SD kartu. Mým úkolem byl firmware a .NET klientská knihovna pro ovládání adaptéru z PC.
Firma zvolila vývojový kit NXP LPCXpresso54618 s mikrokontrolérem LPC54618J512. Bylo potřeba konfigurovat obě CAN rozhraní, odesílat a přijímat zprávy a poskytovat informace o chybách a stavu sběrnic.
Technické řešení
Příjem komunikace musel běžet souběžně se zápisem na SD kartu, jehož latence může kolísat. Firmware jsem postavil na FreeRTOS, abych mohl příjem CAN zpráv oddělit od pomalejšího ukládání a určit priority úloh.
- CAN FDNad ovladačem M_CAN z NXP SDK jsem vytvořil obsluhu CAN rozhraní: nastavení filtrů a bufferů, odesílání a příjem zpráv a zpracování rámců CAN 2.0 i CAN FD. Tuto vrstvu jsem propojil s ostatními částmi firmwaru. Při práci jsem našel a opravil chybu obsluhy RX FIFO v NXP SDK 2.7.0, která mohla vést ke ztrátě přerušení při příjmu zpráv.
- Realtime zpracováníOddělení realtime CAN cesty od pomalého zápisu na SD pomocí samostatných FreeRTOS úloh, stream bufferů a asynchronního FatFs workeru, aby latence karty co nejméně ovlivňovala příjem provozu.
- LogováníZáznam přijatých zpráv a chybových událostí na SD kartu pomocí FatFs, včetně podpory exFAT.
- USBRozhraní CDC ACM pro konfiguraci obou CAN kanálů a přenos zpráv i diagnostických informací.
- .NET knihovna.NET Framework klientská knihovna včetně hardwarových integračních a fuzz testů. Testy odesílaly zprávy mezi oběma CAN rozhraními propojenými na jedné fyzické sběrnici.
Výsledek
Předal jsem otestovaný prototypový firmware a .NET knihovnu. Na vývojovém kitu bylo možné z PC konfigurovat CAN rozhraní, přenášet zprávy, sledovat stav sběrnic a ukládat přijatou komunikaci na SD kartu.
Oakrey tak získala funkční základ pro vývoj vlastního hardwaru. Adaptaci firmwaru na nový hardware již provedla sama.