• 正文
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【EsDA應(yīng)用】如何用5分鐘快速建立CAN通信

2023/07/18
1690
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

CAN總線(xiàn)的高可靠性、高性能等優(yōu)點(diǎn)使其在工業(yè)測(cè)控以及工業(yè)自動(dòng)化等領(lǐng)域中被大量廣泛使用。本文基于EsDA開(kāi)發(fā)平臺(tái),為您簡(jiǎn)單介紹如何用5分鐘快速建立CAN通信

簡(jiǎn)介

CAN是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議。由于性能高,可靠性高現(xiàn)被廣泛應(yīng)用在汽車(chē),醫(yī)療,船舶,工業(yè)自動(dòng)化等其他方面。因?yàn)橹恍枰獌筛€(xiàn)就可在多個(gè)設(shè)備間進(jìn)行數(shù)據(jù)通信所以被廣泛使用。本文基于EsDA開(kāi)發(fā)平臺(tái),為您簡(jiǎn)單介紹如何用5分鐘快速建立CAN通信。

基本工作原理:通過(guò)USBCANFD-200U接口卡實(shí)現(xiàn)主板與PC實(shí)現(xiàn)CAN(FD)通信。

本應(yīng)用選用 EPC6450-AWI開(kāi)發(fā)板,USBCANFD-200U接口卡與PC連接,使其能與接入CAN(FD)網(wǎng)絡(luò)的開(kāi)發(fā)板進(jìn)行數(shù)據(jù)收發(fā),USBCANFD不同系列產(chǎn)品支持1~8路CAN(FD)通信,可根據(jù)不同需求進(jìn)行選擇,本文采用的200U系列僅支持2路通信。該實(shí)驗(yàn)用到了timer,fscript,canfd_out,canfd_in,fscript和log節(jié)點(diǎn)。

前期準(zhǔn)備若是剛開(kāi)始接觸EsDA,可先閱讀EsDA其他系列文章,從零開(kāi)始搭建環(huán)境和掌握基本開(kāi)發(fā)流程,已有基礎(chǔ)的可以跳過(guò):

EsDA?MPC-ZC1?入門(mén)(一)——?軟件安裝

EsDA?MPC-ZC1入門(mén)(二)——?LED控制

【EsDA應(yīng)用】5分鐘實(shí)現(xiàn)一個(gè)串口通信業(yè)務(wù)

1. 硬件準(zhǔn)備

1.1 準(zhǔn)備一個(gè)USBCANFD-200U接口卡,并在PC上下載并安裝ZCANPRO的上位機(jī)軟件。

1.2 準(zhǔn)備EPC6450-AWI開(kāi)發(fā)板,并按照下圖所示連接好硬件。

將EPC6450-AWI開(kāi)發(fā)板上的CAN_0與USBCANFD-200U隨機(jī)一路進(jìn)行連接,并將USBCANFD-200U接口卡的USB2.0連接到PC上,建立好硬件連接。

2. 節(jié)點(diǎn)介紹

實(shí)現(xiàn)CAN(FD)總線(xiàn)通信,需要使用到canfd相關(guān)的AWFlow節(jié)點(diǎn),包括canfd_out,canfd_in和canfd三個(gè)節(jié)點(diǎn)。

