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