机密文件,请勿外传
OPENCPU 与 MCU 通信协议
Communications Protocol
公司名称: 赛格导航科技股份有限公司
协议版本:
制作日期:
V3.0.1
2019-01-25
版本历史:
机密文件,请勿外传
时间
版本号
修改人 章节
描述
2018-02-01
2018-04-27
2018-05-09
2018-05-21
2018-05-26
2018-6-7
2018-7-3
2018-7-24
2018-7-31
1.0
2.0
2.1
2.2
2.3
2.4
2.5
2.6
2.7
华猛
华猛
莫甜
华猛
华猛
所有章节 初始版本
4.2
1、增加信息类型 0x0045、0x8045、0x0046、0x8046、
4.1
4.2
4.2
0x0047、0x8047、0x9005、0x1005;
增加 open status
允许 MCU 写 CCID、VIN、DEV_ID 等操作
修改滤波表下发信息类型为 0049,查看滤波表信息类
型为 004A,读 OPEN 软件版本信息类型为 004B
华猛
4.1
增加 MCU I/O 状态位定义、CAN 报文丢失位定义
陈观富 4.1
增加 VIN 码读写消息及修改表 8:UDS 诊断请求/回复
内容定义
华猛
4.2
增加 004E/804E 至 005e/805e
陈观富 4.1/4.2
1.增加 0060/8060、0061/8061、1006/9006、
2.增加 Open 更新 MCUapp 协议(1007/9007、
1008/9008、1009/9009、100a/900a)
3.修改表 6 CAN 帧透传中:can 通道说明
2018-8-14
2.8
陈观富 4.2
增加 0062/8062,0063/8063,0064/8064,
100B/900B,100C/900C,0065/8065,0066/8066
2018-10-15
2.9
陈观富 4.1/4.2 增加 0067/8067 至 0071/8071
表格 MCU I/O 状态格式中:增加车辆侧翻状态标志位、
请求 OPEN 休眠标志位
2018-11-15
3.0
陈观富 4.2
增加 0072/8072、0073/8073、0074/8074
2019-1-25
3.0.1
范裕亮 4.1
1. 重新布局
2019-2-22
3.0.2
范裕亮 4.1
4.2
2. 表 5 的 MCU IO 定义区分江淮项目和其它项目
3. 增加最近 MCU 复位源的指令 0x100d/0x900d
1. 增加 OPENCPU 发送 Can 事件周期型帧指令 0x100e
2. 增加 IMEI 号读取指令 0x8077 和 0x0077
2019-2-27
3.0.3
范裕亮 4.2
1. 修正自动化测试某些查询和反馈的指令定义反的
问题
机密文件,请勿外传
1 数据类型
协议中使用的数据类型见表 1:
表 1 数据类型
数据类型
描述及要求
BYTE
WORD
DWORD
BYTE[n]
BCD[n]
STRING
CHAR
BYTE_STRING
C_STRING
N_STRING
HEX_STRING
BIN
UNICODE
UNICDOE_HEX_STRING
2 传输规则
无符号单字节类型(字节,8 位),0..255
无符号双字节整型(字,16 位),0..147483647
无符号四字节整型(双子,32 位),0..4294967295
n 字节
8421 码,n 字节
字符、GBK 码,GB2312 码
单个 ASCII 码字符
十六进制表示的字符串,如“1”,采用“31”表示。
定长时,位数不足时,左补 ASCII 码 0(0x30)。特别
指示除外。
ASCII 字符串。定长时,位数不足时,右补二进制的 0
(0x00)。特别指示除外。
含有 0..9、.的数字字符串。定长时,位数不足时,左
补 ASCII 码 0(0x30)。特别指示除外。
十六进制表示的字符串,如“1”,采用“31”表示。
定长时,位数不足时,左补 ASCII 码 0(0x30)。特别
指示除外。
二进制
Unicode 码
Unicode 的十六进制表示的字符串,如“一”,采用
“4E00”表示
本协议中采用大端模式(Big-Endian)的网络字节序来传递字和双字(高字节
在前,低字节在后)
字节的传输约定:按照字节流的方式传输。
3 通信协议基本格式
机密文件,请勿外传
OPENCPU 与 MCU 之间的通信的基本格式为:
起始符
波特率:2Mbps
信息类型
信息长度
信息内容
校验
结束符
内容
起始符
信息类型
信息长度
表 2 基本信息格式
定义
0FH,为一个字节,十六进制码
为两个字节,十六进制码(0F,F0 等特殊码不用)
为 2 个字节,十六进制码(WORD)
为 2 个字节,十六进制码(WORD),与“信息长度”互为反码
为一组十六进制码(最大长度为 256)
为一个字节,16 进制码,是自信息类型起至对象号所有码的异或和
F0H,为一个字节,十六进制码
信息长度反码
信息内容
校验
结束符
4 具体信息格式说明
4.1 信息类型(一)
信息
类 型 编
码
0x1001
0x9001
信息类型
OPEN CPU 状态
MCU I/O 状态发送
0x1002
0x9002
0x1003
0x9003
0x1004
0x9004
0x9005 请求 OPEN 休眠
CAN 帧透传
CAN 帧透传
MCU 调试命令
MCU 调试透传
UDS 诊断请求
UDS 诊断回复
表 3
信息传递方向
MCU
OPENCP
U
--------------
<--------------
--------------
<--------------
--------------
<--------------
--------------
<--------------
<--------------
备注
9001 应答
1s 周 期 / 触
发发送
控制类
即时发送
信息内容编码
编码见如下表 4
编码见如下表 5
编码见如下表 6
编码见如下表 6
编码见如下表 7
编码见如下表 8
BYTE[0]:0x01
BYTE[1]:MCU 休眠
等级
0x1005 返回指令结果
0x9006 返回指令结果
0x1006
Open 请求复位自身模
块
MCU 响应
Open 请求下载服务
MCU 响应
0x9006
0x1007
0x9007
0x1008 传输文件内容
0x9008
0x1009 文件传输完成
0x9009
MCU 响应
MCU 响应
0x100a
MCU 跳 转 BOOT 进 行
app 更新
0x900a 返回 app 更新指令结果
<--------------
0x900b 请求 OPEN 断电
0x100b 返回指令结果
<--------------
--------------
0x100c 推送预约的升级时间
--------------
0x900c 返回指令结果
0x100d 请求 mcu 最近复位源
0x900d Mcu 返回最近复位源
<--------------
--------------
<--------------
0x100e
Can 事件周期型帧发送
--------------
机密文件,请勿外传
--------------
<--------------
--------------
<--------------
--------------
<--------------
--------------
<--------------
--------------
<--------------
--------------
0x01:允许
0x02:不允许
0x01:成功
0x02:失败
编码见如下表 9
编码见如下表 10
0x01:传输完成
0x02:失败
0x01:更新成功
0x02: 更新失败
0x01:允许
0x02:不允许
BCD[6](年、月、
日、时、分、秒)
0x01:成功
0x02:失败
每 个 复 位 源 数 据
10 字节,包括时间
和复位源,如下表
12;初定:回复最
近 30 个复位源;
总共 300 个字节;
编码见如下表 13
起始字节
0
1
表 4:OPENCPU 状态
字段
状态
4G 信号强度
数据类型
BYTE[1]
BCD[1]
描述及要求
OPENCPU 状态
0~31
机密文件,请勿外传
2
3
9
13
17
GPS 卫星数
时间
经度
纬度
方向
0~24
BCD[1]
BCD[6] 年、月、日、时、分、秒
DWORD
DWORD
WORD
实际经度*10^6
实际纬度*10^6
0~360 度,0 度为正北,顺时针
bit7
4G 模块
工作状
态
bit6
Gps 模 块 状
态
OPENCPU 状态格式
bit5
bit4
Emmc
连网
BYTE0
0--正常
1--异常
0--正常、
1--异常
1--挂载、
0--卸载
1---on、
0--off
bit3
bit2
bit1
bit0
Open 休
眠应答
1—允许
0-不允
许
纬度
经度
定位
1--北、
0--南
1--西、
0--东
1--on、
0--off
起始字节
0
2
3
4
8
12
16
19
25
bit7
车身 CAN
连接
表 5:MCU I/O 状态(除江淮项目外所有项目)
字段
状态
外部主电电压
内部备用电池电压
G-sensor 纵向加速
度值
G-sensor 计算后的
横向加速度值
G-sensor 计算后的
垂直加速度值
报文丢失状态
时间
状态 2
数据类型
BYTE[2]
BYTE
BYTE
Int
Int
Int
BYTE[2]
BCD[6]
BYTE[2]
描述及要求
MCU I/O 状态,如下表 5-1
0~255,精度:0.1V
0~255,精度:0.1V
单位:μg )(值有符号,可正可
负
单位:μg )(值有符号,可正可
负
单位:μg )(值有符号,可正可
负
报文丢失状态,如下表 5-4
年、月、日、时、分、秒
MCU I/O 状态 2,如下表 5-2
表 5-1 MCU I/O 状态格式(除江淮项目外所有项目)
bit6
bit2
bit3
SRS
B-CALL
KEY_LED_
BL
bit5
E-CALL-
LED_STA2
bit4
E-CALL-
LED_STA1
bit0
ACC
1--on、
0--off
bit1
E-C
ALL
1--o
n、
0--o
ff
BYTE0
1--on、
0--off
1--on、
0--off
1--on、
0--off
1---on、
0--off
1--on、
0--off
1--on、
0--off
G-sensor
拖车
碰撞信号
T-BOX 功耗等级
BYTE1
0-没有拖
车、1-拖车
0-没有碰
撞、1-碰撞
001:全功能模式
010:低功耗模式
011:一级休眠
诊断 CAN 连
接
1--on、
0--off
GPS 天线状态
00-正常、01-短
路、10-开路、11-
无效
机密文件,请勿外传
100:二级休眠
101:三级休眠
其它:无效
表 5-2 MCU I/O 状态 2 格式(除江淮项目外所有项目)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
G-senso
r 侧翻
MCU 运
行模式
0-boot
1-app
0-没有
侧翻
1-侧翻
BYTE0
BYTE1
bit0
请 求
OPEN 休
眠
00-正常
01- 请 求
中
表 5:MCU I/O 状态(江淮项目)
字段
起始字节
0
4
5
6
10
14
18
21
状态
外部主电电压
内部备用电池电压
G-sensor 纵向加速
度值
G-sensor 计算后的
横向加速度值
G-sensor 计算后的
垂直加速度值
报文丢失状态
时间
数据类型
BYTE[4]
BYTE
BYTE
描述及要求
MCU I/O 状态,如下表 5-3
0~255,精度:0.1V
0~255,精度:0.1V
Int
Int
Int
单位:μg )(值有符号,可正可
负
单位:μg )(值有符号,可正可
负
单位:μg )(值有符号,可正可
负
BYTE[2]
BCD[6]
报文丢失状态,如下表 5-4
年、月、日、时、分、秒
表 5-3 MCU I/O 状态格式(江淮项目)
bit7
车身 CAN
连接
bit6
KEY_LED_
BL
bit5
F-CALL-
LED_STA2
bit4
E-CALL-
LED_STA1
bit3
bit2
SRS
B-CALL
BYTE0
1--on、
0--off
1--on、
0--off
1--on、
0--off
1---on、
0--off
1--on、
0--off
1--on、
0--off
bit0
ACC
1--on、
0--off
bit1
E-C
ALL
1--o
n、
0--o
ff
G-sensor
拖车
BYTE1
碰撞信号
T-BOX 功耗等级
0-没有拖 0-没有碰 001:全功能模式
诊断 CAN 连
接
1--on、
GPS 天线状态
00-正常、01-短
车、1-拖车 撞、1-碰撞 010:低功耗模式
0--off
路、10-开路、11-
机密文件,请勿外传
011:一级休眠
100:二级休眠
101:三级休眠
其它:无效
G-sensor
MCU 运行
侧翻
0-没有侧
翻、1-侧翻
模式
0-boot
1-app
BYTE2
BYTE3
无效
请求 OPEN 休眠
00- 正常、
01- 请求中
bit7
预留
预留
bit6
表 5-4 报文丢失状态
bit5
bit4
PEMS 通讯
丢失
TPMS 通
讯丢失
1--on、
0--off
1--on、
0--off
空气净化
器通讯丢
失
1---on、
0--off
bit3
HVAC
通讯
丢失
1--on、
0--off
bit2
GW 通
讯丢失
1--on、
0--off
bit1
BCM
通讯
丢失
1--on、
0--off
bit0
ICM 通
讯丢
失
1--on、
0--off
BYTE0
BYTE1
起始字节
0
1
2
0
4
8
9
...
CAN 帧#n
起始字节
字段
表 6:CAN 帧透传
数据类型
字段
CAN 通道
BYTE
CAN 总帧数
CAN 帧#1
CAN 帧#2
CAN 帧#3
BYTE
CAN 帧#1
CAN 帧#2
CAN 帧#3
...
CAN 帧#n
CAN 帧数据格式
数据类型
DWORD
DWORD
BYTE
BYTE[DLC]
时间戳
CAN ID
CAN DLC
CAN DATA
表 7:MCU 调试命令
描述及要求
0x00:为第一通道
0x01:为第二通道
0xFF:为 mcu 诊断通道
0~255
CAN 帧数据格式见下表
描述及要求
以毫秒为单位
标准/扩展帧 CAN ID
CAN 帧数据长度,0~8