新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > CANopen協議棧IO模塊設計

CANopen協議棧IO模塊設計

作者:魯猛 時間:2025-03-18 來源:EEPW 收藏

1   整體思路

本文引用地址:http://2s4d.com/article/202503/468259.htm

一個工業(yè)級-IO 至少需要滿足?

1.低成本:ARM-M0 32 bit 低成本

2.性能高:主頻80M 集成CAN,同時兼容CAN-FD

3.寬電壓:工作電壓1.62 ~ 3.6 V

4.滿足工業(yè)要求:工作溫度-40 ~ 125 ℃,覆蓋工業(yè)級范圍

一個工業(yè)級-IO 需要占用的內存資源?

1.內部閃存FLASH:128 k Byte

2.內部SRAM:32 k Byte

image.png

2   項目設計過程

2.1 硬件設計

CAN接口硬件設計:

1742271833290855.png

1.采用電源信號雙隔離

2.保險+ 電感防雷擊設計

3.RJ45 輸出,方便級聯

Serial接口硬件設計:

1742271880248793.png

1.USB 轉串口芯片CH340G

2.僅用于Debug 信息打印

輸入、輸出測試IO硬件設計:

輸出光耦隔離,MOS電流增強

1742271928692836.png

輸入雙向光耦隔離,支持PNP、NPN模式

1742271988693354.png

2.2 軟件設計

CAN接口軟件實現

1742272079496417.png

1.CAN初始化

2.CAN的郵箱發(fā)送

3.CAN中斷接收

image.png

IO操作軟件實現:

1742272165720662.png

1742272181911219.png

1.IO初始化

2.IO的翻轉

協議棧的的移植:

image.png

1.協議棧的移植(stack、ccm);

2.對象字典的遷移(objdict);

3.芯片底層的對接(driver);

CANopen對象字典和CIA401實現:

輸入映射rpdo:

1742272361706134.png

1742272375420406.png

1742272391585671.png

1742272415764795.png

輸入處理:

1742272441207023.png

1742272462248572.png

3   系統流程圖

image.png

硬件流程圖概述:

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);

1742272605412209.png

軟件流程圖概述:

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   系統實物圖

image.png

image.png

輸出端子Y16十六通道,這里只有了8通道

image.png

image.png

CAN收發(fā)電路,RJ45連接

image.png

和主控制器連接在一起。

(本文來源于《EEPW》



關鍵詞: 202503 CANopen IO模塊

評論


相關推薦

技術專區(qū)

關閉