0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【教程】CAN報文自定義協(xié)議轉發(fā)

億佰特物聯(lián)網應用專家 ? 2023-05-31 17:03 ? 次閱讀

CAN總線通信的應用領域中,很多客戶需要將CANID放在CAN報文中,這樣更方便接入不同的設備,有利于用戶通過模塊更方便地組建自己的網絡,使用自定的應用協(xié)議。但是要實現(xiàn)這樣的應用,用戶往往需要不停地去修改參數(shù)

我司研發(fā)的ECAN-401所具備的透明帶標識功能則很好地處理這個問題。該方式把串行幀中的 ID 信息自動轉換成CAN總線的幀ID。只要在配置中告訴模塊該ID信息在串行幀的起始位置和長度,模塊在轉換時提取出這個幀ID填充在CAN報文的幀ID域里,作為該串行幀的轉發(fā)時的CAN報文的ID。在CAN報文轉換成串行幀的時候也把CAN報文的ID轉換在串行幀的相應位置。

轉換方式

1、串行幀轉 CAN 報文

串行幀中所帶有的CAN報文的“幀 ID”在串行幀中的起始地址和長度可由配置設定。起始地址的范圍是0~7,長度范圍分別是1~2(標準幀)或1~4(擴展幀)。轉換時根據(jù)事先的配置將串行幀中的 CAN報文“幀 ID”對應全部轉換到CAN報文的幀ID域中(如果所帶幀ID個數(shù)少于CAN報文的幀 ID 數(shù),那么在CAN報文中幀ID的高字節(jié)補0。),其它的數(shù)據(jù)依序轉換,如果一幀CAN報文未將串行幀數(shù)據(jù)轉換完,則仍然用相同的ID作為CAN報文的幀ID繼續(xù)轉換直到將串行幀轉換完成。

注意:如果將ID長度大于2,設備發(fā)送的幀類別會設置為擴展幀。此時用戶配置的幀ID和幀類別無效,由串行幀里邊的數(shù)據(jù)決定。標準幀的幀ID范圍為:0x000-0x7ff,分別表示為幀 ID1、幀 ID0,其中幀 ID1 為高字節(jié),擴展幀的幀 ID 范圍為:0x00000000-0x1fffffff,分別表示為幀 ID3、幀 ID2、幀 ID1、幀 ID0,其中幀 ID3 為高字節(jié)。

a65bd17c-fb5b-11ed-ba01-dac502259ad0.png

串行幀轉換成 CAN 報文(透傳帶標識)


轉換示例:

串行幀轉CAN報文(透明帶標識)。

該示例配置的CAN配置參數(shù)。轉換模式:透明帶標識轉換,起始地址2,長度3。幀類型:擴展幀,幀ID:無需配置,轉換方向:雙向。則轉換前后數(shù)據(jù)如下。

a697b5b6-fb5b-11ed-ba01-dac502259ad0.png

串行幀轉 CAN 報文示例(透傳帶標識轉換)


2、CAN 報文轉串行幀

對于CAN報文,收到一幀就立即轉發(fā)一幀,每次轉發(fā)的時候也是根據(jù)事先配置的CAN幀ID在串行幀中的位置和長度把接收到的CAN報文中的ID做相應的轉換。其它數(shù)據(jù)依序轉發(fā)。值得注意的是,無論是串行幀還是CAN報文在應用的時候其幀格式(標準幀還是擴展幀)應該符合事先配置的幀格式要求,否則可能致使通訊不成功。

a6c30b1c-fb5b-11ed-ba01-dac502259ad0.png

CAN報文轉換成串行幀

轉換示例:

該示例配置的CAN配置參數(shù)。轉換模式:透明帶標識轉換,起始地址2,長度3。幀類型:擴展幀,幀類型:數(shù)據(jù)幀。轉換方向:雙向。發(fā)送標識符:0x00000123,則轉換前后數(shù)據(jù)如下。

a6ef678e-fb5b-11ed-ba01-dac502259ad0.png

CAN 報文轉串行幀示例(透明帶信息轉換)

在了解了ECAN-401的透明帶標識功能后,我們可以開始實際操作。

3、實際操作

準備以下設備:

ECAN-401一臺

CAN分析儀ECAN-U01一臺

XCOM串口助手

