![1a7ceeb2-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgSAISnHAAABH5UOQQI369.jpg)
CAN是ISO國際標(biāo)準(zhǔn)化的串行通信協(xié)議。由于性能高,可靠性高現(xiàn)被廣泛應(yīng)用在汽車,醫(yī)療,船舶,工業(yè)自動化等其他方面。因為只需要兩根線就可在多個設(shè)備間進(jìn)行數(shù)據(jù)通信所以被廣泛使用。本文基于EsDA開發(fā)平臺,為您簡單介紹如何用5分鐘快速建立CAN通信。
基本工作原理:通過USBCANFD-200U接口卡實現(xiàn)主板與PC實現(xiàn)CAN(FD)通信。
本應(yīng)用選用 EPC6450-AWI開發(fā)板,USBCANFD-200U接口卡與PC連接,使其能與接入CAN(FD)網(wǎng)絡(luò)的開發(fā)板進(jìn)行數(shù)據(jù)收發(fā),USBCANFD不同系列產(chǎn)品支持1~8路CAN(FD)通信,可根據(jù)不同需求進(jìn)行選擇,本文采用的200U系列僅支持2路通信。該實驗用到了timer,fscript,canfd_out,canfd_in,fscript和log節(jié)點。![1a938a14-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgSAAE_5AAABH5UOQQI607.jpg)
-
EsDAMPC-ZC1入門(一)——軟件安裝
-
EsDAMPC-ZC1入門(二)——LED控制
-
【EsDA應(yīng)用】5分鐘實現(xiàn)一個串口通信業(yè)務(wù)
1. 硬件準(zhǔn)備
1.1 準(zhǔn)備一個USBCANFD-200U接口卡,并在PC上下載并安裝ZCANPRO的上位機(jī)軟件。
![1ac40bb2-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgSATSdSAAMLyYRiSsk263.jpg)
2. 節(jié)點介紹
實現(xiàn)CAN(FD)總線通信,需要使用到canfd相關(guān)的AWFlow節(jié)點,包括canfd_out,canfd_in和canfd三個節(jié)點。
2.1 canfdCANFD通信協(xié)議配置節(jié)點,屬于隱式節(jié)點,不會顯示在畫布中,需要配套相應(yīng)功能節(jié)點一起使用。2.1.1 屬性
- 端口(port):設(shè)備端口路徑,用于系統(tǒng)打開設(shè)備;
- CAN控制器類型(can_type):設(shè)置CAN控制器類型。值為0表示CAN;值為1表示CANFD;
- 非標(biāo)準(zhǔn)ISO模式(non_iso_mode):開啟/關(guān)閉非標(biāo)準(zhǔn)ISO模式。值為0表示關(guān)閉;值為1表示開啟;
- 仲裁域波特率(nominal_bps):設(shè)置仲裁域波特率,單位是bps,值域是0~1000000;
- 仲裁域采樣點精確的分子值(nominal_spf):設(shè)置仲裁域采樣點精確的分子值,采樣點用分?jǐn)?shù)來表示,如需要將采樣點設(shè)置為87.5%,則設(shè)置采樣點的分母為1000,分子為875即可。因硬件原因可能導(dǎo)致不能精確地配置采樣點,增加了兩個分子值來表示范圍。值域是0~10240;
- 仲裁域采樣點最小的分子值(nominal_spf_min):設(shè)置仲裁域采樣點最小分子值,值域是0~10240;
- 仲裁域采樣點最大的分子值(nominal_spf_max):設(shè)置仲裁域采樣點最大分子值,值域是0~10240;
- 仲裁域采樣點分母值(nominal_spd):設(shè)置仲裁域采樣點分母值,值域是0~10240數(shù)據(jù)域波特率(data_bps):設(shè)置數(shù)據(jù)域波特率,值域是0~5000000;
- 數(shù)據(jù)域采樣點精確的分子值(data_spf):設(shè)置數(shù)據(jù)域采樣點精確的分子值,采樣點用分?jǐn)?shù)來表示,如需要將采樣點設(shè)置為87.5%,則設(shè)置采樣點的分母為1000,分子為875即可。因硬件原因可能導(dǎo)致不能精確地配置采樣點,增加了兩個分子值來表示范圍。值域是0~10240;
- 數(shù)據(jù)域采樣點最小的分子值(data_spf_min):設(shè)置數(shù)據(jù)域采樣點最小的分子值。值域是0~10240;
- 數(shù)據(jù)域采樣點最大的分子值(data_spf_max):設(shè)置數(shù)據(jù)域采樣點最大的分子值。值域是0~10240;
- 數(shù)據(jù)域采樣點分母值(data_spd):數(shù)據(jù)域采樣點分母值。值域是0~10240;
- 濾波器使能(filter_enable):開啟/關(guān)閉濾波器。值為0表示關(guān)閉;值為1表示開啟;
- 濾波表(filter_table):濾波表,濾波表采用json數(shù)組的形式設(shè)置,最大支持32條,符合濾波表條件的報文將被接收,不符合的報文會被過濾,但錯誤報文不會被過濾。濾波表格式如下:id表示報文ID;msk表示ID掩碼,ID掩碼部分相同的報文將被接收;recv_std表示是否接收標(biāo)準(zhǔn)幀;recv_ext表示是否接收擴(kuò)展幀;recv_data表示是否接收數(shù)據(jù)幀;recv_rmt:是否接收遠(yuǎn)程幀。
- 名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
- 顯示名稱(displayName):用于畫布上顯示的名稱;
- 關(guān)聯(lián)配置(config):綁定一個canfd的配置節(jié)點。
- payload:CAN報文,1-8字節(jié)為時間戳,9-12字節(jié)為ID,13-14字節(jié)為報文標(biāo)志位【位0:發(fā)送幀標(biāo)志(單次發(fā)送)。位1:CANFD幀標(biāo)志,位2:遠(yuǎn)程幀標(biāo)志,位3:擴(kuò)展幀標(biāo)志,位4:錯誤幀標(biāo)志,位5:轉(zhuǎn)換可變速率,位6:錯誤狀態(tài)指示(0:被動錯誤,1:主動錯誤)】,15-16字節(jié)為通道號(低5位)和數(shù)據(jù)長度(高11位),17字節(jié)到末尾為報文數(shù)據(jù);
- payloadLength:負(fù)載長度。
![1b5a296c-246d-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgSAIdtXAAAW4eW80oY948.png)
- 名稱(name):節(jié)點名稱,用于索引查找本節(jié)點;
- 顯示名稱(displayName):用于畫布上顯示的名稱;
- 關(guān)聯(lián)配置(config):綁定一個canfd的配置節(jié)點。
- payload:CAN報文,1-8字節(jié)為時間戳,9-12字節(jié)為ID,13-14字節(jié)為報文標(biāo)志位【位0:發(fā)送幀標(biāo)志(單次發(fā)送),位1:CANFD幀標(biāo)志,位2:遠(yuǎn)程幀標(biāo)志,位3:擴(kuò)展幀標(biāo)志,位4:錯誤幀標(biāo)志,位5:轉(zhuǎn)換可變速率,位6:錯誤狀態(tài)指示(0:被動錯誤,1:主動錯誤)】,15-16字節(jié)為通道號(低5位)和數(shù)據(jù)長度(高11位),17字節(jié)到末尾為報文數(shù)據(jù);
- payloadLength:負(fù)載長度。
![1a7ceeb2-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgSAISnHAAABH5UOQQI369.jpg)
1. 添加節(jié)點并連線
本實驗主要執(zhí)行兩個步驟:
- EPC6450-AWI開發(fā)板上的CAN_0通過CAN通信協(xié)議,canfd_out節(jié)點定時向USBCANFD-200U接口卡發(fā)送0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,八個字節(jié)的數(shù)據(jù),發(fā)送數(shù)據(jù)可在PC上的工具ZCANPRO上查看。
- PC上的工具ZCANPRO通過CAN總線通信協(xié)議定時發(fā)送0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77八個字節(jié)的數(shù)據(jù),EPC6450-AWI開發(fā)板上通過canfd_in這個節(jié)點去接收數(shù)據(jù),并通過log最終打印可查看。
![1ba3a8c6-246d-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgWAaSO3AABcYYbO_Vc306.png)
buf=wbuffer_create()
wbuffer_write_int8(buf,202)
wbuffer_write_int8(buf,150)
wbuffer_write_int8(buf,9)
wbuffer_write_int8(buf,124)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,17)
wbuffer_write_int8(buf,1)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,1)
wbuffer_write_int8(buf,0)
wbuffer_write_int8(buf,1)
wbuffer_write_int8(buf,2)
wbuffer_write_int8(buf,3)
wbuffer_write_int8(buf,4)
wbuffer_write_int8(buf,5)
wbuffer_write_int8(buf,6)
wbuffer_write_int8(buf,7)
msg.payload=wbuffer_get_data(buf)msg.payloadLength=str(24)
![1bc8bf08-246d-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgWARpcFAAAU1NBqeJM480.png)
data_str="data:"
len=msg.payloadLength
rbuf=rbuffer_create(msg.payload,msg.payloadLength)
for(vari=0;i
data=rbuffer_read_uint8(rbuf);
//print("data:"+data)
data_str=data_str+data
if(i(len?-?1))?{
data_str=data_str+","
}
}
output.payload=data_str
3. 下載驗證因為EPC6450-AWI開發(fā)板是通過網(wǎng)口去下載流圖,所以打開AWFlow_Designer后需要配置目標(biāo)板IP和端口號。點擊流圖下載,顯示下載流圖成功即可。![1bfa84d4-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgWAdfirAACzJ867a78612.jpg)
![1c217148-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgWARkzCAAFV2KbC6qY927.jpg)
![1c57fe52-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgWAJmtvAADjAn1lWfc649.jpg)
![1a938a14-246d-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgSAAE_5AAABH5UOQQI607.jpg)
![1c9a77d2-246d-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/FA/wKgZomToDgWAF7lzAADsKECXPss140.png)
-
致遠(yuǎn)電子
+關(guān)注
關(guān)注
13文章
409瀏覽量
31427
原文標(biāo)題:【EsDA應(yīng)用】如何用5分鐘快速建立CAN通信
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
CAN差分波形的邊沿如此緩慢怎么辦?
![<b class='flag-5'>CAN</b>差<b class='flag-5'>分</b>波形的邊沿如此緩慢怎么辦?](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
ROHM支持“CAN FD”的TVS二極管“ESDCANxx系列”
![ROHM支持“<b class='flag-5'>CAN</b> FD”的TVS二極管“<b class='flag-5'>ESD</b>CANxx系列”](https://file1.elecfans.com//web3/M00/03/BE/wKgZO2drqMyAem4_AAUE9xXjljg614.png)
TCAN1042HGVDRQ1與CAN設(shè)備不能正常通信的原因?
CAN總線通信原理介紹 CAN總線模塊選擇指南
如何使用Arduino實現(xiàn)CAN總線通信
ST NPI 新上架產(chǎn)品【ESDA5WY】Datasheet
EsDA,一站式嵌入式軟件
![<b class='flag-5'>EsDA</b>,一站式嵌入式軟件](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
如何用 S7-200 實現(xiàn) Modbus 通信?
保護(hù)汽車 CAN 總線系統(tǒng)免受ESD過壓事件的影響
![保護(hù)汽車 <b class='flag-5'>CAN</b> 總線系統(tǒng)免受<b class='flag-5'>ESD</b>過壓事件的影響](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論