首先,在開始實例演示前,我們需要了解ECAN-401設備自定義協(xié)議轉(zhuǎn)發(fā)的規(guī)則:由于CAN幀格式是基于報文的,串行幀格式是基于字節(jié)傳輸?shù)摹1仨毷峭暾姆献远x協(xié)議規(guī)定的串行幀格式,要包含用戶所配置模式下的串行幀所有內(nèi)容,除數(shù)據(jù)域外若其他字節(jié)內(nèi)容若有誤,此幀將不能成功發(fā)送。
串行幀包含的內(nèi)容:幀頭、幀長度、幀信息、幀ID、數(shù)據(jù)域、幀尾。
注意:使用自定義協(xié)議轉(zhuǎn)發(fā)用戶配置的幀ID和幀類別無效,將根據(jù)串行幀里邊的格式進行數(shù)據(jù)轉(zhuǎn)發(fā)。
因此為了讓用戶方便使用CAN-Bus接口,將串行幀格式向CAN幀格式靠攏,在串行幀中規(guī)定了一幀的起始及結(jié)束,即AT命令中的“幀頭”和“幀尾”,用戶可自行配置。
幀長度指的是從幀信息開始到最后一個數(shù)據(jù)結(jié)束的長度,不包括串行幀尾。
幀信息分為擴展幀和標準幀,標準幀固定表示為0x00,擴展幀固定表示為0x80,在自定義協(xié)議轉(zhuǎn)換中,無論每幀數(shù)據(jù)域包含的數(shù)據(jù)長度為多少,其幀信息內(nèi)容都固定不變。
當幀類型為標準幀(0x00)時,幀類型后兩個字節(jié)表示幀ID,其中高位在前;當幀信息為擴展幀(0x80)時,幀類型后4個字節(jié)表示幀ID,其中高位在前。
注意:自定義協(xié)議轉(zhuǎn)換中,無論每幀數(shù)據(jù)域包含的數(shù)據(jù)長度為多少,其幀信息內(nèi)容都固定不變。固定為標準幀(0x00)或者擴展幀(0x80)。幀ID需要符合ID范圍,否則ID可能出錯。
CAN總線報文收到一幀即轉(zhuǎn)發(fā)一幀,模塊會將CAN報文數(shù)據(jù)域中的數(shù)據(jù)依次轉(zhuǎn)換,同時會向串行幀添加幀頭、幀長度、幀信息等數(shù)據(jù),實際為串行幀轉(zhuǎn)CAN報文的逆向形式。
準備工具
在了解了ECAN-401的自定義協(xié)議功能后,我們可以開始實際操作,準備以下設備:
ECAN-401一臺;
CAN分析儀ECAN-U01一臺;
XCOM串口助手。
這里我們使用ECAN-401做數(shù)據(jù)轉(zhuǎn)換工具,ECAN-U01發(fā)送和接收CAN報文,XCOM串口助手軟件模擬串行設備發(fā)送串行數(shù)據(jù)。將ECAN-401與ECAN-U01的CAN_L和CAN_H連接,ECAN-401的RS485接口通過485換USB轉(zhuǎn)換器連接到電腦,如下圖所示:
通過ECAN-401的上位機,將設備通訊模式切換為自定義協(xié)議模式,CAN波特率1000K,幀頭AA,幀尾FF參數(shù)配置如下圖:
打開CAN分析儀ECAN-U01以及XCOM軟件,使用XCOM軟件模擬出一串行設備,通過ECAN-401的RS485串口發(fā)送串行數(shù)據(jù)(需符合自定義協(xié)議格式):
首先使用標準幀發(fā)送兩包數(shù)據(jù):AA 09 00 07 FF 11 22 33 44 55 66 2.AA 0B 00 00 01 11 22 33 44 55 66 77 88 FF,這里可以看到ECAN-U01設備已經(jīng)接收到了ECAN-401所轉(zhuǎn)換出來的數(shù)據(jù):
第一幀數(shù)據(jù)為幀頭:幀頭:AA,幀長度:09,幀信息:00(標準幀),幀ID:07 FF,數(shù)據(jù)域:11 22 33 44 55 66,幀尾:FF。第二幀數(shù)據(jù)為:AA,幀長度:0B,幀信息:00(標準幀),幀ID:00 01,數(shù)據(jù)域:11 22 33 44 55 66 77 88,幀尾:FF。
再使用擴展幀發(fā)送兩包數(shù)據(jù):1.AA 0B 80 00 01 11 22 33 44 55 66 77 88 FF 2.AA 0D 80 00 01 11 22 33 44 55 66 77 88 99 11 FF,這里可以看到ECAN-U01設備已經(jīng)接收到了ECAN-401所轉(zhuǎn)換出來的數(shù)據(jù):
第一幀數(shù)據(jù)為幀頭:AA,幀長度:0B,幀信息:80(擴展幀),幀ID:00 01 11 22 ,數(shù)據(jù)域:33 44 55 66 77 88,幀尾:FF。第二幀數(shù)據(jù)為:幀頭:AA,幀長度:0D,幀信息:80(擴展幀),幀ID:00 01 11 22,數(shù)據(jù)域:33 44 55 66 77 88 99 11,幀尾:FF。
再從CAN分析儀端發(fā)送數(shù)據(jù)到串行端口,如下圖所示:
串口端也是按照自定義協(xié)議模式來組包,這樣就成功實現(xiàn)了CAN協(xié)議按照自定義格式來發(fā)送,同時客戶也能夠通過此協(xié)議來快速區(qū)分數(shù)據(jù)幀。
查看技術文章和免費咨詢技術問題可以訪問成都億佰特電子科技有限公司官網(wǎng)及各官方平臺:
微信號:cdebyte
今日頭條:億佰特
新浪微博:成都億佰特
7 X 24 銷售服務熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號-3