這里我們使用ECAN-401做數(shù)據(jù)轉換工具,ECAN-U01發(fā)送和接收CAN報文,XCOM串口助手軟件模擬串行設備發(fā)送串行數(shù)據(jù)。將ECAN-401與ECAN-U01的CAN_L和CAN_H連接,ECAN-401的485接口通過485換USB轉換器連接到電腦,如下圖所示:

a70dbcb6-fb5b-11ed-ba01-dac502259ad0.png

通過ECAN-401的上位機,將設備通訊模式切換為透明帶標識模式,CAN波特率1000K,ID長度2,ID位置2參數(shù)配置如下圖:

a821b346-fb5b-11ed-ba01-dac502259ad0.png

打開CAN分析儀ECAN-U01以及XCOM軟件,使用XCOM軟件模擬出一串行設備,通過ECAN-401的485串口發(fā)送串行數(shù)據(jù):首先使用標準幀發(fā)送兩包數(shù)據(jù):11 22 03 44 55 66 77 88 99 00,這里可以看到ECAN-U01設備已經接收到了ECAN-401所轉換出來的數(shù)據(jù):

a84e8858-fb5b-11ed-ba01-dac502259ad0.png

這里可以看到ECAN-U01已經成功接收到ECAN-401轉化出來的數(shù)據(jù),幀ID:03 44,數(shù)據(jù)域:11 22 55 66 77 88 99 00。

再從CAN分析儀端發(fā)送數(shù)據(jù)到串行端口,如下圖所示:

a86f04c0-fb5b-11ed-ba01-dac502259ad0.png

串口端也是按照透明帶標識來組包,這樣就成功實現(xiàn)了CAN協(xié)議按照透明帶標識來收發(fā)數(shù)據(jù)。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2693

    瀏覽量

    463118
  • 協(xié)議
    +關注

    關注

    2

    文章

    593

    瀏覽量

    39131
