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