那曲檬骨新材料有限公司

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

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

3天內不再提示

【教程】CAN報文自定義協議轉發

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

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

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

轉換方式

1、串行幀轉 CAN 報文

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

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

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

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


轉換示例:

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

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

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

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


2、CAN 報文轉串行幀

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

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

CAN報文轉換成串行幀

轉換示例:

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

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

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

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

3、實際操作

準備以下設備:

ECAN-401一臺

CAN分析儀ECAN-U01一臺

XCOM串口助手

這里我們使用ECAN-401做數據轉換工具,ECAN-U01發送和接收CAN報文,XCOM串口助手軟件模擬串行設備發送串行數據。將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參數配置如下圖:

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

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

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

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

再從CAN分析儀端發送數據到串行端口,如下圖所示:

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

串口端也是按照透明帶標識來組包,這樣就成功實現了CAN協議按照透明帶標識來收發數據。

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

    關注

    57

    文章

    2769

    瀏覽量

    464376
  • 協議
    +關注

    關注

    2

    文章

    606

    瀏覽量

    39341
收藏 人收藏

    評論

    相關推薦

    Altium Designer 15.0自定義元件設計

    電子發燒友網站提供《Altium Designer 15.0自定義元件設計.pdf》資料免費下載
    發表于 01-21 15:04 ?0次下載
    Altium Designer 15.0<b class='flag-5'>自定義</b>元件設計

    think-cell:自定義think-cell(四)

    C.5 設置默認議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來定義議程、位置和議程幻燈片上的其他形狀,例如標題或圖片。通過將此自定義布局添加到模板,您可以為整個組織
    的頭像 發表于 01-13 10:37 ?98次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    智能語音識別照明解決方案,平臺自定義,中英切換

    智能語音識別照明方案引入NRK3502芯片,支持平臺自定義,離線控制,中英雙語切換。NRK3502具備高性能和靈活自定義能力,可推動智能照明革新,控制其他智能設備,為國際用戶提供全方位智能生活體驗。
    的頭像 發表于 01-10 13:23 ?81次閱讀
    智能語音識別照明解決方案,平臺<b class='flag-5'>自定義</b>,中英切換

    think-cell;自定義think-cell(一)

    本章介紹如何自定義 think-cell,即如何更改默認顏色和其他默認屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四個部分中進行討論。 第五部分 C.5 設置默認議程幻燈片
    的頭像 發表于 01-08 11:31 ?149次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(一)

    TPS659xx應用程序自定義工具

    電子發燒友網站提供《TPS659xx應用程序自定義工具.pdf》資料免費下載
    發表于 11-06 10:02 ?0次下載
    TPS659xx應用程序<b class='flag-5'>自定義</b>工具

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

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

    如何創建TestStand自定義步驟

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

    EtherCAT運動控制器PT/PVT實現用戶自定義軌跡規劃

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

    NVIDIA NeMo加速并簡化自定義模型開發

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

    HarmonyOS開發案例:【 自定義彈窗】

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

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

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

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

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

    HarmonyOS實戰開發-深度探索與打造個性化自定義組件

    今天分享一下 什么是自定義組件?及其自定義組件的實戰。 做過前端或者android開發的都知道自定義組件,鴻蒙中顯示在界面上的UI都稱為組件,小打一個按鈕,再到一個列表。 鴻蒙提供的組件有 基礎組件
    發表于 05-08 16:30

    HarmonyOS開發實例:【自定義Emitter】

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

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

    組件是 OpenHarmony 頁面最小顯示單元,一個頁面可由多個組件組合而成,也可只由一個組件組合而成,這些組件可以是ArkUI開發框架自帶系統組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節筆者簡單介紹一下自定義組件的語法規范。
    的頭像 發表于 04-08 10:17 ?705次閱讀
    大发888yulecheng| 百家乐免费注册| 金三角百家乐的玩法技巧和规则| 百家乐是如何骗人的| 百家乐赌场赌场平台| 威尼斯人娱乐场66| 大发888 xp缺少 casino| 皇冠投注网站| 澳门百家乐官网海洋阿强| 百家乐官网有人玩吗| 百家乐全透明牌靴| 威尼斯人娱乐城评价| 皇廷娱乐| 哪个百家乐官网网站最大| 博E百百家乐官网的玩法技巧和规则 | 百家乐娱乐送白菜| 大发888娱乐亚洲| 网上百家乐官网合法吗| 银河百家乐官网的玩法技巧和规则 | 可以玩百家乐的博彩公司| 大发888全球顶级游戏平台| 澳门百家乐官网秘诀| 百家乐官网分析网| 百家乐园zyylc| 大发888下载 df888gfxzylc8| 乡宁县| 马德里百家乐官网的玩法技巧和规则 | 渭南市| 肇州县| 试玩百家乐官网帐| 月华百家乐的玩法技巧和规则| 太阳城巧克力社区怎么样| 百家乐官网实战案例| 做生意带什么装饰招财| 大发888娱乐充值| 上高县| 澳门百家乐皇冠网| 大发888娱乐场网页| 百家乐官网椅子| 蓝盾百家乐平台| 黑龙江省|