收藏 人收藏

    評論

    相關推薦

    創(chuàng)建自定義的基于閃存的引導加載程序(BSL)

    電子發(fā)燒友網站提供《創(chuàng)建自定義的基于閃存的引導加載程序(BSL).pdf》資料免費下載
    發(fā)表于 09-19 10:50 ?0次下載
    創(chuàng)建<b class='flag-5'>自定義</b>的基于閃存的引導加載程序(BSL)

    如何創(chuàng)建TestStand自定義步驟

    在之前的課程中簡單地介紹過TestStand自帶的一些步驟類型,如測試、消息彈窗、賦值、標簽等等,這些簡單的步驟從TestStand的插入選版中就可以添加到序列中。那么在使用中如果碰到需要實現(xiàn)更加靈活、復雜的功能,使用自帶的一些步驟類型可能難以滿足,這時就需要使用到自定義步驟。
    的頭像 發(fā)表于 09-11 14:46 ?826次閱讀
    如何創(chuàng)建TestStand<b class='flag-5'>自定義</b>步驟

    EtherCAT運動控制器PT/PVT實現(xiàn)用戶自定義軌跡規(guī)劃

    EtherCAT運動控制器PT/PVT實現(xiàn)用戶自定義軌跡規(guī)劃。
    的頭像 發(fā)表于 08-15 11:49 ?503次閱讀
    EtherCAT運動控制器PT/PVT實現(xiàn)用戶<b class='flag-5'>自定義</b>軌跡規(guī)劃

    NVIDIA NeMo加速并簡化自定義模型開發(fā)

    如果企業(yè)希望充分發(fā)揮出 AI 的力量,就需要根據(jù)其行業(yè)需求量身定制的自定義模型。
    的頭像 發(fā)表于 07-26 11:17 ?654次閱讀
    NVIDIA NeMo加速并簡化<b class='flag-5'>自定義</b>模型開發(fā)

    HarmonyOS開發(fā)案例:【 自定義彈窗】

    基于ArkTS的聲明式開發(fā)范式實現(xiàn)了三種不同的彈窗,第一種直接使用公共組件,后兩種使用CustomDialogController實現(xiàn)自定義彈窗
    的頭像 發(fā)表于 05-16 18:18 ?1226次閱讀
    HarmonyOS開發(fā)案例:【 <b class='flag-5'>自定義</b>彈窗】

    TSMaster 自定義 LIN 調度表編程指導

    LIN(LocalInterconnectNetwork)協(xié)議調度表是用于LIN總線通信中的消息調度的一種機制,我們收到越來越多來自不同用戶希望能夠通過接口實現(xiàn)自定義LIN調度表的需求。所以在
    的頭像 發(fā)表于 05-11 08:21 ?569次閱讀
    TSMaster <b class='flag-5'>自定義</b> LIN 調度表編程指導

    HarmonyOS開發(fā)案例:【UIAbility和自定義組件生命周期】

    本文檔主要描述了應用運行過程中UIAbility和自定義組件的生命周期。對于UIAbility,描述了Create、Foreground、Background、Destroy四種生命周期。對于頁面
    的頭像 發(fā)表于 05-10 15:31 ?1119次閱讀
    HarmonyOS開發(fā)案例:【UIAbility和<b class='flag-5'>自定義</b>組件生命周期】

    HarmonyOS開發(fā)實例:【自定義Emitter】

    使用[Emitter]實現(xiàn)事件的訂閱和發(fā)布,使用[自定義彈窗]設置廣告信息。
    的頭像 發(fā)表于 04-14 11:37 ?952次閱讀
    HarmonyOS開發(fā)實例:【<b class='flag-5'>自定義</b>Emitter】

    鴻蒙ArkUI實例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,一個頁面可由多個組件組合而成,也可只由一個組件組合而成,這些組件可以是ArkUI開發(fā)框架自帶系統(tǒng)組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節(jié)筆者簡單介紹一下自定義組件的語法規(guī)范。
    的頭像 發(fā)表于 04-08 10:17 ?576次閱讀

    基于YOLOv8實現(xiàn)自定義姿態(tài)評估模型訓練

    Hello大家好,今天給大家分享一下如何基于YOLOv8姿態(tài)評估模型,實現(xiàn)在自定義數(shù)據(jù)集上,完成自定義姿態(tài)評估模型的訓練與推理。
    的頭像 發(fā)表于 12-25 11:29 ?2731次閱讀
    基于YOLOv8實現(xiàn)<b class='flag-5'>自定義</b>姿態(tài)評估模型訓練

    博途用戶自定義庫的使用

    博途官方提供了很多庫,比如:基本函數(shù)庫、通信庫、安全庫、驅動庫等等,用戶可以使用庫中的函數(shù)/函數(shù)塊來完成具體的控制任務。除了官方的庫,我們也可以創(chuàng)建自己的庫(用戶自定義庫)。比如,把項目
    的頭像 發(fā)表于 12-25 10:08 ?846次閱讀
    博途用戶<b class='flag-5'>自定義</b>庫的使用

    IAR下手動拷貝自定義程序段到RAM中執(zhí)行的方法分享

    在痞子衡舊文 《IAR下RT-Thread工程自定義函數(shù)段重定向失效分析》 里,我們知道 IAR 鏈接器處理自定義程序段重定向是有一些限制的,只要用戶重寫了底層 __low_level_init() 函數(shù)
    的頭像 發(fā)表于 11-21 09:38 ?1813次閱讀
    IAR下手動拷貝<b class='flag-5'>自定義</b>程序段到RAM中執(zhí)行的方法分享

    如何在Matlab中自定義Message

    自定義Message 當我們的 message 消息比較復雜時,通常要用到自定義的 message 消息,MATLAB 2020b以上的版本自帶了ROS Toolbox Interface
    的頭像 發(fā)表于 11-15 18:12 ?1168次閱讀
    如何在Matlab中<b class='flag-5'>自定義</b>Message

    CAN轉Ethernet IP網關連接ABplc與can傾角儀連接

    為了實現(xiàn) Ethernet/IP協(xié)議設備和自定義協(xié)議(基于 CAN2.0A)設備之間的數(shù)據(jù)交換,用戶采用了北京倍訊科技的 CAN 轉Ethe
    發(fā)表于 11-10 17:31 ?0次下載

    CAN轉EthernetIP 網關連接ABplc與can傾角儀連接

    為了實現(xiàn) Ethernet/IP協(xié)議設備和自定義協(xié)議(基于 CAN2.0A)設備之間的數(shù)據(jù)交換,用戶采用了北京倍訊科技的 CAN 轉Ethe
    的頭像 發(fā)表于 11-10 09:12 ?443次閱讀
    <b class='flag-5'>CAN</b>轉EthernetIP 網關連接ABplc與<b class='flag-5'>can</b>傾角儀連接