资源描述
出租车智能服务终端与外设通讯协议及数据格式
1协议基础
1.1 通讯方式
终端与外设采用串口通讯方式,采用主从结构。波特率建议初始9600,数据
传输为异步方式,并以字节为单位,1 个起始位,8 个数据位,1 个停止位,无奇
偶校验。
1.2 帧格式定义
外设与主机的通讯遵循的帧格式见表 82 帧格式定义。
表 82 帧格式定义
起始位 包长度 设备类型 厂商标识 命令字 数据区 校验码 结束位
2字节 2字节 1字节 1字节 2字节 1字节 2字节
起始位为0x55 0xAA。
包长度定义为帧格式中从设备类型到数据区数据的字节数,第1字节为数据包
长度的高字节,第2 字节为命令包长度的低字节,命令包的长度为=高字节*256+
低字节。
设备类型参见10.2.1设备编号编码规则。
命令字第一字节用以区分是标准指令与厂家自定义指令,0x00表示标准指令,
其它为自定义指令;第二字节定义具体的指令(同一功能的发送与应答协议使用
相同的命令类型)。
校验码定义为对协议体中从包长度到数据区数据的异或运算和。
结束位为0x55 0xAA。
1.3 传输规则
发送及应答均按规定的帧格式进行通讯。
采用大端模式(Big-Endian)的字节序来传递帧中的字和双字。
2智能服务终端与计价器通讯协议及数据格式
2.1 计价器状态查询指令
命令字:0x0000。
终端发往计价器设备,获取当前计价器的运行状态,数据区格式见表 83 终端
至计价器数据区定义。
表 83 终端至计价器数据区定义
起始字节 字段 数据类型 说明
0 终端当前时间 BCD[7] 格式为YYYY-MM-DD-hh-mm-ss
计价器应答数据消息数据区格式见表 84 计价器应答数据区定义。
表 84 计价器应答数据区定义
起始字节 字段 数据类型 说明
0 设备编号 BCD[5] 参见10.2设备编号编码规则
5 设备硬件版本号 BCD
6 软件主版本号 BCD
7 软件次版本号 BCD
8 设备状态 UINT8
0x00:设备正常;
0x01: 设备限制使用(次数限制)
0x02:设备限制使用(日期限制)
0x04:营运数据存储满
0x08:上下班签到签退信息满
其他:设备异常;
9 计价器工作状态 UINT8
0x00:签到,已开机
0x01:签退,未开机
0x10:签到,强制开机
0x11:签退,强制关机
10 车牌号 BYTE[6] 车牌号,ASCII字符
16 单位代码 BCD[5]
21 司机代码 BCD[6] 强制开机时以0x00填充
27 总营运次数 UINT32 高位在前,低位在后
2.2 运价参数查询指令
命令字:0x0004。
终端发往计价器设备,获取当前计价器的运行参数设置。
数据区无。
计价器应答数据消息数据区格式见表 85 计价器应答数据区定义。
表 85 计价器应答数据区定义
起始字节 字段 数据类型 说明
0 参数启用时间 BCD[5] YYYY-MM-DD-hh
5 白天往返单价 BCD[2] XX.XX元/公里
7 夜间往返单价 BCD[2] XX.XX元/公里
9 白天单程单价 BCD[2] XX.XX元/公里
11 夜间单程单价 BCD[2] XX.XX元/公里
13 白天二次空贴单价 BCD[2] XX.XX元/公里
15 夜间二次空贴单价 BCD[2] XX.XX元/公里
17 白天起步价 BCD[2] XX.XX元/公里
19 夜间起步价 BCD[2] XX.XX元/公里
21 续程公里数 BCD[2] XX.XX公里
23 起程公里 BCD[2] XX.XX公里
25 单程公里 BCD[2] XX.XX公里
27 二次空贴公里 BCD[2] XX.XX公里
29 白天等候时间单价 BCD[2] XX.XX元
31 夜间等候时间单价 BCD[2] XX.XX元
33 免费等候时间 BCD[2] XX分XX秒
35 加价时间 BCD[2] XX分XX秒
37 夜间开始时间 BCD[2] XX时XX分
39 夜间结束时间 BCD[2] XX时XX分
41 RFU BYTE[22] 系统预留
63 厂商自定义参数区 BYTE[64] 由厂商自定义扩展
2.3 运价参数设置指令
命令字:0x0005。
终端发往计价器设备,用于远程参数设置。厂商实现时应具备安全机制。
数据区格式见表 86 终端至计价器数据区定义。
表 86 终端至计价器数据区定义
起始字节 字段 数据类型 说明
0 参数设置 BYTE[] 参数设置应至少包括参数查询中返回的参数,
各厂商自定义数据区内容及编码。
计价器应答数据消息数据区格式见表 87 计价器应答数据区定义。
表 87 计价器应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00,参数下载成功
0x01,参数包校验失败,设置失败
0x02,同一版本,无需设置
0xFF,设备不支持
1 启用时间 BCD[5] 参数数据包中的参数启用时间, YYYY-MM-DD-hh
2.4 单次营运开始通知指令
命令字:0x00E7。
计价器发往终端,当出租汽车进入重车时触发。
计价器发往终端数据区格式见表 88 计价器至终端数据区定义。
表 88 计价器至终端数据区定义
起始字节 字段 数据类型 说明
0 进入重车时间 BCD[7] 格式YYYY-MM-DD-hh-mm-ss
终端应答数据消息数据区格式见表 89 终端应答数据区定义。
表 89 终端应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x90:执行正确
0xFF:执行错误
2.5 单次营运结束后营运数据发送指令
命令字:0x00E8。
计价器发往终端,当出租汽车由空车进入重车时触发。
计价器发往终端数据区格式见表 90 计价器至终端数据区定义。
表 90 计价器至终端数据区定义
起始字节 字段 数据类型 说明
0 车牌号 BYTE[6] 车牌号,ASCII字符
6 单位代码 BCD[5]
11 司机代码 BCD[6]
17 上车时间 BCD[5] 格式为YY-MM-DD-hh-mm
22 下车时间 BCD[2] 格式为hh-mm
24 计程公里 BCD[3] 格式为XXXXX.X公里
27 空驶公里 BCD[2] 格式为XXX.X公里
29 附加费 BCD[3] 格式XXXXX.X元
32 等待计时时间 BCD[2] 格式为hh-mm
34 交易金额 BCD[3] 格式XXXXX.X元
37 当前车次 UINT32 高位在前,低位在后
以下一卡通交易相关数据(供参考),其数据项及长度各地市可根据实际情况扩展
41 交易卡号 BCD[6] 现金交易时6字节全为0xFF
47 锁卡交易标志 BCD
0x01:正常交易
0x00:锁卡交易
48 SAM 卡卡号 BCD[5]
53 终端交易流水号 UINT32 高位在前,低位在后
57 城市代码 BCD[2]
59 卡类型 UINT8
60 交易前余额 BCD[3] 格式XXXXX.X元
63 交易认证码 BYTE[4]
67 卡交易计数器 UINT16 高位在前,低位在后
如果计价器本次营运数据为无效数据(里程小于100 米,且等候时间小于30
秒),退出重车后计价器仍发送0x00E8 指令且本身不做存储,其数据区以全0 填
充。以此约束,MCU 可根据0x00E8 指令中的数据区数据进行判断,是否有效。
无效数据丢弃即可。
终端应答数据消息数据区格式见表 91 终端应答数据区定义。
表 91 终端应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x90:执行正确
0xFF:执行错误
2.6 计价器营运数据补传指令
命令字:0x00F2。
计价器发往终端,将未传出的营运数据补传至终端。
计价器发往终端数据区格式见表 92 计价器至智能终端数据区定义。
表 92 计价器至智能终端数据区定义
起始字节 字段 数据类型 说明
0 计价器营运数据 参见表 90 计价器至终端数据区定义“计价器
重转空(单次营运结束)指令”
终端应答数据消息数据区格式见表 93 终端应答数据区定义。
表 93 终端应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x90:正确
0xFF:校验错误
注:营运数据重传机制:
数据补传的时机可以定时补传或当重转空时进行补传。当重转空进行补传时应
首先传出本次营运的数据后再进行补传,补传时先补传先存储的待补传的数据。
2.7 计价器开机指令(可选)
命令字:0x00E0。
计价器发往终端,通过出租汽车驾驶员按计价器相关按键触发开机流程。
在空车且未签到状态下,司机按约定的键对计价器进行开机,计价器显示窗提
城市出租汽车服务管理信息系统试点工程总体技术要求(暂行)
78
示“OPEN”。如果终端正确响应且操作成功,计价器正常开机,正确响应但操作
不成功(如无卡片),则提示用户重新执行开机操作;如果未响应(超过三次)并
该计价器未超过运营数据记录及时间限制,计价器强制开机,产生一条记录(主
要包括签到时间、车号)。
计价器发往终端数据区格式见表 94 计价器至终端数据区定义。
表 94 计价器至终端数据区定义
起始字节 字段 数据类型 说明
0 开机标识 UINT8 0x90
终端接收到此指令后,读取驾驶员从业资格信息,并将操作结果返回给计价器。
终端应答数据消息数据区格式见表 95 终端应答数据区定义。
表 95 终端应答数据区定义
起始字节 字段 数据类型 说明
0 单位代码 BCD[5]
5 司机代码 BCD[6]
11 车牌号 BYTE[6] 车牌号,ASCII字符
17 刷卡时间 BCD[6] 格式为YYYY-MM-DD-hh-mm
23 终端状态 UINT16
25 时间限制 BCD[5] 格式为YYYY-MM-DD-hh,全0表示无时间
限制
30 次数限制 BCD 00表示无限制
31 操作结果 UINT8
0x90:执行正确
0xFF:执行错误
如果操作成功,计价器使用0x00E1命令字通知终端开机成功,数据区格式见
表 96 计价器至终端数据区定义。
表 96 计价器至终端数据区定义
起始字节 字段 数据类型 说明
0 单位代码 BCD[5]
5 司机代码 BCD[6]
11 车牌号 BYTE[6] 车牌号,ASCII字符
17 计价器开机时间 BCD[6] 格式为YYYY-MM-DD-hh-mm
23 总营运次数 UINT32 高位在前,低位在后
27 操作结果 UINT8
0x90:执行正确
0xFF:执行错误
2.8 计价器关机指令(可选)
命令字:0x00E3。
计价器发往终端,通过出租汽车驾驶员按计价器相关按键触发关机流程。
在空车且已签到状态下,司机按约定的键对计价器进行关机,计价器显示窗提
示“CLOSE”。如果终端正确响应且操作成功,计价器正常关机,正确响应但操作
不成功(如无卡片),则提示用户重新执行关机操作;如果未响应(超过三次),
计价器强制关机,产生一条关机记录。
计价器发往终端数据区格式见表 97 计价器至终端数据区定义。
表 97 计价器至终端数据区定义
起始字节 字段 数据类型 说明
0 关机标识 UINT8 0x90
终端接收到此指令后,读取驾驶员从业资格信息,并将操作结果返回给计价器。
终端应答数据消息数据区格式见表 98 终端应答数据区定义。
表 98 终端应答数据区定义
起始字节 字段 数据类型 说明
0 单位代码 BCD[5]
5 司机代码 BCD[6]
11 车牌号 BYTE[6] 车牌号,ASCII字符
17 刷卡时间 BCD[6] 格式为YYYY-MM-DD-hh-mm
23 终端状态 UINT16
25 时间限制 BCD[5] 格式为YYYY-MM-DD-hh,全0表示无时间限制
30 次数限制 BCD 00表示无限制
31 操作结果 UINT8
0x90:执行正确
0xFF:执行错误
如果操作成功,计价器使用0x00E4命令字通知终端关机成功,数据区格式见
表 99 计价器至终端数据区定义。
表 99 计价器至终端数据区定义
起始字节 字段 数据类型 说明
0 单位代码 BCD[5]
5 司机代码 BCD[6]
11 车牌号 BYTE[6] 车牌号,ASCII字符
17 脉冲数(K 值) BCD[2] 格式为XXXX,最大9999
19 当班开机时间 BCD[6] YYYY-MM-DD-hh-mm
25 当班关机时间 BCD[6] YYYY-MM-DD-hh-mm
31 当班公里 BCD[3] 格式为XXXXX.X公里
34 当班营运公里 BCD[3] 格式为XXXXX.X公里
37 车次 BCD[2] 格式为XXXX,最大9999
39 计时时间 BCD[3]
42 总计金额 BCD[3] 格式XXXXX.X元
45 卡收金额 BCD[3] 格式XXXXX.X元
48 卡次 BCD[2] 格式为XXXX,最大9999
城市出租汽车服务管理信息系统试点工程总体技术要求(暂行)
81
50 班间公里 BCD[2] 格式XXX.X公里(上一班签退到本班签到的
公里数)
52 总计公里 BCD[4] 格式为XXXXXXX.X公里(计价器安装后累积)
56 总营运公里 BCD[4] 格式为XXXXXXX.X公里(计价器安装后累积)
60 单价 BCD[2] 格式XX.XX元
62 总营运次数 UINT32 高位在前,低位在后
终端收到计价器关机成功的指令(命令字0x00E4)后,确认应答,数据区格
式见表 100 终端应答数据区定义。
表 100 终端应答数据区定义
起始字节 字段 数据类型 说明
31 操作结果 UINT8
0x90:执行正确
0xFF:执行错误
2.9 计价器关机当班营运数据汇总补传指令(可选)
命令字:0x00F1。
计价器发往终端,将未传出的关机汇总数据补传至终端。
计价器发往终端数据区格式见表 101 计价器至终端数据区定义。
表 101 计价器至终端数据区定义
起始字节 字段 数据类型 说明
0 计价器关机汇总
数据 参见表 99 计价器至终端数据区定义“6.2.8
计价器关机指令(可选)” 计价器至智能终端
数据区定义。
终端应答数据消息数据区格式见表 102 智能终端应答数据区定义。
表 102 智能终端应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x90:正确
0xFF:校验错误
注:补传机制同营运数据重传机制。
2.10 计价器心跳指令(可选)
命令字:0x00E9。
计价器发往终端,用于终端判断计价器工作是否正常。
计价器发往终端数据区格式见表 103 计价器至智能终端数据区定义。
表 103 计价器至智能终端数据区定义
起始字节 字段 数据类型 说明
0 计价器当前状态 UINT8
bit0(最低位)——空重车状;
0表示空车;1表示重车;
bit1——停运(签退)状态;
0 为签退,1为营运
bit2——开机状态;
0为正常情况 1 为强制开机
bit3——关机状态;
0为正常情况 1 为强制关机
bit7(最高位)——异常速度信号;
0为正常情况 1 为异常情况
1 单位代码 BCD[5]
6 司机代码 BCD[6]
终端应答数据消息数据区格式见表 104 终端应答数据区定义。
表 104 终端应答数据区定义
起始字节 字段 数据类型 说明
0 终端运行状态 UINT16
2 时间限制 BCD[5] 格式为YYYY-MM-DD-hh,全0表示无时间限
制
7 次数限制 BCD 00表示无限制
8 RFU UINT16
2.11 计价器固件升级指令(可选)
命令字:0x00FF。
终端发往计价器设备,通知计价器进入固件升级流程。
数据区格式见表 105 智能终端至计价器数据区定义。
表 105 智能终端至计价器数据区定义
起始字节 字段 数据类型 说明
0 厂商标识 BCD
1 设备硬件版本号 BCD
2 软件主版本号 BCD
3 软件次版本号 BCD
计价器应答数据消息数据区格式见表 106 计价器应答数据区定义。
表 106 计价器应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0x02:同一版本无需升级
0x03:标识信息不一致,无法升级
0xFF:执行错误
计价器收到固件升级指令并返回“执行正确”的应答后,进入升级流程。
3智能服务终端与智能顶灯通讯协议及数据格式
3.1 智能顶灯状态查询指令
命令字:0x0000。
终端发往智能顶灯设备,获取顶灯设备的运行状态,数据区格式见表 107 终
端至智能顶灯数据区定义。
表 107 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
0 终端当前时间 BCD[7] 格式为YYYY-MM-DD-hh-mm-ss
智能顶灯应答数据消息数据区格式见表 108 智能顶灯应答数据区定义。
表 108 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 设备编号 BCD[5] 参见10.2 设备编号编码规则
5 设备硬件版本号 BCD
6 软件主版本号 BCD
7 软件次版本号 BCD
8 顶灯设备状态 UINT8
0x00:设备正常
0x1X:设备工作异常(X为厂商可自定义异
常代码)
9 顶灯显示状态 UINT8
0x00:空车
0x01:重车
0x02:停运
0x03:电召
0x04:报警
0x05:显示防伪密标
10 是否进入夜间模
式 UINT8
0x00:一般模式
0x01:夜间模式
11 RFU UINT8[5]
3.2 智能顶灯复位指令
命令字:0x0001。
终端发往智能顶灯设备,通知顶灯进行复位操作,数据区无。
智能顶灯应答数据消息数据区格式见表 109 智能顶灯应答数据区定义。
表 109 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持此命令
0xFF:执行错误
智能顶灯设备接收到终端发送的复位请求,响应后,进行复位操作,将顶灯的
状态设置为复位前的正常状态。
3.3 智能顶灯通讯波特率设置指令
命令字:0x0003。
终端发往智能顶灯设备终端与智能顶灯的通讯波特率设置指令,设置成功后,
下一次通讯按设置的波特率进行通讯,且设备应保存最后一次的正确设置,再次
加电时按最后一次设置的波特率进行通讯。
数据区格式见表 110 终端至智能顶灯数据区定义。
表 110 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
波特率 UINT8
0x00:2400
0x01:4800
0x02:9600(默认)
0x03:14400
0x04:19200
0x05:38400
0x06:57600
0x07:115200
0x08:128000
智能顶灯应答数据消息数据区格式见表 111 智能顶灯应答数据区定义。
表 111 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持此命令
0xFF:执行错误
3.4 智能顶灯固件升级指令
命令字:0x00FF。
终端发往智能顶灯设备,通知智能顶灯进入固件升级流程。
数据区格式见表 112 终端至智能顶灯数据区定义。
表 112 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
0 厂商标识 BCD
1 设备硬件版本号 BCD
2 软件主版本号 BCD
3 软件次版本号 BCD
智能顶灯应答数据消息数据区格式见表 113 智能顶灯应答数据区定义。
表 113 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0x02:同一版本无需升级
0x03:标识信息不一致,无法升级
0xFF:执行错误
智能顶灯收到固件升级指令并返回“执行正确”的应答后,进入升级流程。
3.5 营运状态设置指令
命令字:0x0010。
终端发往智能顶灯设备营运状态设置指令,智能顶灯应存储,维持最后一次的
设置状态。
数据区格式见表 114 终端至智能顶灯数据区定义。
表 114 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
0 厂商标识 BCD
0x00:空车
0x01:重车
0x02:停运
0x03:电召
0x04:报警
0x05:显示防伪密标
智能顶灯应答数据消息数据区格式见表 115 智能顶灯应答数据区定义。
表 115 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0xFF:执行错误
3.6 星级状态设置指令
命令字:0x0011。
终端发往智能顶灯设备,通过智能顶灯LED 或指示灯的显示当班驾驶员服务
星级信息。顶灯应做存储,维持最后一次的设置状态。
如果星级信息和出租汽车状态信息共用一块LED 显示,则当出租汽车状态为
空车状态且星级评定为非0x00时显示星级。
数据区格式见表 116 终端至智能顶灯数据区定义。
表 116 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
0 厂商标识 BCD
0x00:未评定
0x01:一星
0x02:二星
0x03:三星
0x04:四星
0x05:五星
智能顶灯应答数据消息数据区格式见表 117 智能顶灯应答数据区定义。
表 117 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0xFF:执行错误
3.7 防伪密标显示指令
命令字:0x0013。
终端发往智能顶灯设备,当设置出租汽车防伪密标成功后,智能顶灯防伪密标
与出租汽车运行状态交替显示(间隔3秒),直到收到取消显示指令为止。
数据区格式见表 118 终端至智能顶灯数据区定义。
表 118 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
0 厂商标识 INT8[] 二进制内容(点阵数据)
智能顶灯应答数据消息数据区格式见表 119 智能顶灯应答数据区定义。
表 119 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0xFF:执行错误
3.8 取消防伪密标显示指令
命令字:0x0014。
终端发往智能顶灯设备,取消当前防伪密标的显示。
数据区无。
智能顶灯应答数据消息数据区格式见表 120 智能顶灯应答数据区定义。
表 120 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0xFF:执行错误
3.9 夜间工作模式设置指令
命令字:0x0012。
终端发往智能顶灯设备,智能顶灯应作记忆存储。当出租汽车连续处于夜间模
式超过12小时而未收到终端的关闭指令,则顶灯应自动将夜间模式关闭。
数据区格式见表 121 终端至智能顶灯数据区定义。
表 121 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
0 开启/关闭 UINT8
0x00:关闭夜间模式
0x01:开启夜间模式
智能顶灯应答数据消息数据区格式见表 122 智能顶灯应答数据区定义。
表 122 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0xFF:执行错误
3.10 夜间工作模式参数设置指令
命令字:0x0020。
终端发往智能顶灯设备,智能顶灯应作记忆存储。通过此指令,设置智能顶灯
的夜间模式开启关闭时的时间范围,智能顶灯可根据此参数设置在营运状态下,
自动转化夜间模式显示;在自动状态下,也可受终端的控制,进行关闭或者开启;
可根据智能终端发的查询智能顶灯状态进行自动校时(误差建议在1min中内)。
数据区格式见表 123 终端至智能顶灯数据区定义。
表 123 终端至智能顶灯数据区定义
起始字节 字段 数据类型 说明
0 开启/关闭 BCD[4]
描述小时分钟 24小时制
HHNN(起始时间)HHNN(停止时间)
当停止时间小于起始时间时,停止时间为第二
天的时间。
为0x00 0x00 0x00 0x00 时 表示由智能终端
控制顶灯的工作模式。
智能顶灯应答数据消息数据区格式见表 124 智能顶灯应答数据区定义。
表 124 智能顶灯应答数据区定义
起始字节 字段 数据类型 说明
0 操作结果 UINT8
0x00:执行正确
0x01:设备不支持
0xFF:执行错误
展开阅读全文