修訂歷史:
1.功能介紹
1.1型號說明
本文檔適用以下型號:
ZQWL-CAN(FD)系列產(chǎn)品,USB通訊采用CDC類實現(xiàn),可以在PC機上虛擬出一個串口,串口參數(shù)N,8,1格式,波特率可以根據(jù)需要設(shè)置(范圍9600~48000000bps),硬件自動匹配。本文檔介紹二次開發(fā)的參數(shù)配置,數(shù)據(jù)收發(fā)等協(xié)議。
智嵌物聯(lián)ZQWL開發(fā)的一系列高性能USBCAN(FD)接口卡,具有類型多,安裝方式靈活,方便易用,功能強大等特點。接口卡支持XP/Win7/Win10/Win11等操作系統(tǒng)。
其中,ZQWL-UCANFD-200U、ZQWL-UCAN-201U、ZQWL-UCANFD-400U、ZQWL-UCAN-401U等型號,CAN(FD)通道均采用電氣隔離設(shè)計,可以適用于電磁環(huán)境惡劣的的場合。
1.2產(chǎn)品特性
● USB接口符合USB2.0高速規(guī)范;CAN接口支持 CAN2.0A、B 協(xié)議,符合 ISO11898-1 規(guī)范;
● CAN和CANFD協(xié)議可選;CANFD支持ISO標準和Non-ISO標準;
● 每個通道可以獨立設(shè)置波特率,系統(tǒng)不僅預置了常用波特率列表,而且支持自定義波特 率;支持的波特率范圍:CAN:10Kbps~1Mbps,CANFD:100Kbps~5Mbps;
● 最大流量測試:
● 每個通道均有14組硬件濾波器;每組濾波器可以設(shè)置濾波ID以及掩碼。
● 支持連續(xù)循環(huán)發(fā)送、組發(fā)送、定時發(fā)送等;
● 支持波特率探測,支持合并相同幀ID,支持總線異常統(tǒng)計,支持收發(fā)速率統(tǒng)計;
● 雙通道CAN(FD)接口卡支持中繼功能;
● 200U、201U、400U、401U的CAN(FD)-bus電路采用DC 2500V電氣隔離,具有強大的抗電磁干擾的能力;
● 工作溫度:-40~+85℃;
1.3典型應(yīng)用
● 車載通訊系統(tǒng)、電力通訊系統(tǒng);
● 煤礦遠程通訊;
● 工業(yè)現(xiàn)場控制/;
● 遠程監(jiān)控與數(shù)據(jù)采集;
2.通訊協(xié)議
2.1USB硬件描述符
通過USB的硬件ID(VID和PID)來識別該系列設(shè)備,特征如下:
例如(雙通道CANFD類型):
2.2參數(shù)配置
每幀數(shù)據(jù)長度為22字節(jié),十六進制格式:包括2個字節(jié)幀頭(0x49,0x3B)、1個字節(jié)功能碼、1個字節(jié)讀/寫標志、16個字節(jié)數(shù)據(jù)和2個字節(jié)幀尾(0x45,0x2E):
注意:
●當需要讀參數(shù),“讀/寫”填0x52;當需要寫參數(shù)時,“讀/寫”填0x57;其中,“設(shè)備信息”和“設(shè)備序列號”命令只支持讀命令(0x52)。
●CAN通道號:取值為0x00~0x03,分別對應(yīng)CAN0~CAN3;
●自定義波特率標志:0x00為采用“常用波特率碼”;0x01為自定義波特率;當為自定義波特率時(CAN3僅支持“常用波特率碼”),實際波特率由SJW、TSEG1、TSEG2和BRP計算獲得,計算方式:
Baud = 60000000/(SJW+1 + TSEG1+1 + TSEG2+1)/BRP。
其中SJW取值范圍:0x00~0x03;
TSEG1取值范圍:0x00~0x0F;
TSEG2取值范圍:0x00~0x07;
BRP取值范圍:1~0x0400,BRP是2字節(jié)長度,高字節(jié)在前,低字節(jié)在后。
采樣點計算:SMP=(SJW+1 + TSEG1+1)/(SJW+1 + TSEG1+1 + TSEG2+1)。
●常用波特率碼:高4位是仲裁域波特率(CAN),低4位是數(shù)據(jù)域波特率(CANFD)
仲裁域波特率碼對應(yīng)表:
數(shù)據(jù)域波特率碼對應(yīng)表:
●濾波器組號:每個通道均有14組硬件濾波器,組號取值范圍0~13;
組使能:0x00為禁止該組;0x01為開啟該組;注意,設(shè)備從0組開始查詢該位,遇到一個不為0x01的組時,退出查詢,即便是后面再有使能的組也無效。
●濾波器幀類型:0x00為標準幀;0x01為擴展幀;
●濾波驗收ID和掩碼:
濾波驗收ID:用于比對CAN(FD)接收到的幀ID,以確定該幀是否被接收,十六進制。
掩碼:用于屏蔽濾波驗收ID里的某些位,以確定驗收碼某些位(bit)是否參與比對(對應(yīng)位為0不參與比對,為1參與比對),十六進制。
舉例1:濾波幀類型選擇“標準幀”;“濾波驗收ID”填001,“掩碼”填7FF;
釋義:由于標準幀ID只有11位,濾波驗收ID和掩碼最后11位有意義, 掩碼最后11位全是1,所以濾波驗收ID的后11位全部參與比對,因此上述設(shè)置可以讓幀ID為001的標準幀通過。
舉例2:濾波幀類型選擇“標準幀”;“濾波驗收ID”填010,“過濾屏蔽碼”填7F0釋義:同例1,標準幀只有11位有效,掩碼的最后4位是0,表示濾波驗收ID的最后4位不參與對比,因此上述設(shè)置可以讓幀ID從010到01F的一組標準幀通過。
舉例3:濾波幀類型選擇“擴展幀”;“濾波驗收ID”填00 03 04 01,“掩碼”填1F FF FF FF;
釋義:擴展幀有29位,掩碼的后29位全為1,表示濾波驗收ID的后29位全部參與比對,因此上述設(shè)置可以讓幀ID為00 03 04 01的擴展幀通過。
舉例4:濾波幀類型選擇“擴展幀”;“濾波驗收ID”填00 03 04 00,“掩碼”填1F F0 FF FF;
釋義:根據(jù)上述設(shè)置可以讓幀ID從00 00 04 00到00 0F 04 00的一組擴展幀通過(注意只是標紅色的0到F變化,04 00為固定)。
●系統(tǒng)控制命令
可以通過這個命令實現(xiàn)將設(shè)置好的參數(shù)寫入到設(shè)備里(即斷電不丟失)。
生效參數(shù):0x00為不生效(斷電參數(shù)丟失),0x01為生效(保存到flash中,斷電不丟失);
系統(tǒng)復位:0x00為系統(tǒng)不復位,0x01為系統(tǒng)復位;
CAN0開關(guān):0x00為關(guān)閉CAN0,0x01為開啟CAN0;
CAN1開關(guān):0x00為關(guān)閉CAN1,0x01為開啟CAN1;
舉例說明(用串口助手作為上位機):
①讀取設(shè)備信息
上位機發(fā)送(Hex格式):49 3B 40 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E
②讀取設(shè)備序列號
上位機發(fā)送(Hex格式):49 3B 41 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E
③設(shè)置CAN參數(shù)
設(shè)置CAN0參數(shù):仲裁域波特率250kbps,數(shù)據(jù)域波特率500kbps
上位機發(fā)送(Hex格式):49 3B 42 57 00 00 45 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E
注意,設(shè)置完后,還要發(fā)送生效參數(shù)并開啟CAN0命令:
49 3B 44 57 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 45 2E
開啟任一CAN通道后,設(shè)備開始向上位機發(fā)心跳包。
2.3心跳包
根據(jù)設(shè)備的CAN(FD)的通道數(shù)量,心跳包分為2種格式:單雙通道設(shè)備心跳包和4通道設(shè)備心跳包。
2.3.1單雙通道心跳包格式
單雙通道心跳包為設(shè)備向上位機發(fā)送的數(shù)據(jù)包,心跳包長度為17字節(jié),含義如下:
●功能碼為0xFF(注意4通道功能碼是0xFE)。
●設(shè)備狀態(tài):1個字節(jié),定義如下:
開啟標志:0為未開啟,1為開啟;
總線狀態(tài):
00:總線正常;
01:總線警告
10:總線被動錯誤
11:設(shè)備離線(此時已不能再發(fā)送CAN(FD)報文)
2.3.24通道心跳包格式
4通道心跳包為設(shè)備向上位機發(fā)送的數(shù)據(jù)包,心跳包長度為32字節(jié),含義如下:
●功能碼為0xFE(注意單雙通道功能碼是0xFF)。
●CAN0~1設(shè)備狀態(tài):1個字節(jié),定義如下:
●CAN2~3設(shè)備狀態(tài):1個字節(jié),定義如下:
開啟標志:0為未開啟,1為開啟;
總線狀態(tài):
00:總線正常;
01:總線警告
10:總線被動錯誤
11:設(shè)備離線(此時已不能再發(fā)送CAN(FD)報文)
2.3.3心跳包參數(shù)含義
●發(fā)送速率:每秒發(fā)送的CAN(FD)報文個數(shù)。
●接收速率:每秒接收的CAN(FD)報文個數(shù)。
●錯誤計數(shù)器:
包括發(fā)送錯誤計數(shù)器和接收錯誤計數(shù)器,這些狀態(tài)直接反映了總線的通暢情況,當接收錯誤計數(shù)器值大于127時,總線幾乎已經(jīng)癱瘓。當出現(xiàn)錯誤值較高的情況(40以上),表示總線的通訊出現(xiàn)比較嚴重的阻塞,此時就有必要調(diào)整CAN(FD)網(wǎng)絡(luò)的波特率值或增加CAN(FD)網(wǎng)橋,以提高CAN(FD)總線質(zhì)量。當總線通信良好時,錯誤計數(shù)器一般都能維持在0。
在沒有數(shù)據(jù)向CAN(FD)發(fā)送時,心跳包每隔1秒向上位機發(fā)送一次,當有數(shù)據(jù)向CAN(FD)發(fā)送時,設(shè)備立即向上位機發(fā)送一條心跳包。
2.4CAN(FD)數(shù)據(jù)收發(fā)指令
通過該命令可以實現(xiàn)CAN(FD)報文的發(fā)送和接收,報文格式如下:
●BYTE0:幀頭固定為0x5A;
●BYTE1:幀信息1,包含CAN通道和CAN(FD)報文數(shù)據(jù)長度DLC;
該字節(jié)的每個bit位的含義如下:
當為CAN幀時,DLC的取值范圍是0~8;
當為CANFD幀時,DLC取值為0~8、12、16、20、24、32、48、64。
注意,BYTE1為0xFF或0XFE時為設(shè)備發(fā)向上位機的心跳包,接收數(shù)據(jù)時需要注意。
●BYTE2:幀信息2,包含發(fā)送類型、幀格式、幀類型和是否加速等信息,含義定義如下:
注意:CAN通道號有3個bit構(gòu)成,從高位到低位分別是:BYTE2的Bit4、Bit3、BYTE1的Bit7。取值為0x00~0x07,分別對應(yīng)CAN0~CAN7通道。
正常發(fā)送:在ID仲裁丟失或發(fā)送出現(xiàn)錯誤時,CAN控制器會自動重發(fā),直到發(fā)送成功,或 發(fā)送超時(超時時間1秒),或總線關(guān)閉。
單次發(fā)送:在一些應(yīng)用中,允許部分數(shù)據(jù)丟失,但不能出現(xiàn)傳輸延遲時,自動重發(fā)就沒有意 義了。在這些應(yīng)用中,一般會以固定的時間間隔發(fā)送數(shù)據(jù),自動重發(fā)會導致后面的數(shù)據(jù)無法發(fā)送,出現(xiàn)傳輸延遲。使用單次發(fā)送,仲裁丟失或發(fā)送錯誤,CAN 控制器不會重發(fā)報文。
●BYTE3~6:CAN(FD)幀ID,一共4個字節(jié)。標準幀時,只有BYTE5~6的低11bit有效;擴展幀時,29bit有效。
注意,BYTE3的最高位(Bit7)是CAN協(xié)議類型標志:
0:CAN幀;
1:CANFD幀;
●幀數(shù)據(jù):長度為DLC。
●幀尾:一個字節(jié),固定為0xA5
當上位機向設(shè)備發(fā)送CAN(FD)數(shù)據(jù)包時,設(shè)備收到后會立即返回一條心跳包。
審核編輯 黃宇
-
CAN
+關(guān)注
關(guān)注
57文章
2756瀏覽量
463779 -
通訊協(xié)儀
+關(guān)注
關(guān)注
0文章
8瀏覽量
6222
發(fā)布評論請先 登錄
相關(guān)推薦
評論