CANpie - CANpie
CANpie (CAN Programming Interface Environment) je otevřený zdroj projektu a sleduje cíl vytvoření a založení otevřeného a standardizovaného softwarového API pro přístup k internetu Sběrnice CAN.
Projekt byl založen v roce 2001[1] společností MicroControl a je licencován pod Licence Apache verze 2.0. Aktuální verze CANpie API[2] pokrývá jak klasické rámy CAN, tak i ISO CAN FD[3] rámy. API je navrženo pro vestavěné řídicí aplikace i pro desky rozhraní PC: vestavěné mikrokontroléry jsou programovány v jazyce C, je k dispozici C ++ API pro nezávislý přístup OS k deskám rozhraní. API poskytuje funkčnost ISO / OSI Layer-2 (Data Link Layer). Není záměrem CANpie začlenit funkce vyšší vrstvy (např. CANopen, SAE J1939 ).
Princip ovladače
Rozhraní CANpie API podporuje koncept vyrovnávacích pamětí pro hardware (poštovní schránky) s celkovým limitem 255 vyrovnávacích pamětí. Vyrovnávací paměť zpráv má jedinečný směr (příjem nebo přenos). Volitelně je možné připojit a FIFO s libovolnou velikostí do vyrovnávací paměti zpráv pro oba směry přenosu. Celkový počet kanálů CAN je omezen na 255, API poskytuje metodu shromažďování informací o funkcích každého hardwarového kanálu CAN. To je zvláště důležité pro návrháře aplikací, který chce napsat kód pouze jednou. Časové razítko rámce CAN (specifikováno CiA 603, CAN Frame time-stamping - Požadavky na správu času v síti[4]) je podporován s rozlišením 1 nanosekundu.
Používání
Následující fragment kódu ukazuje inicializaci mikrokontroléru.
#zahrnout "cp_core.h" // Základní funkce CANpieprázdnota MyCanInit(prázdnota){ CpPort_ts tsCanPortT; // logický port CAN //--------------------------------------------------- // nastavení řadiče CAN / otevření fyzického CAN // přístav // pamětová sada(&tsCanPortT, 0, velikost(CpPort_ts)); CpCoreDriverInit(eCP_CHANNEL_1, &tsCanPortT, 0); //--------------------------------------------------- // nastavení 500 kBit / s // CpCoreBitrate(&tsCanPortT, eCP_BITRATE_500K, eCP_BITRATE_NONE); //--------------------------------------------------- // spustit provoz CAN // CpCoreCanMode(&tsCanPortT, eCP_MODE_OPERATION); // .. teď jsme v provozu}
Podobné projekty
Pro Linux operační systém projekty can4linux a SocketCAN poskytovat podporu pro klasické CAN a ISO CAN FD. Komerční AUTOSAR Specifikace podporuje CAN FD od verze 4.3 a je k dispozici pouze pro partnery AUTOSAR. Specifikace CMSIS-Driver (Cortex Microcontroller Software Interface Standard) je softwarové API, které popisuje periferní rozhraní ovladačů pro zásobníky middlewaru a uživatelské aplikace na PAŽE Procesory Cortex-M.[5]
Reference
- ^ https://sourceforge.net/projects/canpie/files/?source=navbar
- ^ http://www.microcontrol.net/download/canpie/canpie_user_v3r00.pdf
- ^ https://www.can-cia.org/fileadmin/resources/documents/proceedings/2012_hartwich.pdf
- ^ https://www.can-cia.org/standardization/specifications/
- ^ https://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
externí odkazy
- Dokumentace CANpie
- Stránka projektu CANpie
- Zpravodaj CAN 2014-02-25
- Softwarová architektura pro modulární samo-rekonfigurovatelné roboty, Xerox Palo Alto Research Center
- Web AUTOSAR
- web projektu can4linux
- Web projektu SocketCAN
- Patent podán pro SocketCAN (německý jazyk)
- iCC 2017 - „API ovladače CAN - migrace z klasického CAN na CAN FD“