城市轨道交通自动售检票系统专用读写器测试平台*
2017-03-27石琦玉何铁军
吴 超 石琦玉 张 宁 何铁军
(1.苏州市轨道交通集团有限公司运营分公司,215006,苏州; 2.东南大学智能运输系统研究中心,210018,南京//第一作者,工程师)
城市轨道交通自动售检票系统专用读写器测试平台*
吴 超1石琦玉2张 宁2何铁军2
(1.苏州市轨道交通集团有限公司运营分公司,215006,苏州; 2.东南大学智能运输系统研究中心,210018,南京//第一作者,工程师)
为提高城市轨道交通自动售检票系统专用读写器性能的安全可靠性及其工作稳定性,分析了读写器测试的主要内容,描述了测试平台的硬件结构。详细论述了开发研究测试软件的主要模块,并重点研究分析测试软件的接口函数。介绍了研发出的具有图形用户操作界面的测试软件。经测试,该软件指令丰富,能够满足对读写器的各项测试要求。
城市轨道交通; 自动售检票; 读写器; 测试
城市轨道交通自动售检票(AFC)系统是基于计算机、通信、网络和自动控制等技术,实现轨道交通售票、检票、计费、收费、统计、清分和管理等全过程的自动化系统[1]。自动售检票系统的整体架构包括车票、车站终端设备、车站计算机系统、线路中央计算机系统和清分系统[2]。其中,与乘客直接接触,同时使用频率最高的是车票与车站终端设备。车站终端设备主要包括自动售票机、自动加值机、半自动售票机与检票闸机等。这些设备的核心功能部件就是读写器。由于读写器的使用频率很高,在轨道交通车站客流较大的情况下,如果读写器工作性能不佳,将影响车站的客流集散,降低轨道交通的服务水平,从而造成客流短暂滞留,影响轨道交通的服务形象。因此,在读写器投入使用前对其进行相应的测试是十分必要的。
由于城市轨道交通AFC系统专用读写器的性能及功能要求取决于轨道交通的运营特性,故测试系统需根据测试内容对应用软件部分进行专门开发研究。若要能直观分析专用读写器的测试数据,降低测试操作的难度,则测试软件应具有友好的图形交互界面。开发专用读写器测试平台首先需分析待测读写器的各项测试内容。
1 读写器的测试内容分析
读写器测试平台的主要功能是实现AFC系统专用读写器的功能、性能、交易流程、通信协议和接口兼容性等方面的测试[3]。测试内容主要分为硬件测试与软件测试。硬件测试包括系统上电测试、电源适应性测试、电源纹波、电压反接保护、SD(安全数字)卡可写分区文件系统的稳定性、FeRAM(铁电随机存取存储器)读写速度、FeRAM数据稳定性、看门狗、数据串口、SAM(安全存取模组)卡相关性能、射频电路读写距离、长时读写以及读写器交易时长等一系列测试。
除此之外,读写器的硬件还需要完成读写器场强、电磁兼容性,读写器辐射、静电、磁场抗扰度,电压暂降、浪涌抗扰度和连续波辐射、传道骚扰抗扰度等电子属性测试,以及读写器工作温度和湿度、抗冲击强度、抗振动强度、抗碰撞强度等机械属性测试。AFC系统专用读写器的属性需满足集成电路卡读写器及信息技术设备等相关的国家标准。因此AFC系统专用读写器硬件方面的专业性测试将由专门的测试机构来完成。
软件测试主要是对读写器软件的功能、正确性、可靠性,以及不同读写器平台的兼容性等方面进行测试[4]。主要测试内容如下:
(1) 基本功能测试包括寻卡测试、SAM卡测试、UL(保险商试验所)卡读写测试、CPU(中央处理器)卡指令测试、铁电存储器读写测试、FLASH(闪存)读写测试。
(2) 通信接口测试包括通信协议测试、多帧通信测试。测试软件除测试正常接口协议以外,还将模拟各种故障数据来对通信接口进行覆盖性测试,以确保通信接口的可靠性。
(3) 票卡流程测试包括基本命令流程测试、单程票流程测试、储值票流程测试及其它类型票卡流程测试。测试软件除测试正常的交易流程外,还将模拟各种类型的票卡情况对票卡处理流程进行覆盖性测试,以确保处理流程的可靠性。
(4) 文件传输测试包括操作系统启动测试、EOD(设备运行参数)和TP(读写器票卡业务处理流程)的传输及激活测试等。测试软件除测试正常的文件传输外,还将模拟各种异常情况对接口进行覆盖性测试,以确保文件传输的可靠性。
(5) 异常测试,包括防冲突测试等。
除此以外,新的读写器进入城市轨道交通AFC系统时,还需对该读写器进行兼容性测试,并通过加载测试程序,检查新读写器的函数封装、功能以及性能是否满足要求。接口兼容性测试内容主要包括SAM卡操作函数、非易失性RAM(随机存取存储器)操作函数及看门狗函数等。
总的来说,软件测试的内容较多。应用程序方面,主要需要完成与票卡读写业务相关的各类功能性测试,以此来保证读写器能够完成所有票卡读写的业务功能;系统程序方面,需要完成重要硬件驱动以及各类接口的相关测试,以此来确保读写器平台的稳定可靠,进而实现读写器的各项业务功能。
2 读写器测试平台硬件搭建
读写器测试平台硬件由测试用的工作站、笔记本电脑、测试软件、测试车票、读写器及其配件、测试工具等组成[5]。测试平台的结构见图1。
图1 读写器测试平台硬件结构图
读写器测试平台工作站选用的计算机要求使用主频至少为3.4 GHz的4核处理器,硬盘容量至少为500 GB,其端口丰富,操作系统为Window 7。
测试用笔记本电脑要求操作系统为Windows7,端口丰富,其处理器性能较优越,内存至少4 GB,硬盘容量不小于500 G。
读写器留有1个专门用作调试的串口,工作站及笔记本电脑都通过该串口与读写器连接以获取读写器的相关信息。
3 读写器测试软件的开发
读写器的测试不仅需要硬件的支持,还需要测试软件的支持。测试平台中读写器与测试工作站等的连接是通过自身预留串口来实现的,但是读写器采用的是嵌入式Linux系统,而测试工作站等安装的是Windows 7操作系统。因此需要一种可以跨平台的开发环境对测试软件进行开发。Qt是一种可以实现图形用户界面操作,并能进行跨平台编译的开发工具,可以满足读写器测试软件的开发要求。
3.1 Qt概述
Qt是一个跨平台C++图形用户界面应用程序开发框架,不仅可以用于非图形用户界面的程序开发,还可以用于图形用户界面的开发;其图形用户界面开发满足对AFC系统专用读写器测试过程中的直观要求,能使测试操作方便有效地进行,基本无需对测试人员进行培训。Qt是面向对象的框架,可使用特殊的代码生成扩展及宏,易于扩展,并且允许真正意义上的组件编程[6]。
Qt支持大多数操作系统(包括Windows7和Linux)。所有在Qt环境下开发的测试软件都能够满足跨平台的要求。这也是Qt的主要优势之一。由于Qt是面向对象的框架,良好封装机制使得其模块化程度非常高,可重用性较好。这对于用户开发来说非常方便。Qt提供了一种称为信号和槽(signals/slots)的安全类型来替代回调函数。这使得各个元件之间的协同工作变得十分简单[7]。其中,信号是在类定义中给出的类似于void函数声明的一种消息,有参数列表却没有函数体,是一个类的接口的一部分。信号看起来像函数,但不采用调用方式,而被此类的对象反射。槽通常是一个void成员函数,可以像普通的成员函数一样进行调用,或者可以由其他系统进行间接调用。一个对象的信号可以与一个或者多个对象的槽相连接。连接前提是这些对象存在并且参数列表从信号到槽都是赋值兼容的。任何拥有信号的对象都可以发射出相应的信号。这就会引起对全部连接的槽的间接调用。类似于函数调用,在发射语句中传递的参数可以在槽函数内通过参数进行访问。参数列表就是从一个对象向另一个对象传递信息的方式。
Qt的信号和槽机制是Qt的核心机制,是一种高级接口,应用于对象之间的通信[8]。某个对象的信号和另外一个对象的槽之间的相互关联是通过调用对象的connect函数来实现的。图形用户界面的开发都是面向对象的,所以信号和槽的这种特性使得Qt对读写器测试的软件开发极为方便。
3.2 测试软件开发
读写器测试软件是在Qt跨平台环境下,运用Qt支持的汇编语言C进行开发。现结合测试内容对测试软件的接口函数进行重点分析研究。其余部分的开发与其他应用类软件相似,其开发技术十分成熟。读写器测试软件包括5个模块,构架如图2所示。
图2 读写器测试平台软件架构
3.2.1 指令发生模块
指令发送模块包含生成指令及上位机模拟2部分。首先,生成指令,其接口函数为generate-Instruction();然后,设置模拟的上位机模式(主要有AGM(闸机)模式、TVM(自动售票机)模式和BOM(半自动售票机)模式等)。这些模式应用在如自动充值、自动售票及进站检票等不同的情况,其接口函数为setMode()。
读写器测试模式设置完成之后开始进行测试。具体流程是先启动测试,再下载测试,最后激活测试。与其相关的测试接口函数见表1。
表1 测试流程相关函数
3.2.2 交互数据分析模块
测试平台对读写器通信协议的测试主要依靠监听读写器与上位机通信数据帧来实现。先将监听到的通信数据帧解析并展示在模块显示界面上,再检测通信数据的正确性,以及辅助分析交互数据。此外,交互数据分析模块还支持多帧通信测试。
交互数据分析模块的主要内容包括解析指令帧、解析响应帧、判断帧数据格式和内容的正确性,以及显示数据帧。此模块具体函数见表2。
表2 交互数据分析模块相关函数
3.2.3 读写器的性能分析模块
读写器处理性能主要包括处理器性能、读写距离、RFID(射频识别)天线响应性能等。该模块可以记录读写器测试过程中的整体响应时间,并将其直接显示出来。通过分析读写器响应时间的测试数据,可以评估读写器处理器的性能和射频天线的响应性能。读写器工作范围或者其读写距离的测试可以通过机械装置改变票卡与读写器的距离来完成。该模块的测试能够一定程度地反应读写器的硬件性能。
3.2.4 日志读取和分析模块
读写器在交易运行过程中,将日志信息存在数据库中。日志信息是反映读写器工作情况及故障原因的主要形式。为及时了解读写器运行状况,可通过该模块读取读写器上的日志信息。该模块分析所读取的日志并将其显示在测试平台的界面上。该模块除了具有检查读写器操作日志及交易记录的功能,还具有提示异常交易及缺失流水号交易的功能。
此模块具体函数见表3。
表3 日志读取和分析模块相关函数
3.2.5 接口模拟测试模块
与其他模块不同,接口测试模块置身于读写器程序中,通过由测试专用指令与之进行交互来实现自身功能。该模块的功能主要是测试读写器的底层函数的兼容性。主要测试内容包括寻卡测试、SAM卡测试、UL卡读写测试、CPU卡指令测试、铁电存储器读写测试及FLASH读写测试等。此模块相关函数见表4。
表4 接口模拟测试模块相关函数
3.2.6 用户操作界面
根据上述模块及测试内容,开发出AFC系统专用读写器测试平台,其图形用户操作界面如图3所示。该测试平台软件功能齐全。其中读写器的主要测试指令如图4所示。
4 结语
通过对AFC系统专用读写器测试内容的分析研究,采用跨平台的开发框架Qt来完成测试平台软件的开发,进而实现测试平台的图形化操作。在完成测试平台硬件搭建的基础上根据测试平台的图形用户操作指令能顺利完成对AFC专用读写器的各项测试。这表明测试平台可以满足对专用读写器的各项测试要求,从而能够保证读写器运行的正确性、可靠性、稳定性和安全性。
图3 测试软件的图形用户操作界面
图4 测试软件中读写器的指令集
[1] 石慧麟.城市轨道交通自动售检票系统设计[J].城市轨道交通研究,2001(2):61-63,68.
[2] 闫彬.城市轨道交通自动售检票系统研析[J].铁路通信信号工程技术,2004(2):32-36.
[3] 费东旭,文光俊.基于LabVIEW的超高频RFID读写器测试系统软件设计[J].现代电子技术,2012,35(8):127-128,131.
[4] 康欢.读写器射频一致性自动测试系统平台的研究与实现[D].北京:北京交通大学,2014.
[5] 张香泽.基于ARM9超高频读写器硬件测试平台的设计[D].包头:内蒙古科技大学,2011.
[6] 李艳民.基于Qt跨平台的人机交互界面的研究和应用[D].重庆:重庆大学,2007.
[7] 范朋.基于Qt的嵌入式Linux系统GUI的研究与实现[D].北京:北京邮电大学,2011.
[8] 何剑锋,邬文彪,李宏穆,等.嵌入式Linux系统的Qt/Embedded图形界面开发[J].电子工程师,2007,33(7):46-48.
Test Platform of AFC System Reader for Urban Rail Transit
WU Chao,SHI Qiyu,ZHANG Ning,HE Tiejun
In order to improve the security, reliability and operational stability of AFC dedicated reader for urban rail transit, the main content of AFC readeris analyzed, the hardware structure of the test platform fis described Then, thedevelopment of main software modules of the testing software is introduced by focusing on an analysis of the interface function testing software. Finally, the testing software with a graphical user interface is developed, it instruction has rich content and could meet various functional requiremens for the AFC reader.
urban rail transit; automatic face collection(AFC); reader; test
Suzhou Railway Operation Co.Ltd.,215006,Suzhou,China
*苏州市轨道交通专项研究项目(szgdky2013002);苏州市科技发展计划(重点产业技术创新)项目(SGC201502)
U 293.22
10.16037/j.1007-869x.2017.03.031
2015-04-28)