蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)

生活 科技 更新时间: 2024-07-03 09:57:06

逯静辉 薛金银 张北海 李全发 高文宝 尤鑫北京速通科技有限公司 北京易路行技术有限公司

摘 要:随着全国高速公路电子不停车收费(ETC)系统的快速发展,具备蓝牙模块的ETC设备近几年获得了较为广泛的应用。本文设计了一种ETC设备蓝牙应用协议检测系统,能对ETC设备的蓝牙应用协议和功能进行检测。该系统具备较强的扩展性,支持灵活地编辑符合各种规范的应用协议测试例和判定准则,可对ETC设备进行蓝牙应用协议符合性的自动化测试。该系统还可精确检测蓝牙通信设备的数据处理时间和响应时间,评估被测设备的通信可靠性。

关键词:电子不停车收费(ETC);ETC设备;蓝牙OBU;蓝牙应用协议;检测系统;

ETC储值卡的充值困难问题、车载单元(OBU,On-Board Unit)的安装和激活便利性问题,在一定程度上制约了ETC用户的发展。在这种背景下,内置蓝牙无线模块的ETC设备,包括蓝牙OBU、蓝牙读卡设备(或称为蓝牙盒子)等,在市场上获得了更快的发展空间。蓝牙OBU通过内置蓝牙无线模块,能与手机等智能终端进行通信和信息交互,可支持互联网自助安装、发行、激活及异地充值等功能。蓝牙读卡设备可以实现ETC储值卡充值、查询等多种功能。

对ETC设备与蓝牙智能终端设备(如手机)之间的蓝牙应用协议进行符合性测试,是ETC设备成功实现上述蓝牙应用功能的技术保证。目前蓝牙应用协议通常采用高度定制的手机APP进行测试。但是因为蓝牙应用协议由各省自行定义,不同协议之前差异较大,手机APP作为测试工具存在开发工作量大、测试例修改灵活性差、可扩展性差、无法对通信交互时间做到精确测量等问题。为了解决上述问题,本文设计并实现了一种专用的ETC设备蓝牙应用协议检测系统。

本文第二章提出检测系统的功能需求;第三章介绍了系统设计与实现方式,包括系统构成、蓝牙工装设备硬件设计、上位机软件设计、测试指令帧设计和协议符合性的自动判断准则等;第四章是检测系统的测试验证情况;第五章总结全文。

1 系统功能需求

ETC设备蓝牙应用协议检测系统应具备的基本功能是与被测ETC设备建立蓝牙通信连接,执行预先编写的测试指令对蓝牙应用协议进行测试,并输出测试结果及相关数据。为了实现应用协议的自动化测试,测试系统应支持通过预先编写的判定准则,对被测ETC设备的返回数据是否符合应用协议进行自动判断。同时为了支持多种蓝牙应用协议,检测系统的测试用例应具备可扩展性,即支持协议测试用例的自定义编辑和发送。此外,为了测试被测ETC设备的蓝牙通信性能,检测系统还应支持对蓝牙协议通信数据帧的起始和结束时刻进行精确计时,且计时精度应在1毫秒以内。

检测系统的基本硬件要求包括:

(1)具备蓝牙BLE通信模块;

(2)通信接口:支持串口(波特率可配置)、网口通信(IP等参数可配置);

(3)至少2个PSAM卡插槽,支持PSAM卡的读写;

(4)具备LED灯、蜂鸣器等提示模块,提示设备工作状态和异常等信息。

(5)支持对蓝牙协议空口数据帧毫秒级的硬件定时。

2 系统设计与实现2.1 系统构成

ETC设备蓝牙应用协议检测系统包括蓝牙工装设备和控制该工装设备的上位机软件两大主要部分。整个系统的构成(含被测蓝牙OBU)如图1所示。蓝牙工装设备和安装上位机软件的测试计算机之间的通讯接口为串口或网口。其中,上位机软件实现人机界面,对整个测试过程进行控制和管理,实现系统设置、数据通信、测试例管理、数据管理等功能。蓝牙工装设备内置嵌入式软件,控制工装设备的时序和操作流程。工装设备与被测ETC设备通过蓝牙连接,进行蓝牙通信并测试被测ETC设备的蓝牙应用协议和性能。

蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)1

图1 检测系统构成 下载原图

2.2 蓝牙工装设备硬件设计

工装设备的硬件设计框图如图2所示。

