當前位置:
首頁 > 最新 > 入門級的開源CANopen協議棧——MicroCANopen

入門級的開源CANopen協議棧——MicroCANopen

CANopen協議很龐大,如果手工編寫一個具備完全功能的主站,代碼量將很驚人;相比之下,從站往往功能相對簡單,在熟悉CiA301協議的基礎上,也很容易寫出一個從站代碼。在開源精神的引領下,如今網路上已經有多個CANopen的開源項目,如MicroCANopen、

CANopenNODE、CANfestival等,其中MicroCANopen最為簡單精悍。作為了解CANopen或CAN協議棧的入門教材,MicroCANopen最值得推薦。

MicroCANopen由德國的Embedded System Academy發布,在該機構發行的專業書籍《Embedded Networking with CAN and

MicroCANopen是一個「簡易型」的從站代碼,其代碼量很小(核心文件僅3個,可在很多8位機上運行) ,且編碼風格上沒有很多炫技手法,稍具備嵌入式C編程能力的都可以看得懂。對象字典OD是CANopen協議的核心,其實現方式決定著協議的運行效率,以及協議棧能實現的CANopen特徵。

MicroCANopen的主要功能特點如下:

1、僅能作為CANopen Slave;

2、支持TPDO/RPDO/SDO/HEARTBEAT,可接收處理NMT指令;

3、對象字典是採用數組形式組織起來的,索引及內容是固化的,不可在運行中動態調整(心跳周期可運行中調整);

4、CAN的收發不採用中斷,而是在主循環里由協議棧主程序MCO_ProcessStack ()循環調用。

作為一個簡易版的CANopen協議棧,MicroCANopen協議棧中的CAN收發不採用中斷,也未採用接收緩衝,所以其缺點顯而易見——存在報文漏處理的可能性。

若干年前,曾在做一個小項目的時候,順帶分析移植過這個代碼,並在STM32和PIC18平台上測試運行過。

下圖是我做的一個MicroCANopen程序文件和代碼架構示意。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CatchCAN 的精彩文章:

TAG:CatchCAN |