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