硬件模块采用ARM硬件平台,双模蓝牙方案使用TI公司的CC2564C实现,蓝牙网络芯片选用原厂配套陶瓷蓝牙天线,并内置蓝牙BLE协议栈,支持通过BLE蓝牙模块与蓝牙OBU进行连接并通信。为实现对蓝牙协议通信数据帧的精确计时,采用常规格晶振,参数为25MHz,25ppm。硬件模块内置USB转串口芯片和以太网协议栈芯片,可以通过串口或网口与上位机连接。硬件设备配备PSAM卡槽,以支持认证相关的协议测试,智能卡接口使用4片ST8024L芯片在ARM控制器和4个卡座之间连接,实现4路独立的SmartCard接口。

2.3 上位机软件设计

蓝牙应用协议测试软件的功能结构如图3所示。

软件主要功能包括:系统设置、扫描蓝牙、数据通讯、测试例管理和数据管理。详细功能如下:

(1)系统设置

系统设置主要功能包括:

(1)协议选择。可以选择应用层数据直接通过蓝牙BLE协议进行收发,或者先将应用层数据按微信的Protobuf协议进行封装,再通过蓝牙BLE协议进行收发。

(2)网络连接。可选择通过串口或网口与上位机通信,串口波特率可以配置,网口IP等参数可配置。

(3)PSAM卡选择。从4个PSAM插槽中选择拟使用的PSAM。

(4)硬件复位。可以复位硬件到初始状态。

(2)扫描蓝牙

软件可以向工装设备发送扫描蓝牙指令,并显示工装返回的扫描结果。用户可以从扫描到的蓝牙设备列表中选择被测的ETC设备,软件会将该设备的MAC地址发送给工装设备,由工装设备建立与该ETC设备的连接。如与ETC设备建立连接成功,工装设备将返回连接成功标志。

(3)数据通讯

数据通讯功能用于将测试指令数据发送给工装设备,由工装设备发给连接的蓝牙设备,工装设备在接收到蓝牙设备返回的数据后,返回给上位机软件。

(4)测试例管理

测试例管理功能可实现测试例的新建、修改与保存。测试例能自定义名称,每个测试例可以自定义多条需要发送的指令,执行完一条指令后,下一条指令的执行条件可以配置(如是否需要收到回复帧才能执行下一条指令,间隔多久发送下一条指令)。测试例可以进行自定义分组(如按省份分组),选择某个分组可以显示该分组下的所有测试例。

(5)数据管理

蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)2

图2 蓝牙工装硬件设计图 下载原图

蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)3

图3 软件功能结构图 下载原图

数据管理功能可以实现收发数据和测试日志的保存和查看功能。

2.4 测试指令帧设计

测试指令帧的格式设计及示例如表1所示:

表1 测试指令帧格式设计及示例 下载原图

蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)4

表1中各字段说明如下:

(1)指令代号:按顺序编号。

(2)发送内容:该条指令帧需要发送的数据操作指令。

(3)发送方向:向被测ETC设备通过蓝牙发送时写1,向PSAM卡发送时写2。

(4)返回变量名:是指当该条指令帧发出后,需要从接收到的数据中截取一段数据暂存,并插入到后续下发指令帧中特定位置,暂存的数据就存入返回变量名中。一条指令帧中如有多个返回变量,则写入同一单元格中用逗号分隔。

(5)返回变量起始字节:与返回变量名按顺序一一对应,如有多个也使用逗号分隔。

(6)返回变量长度:为需要截取的返回数据的字节数。

例如,某条指令的返回数据为33028036B300003100812F012DB1B1BEA9110100011611110112012200000000162015122820250916BEA941313233343500000000000000900060,需要截取返回数据的第26字节到第33字节(8字节卡号,如上述斜体加粗数据),存储为变量名称ZZ01,因此在返回变量名中填入ZZ01,在返回变量起始字节中填入26,在返回变量长度中填入8;需要截取返回数据的第14字节到第33字节,共20个字节的数据,存储为变量名称ZZ02,因此在返回变量名中填入ZZ02,在返回变量起始字节中填入14,在返回变量长度中填入20。当下一帧数据需要发送已截取的数据时,仅需将相应的变量名插入相应位置即可。

2.5 协议符合性的自动判断准则

检测系统可以自动判断被测设备返回的数据是否符合协议。为了实现该功能,系统支持预先对每条测试指令帧的返回数据设定判据条件。当收到返回数据时,软件根据判据条件自动输出判断结果,并决定是否下发下一帧。判据条件需要设置指令代号、字节数、判断方式和判据内容4个字段。各字段说明如下:

