
=== TABLE 0 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1 | 数据1 | 数据2
0x11 | 0x01 | 0x30 | 预留
=0 | 系统识别码
=1，Windows
=2，Linux
=3，安卓
 | 函数库版本号
从机需要识别开发库版本时使用
=0
 | 函数库版本号
从机需要识别开发库版本时使用
=0


=== TABLE 1 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1 | 数据2
0x11 | 0x01 | 0x30 | 预留
=0 | 硬件版本识别码
=0 | 固件版本识别码
函数库需要识别固件版本时使用
=0

=== TABLE 2 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1 | 数据2 | 数据3 | 数据4-19 | 数据20-43
0x11 | 0x02 | 0x30 | 预留
=0 | 预留
=0 | 密钥编号
=0，Windows | 认证算法
=0，SM4 | 16位随机数 | 填充随机数

=== TABLE 3 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1 | 数据2 | 数据3 | 数据4-19 | 数据20-43
0x11 | 0x02 | 0x30 | 预留
=0 | 预留
=0 | 密钥编号
=0 | 认证算法
=0，SM4 | 16位随机数加密运算后返回 | 填充随机数

=== TABLE 4 ===
帧头 | 功能码 | 数据长度 | 数据0
0x11 | 0x03 | 0x30 | 0x00

=== TABLE 5 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1-3 | 数据4-6
0x11 | 0x03 | 0x30 | CAN通道数量
（16进制） | 硬件版本
3个字节(1.0.1) | 固件版本
3个字节（1.0.1）

=== TABLE 6 ===
数据7-26（高位有效，\0结束） | 数据27-42（高位有效，\0结束） | 数据43
设备描述字符串（如‘USB CANFD’）
(20字节) | 序列号字符串（如‘20191009001’）
（16字节） | 版本（16进制）
=0，基础型
=1，旗舰型
=2，增强型

=== TABLE 7 ===
数据44 | 数据45 | 数据46-48
接口类型
0：USB
1：miniPCIe
2：PCIe
3：蓝牙
4：蓝牙+USB
5：LAN
6：WIFI
7：LAN +WIFI | 是否支持CANFD
0：不支持
1：支持 | 保留

=== TABLE 8 ===
帧头 | 功能码 | 数据长度 | 数据0
0x11 | 0x03 | 0xB0 | 错误码
=1，索引错误

=== TABLE 9 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1 | 数据2 | 数据3 | 数据4
0x11 | 0x04 | 0x30 | 预留
=0 | CAN通道号
=0，CAN0
=1，CAN1 | 协议类型
=0，CAN
=1，CANFD | FD标准
=0，ISO模式
=1，非IOS模式 | 是否加速
=0，不加速
=1，加速

=== TABLE 10 ===
数据5 | 数据6-9 | 数据10-13
工作模式
=0，正常
=1，只听 | 仲裁域波特率
5K，0x01F31302 (87.5%)
10K，0x00F91302 (87.5%)
20K，0x007C1302 (87.5%)
40K，0x00630A02 (80%)
50K，0x00311302 (87.5%)
80K，0x001D1204 (80%)
100K，0x00181302 (87.5%)
125K， 0x00131302 (87.5%)
200K，0x00130A02 (80%)
250K，0x00091302 (87.5%)
400K，0x00090A02 (80%)
500K，0x00070A02 (80%)
800K，0x00021006 (72%)
1000K，0x00040702 (75%)
 | 数据域波特率
100K，0x001D0E30 (80%)
125K，0x001F0A20 (80%)
200K，0x00130A20 (80%)
250K，0x000F0A20 (80%)
400K，0x00090A20 (80%)
500K，0x00070A20 (80%)
800K，0x00040A20 (80%)
（0x000E0200，20250709修改）
1M，00020D40 (75%)
（0x00020d40，20250709修改）
2M，0x00010930  (73.3%)
3M，0x00000D40 (75%)
4M，0x00000930 (73.3%)
5M，0x00000720 (75%)
6M, 0x00000520 (70%)


=== TABLE 11 ===
帧头 | 功能码 | 数据长度 | 数据0
0x11 | 0x04 | =0x30，成功
=0xB0，失败 | 错误码
=0，无错误
=1，通道号错误

