远程控制通讯协议.docx
《远程控制通讯协议.docx》由会员分享,可在线阅读,更多相关《远程控制通讯协议.docx(38页珍藏版)》请在冰豆网上搜索。
远程控制通讯协议
远程控制通讯协议
V1.02
深圳市航天无线通信技术有限公司
修订记录
序号
版本号
修订内容
修订日期
1
V1.0
初版
2015-12-2
2
V1.0
增加定单指令
2015/12/22
3
V1.01
对消息ID重新编号,同时增加了蓝牙
部分的协议
2015/12/25
4
V1.02
2016/2/17
目 录
1. 范围 5
2. 术语和定义、缩略语 5
2.1. 术语和定义 5
2.2. 缩略语 5
3. 协议基础 5
3.1. 通信方式 5
3.2. 数据类型 5
3.3. 传输规则 6
3.4. 消息的组成 6
4. 消息列表 8
5. 数据交互 9
5.1登录 9
5.2注销 9
5.3心跳 9
5.4工况数据 9
5.5汽车故障 11
5.6终端通用应答 11
5.7参数查询应答 11
5.8工况数据查询应答 12
5.9车辆故障查询应答 14
5.10参数设置 14
5.11参数查询 16
5.12工况数据查询 16
5.13车辆查询故障 16
5.14平台通用应答 16
5.15登录应答 16
6. 控制交互 17
6.1定单执行结果上报 17
6.2远程控制 17
6.3定单预定 17
6.4定单取消 18
6.5远程控制应答 18
6.6定单预定应答 18
6.7定单取消应答 19
7. 蓝牙交互 19
7.1定单执行请求 19
7.2执行结果应答 19
8. 升级 20
8.1升级请求 20
8.2升级请求应答 20
9 短信控制命令 21
9.1工况数据查询 21
9.2终端参数查询 21
9.3终端参数设置 21
9.4远程控制 22
9.5远程唤醒 22
9.6远程睡眠 22
终端通讯协议及数据格式
1.范围
本规范适用于车载终端和平台之间的通信。
2.术语和定义、缩略语
2.1.术语和定义
下列术语和定义适用于本文件。
3.1.1
数据通信链路异常abnormaldatacommunicationlink
无线通信链路断开,或暂时挂起(如通话过程中)。
3.1.3
注销unregister
2.2.缩略语
下列缩略语适用于本文件。
APN——接入点名称(accesspoint name)
GZIP——一个GNU自由软件的文件压缩程序(GNUzip)
SMS——短消息服务(shortmessageservice)
TCP——传输控制协议(transmissioncontrolprotocol)
TTS——文本到语音(textto speech)
VSS——车辆速度传感器(vehiclespeedsensor)
3.协议基础
3.1.通信方式
通信协议采用TCP或UDP,平台作为服务器端,终端作为客户端。
当数据通信链路异常时,终端可以采用SMS消息方式进行通信。
3.2.数据类型
协议消息中使用的数据类型见表1:
表1数据类型
数据类型
描述及要求
BYTE
无符号单字节整型(字节,8位)
WORD
无符号双字节整型(字,16位)
DWORD
无符号四字节整型(双字,32位)
BYTE[n]
n字节
BCD[n]
8421码,n字节
STRING
GBK编码,若无数据,置空
INT16
有符号双字节整型(16位)
INT32
有符号四字节整型(32位)
TIME
BYTE[7]:
B0B1:
年,如2016(0x07e0)年,则为B0:
0xe0,B1:
0x07,B2:
月,B3:
日,B4:
时,B5:
分,B6:
秒
如无特别说明,本协议中的时间均是格林威治时间
3.3.传输规则
协议采用小端模式(little-endian)的网络字节序来传递字和双字。
约定如下:
——字节(BYTE)的传输约定:
按照字节流的方式传输;
——字(WORD)的传输约定:
先传递低8位,再传递高8位;
——双字(DWORD)的传输约定:
先传递低8位,然后传递高8位,再传递高16位,最后传递高24位。
3.4.消息的组成
3.4.1 消息结构
每条消息由标识位、消息头、消息体和校验码组成,消息结构图如图1所示:
标识位
消息头
消息体
检验码
标识位
图1 消息结构图
3.4.2 标识位
采用0x7e表示,若校验码、消息头以及消息体中出现0x7e,则要进行转义处理,转义规则定义如下:
0x7e<————>0x7d后紧跟一个0x02;
0x7d<————>0x7d后紧跟一个0x01。
转义处理过程如下:
发送消息时:
消息体加密(如果需要)——>消息封装——>计算并填充校验码——>转义;
接收消息时:
转义还原——>验证校验码——>消息体解密(如果需要)——>解析消息。
示例:
发送一包内容为0x300x7e0x080x7d0x55的数据包,则经过封装如下:
0x7e0x307d0x020x080x7d0x01 0x55 0x7e。
3.4.3 消息头
消息头内容详见表2:
表2 消息头内容
起始字节
字段
数据类型
描述及要求
0
消息ID
WORD
2
消息体属性
WORD
消息体属性格式结构图见图2
4
终端手机/标志号
BCD[10]
可以根据安装后终端自身的手机号转换。
手机号不足20位,则在前补充数字0。
也可以是终端的序列号转换。
14
消息流水号
WORD
按发送顺序从0开始循环累加
16
附加字段
DWORD
消息体属性格式结构图如图2所示:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
保留
保留
加密方式
消息体长度
图2 消息体属性格式结构
加密方式:
Bit12-bit10:
=000b:
表示不加密,=001b:
IDEA加密,其他:
待定
3.4.4 校验码
校验码指从消息头开始,同后一字节异或,直到校验码前一个字节,占用一个字节。
附加字段:
一般情况下,附加字段固定为0,但蓝牙定单执行请求(0xD001)中,附加字段为定单ID,
4.消息列表
表3:
指令列表
指令类型
发起方
响应方
方向
协议类型
指令含义
方向
协议类型
指令含义
数据交互
上行
0x0001
登录
下行
0x8102
登录响应
上行
0x0002
注销
下行
0x8101
平台通用应答
上行
0x0003
心跳
下行
0x8101
平台通用应答
上行
0x0004
工况数据
下行
0x8101
平台通用应答
上行
0x0005
车辆故障
下行
0x8101
平台通用应答
下行
0x8001
参数设置
上行
0x0101
终端通用应答
下行
0x8002
参数查询
上行
0x0102
参数查询应答
下行
0x8003
工况数据查询
上行
0x0103
工况数据查询应答
下行
0x8004
车辆故障查询
上行
0x0104
车辆故障查询应答
控制交互
上行
0x1001
定单执行结果
下行
0x8101
平台通用应答
下行
0x9001
远程控制
上行
0x1101
远程控制应答
下行
0x9002
定单预定
上行
0x1102
定单预定应答
下行
0x9003
定单取消
上行
0x1103
定单取消应答
蓝牙交互
下行
0xD001
定单执行请求
上行
0x5101
执行结果应答
升级交互
上行
0x7001
升级请求
下行
0xF101
请求应答
说明:
1、指令类型分为:
数据类、控制类、蓝牙类、及升级类,共4类;
2、数据的方向定义为:
上行是指终端(车机)发出,接收端为平台或蓝牙;
3、无论是哪端发送数据,接收端都要作应答,如果没有可应答的数据,则用通用应答,终端的通用应答的消息ID为0x0101,平台的通用应答的消息ID为0x8101,蓝牙与终端交互没有通用应答;
4、蓝牙与终端交互的数据格式和平台与终端交互的数据格式是一样的,加密方式也是一样的,仅仅是消息ID不一样而已,蓝牙与终端通讯无需登陆、注销、心跳包;
5、以下消息的说明仅列出了消息体字段的说明,消息中的其他字段都是一样的,不再说
明。
5. 数据交互
5.1登录
消息ID:
0x0001。
终端登录消息体为空。
当终端与平台断开连接,终端准备发送数据之前,则需要发送登录包与平台建立连接。
5.2注销
消息ID:
0x0002。
终端注销消息体为空。
终端通过注销包与平台断开连接。
5.3心跳
消息ID:
0x0003。
终端心跳消息体为空。
当终端与平台持续2分钟没有数据交互,则终端应主动发送心跳数据包,以便维持与平台的连接,同时平台应采用通用应答。
5.4工况数据
消息ID:
0x0004。
数据格式见表4。
在行程中(点火状态下)或熄火定时上传期间,终端会主动上传工况数据,上传间隔由平台设置,默认为1分钟。
表4消息体数据格式
起始字节
字段
数据类型
描述及要求
0
行程ID
WORD
用于标识行程的一个ID号,通常该ID是从1循环累加的,即下一行程ID是上一行程ID加1,但不是绝对的,也有可能行程之间的ID不是连续的,在熄火下上传的工况数据中的行程ID固定为0.
2
时间戳
TIME
当前终端时间
9
总里程
DWORD
单位:
米
13
小计里程
DWORD
单位:
米,熄火下上传的小计里程为0
17
总油耗
DWORD
单位:
0.1L,
21
小计油耗
DWORD
单位:
0.1L,熄火下上传的小计油耗为0
25
剩余油量
BYTE
单位:
%,
26
剩余电量
BYTE
单位:
%,
27
电池电压
WORD
单位:
0.1V
29
车速
BYTE
单位:
KM/H
30
转速
WORD
单位:
RPM/M
32
冷却液温度
INT8
单位:
摄氏度
33
瞬时油耗
WORD
单位:
0.1L/H
35
发动机负荷
BYTE
单位:
%
36
环境温度
INT8
单位:
摄氏度
37
门窗状态
DWORD[2]
DWORD[0]:
Bit0-Bit1:
左前门状态
00b:
OFF,01b:
ON,11b:
未知
Bit2-Bit3:
右前门状态
00b:
OFF,01b:
ON,11b:
未知
Bit4-Bit5:
左后门状态
00b:
OFF,01b:
ON,11b:
未知
Bit6-Bit7:
右后门状态
00b:
OFF,01b:
ON,11b:
未知
Bit8-Bit9:
门锁状态
00b:
上锁,01b:
开锁,11b:
未知
Bit10-Bit11:
车辆防盗状态
00b:
解除设防,01b:
设防状态,10b:
报警状态,11b:
未知
Bit12-Bit13:
后备箱状态
00b:
OFF,01b:
ON,11b:
未知
Bit14-Bit15:
引擎盖状态
00b:
OFF,01b:
ON,11b:
未知
Bit16-Bit17:
手刹状态
00b:
放下,01b:
拉起,11b:
未知
Bit18-Bit19:
脚刹状态
00b:
松开,01b:
踩下,11b:
未知
Bit20-Bit21:
左转向灯
00b:
OFF,01b:
ON,11b:
未知
Bit22-Bit23:
右转向灯
00b:
OFF,01b:
ON,11b:
未知
Bit24-Bit25:
小灯
00b:
OFF,01b:
ON,11b:
未知
Bit26-Bit27:
大灯
00b:
OFF,01b:
ON,11b:
未知
Bit28-Bit29:
雨刮状态
00b:
OFF,01b:
ON,11b:
未知
Bit30-Bit31:
点火状态
00b:
OFF,01b:
ON,11b:
未知
DWORD[1]:
Bit0-Bit1:
发动机状态
00b:
熄火,01b:
点火,11b:
未知
Bit2-Bit3:
空调状态
00b:
关,01b:
开,11b:
未知
45
GPS数据
BYTE[17]
纬度:
DWORD,0.000001度,当前位置的纬度值
经度:
DWORD,0.000001度,当前位置的经度值
高度:
WORD,0.1米,当前位置海拔
速度:
WORD,0.1km/h,当前GPS速度
方向:
WORD,0.1度,当前行驶方向
定位标志:
BYTEBit01—东经,0—西经。
Bit11—北纬,0—南纬。
Bit2-300---未定位01---2D定位11---3D定位
Bit4-7定位星数
PDOP:
WORD,0.01,位置精度强弱度
62
BYTE[16]
保留,作用待定。
5.5汽车故障
消息ID:
0x0005。
数据格式见表5, 在行驶中如果有故障会终端主动上报。
表5消息体数据格式
起始字节
字段
数据类型
描述及要求
0
时间戳
TIME
当前终端时间
7
故障数量N
BYTE
故障的个数
8
故障码表
BYTE[4*N]
每个故障占4字节
5.6终端通用应答
消息ID:
0x0101。
终端通用应答消息体数格式见表6。
表6消息体数据格式
起始字节
字段
数据类型
描述及要求
0
应答流水号
WORD
对应的平台消息的流水号
2
应答ID
WORD
对应的平台消息的ID
4
结果
BYTE
0:
成功/确认;1:
失败;2:
消息有误;3:
不支持
5.7参数查询应答
消息ID:
0x0102。
数据格式见表7。
当平台发送了参数查询命令(0x8002)时,终端用参数查询应答(0x0102)响应。
表7消息体数据格式
起始字节
字段
数据类型
描述及要求
0
应答流水号
WORD
对应的平台参数查询消息的流水号
2
应答参数个数
BYTE
3
参数项列表
参数项格式和定义见表11
5.8工况数据查询应答
消息ID:
0x0103。
当平台发送了工况数据查询命令(0x8003)时,终端用参数查询应答(0x0103)响应,应答的消息体字段与工况数据上传(0x0004)除了应答的流水号外,其他相同。
表8消息体数据格式
起始字节
字段
数据类型
描述及要求
0
应答流水号
WORD
对应的平台消息的流水号
2
行程ID
WORD
用于标识行程的一个ID号,通常该ID是从1循环累加的,即下一行程ID是上一行程ID加1,但不是绝对的,也有可能行程之间的ID不是连续的,在熄火下上传的工况数据中的行程ID固定为0.
4
时间戳
TIME
当前终端时间
11
总里程
DWORD
单位:
米
15
小计里程
DWORD
单位:
米,熄火下上传的小计里程为0
19
总油耗
DWORD
单位:
0.1L,
23
小计油耗
DWORD
单位:
0.1L,熄火下上传的小计油耗为0
27
剩余油量
BYTE
单位:
%,
28
剩余电量
BYTE
单位:
%,
29
电池电压
WORD
单位:
0.1V
31
车速
BYTE
单位:
KM/H
32
转速
WORD
单位:
RPM/M
34
冷却液温度
INT8
单位:
摄氏度
35
瞬时油耗
WORD
单位:
0.1L/H
37
发动机负荷
BYTE
单位:
%
38
环境温度
INT8
单位:
摄氏度
39
门窗状态
DWORD[2]
DWORD[0]:
Bit0-Bit1:
左前门状态
00b:
OFF,01b:
ON,11b:
未知
Bit2-Bit3:
右前门状态
00b:
OFF,01b:
ON,11b:
未知
Bit4-Bit5:
左后门状态
00b:
OFF,01b:
ON,11b:
未知
Bit6-Bit7:
右后门状态
00b:
OFF,01b:
ON,11b:
未知
Bit8-Bit9:
门锁状态
00b:
上锁,01b:
开锁,11b:
未知
Bit10-Bit11:
车辆防盗状态
00b:
解除设防,01b:
设防状态,10b:
报警状态,11b:
未知
Bit12-Bit13:
后备箱状态
00b:
OFF,01b:
ON,11b:
未知
Bit14-Bit15:
引擎盖状态
00b:
OFF,01b:
ON,11b:
未知
Bit16-Bit17:
手刹状态
00b:
放下,01b:
拉起,11b:
未知
Bit18-Bit19:
脚刹状态
00b:
松开,01b:
踩下,11b:
未知
Bit20-Bit21:
左转向灯
00b:
OFF,01b:
ON,11b:
未知
Bit22-Bit23:
右转向灯
00b:
OFF,01b:
ON,11b:
未知
Bit24-Bit25:
小灯
00b:
OFF,01b:
ON,11b:
未知
Bit26-Bit27:
大灯
00b:
OFF,01b:
ON,11b:
未知
Bit28-Bit29:
雨刮状态
00b:
OFF,01b:
ON,11b:
未知
Bit30-Bit31:
点火状态
00b:
OFF,01b:
ON,11b:
未知
DWORD[1]:
Bit0-Bit1:
发动机状态
00b:
熄火,01b:
点火,11b:
未知
Bit2-Bit3:
空调状态
00b:
关,01b:
开,11b:
未知
47
GPS数据
BYTE[17]
纬度:
DWORD,0.000001度,当前位置的纬度值
经度:
DWORD,0.000001度,当前位置的经度值
高度:
WORD,0.1米,当前位置海拔
速度:
WORD,0.1km/h,当前GPS速度
方向:
WORD,0.1度,当前行驶方向
定位标志:
BYTEBit01—东经,0—西经。
Bit11—北纬,0—南纬。
Bit2-300---未定位01---2D定位11---3D定位
Bit4-7定位星数
PDOP:
WORD,0.01,位置精度强弱度
64
BYTE[16]
保留,作用待定。
5.9车辆故障查询应答
消息ID:
0x0104。
当平台发送了车辆故障查询命令(0x8004)时,终端用车辆故障查询应答(0x0104)响应,应答的消息体字段与车辆故障上传(0x0005)除了应答的流水号外,其他相同。
表9消息体数据格式
起始字节
字段
数据类型
描述及要求
0
应答流水号
WORD
对应的平台消息的流水号
2
时间戳
TIME
当前终端时间
9
故障数量N
BYTE
故障的个数
10
故障码表
BYTE[4*N]
每个故障占4字节
5.10参数设置
消息ID:
0x8001。
数据格式见表10。
终端用通用应答回应。
表10消息体数据格式
起始字节
字段
数据类型
描述及要求
0
参数总数
BYTE
1
参数项列表
参数项格式见表11
表11终端参数项数据格式
字段
数据类型
描述及要求
参数ID
WORD
参数ID定义及说明见表12
参数长度
BYTE
参数值
若为多值参数,则消息中使用多个相同ID的参数项,如调度中心电话号码
表12终端参数设置各参数项定义及说明
参数ID
数据类型
描述及要求
0x0010
STRING
主服务器APN,无线通信拨号访问点。
若网络制式为CDMA,则该处为PPP拨号号码
0x0011
STRING
主服务器无线通信拨号用户名
0x0012
STRING
主服务器无线通信拨号密码
0x0013
STRING
主服务器地址,IP或域名
0x0018
WORD
服务器TCP端口
0x0029
WORD
工况数据上传(ID为0x0005)间隔,单位:
秒,=0:
不上传
0xF105
BYTE[23*N]
接收SMS文本报警号码,SMS控制查询功能号码:
超始字节
字段
数据类型
描述及要求
0
序号
BYTE
范围0~4。
1
设置模式
BYTE
Bit0:
接收警情,0:
NO,1:
OK
Bit1:
参数查询及设置
0:
NO,1:
OK
Bit2:
短信及拨号控制及唤醒,0:
NO,1:
OK
2
电话号码
BYTE[21]
ASCII编码。
不足21位后补0x00。
如果全为0x00,表示清除对应序号的电话号码。
0xF106
BYTE[6]
短信密码,GBK编码。
用于SMS控制、查询功能时密码验证。
0xF107
BYTE
短信报警功能开关。
0x00=关闭;0x01=开启。
0xF108
BYTE
终端SMS语言类型。
0x00=English;0x01=简体中文;
0xF109
BCD[10]
终端序列号,BCD8421编码。
不足20位数字前面补0。
仅用于查询。
不做设置。
0xF10A
STRING
产品型号,仅用于查询。
不做设置。
0xF10B
STRING
软件版本,仅用于查询。
不做设置。
0xF10C
TIME
系统时间
0xF10D
WORD[2]
睡眠上传参数
WORD[0]:
睡眠上传间隔,单位:
分钟,缺省:
60分钟
WORD[1]:
睡眠上传持续时间,单位:
分钟,缺省:
5分钟
5.11参数查询
消息ID:
0x8002。
数据格式见表13。
终端用参数查询应答(0x0102)。
表13消息体数据格式
起始字节
字段
数据类型
描述及要求
0