资源描述
-*
高速公路ETC系统DSRC设备串行口通讯协议
1 串行通讯方式
串行口采用半双工的异步串行通讯方式,协议格式为“115200,N,8,1”,即波特率115200bps,无奇偶校验,8位数据,1个停止位。
1.1 串口通讯数据帧格式
RSU和PC通讯的数据帧格式如图1-1:
STX
RSCTL
DATA
BCC
ETX
图 1-1
空应答如图1-2:
STX
RSCTL
BCC
ETX
图 1-2
说明见表1-1:
表1-1 RSU和PC通讯的数据帧格式说明
字段
描 述
STX
帧开始标志,取值为FFFFH;
RSCTL
串口帧序列号,1个字节;
(1) RSU发送的串口帧序列号的低半字节为8,高半字节一般为0~7,
RSU上电时发送的串口帧序号高半字节为9;
(2) PC发送的串口帧序列号是将收到的串口帧序号高低半字节互换;
(3) RSU发送的串口帧序号为X8H,其中X为0,1,2,3,4,5,6,7,9;
(4) PC发送的串口帧序号为8XH,其中X为0,1,2,3,4,5,6,7,9;
DATA
发送的数据;
BCC
异或校验值,从RSCTL到DATA所有字节的异或值;
ETX
帧结束标志,取值为FFH。
1.2 特殊字节转义处理
数据帧开始标志为FFFFH,帧结束标志为FFH。其他字段不能出现FFH,如果数据确实为FFH,需对其进行转义处理。
发送数据时,如果在待发送字段中出现FFH字节时,将FFH分解为FEH和01H这两个字节来发送;如果在待发送字段出现FEH字节时,需将FEH分解为FEH和00H这两个字节来发送。
接收数据时,如果出现“FE 01”这样连续两个字节时将之合为一个字节FFH;如果出现“FE 00”这样连续两个字节时将之合为一个字节FEH。
RSU送上来的所有整型数据,未特定说明,其字节排序均为高位在前,低位在后。
1.3 命令的应答要求
PC必须对RSU的命令作出应答,可以是携带应答也可以是空应答,RSU不一定对PC的每个命令都要应答。
应答时,PC将接收到的命令帧的RSCTL的高半字节和低半字节交换,作为应答帧的RSCTL。
图1-3 串口通讯流程
2 RSU/PC通信帧数据结构
2.1 PC发往RSU的指令:
指令名称
代码
功能说明
初始化指令
C0H
对RSU关键参数如功率、车道模式等进行初始化/设置
继续交易指令
C1H
对PC收到RSU发来的信息的应答,表示收到信息并要求继续处理指定OBU
停止交易指令
C2H
对PC收到RSU发来的信息的应答,表示收到信息并要求当前不再继续处理指定OBU
消费并写站信息指令
C6H
对指定OBU的电子钱包扣费,并向指定的OBU写站信息
异常处理指令
C7H
电子钱包交易情形下的异常处理
开关天线指令
4CH
天线开关,00H表示关天线,01H表示开天线
2.1.1初始化指令-C0
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
CMDType
指令代码,此处取值C0H,H代表十六进制;
2
4
Seconds
1970/1/1 0:0:0距离当前的秒数,高位在前
6
7
Datetime
当前日期时间,yyyymmddhhmmss
13
1
LaneMode
车道模式3为入口车道、4为出口车道、8为合建站
14
1
WaitTime
最小重读时间
15
1
TxPower
功率级数
16
1
PLLChannelID
信道号
17
1
TransClass
0:记账卡和储值卡都是传统交易
1:记账卡和储值卡都是复合交易
2:记账卡是传统交易,储值卡是复合交易
18
1
BCC
异或校验值
帧描述
1)C0指令为初始化指令,用于设置RSU的工作参数;
2)当RSU收到初始化指令后,应返回B0信息帧给PC。
2.1.2 继续交易指令-C1
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
CMDType
指令代码,此处取值C1H
2
4
OBUID
OBU号
6
1
BCC
异或校验值
帧描述
1)C1指令为交易指令,表示RSU可以继续正常对OBU进行下一步处理。
2.1.3 停止交易指令-C2
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
CMDType
指令代码,此处取值C2H
2
4
OBUID
OBU号
6
1
StopType
1:重新搜索OBU,不判断OBU号。
2:重新发送当前帧,只对B3、B4有效。
7
1
BCC
异或校验值
帧描述
C2指令为拒绝交易指令,表示不对该OBU进行交易处理, RSU根据StopType确定是否重新搜索OBU。
2.1.4 消费指令-C6
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
CMDType
指令代码,此处取值C6H
2
4
OBUID
OBU号
6
4
ConsumeMoney
扣款额,高位在前
10
40
Station
过站信息(0019文件,后40字节)
50
7
DateTime
BCD码 yyyymmddhhmmss 该时间由车道程序将出口时间提供给RSU,RSU根据此时间计算TAC
57
1
BCC
异或校验值
帧描述
1)C6指令用于消费站、非消费站模式,由车道类型、扣款额是否为0来确定;
2)该指令只对RSU发送过来的正常B4帧信息的回应有效。
2.1.5 异常处理指令-C7
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
CMDType
指令代码,此处取值C7H
2
4
OBUID
OBU号
6
7
DateTime
BCD码 yyyymmddhhmmss 该时间由车道程序将出口时间提供给RSU,RSU根据此时间计算TAC,该字段与之前C6中的DateTime须保持一致,以便获得有效的TAC
13
1
BCC
异或校验值
帧描述
1) C7指令为异常处理指令,适合于含有扣款操作的交易;
2) PC在再次读取到的IC卡信息中判断出IC卡余额已变,则发送C7指令给RSU;
3) 该指令只对RSU发送过来的正常B4帧回应有效;
4)RSU收到C7后,应回复B5给PC。
2.1.6 开关天线指令-4C
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
CMDType
指令代码,此处取值4CH
2
1
Antennastatus
天线开关,00H表示关天线,01H表示开天线
3
1
BCC
异或校验值
帧描述
1)天线开关指令。
2.2 RSU发往PC的信息帧:
帧名称
代码
功能说明
RSU设备状态信息帧
B0
RSU的设备状态信息,含PSAM卡号等
OBU系统信息帧
B2
主要包括OBU系统信息文件内容
OBU车辆信息帧
B3
主要包括车辆信息文件内容
IC卡信息帧
B4
主要包括IC卡关键信息文件内容
成功交易结束帧
B5
RSU与OBU交易完成后的结果信息
2.2.1 RSU设备状态信息帧-B0
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
FrameType
数据帧类型标识,此处取值B0H
2
1
RSUStatus
RSU主状态参数;0x00表示正常,否则表示异常;
3
1
PSAMNUM
PSAM卡个数
4
6
RSUTerminalId1
PSAM卡1终端机编号
10
6
RSUTerminalId2
PSAM卡2终端机编号
16
1
RSUAlgId
算法标识
17
1
RSUManuID
RSU厂商代码,16进制表示
18
3
RSUIndividualID
RSU编号,16进制表示
21
2
RSUVersion
RSU软件版本号,16进制表示
23
5
Reserved
保留字节。
28
1
BCC
异或校验值
帧描述
1) RSU在上电或收到PC初始化指令后发送该帧信息给PC;
2) 如果RSCTL等于0x98,表示RSU刚刚上电,PC应发送初始化指令(C0指令)到RSU,作为对收到信息的应答,同时设置RSU的工作参数;
3) 如果RSCTL不等于0x98,PC则应答继续交易指令(C1指令)。
2.2.2 OBU系统信息帧-B2
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
FrameType
数据帧类型标识,此处取值B2H
2
4
OBUID
OBU号
6
1
ErrorCode
OBU执行状态,取值为00H,才有后续数据内容。
7
8
ContractProvider
发行商代码
15
1
ContractType
协约类型
16
1
ContractVersion
协约版本
17
8
ContractSerialNumber
应用序列号,8个字节,BCD编码
25
4
ContractSignedDate
协议签署日期,yyyymmdd
29
4
ContractExpiredDate
协议过期日期,yyyymmdd
33
1
Equitmentstatus
OBU硬件版本
34
2
OBUStatus
OBU状态
36
1
BCC
异或校验值
帧描述
1) RSU在搜索到OBU后发送正常的B2帧给车道计算机,表示通讯区域内存在此OBU,同时ErrorCode为零;
2) RSU在其通信区域内始终搜索不到OBU的情况下,也需要定时向车道计算机发送此帧,作为心跳信息使用,表示天线正常工作状态,同时ErrorCode非零,取值为0x80,OBUID全为0;
3) 当B2帧作为心跳信息帧使用时,其发送的频率间隔应大于3秒,小于1分钟。车道计算机对作为心跳信息使用的B2帧不进行应答。
其中,OBUStatus的定义如下:
字节
字节位置
0
7 IC卡存在(0),无(1)
6
保留
5
X
接触式界面(0),非接触界面(1)
4
X
逻辑加密卡(1),CPU卡(0)
3
0
IC卡正常(0),出错(1)
2
0
OBU未锁(0),被锁(1)
1
0
OBU未被拆动(0),被拆动(1)
0
0
OBU电池正常(0),电池电量低(1)
1
拆卸状态,ESAM系统信息第27字节
2.2.3 OBU车辆信息帧-B3
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
FrameType
数据帧类型标识,此处取值B3H
2
4
OBUID
OBU号
6
1
ErrorCode
执行状态代码,此处取值0x00
7
12
VehicleLicencePlateNumber
OBU记载的车牌号
19
2
VehicleLicencePlateColor
车牌颜色
21
1
VehicleClass
车辆类型
22
1
VehicleUserType
车辆用户类型
23
1
BCC
异或校验值
帧描述
1) 此帧信息主要包含车辆信息;
2) PC应答C1指令,RSU继续对该OBU进行操作;
3) P C应答C2指令,RSU将重新搜索OBU。
2.2.4 IC卡信息帧-B4
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
FrameType
数据帧类型标识,此处取值B4H
2
4
OBUID
OBU号
6
1
ErrorCode
执行状态代码,此处取值0x00
7
1
CardType
00h-国标CPU卡;其它-保留
8
4
CardRestMoney
卡余额,高位在前,低位在后;
12
43
卡片发行基本数据
为0015文件
55
40
收费信息数据
为0019文件(0019文件,后40字节)
95
1
BCC
异或校验值
帧描述
1) 此帧信息主要包含IC卡基本信息;
2) PC应答C6指令,RSU对该OBU进行扣款;
3) P C应答C2指令,RSU将重新搜索OBU。
2.2.5 成功交易结束帧-B5
位置
字节数
数据元
数据内容
0
1
RSCTL
串口帧序列号
1
1
FrameType
数据帧类型标识,此处取值B5H
2
4
OBUID
OBU号
6
1
ErrorCode
执行状态代码
7
4
WrFileTime
写文件时间,UNIX格式
11
6
PSAMNo
PSAM卡终端号
17
7
TransTime
交易时间
24
1
TransType
交易类型:CPU卡类型为9
25
4
TAC
TAC码
29
2
ICCPayserial
CPU卡交易序号,对于不涉及消费的交易填充0
31
4
PSAMTransSerial
PSAM卡交易序号
35
4
CardRestMoney
交易后卡余额,高位在前,低位在后(需要严格从IC卡获取),读取卡余额失败,返回0xFFFFFFFF(16进制)
39
1
BCC
异或校验值
帧描述
1) RSU发送此帧内容,ErrorCode为0,表示交易成功;
2) 交易成功后,PC应答C1指令;
3) RSU发送此帧内容,ErrorCode非0,表示扣款流程未能完成;
4) 扣款未完成时,PC应答C1指令,如果搜索到同一OBU,则进入异常处理流程。
3 流程控制
3.1初始化流程控制
当PC收到RSCTL等于0x98的B0帧,表示RSU刚刚上电,PC应发送初始化指令(C0指令)到RSU,作为对收到信息的应答,同时设置RSU的工作参数;RSU设置完工作参数后,向PC发送RSCTL非0x98的B0帧,表示初始化完成;而后PC发送空应答,RSU开始搜索OBU;
当车道软件开启后,主动向RSU发送C0帧,而后收到B0帧(RSCTL非0x98)后,发送空应答,RSU开始搜索OBU;
3.2入口流程控制
1)RSU搜索OBU,直到搜索到OBU为止;
2)RSU发送OBU号信息(B2帧)给PC,PC回应C1指令;
3)RSU 读OBU属性,并发送OBU属性(B3帧)给PC,PC回应C1指令;
4)RSU读IC卡信息,并发送IC卡信息(B4帧)给PC,PC发送C6指令给RSU;
5)RSU对OBU写入口文件操作,并虚拟扣款,如果不成功,则转入第 1 步骤;
6)RSU发送成功交易结果信息(B5帧)给PC,此次交易结束。
3.3出口流程控制
1)RSU搜索OBU,直到搜索到OBU为止;
2)RSU发送OBU号信息(B2帧)给PC,PC回应C1指令;
3)RSU 读OBU属性,并发送OBU属性(B3帧)给PC,PC回应C1指令;
4)RSU读IC卡信息,并发送IC卡信息(B4帧)给PC,PC发送C6指令给RSU;
5)RSU对OBU扣款并写出口文件,如果不成功,转入第7步骤;
6)RSU发送成功交易结果信息(B5帧)给PC,此次交易结束。
7)RSU重新搜索OBU,发送OBU号、OBU属性和IC卡信息给PC,PC根据IC卡信息进行分析处理:
PC将再次读取到的IC卡信息和第一次读取到的IC卡信息相比,有两种情况:余额相同、余额不同。以下根据两种不同的情况分别处理:
如果余额相同。PC发送C6指令给RSU,转到第5步骤;
如果余额不同,则表示对IC卡扣款成功,此时PC发送C7指令给RSU,RSU发送B5帧信息给PC,此次交易结束。
4 流程图
4.1 入口站流程图
4.2 出口站流程图
展开阅读全文
相关搜索