=== TABLE 12 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1 | 数据2 | 数据3 | 数据4 | 5-8 | 9-12
0x11 | 0x05 | 0x30 | 预留
=0 | CAN
通道号
=0，CAN0
=1，CAN1 | 过滤器组
编号
=0-63
（共64组） | 过滤帧
类型
=0，标准帧
=1，扩展帧 | 过滤器
类型
=0，范围id
=1，明确id
=2，掩码 | ID1
 | ID2


=== TABLE 13 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x05 | 0x30，成功
0xB0，失败 | 错误码
=0，无错误
=1，通道号错误

=== TABLE 14 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x06 | 0x30 | 通道号
=0，CAN0
=1，CAN1

=== TABLE 15 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x06 | =0x30，成功
=0xB0，失败 | 错误码
=0，无错误
=1，通道号错误
=2，系统故障

=== TABLE 16 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x07 | 0x30 | 通道号
=0，CAN0
=1，CAN1

=== TABLE 17 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x07 | =0x30，成功 | 错误码
=0，无错误

=== TABLE 18 ===
帧头 | 功能码 | 数据长度 | 数据0
0x11 | 0x08 | 0x30 | 0xAA

=== TABLE 19 ===
帧头 | 功能码 | 数据长度 | 数据0
0x11 | 0x08 | 0x30 | 0xAA

=== TABLE 20 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x09 | 0x30 | 0x00

=== TABLE 21 ===
帧头 | 功能码 | 数据长度 | 数据0 | 
0x11 | 0x09 | 0x30 |  | 

=== TABLE 22 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据1 | 数据2 | 数据3 | 数据4-79
0x11 | 0x0A | 0x50 | 保留 | 保留 | 当前帧序号
0-127 | 使能位
0:禁用；1:使能 | CANFD数据帧

=== TABLE 23 ===
4-7 | 8 | 9 | 9 | 9 | 10 | 10 | 10 | 11 | 12-15 | 12-15 | 12-15 | 12-15 | 16-79
延
时
时间
，单
位ms | 保留 | 7 | 6-4 | 3-0 | 7-2 | 1 | 0 | 数据长度
 | 31 | 30 | 29 | 28-0 | DATA
数据位
（64字节）
延
时
时间
，单
位ms | 保留 | 保留
=0
 | 预留
=0
 | 通道号
=0，CAN0
=1，CAN1 | 无效 | FDF
帧类型
=0，
CAN帧
=1，CANFD帧
 | BRS
加速类型
=0，
不加速
=1，
加速 | 数据长度
 | ESI
保留 | XTD
帧类型
=0，
标准帧
=1，
扩展帧 | RTR
帧格式
=0，
数据帧
=1，
远程帧 | 帧id
 | DATA
数据位
（64字节）

=== TABLE 24 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x0A | =0x30，成功
=0xB0，失败 | 错误码
=0，无错误
=1，通道号错误
=2，序号错误

=== TABLE 25 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x0B | 0x30 | 通道号
=0，CAN0通道
=1，CAN1通道

=== TABLE 26 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x0B | 0x30 | 错误码
=0，无错误
=1，通道号错误

=== TABLE 27 ===
帧头 | 功能码 | 数据长度 | 数据0 | 数据
0x11 | 0x0C | 0x30 | 通道号
=0，CAN0通道
=1，CAN1通道 | 使能位
=0，停止发送
=1，定时发送
=2，循环发送
=3，单次发送

=== TABLE 28 ===
帧头 | 功能码 | 数据长度 | 数据
0x11 | 0x0B | 0x30 | 错误码
=0，无错误
=1，通道号错误
=2，发送方式错误
=3，列表错误

=== TABLE 29 ===
帧头 | 数据包类型 | 数据长度 | 数据0-23/79 |  | --- | 
0x21 | 0/1 | 数据帧个数 | CANFD数据帧1 | CANFD数据帧2 | --- | CANFD数据帧6/20

=== TABLE 30 ===
0-7 | 8 | 9 | 9 | 9 | 10 | 10 | 10 | 11 | 12-15 | 12-15 | 12-15 | 12-15 | 16-23/79
时间戳 | 预留
=0 | 7 | 6-4 | 3-0 | 7-2 | 1 | 0 | 数据长度
 | 31 | 30 | 29 | 28-0 | DATA
数据位
（64字节）
时间戳 | 预留
=0 | 无效
 | 发送类型
