• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

    CANopen協議棧IO模塊設計

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

    1   整體思路

    本文引用地址:http://www.czjhyjcfj.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模塊

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: SHOW| 越西县| 沭阳县| 呼伦贝尔市| 新兴县| 武陟县| 革吉县| 饶河县| 齐齐哈尔市| 广河县| 云龙县| 平乡县| 阿拉善盟| 铁岭市| 德保县| 京山县| 吴忠市| 涟源市| 黑河市| 南江县| 七台河市| 涿州市| 梅河口市| 昆山市| 东至县| 怀集县| 曲水县| 英超| 宜君县| 惠水县| 开平市| 苏尼特左旗| 内黄县| 积石山| 广宁县| 平谷区| 平武县| 沧州市| 五寨县| 建昌县| 民权县|