2.1 canfdCANFD通信協(xié)議配置節(jié)點(diǎn),屬于隱式節(jié)點(diǎn),不會(huì)顯示在畫(huà)布中,需要配套相應(yīng)功能節(jié)點(diǎn)一起使用。2.1.1 屬性

    端口(port):設(shè)備端口路徑,用于系統(tǒng)打開(kāi)設(shè)備;CAN控制器類(lèi)型(can_type):設(shè)置CAN控制器類(lèi)型。值為0表示CAN;值為1表示CANFD;非標(biāo)準(zhǔn)ISO模式(non_iso_mode):開(kāi)啟/關(guān)閉非標(biāo)準(zhǔn)ISO模式。值為0表示關(guān)閉;值為1表示開(kāi)啟;仲裁域波特率(nominal_bps):設(shè)置仲裁域波特率,單位是bps,值域是0~1000000;仲裁域采樣點(diǎn)精確的分子值(nominal_spf):設(shè)置仲裁域采樣點(diǎn)精確的分子值,采樣點(diǎn)用分?jǐn)?shù)來(lái)表示,如需要將采樣點(diǎn)設(shè)置為87.5%,則設(shè)置采樣點(diǎn)的分母為1000,分子為875即可。因硬件原因可能導(dǎo)致不能精確地配置采樣點(diǎn),增加了兩個(gè)分子值來(lái)表示范圍。值域是0~10240;仲裁域采樣點(diǎn)最小的分子值(nominal_spf_min):設(shè)置仲裁域采樣點(diǎn)最小分子值,值域是0~10240;仲裁域采樣點(diǎn)最大的分子值(nominal_spf_max):設(shè)置仲裁域采樣點(diǎn)最大分子值,值域是0~10240;仲裁域采樣點(diǎn)分母值(nominal_spd):設(shè)置仲裁域采樣點(diǎn)分母值,值域是0~10240數(shù)據(jù)域波特率(data_bps):設(shè)置數(shù)據(jù)域波特率,值域是0~5000000;數(shù)據(jù)域采樣點(diǎn)精確的分子值(data_spf):設(shè)置數(shù)據(jù)域采樣點(diǎn)精確的分子值,采樣點(diǎn)用分?jǐn)?shù)來(lái)表示,如需要將采樣點(diǎn)設(shè)置為87.5%,則設(shè)置采樣點(diǎn)的分母為1000,分子為875即可。因硬件原因可能導(dǎo)致不能精確地配置采樣點(diǎn),增加了兩個(gè)分子值來(lái)表示范圍。值域是0~10240;數(shù)據(jù)域采樣點(diǎn)最小的分子值(data_spf_min):設(shè)置數(shù)據(jù)域采樣點(diǎn)最小的分子值。值域是0~10240;數(shù)據(jù)域采樣點(diǎn)最大的分子值(data_spf_max):設(shè)置數(shù)據(jù)域采樣點(diǎn)最大的分子值。值域是0~10240;數(shù)據(jù)域采樣點(diǎn)分母值(data_spd):數(shù)據(jù)域采樣點(diǎn)分母值。值域是0~10240;濾波器使能(filter_enable):開(kāi)啟/關(guān)閉濾波器。值為0表示關(guān)閉;值為1表示開(kāi)啟;濾波表(filter_table):濾波表,濾波表采用json數(shù)組的形式設(shè)置,最大支持32條,符合濾波表?xiàng)l件的報(bào)文將被接收,不符合的報(bào)文會(huì)被過(guò)濾,但錯(cuò)誤報(bào)文不會(huì)被過(guò)濾。濾波表格式如下:id表示報(bào)文ID;msk表示ID掩碼,ID掩碼部分相同的報(bào)文將被接收;recv_std表示是否接收標(biāo)準(zhǔn)幀;recv_ext表示是否接收擴(kuò)展幀;recv_data表示是否接收數(shù)據(jù)幀;recv_rmt:是否接收遠(yuǎn)程幀。

* 配置節(jié)點(diǎn)(config類(lèi)型)只存在節(jié)點(diǎn)屬性,不具備輸入輸出功能。2.2 canfd_in2.2.1 屬性

    • 名稱(chēng)(name):節(jié)點(diǎn)名稱(chēng),用于索引查找本節(jié)點(diǎn);
  • 顯示名稱(chēng)(displayName):用于畫(huà)布上顯示的名稱(chēng);關(guān)聯(lián)配置(config):綁定一個(gè)canfd的配置節(jié)點(diǎn)。

2.2.2 輸出

    payload:CAN報(bào)文,1-8字節(jié)為時(shí)間戳,9-12字節(jié)為ID,13-14字節(jié)為報(bào)文標(biāo)志位【位0:發(fā)送幀標(biāo)志(單次發(fā)送)。位1:CANFD幀標(biāo)志,位2:遠(yuǎn)程幀標(biāo)志,位3:擴(kuò)展幀標(biāo)志,位4:錯(cuò)誤幀標(biāo)志,位5:轉(zhuǎn)換可變速率,位6:錯(cuò)誤狀態(tài)指示(0:被動(dòng)錯(cuò)誤,1:主動(dòng)錯(cuò)誤)】,15-16字節(jié)為通道號(hào)(低5位)和數(shù)據(jù)長(zhǎng)度(高11位),17字節(jié)到末尾為報(bào)文數(shù)據(jù);payloadLength:負(fù)載長(zhǎng)度。

* pump類(lèi)型節(jié)點(diǎn)通常不具備數(shù)據(jù)輸入。2.3 canfd_out2.3.1 屬性

    • 名稱(chēng)(name):節(jié)點(diǎn)名稱(chēng),用于索引查找本節(jié)點(diǎn);顯示名稱(chēng)(displayName):用于畫(huà)布上顯示的名稱(chēng);
  • 關(guān)聯(lián)配置(config):綁定一個(gè)canfd的配置節(jié)點(diǎn)。

2.3.2?輸入

    payload:CAN報(bào)文,1-8字節(jié)為時(shí)間戳,9-12字節(jié)為ID,13-14字節(jié)為報(bào)文標(biāo)志位【位0:發(fā)送幀標(biāo)志(單次發(fā)送),位1:CANFD幀標(biāo)志,位2:遠(yuǎn)程幀標(biāo)志,位3:擴(kuò)展幀標(biāo)志,位4:錯(cuò)誤幀標(biāo)志,位5:轉(zhuǎn)換可變速率,位6:錯(cuò)誤狀態(tài)指示(0:被動(dòng)錯(cuò)誤,1:主動(dòng)錯(cuò)誤)】,15-16字節(jié)為通道號(hào)(低5位)和數(shù)據(jù)長(zhǎng)度(高11位),17字節(jié)到末尾為報(bào)文數(shù)據(jù);payloadLength:負(fù)載長(zhǎng)度。

