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