(1)指令代号需要与发送的测试指令帧一致。

(2)字节数指示了待判断的返回数据的字节位置。

(3)判断方式的设计如下:

(1)01:判断与所给判据内容是否一致,不一致则报错,且不发下一帧。

(2)02:判断与所给判据内容是否一致,不一致则报错,但继续发下一帧。

(3)11:判断所给判据内容是否为之后剩余字节的总长度,不一致则报错,且不发下一帧。

(4)12:判断所给判据内容是否为之后剩余字节的总长度,不一致则报错,但继续发下一帧

(5)13:判断本字节与下一字节内容是否为之后剩余字节的总长度,不一致则报错,但继续发下一帧。

(6)14:判断最后2字节是否为9000,不是则报错,且不发下一帧。

(4)判据内容通常用于与返回的数据进行比较,应为16进制数据;当判断剩余字节长度时,如不知道具体数据,判据内容填00即可;当判断9000,判据内容只需填入90,字节数填FF,判断方式填14。

以下举例说明,返回数据为

蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)5

蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)6

则相应的判据条件示例如表2所示。

表2 测试数据判据条件格式示例 下载原图

蓝牙etc包结构(ETC设备蓝牙应用协议检测系统的设计与实现)7

表2说明如下

(1)判断第1字节是否为B2。

(2)判断第2字节是否为00。

(3)判断第3字节是否与发送的第二字节一致,即为02。

(4)判断第4和第5字节是否为剩余字节的总长度(小端模式)

(5)判定第6字节是否为81。

(6)判定第7字节是否为之后剩余字节的总长度。

(7)判定第8字节是否为TPDU序列号“01”。

(8)判定第9字节“65”是否为之后该TPDU剩余字节的总长度。

(9)判断最后2字节是否为9000,如果是说明读取正常,否则读取失败。

上述判据中,假如(1)(2)(3)(8)(9)不通过,则报错,不发下一帧,其他判定不通过,报错,但继续发下一帧。

3 测试验证情况

蓝牙工装设备与安装上位机软件的电脑采用网线连接,被测ETC设备处于蓝牙广播状态。上位机软件向工装设备发送扫描指令帧,工装设备将扫描到的蓝牙设备显示在软件界面。测试人员选择被测ETC设备,建立蓝牙连接。

连接成功后即可发送测试用例开始测试。测试用例可以进行预先编辑、分组和保存。测试时可以从左侧测试用例栏选择多个拟发送的测试用例,加载到发送数据显示窗口中,点击发送。测试用例由蓝牙工装设备,发送给被测设备。当所有指令都执行完毕后,工装设备将把测试结果返回上位机软件。测试数据窗口将显示测试数据的交互时间、数据方向、数据内容和数据解析结果。

4 结语

本文提出了一种专用的ETC设备蓝牙应用协议检测系统,支持灵活编辑符合各种规范的应用协议测试例和相应的判定准则,并按定义完成的测试例检测ETC设备的蓝牙应用协议是否符合相关协议标准,同时可对被测ETC设备的通信交互处理性能进行评估。相比传统的高度定制的手机APP测试工具,本检测系统具有操作简便、灵活性高、可扩展性强、能精确测试交互时间等优点,不仅节约了多次开发手机APP的成本,而且能极大地减少测试工作的复杂度和工作量,提高测试工作效率。本检测系统可广泛应用于ETC蓝牙OBU和蓝牙盒子产品研发和质量检测工作中。

参考文献

[1] GB/T 20851.1-2007,电子收费专用短程通信第1部分:物理层.

[2] GB/T 20851.2-2007,电子收费专用短程通信第2部分:数据链路层.

[3] GB/T 20851.3-2007,电子收费专用短程通信第3部分:应用层.

[4] GB/T 20851.3-2007,电子收费专用短程通信第4部分:设备应用.

[5] GB/T 20851.3-2007,电子收费专用短程通信第5部分:物理层主要参数测试方法.

[6] 孙保卫,赵海涛,冯晋峰.ETC在高速公路联网中的应用.公路交通科技(应用技术版),2017(7):105-107.

[7] 李亦飞,傅惠,谭志标,等.基于NFC的ETC卡空中充值服务应用系统实现.中国交通信息化,2016(11):88-90.

[8] 黄小岛.智能蓝牙电子标签的互联网应用.机电工程技术,2016(A01).

[9] 李奇峰.基于互联网的ETC电子标签自助安装系统.自动化与信息工程,2017(5).

,