* sink類(lèi)型節(jié)點(diǎn)通常不具備數(shù)據(jù)輸出。

業(yè)務(wù)處理

本應(yīng)用主要通過(guò)USBCANFD-200U接口卡將PC與接入CAN網(wǎng)絡(luò)的EPC6450-AWI開(kāi)發(fā)板進(jìn)行數(shù)據(jù)收發(fā),具體實(shí)現(xiàn)如下:

1. 添加節(jié)點(diǎn)并連線(xiàn)

本實(shí)驗(yàn)主要執(zhí)行兩個(gè)步驟:

    EPC6450-AWI開(kāi)發(fā)板上的CAN_0通過(guò)CAN通信協(xié)議,canfd_out節(jié)點(diǎn)定時(shí)向USBCANFD-200U接口卡發(fā)送0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,八個(gè)字節(jié)的數(shù)據(jù),發(fā)送數(shù)據(jù)可在PC上的工具ZCANPRO上查看。PC上的工具ZCANPRO通過(guò)CAN總線(xiàn)通信協(xié)議定時(shí)發(fā)送0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77八個(gè)字節(jié)的數(shù)據(jù),EPC6450-AWI開(kāi)發(fā)板上通過(guò)canfd_in這個(gè)節(jié)點(diǎn)去接收數(shù)據(jù),并通過(guò)log最終打印可查看。

采用的節(jié)點(diǎn)有timer,fscript,canfd_out,canfd_in,fscript和log節(jié)點(diǎn)。

2. 配置節(jié)點(diǎn)

雙擊timer節(jié)點(diǎn),設(shè)置canfd_out節(jié)點(diǎn)發(fā)送數(shù)據(jù)的定時(shí)時(shí)間。雙擊canfd_out節(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn)fscript,結(jié)合2.2關(guān)于canfd_out節(jié)點(diǎn)的介紹可知canfd_out節(jié)點(diǎn)有兩個(gè)輸入?yún)?shù):payload;payloadLength。一個(gè)傳遞通信數(shù)據(jù)內(nèi)容,一個(gè)傳遞通信數(shù)據(jù)長(zhǎng)度,內(nèi)容如下:

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)

雙擊canfd_out和canfd_in節(jié)點(diǎn),并點(diǎn)擊配置節(jié)點(diǎn)名旁邊的鉛筆圖標(biāo)去配置canfd的屬性。

因?yàn)閏anfd_in和canfd_out節(jié)點(diǎn)的配置節(jié)點(diǎn)都是同一個(gè),所以配置信息一致。根據(jù)2.2中對(duì)配置節(jié)點(diǎn)canfd的屬性介紹,配置如下:

雙擊canfd_in的消費(fèi)者節(jié)點(diǎn)fscript,根據(jù)2.2節(jié)點(diǎn)介紹中對(duì)canfd_in的輸出參數(shù)描述,fscript的內(nèi)容如下:

data_str?=?"data:"
len?=?msg.payloadLength
rbuf?=?rbuffer_create(msg.payload,?msg.payloadLength)
for?(var?i?=?0;?i?<?len;?i?=?i?+?1)?{
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. 下載驗(yàn)證因?yàn)镋PC6450-AWI開(kāi)發(fā)板是通過(guò)網(wǎng)口去下載流圖,所以打開(kāi)AWFlow_Designer后需要配置目標(biāo)板IP和端口號(hào)。點(diǎn)擊流圖下載,顯示下載流圖成功即可。

打開(kāi)上位機(jī)ZCANPRO并開(kāi)啟對(duì)應(yīng)的通道號(hào),將波特率等參數(shù)選擇與流圖上的canfd配置節(jié)點(diǎn)參數(shù)同步一致。上位機(jī)CAN視圖可以查看從上位機(jī)發(fā)送出去的數(shù)據(jù)和接收到的數(shù)據(jù)如下。

根據(jù)流圖中l(wèi)og節(jié)點(diǎn)的打印信息可知:數(shù)據(jù)內(nèi)容和長(zhǎng)度與上位機(jī)發(fā)送的數(shù)據(jù)是一致的。

綜上測(cè)試結(jié)果可知:實(shí)驗(yàn)效果已達(dá)成。

 

 

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠(chǎng)商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
KSZ8895MQXI-TR 1 Microchip Technology Inc Ethernet Transceiver, PQFP128
暫無(wú)數(shù)據(jù) 查看
KSZ8041FTLI-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48

ECAD模型

下載ECAD模型
$2.95 查看
DP83869HMRGZT 1 Texas Instruments Extended temperature, high-immunity gigabit Ethernet PHY transceiver with copper &amp; fiber interface 48-VQFN -40 to 125

ECAD模型

下載ECAD模型
$13.8 查看
致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開(kāi)發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶(hù)資源
  • 寫(xiě)文章/發(fā)需求
立即登錄