修訂曆史:
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)資料包時,裝置收到後會立即傳回一條心跳包。