CANopen協議棧IO模塊設計
1 整體思路
本文引用地址:http://2s4d.com/article/202503/468259.htm一個工業(yè)級CANopen-IO 至少需要滿足?
1.低成本:ARM-M0 32 bit 低成本
2.性能高:主頻80M 集成CAN,同時兼容CAN-FD
3.寬電壓:工作電壓1.62 ~ 3.6 V
4.滿足工業(yè)要求:工作溫度-40 ~ 125 ℃,覆蓋工業(yè)級范圍
一個工業(yè)級CANopen-IO 需要占用的內存資源?
1.內部閃存FLASH:128 k Byte
2.內部SRAM:32 k Byte
2 項目設計過程
2.1 硬件設計
CAN接口硬件設計:
1.采用電源信號雙隔離
2.保險+ 電感防雷擊設計
3.RJ45 輸出,方便級聯
Serial接口硬件設計:
1.USB 轉串口芯片CH340G
2.僅用于Debug 信息打印
輸入、輸出測試IO硬件設計:
輸出光耦隔離,MOS電流增強
輸入雙向光耦隔離,支持PNP、NPN模式
2.2 軟件設計
CAN接口軟件實現
1.CAN初始化
2.CAN的郵箱發(fā)送
3.CAN中斷接收
IO操作軟件實現:
1.IO初始化
2.IO的翻轉
CANopen協議棧的的移植:
1.協議棧的移植(stack、ccm);
2.對象字典的遷移(objdict);
3.芯片底層的對接(driver);
CANopen對象字典和CIA401實現:
輸入映射rpdo:
輸入處理:
3 系統流程圖
硬件流程圖概述:
1.電源上電后,電源管理芯片控制5 V 電源端的輸出,后端無短路后直接輸出;
2. 5 V 電源使能后,經過LDO 穩(wěn)壓芯片到3.3 V 輸出到MCU 和各個接口芯片;
3.MCU供電正常后,開始復位,取外部晶振倍頻后以80M 主頻運行;
4.MCU運行后會初始化相關外設,在主循環(huán)中進行CAN報文的收發(fā)和IO端口的控制;
5.MCU將內部的CAN報文經TTL信號隔離后發(fā)送到CAN收發(fā)器,交由收發(fā)器再發(fā)送到總線上;
6. CAN收發(fā)器收CAN總線數據,轉換為TTL信號,隔離后再發(fā)送的MCU 內部的CAN 控制器的FIFO 中;
7. MCU還控制著硬件的輸入輸出IO狀態(tài);
軟件流程圖概述:
1.系統上電后, Mspm0g3507 會進行系統初始化;
2.系統初始化完畢后,會進行外設的初始化(IO、CAN、Serial、Timer...);
3.在CAN外設正常初始化后,對CANopen協議棧進行初始化,此時會分配Node-Id,波特率、以及將對應的CANopen節(jié)點切為預操作狀態(tài);
4.MCU在主循環(huán)中會接收CANopen主節(jié)點的信息,會進行以下處理:CANopen狀態(tài)機處理、PDO報文處理、SDO報文處理以及自身心跳報文的發(fā)送等;
5.MCU在主循環(huán)中遵循CIA401協議,根據主節(jié)點發(fā)送的對象信息和狀態(tài)機進行相關的CIA401的處理;
6. MCU根據CIA401對輸入和輸出IO進行狀態(tài)的更新和信號的輸出;
4 系統實物圖
輸出端子Y16十六通道,這里只有了8通道
CAN收發(fā)電路,RJ45連接
和主控制器連接在一起。
(本文來源于《EEPW》202503)
評論