新聞中心

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

        CANopen協議棧IO模塊設計

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

        1   整體思路

        本文引用地址:http://www.104case.com/article/202503/468259.htm

        一個工業級-IO 至少需要滿足?

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

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

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

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

        一個工業級-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的郵箱發送

        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 穩壓芯片到3.3 V 輸出到MCU 和各個接口芯片;

        3.MCU供電正常后,開始復位,取外部晶振倍頻后以80M 主頻運行;

        4.MCU運行后會初始化相關外設,在主循環中進行CAN報文的收發和IO端口的控制;

        5.MCU將內部的CAN報文經TTL信號隔離后發送到CAN收發器,交由收發器再發送到總線上;

        6. CAN收發器收CAN總線數據,轉換為TTL信號,隔離后再發送的MCU 內部的CAN 控制器的FIFO 中;

        7. MCU還控制著硬件的輸入輸出IO狀態;

        1742272605412209.png

        軟件流程圖概述:

        1.系統上電后, Mspm0g3507 會進行系統初始化;

        2.系統初始化完畢后,會進行外設的初始化(IO、CAN、Serial、Timer...);

        3.在CAN外設正常初始化后,對CANopen協議棧進行初始化,此時會分配Node-Id,波特率、以及將對應的CANopen節點切為預操作狀態;

        4.MCU在主循環中會接收CANopen主節點的信息,會進行以下處理:CANopen狀態機處理、PDO報文處理、SDO報文處理以及自身心跳報文的發送等;

        5.MCU在主循環中遵循CIA401協議,根據主節點發送的對象信息和狀態機進行相關的CIA401的處理;

        6. MCU根據CIA401對輸入和輸出IO進行狀態的更新和信號的輸出;

        4   系統實物圖

        image.png

        image.png

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

        image.png

        image.png

        CAN收發電路,RJ45連接

        image.png

        和主控制器連接在一起。

        (本文來源于《EEPW》



        關鍵詞: 202503 CANopen IO模塊

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 利辛县| 阿拉尔市| 临朐县| 佛坪县| 忻城县| 建湖县| 磴口县| 东阿县| 翁源县| 江安县| 买车| 桦川县| 宁化县| 奉新县| 当阳市| 凭祥市| 昭平县| 砀山县| 周口市| 仪征市| 吉木萨尔县| 天气| 江陵县| 漳州市| 阿克陶县| 南岸区| 丰县| 玛曲县| 九江市| 湟源县| 南平市| 盐亭县| 白城市| 天峨县| 米脂县| 达尔| 扬中市| 泗洪县| 闵行区| 济源市| 双峰县|