=0，正常发送
=1，自发自收
=2，单次发送
=3，单次自发自收 | 通道号
=0，CAN0
=1，CAN1 | 无效 | FDF
帧类型
=0，
CAN帧
=1，CANFD帧
 | BRS
加速类型
=0，
不加速
=1，
加速 | 数据长度
 | ESI
保留 | XTD
帧类型
=0，
标准帧
=1，
扩展帧 | RTR
帧格式
=0，
数据帧
=1，
远程帧 | 帧id
 | DATA
数据位
（64字节）

=== TABLE 31 ===
帧头 | 功能码 | 数据长度 | 数据
0x21 | 0x01 | 0x01 | 成功发送的帧数

=== TABLE 32 ===
帧头 | 功能码 | 数据长度 | 数据0-79 | 数据80-159 | --- | 
0x21 | 0/1 | 数据帧个数(1-6) | CANFD数据帧1 | CANFD数据帧2 | --- | CANFD数据帧6/20

=== TABLE 33 ===
0-7 | 8 | 9 | 9 | 9 | 10 | 10 | 10 | 11 | 12-15 | 12-15 | 12-15 | 12-15 | 16-23/79
时间戳 | 预留
=0 | 7 | 6-4 | 3-0 | 7-2 | 1 | 0 | 数据长度
 | 31 | 30 | 29 | 28-0 | DATA
数据位
（64字节）
时间戳 | 预留
=0 | 错误帧标识
=0，
正确帧
 | 无效 | 通道号
=0
CAN0
=1，CAN1 | 无效 | FDF
帧类型
=0，
CAN帧
=1，CANFD帧
 | BRS
加速类型
=0，
不加速
=1，
加速 | 数据长度
 | ESI
保留 | XTD
帧类型
=0，
标准帧
=1，
扩展帧 | RTR
帧格式
=0，
数据帧
=1，
远程帧 | 帧id
 | DATA
数据位
（64字节）

=== TABLE 34 ===
0-7 | 8 | 9 | 9 | 9 | 10 | 10 | 10 | 11 | 12-15 | 12-15 | 12-15 | 12-15 | 16-79
时间戳 | 预留
=0 | 7 | 6-4 | 3-0 | 7-2 | 1 | 0 | 数据长度
=0x40
 | 31 | 30 | 29 | 28-0 | DATA
数据位
（64字节）
时间戳 | 预留
=0 | 错误帧标识
=1，
错误帧
 | 无效 | 通道号
=0
CAN0
=1，CAN1 | 无效 | =0
 | =0 | 数据长度
=0x40
 | ESI
保留 | =0 | =0 | =0
 | DATA
数据位
（64字节）

=== TABLE 35 ===
Data 0-3（错误计数器ECR） | Data 0-3（错误计数器ECR） | Data 0-3（错误计数器ECR） | Data 4-7 （错误寄存器PSR） | Data 4-7 （错误寄存器PSR） | Data 4-7 （错误寄存器PSR） | Data 4-7 （错误寄存器PSR） | Data 4-7 （错误寄存器PSR） | Data 4-7 （错误寄存器PSR）
31:15 | 14:8 | 7:0 | 31:8 | 7 | 6 | 5 | 4:3 | 2:0
无效 | REC
接收
错误计数 | TEC
发送
错误计数 | 无效
 | BO
=0，在线
=1，
离线 | EW
=0，
无预警
=1，
错误预警 | EP
=0，
错误活动
=1，
错误消极 | 无效
=0 | LEC
=0，没有错误
=1，位填充错误
=2，格式错误
=3，应答错误
=4，Bit1错误
=5，Bit0错误
=6，CRC错误
=7，无错误

=== TABLE 36 ===
D1 | D1 | D1 | D1 | D1 | D1 | D1 | D1 | D2 | D2 | D2 | D2 | D2 | D2 | D2 | D2 | D3 | D3 | D3 | D3 | D3 | D3 | D3 | D3 | D4 | D4 | D4 | D4 | D4 | D4 | D4 | D4
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0
 | BRP | BRP | BRP | BRP | BRP | BRP | BRP | BRP | BRP | SJW | SJW | SJW | SJW | SJW | SJW | SJW | TSEG2 | TSEG2 | TSEG2 | TSEG2 | TSEG2 | TSEG2 | TSEG2 | TSEG1 | TSEG1 | TSEG1 | TSEG1 | TSEG1 | TSEG1 | TSEG1 | TSEG1