王 杰,郑国良
(郑州大学电气工程学院,河南郑州450001)
智能交通发展中电子警察系统是不可或缺的一部分,并越来越得到重视.电子警察检测记录的结果将提交给管理机关作为执法或者专项管理的数据依据.然而在实践中,利用电子警察提取的证据处罚违章行为常常引起一系列的不满和争论,公众对电子警察实时监控的准确性提出质疑[1].因此急需研究出检验电子警察质量的方法和装置以检测在运行的电子警察是否合格,同时达到规范电子警察市场目的.在电子警察系统中,系统时钟的准确性和同步性是关系到取证是否可靠的关键因素,但目前还没有有效的检测手段.
针对电子警察时间准确性和同步性校验问题,笔者设计了基于GPS和LabVIEW的高精度标准时钟,最后通过Datasocket技术实现了对电子警察系统的在线批量时间校验.高精度时钟由GPS-OEM接收板与PC机组成,二者之间的通信借助LabVIEW,采用中断方式的串口通信,避免了查询方式效率较低的问题,从而提高了时钟的精度.以设计的标准时钟为时间基准,通过实时数据传输技术——Datasocket获取电子警察系统时间,进而完成在线批量时间校验.
GPS是一种广泛应用的卫星定位、导航和授时系统,全天24 h不间断地对全球提供免费服务,其时间精度更是可达到1~10 ns,因此可作为标准时间基准[2].由于时钟精度高,基于GPS的高精度时钟已经大范围地应用到电力系统、通信和检测装置等对时钟要求较高的行业及装置当中.
市场上大多数GPS-OEM接收板与计算机通信都支持异步串行通信方式.NMEA-0183数据格式是大多数GPS接收机都遵循的数据格式,该格式已经成为了一种国际通用的数据格式[3].笔者采用GARMIN公司的GPS25LVS-OEM接收板,该接收板支持以下类型的NMEA-0183定位语句:GGA、GSA、GSV、RMC 等,可根据实际需要选用特定的定位语句.本系统采用GPRMC定位语句,GPRMC语句格式如表1所示.
表1 GPRMC语句格式Tab.1 Format of GPRMC
LabVIEW是一种图形化编程环境,是开发测量、测试和控制系统的通用编程系统.在Lab-VIEW中无需编写复杂的文本程序代码,只需借助图标和连线即可开发出类似于流程图的测试测量方案[4].
程序利用LabVIEW通过RS232串行通信方式与GPS-OEM接收板建立通信,采集其发送的GPS数据.由GPRMC语句格式可知GPS提供了用于导航、定位和授时的多种数据,但是在本系统仅仅需要其提供的时间信息,所以只需将接收到的GPS数据中的时间信息解码即可.软件由以下3个模块组成:串口通信模块、数据处理模块和显示模块.
2.3.1 串口通信模块
查询和中断是计算机实现串行通信的两种方式[5].查询方式是通过不间断查询串口状态来检测新数据的到来,这种方式虽然可以实现高速数据的传输,但是需要长时间独立地占用CPU资源,致使CPU利用率低.中断方式的串行通信则不需独占CPU,只需在允许串口中断的条件下,在产生串口中断时响应中断进行数据传输即可,此种模式下CPU大多数时间在处理其他事务.在LabVIEW中实现串行通信有两种方式:一种是利用VISA,另一种是利用 ActiveX 控件[3].对应的利用VISA可完成查询方式串口通信,利用ActiveX控件可完成中断方式的串口通信(也可完成查询方式的串口通信).
在文献[3]中提出了两种LabVIEW串口通信的方案:一种是在接收数据时加固定时长的延时,另一种是设置数据缓存区的大小.文献[3]采用了方案二.虽然方案二与方案一相比在数据完整性和正确性方面有所提高,但是仍然是主动查询的通信方式,无法摆脱主动读取串口数据带来的效率低的问题,同时也不能保证数据接收和解析的实时性.在本系统中利用MSCOMM控件采用中断方式进行串口通信,在串口产生中断后才读取串口数据,无中断时CPU执行其他操作任务,真正提高了效率.由中断的处理机制可知,在数据到来后可以立即接收,提高了实时性;采集的数据交由数据处理模块做后续处理.
MSCOMM控件是微软公司为windows环境提供的用于串行通信的 ActiveX控件[6].Lab-VIEW对MSCOMM控件提供很好的支持,在Lab-VIEW中使用MSCOMM控件比在VC和VB中还要简单方便.串口通信程序采用MSCOMM控件提供的事件驱动方式来实现.在串口配置之前首先需要注册串口中断事件,串口配置之后如有中断则会调用已注册的事件完成中断服务.本系统在串口中断服务程序中完成串口数据的接受.具体过程为:当通信事件发生时会触发MSCOMM控件的OnComm事件,通过检查CommEvent属性的值可判断是否发生了串口中断事件;如果发生了串口中断,则进入中断服务子程序进行读取缓存区中的数据的操作,完成对串口数据的接收.图1和图2给出了完整的串口通信程序.主程序和中断服务程序之间采用队列的方式传递数据.
图1 串口通信主程序Fig.1 Main program of serial communication
图2 中断服务程序Fig.2 Program of Interrupt Service
2.3.2 数据处理模块
本系统虽然在初始配置时使得GPS-OEM接收板仅输出GPRMC格式的数据,但是GPS接收机在冷/热启动时会对外发送无效的定位信息.所以在数据处理中仍要首先判断数据是否为GPRMC格式的数据,从而决定是否进行后续的数据解码.如果接受的数据符合要求,则截取GPRMC格式数据的<1>和<9>数据段进行数据解码处理.时间信息的解码主要是通过字符串查找、截取、连接、格式化等节点完成.完整的时间信息处理流程如图3.主要的数据解析程序如图4.
值得指出的是,在数据处理过程中需注意对标准时间数据格式的转换.GPS提供的是UTC时间,UTC是基于格林尼治标准时间(GMT)标准提供的准确时间,与北京时间不在同一时区[7],因此需要根据时差统一调整为北京时间后才可用于时间校验.
DataSocket技术是NI公司为实现测控数据的共享和发布而开发的实时数据技术.它可以实现同一台计算机中多个应用程序内部数据共享或者网络中多台计算机之间的数据交换.虽然目前已经存在有TCP/IP,DDE等多种程序间数据共享的技术,但现存的这些技术都不属于实时数据传输技术[8-9].DataSocket主要包括 DataSocket Server Manager、DataSocketServer和 DataSocket函数库等三大部分.DataSocket摆脱了复杂的TCP/IP底层编程,因此大大简化Internet网上测控数据实时交换的编程工作[9],同时利用它可以克服数据传输速率较慢的缺点.
时间校验的难题是如何实时获取众多电子警察的系统时间,而DataSocket恰恰提供了网络实时数据传输的途径.利用DataSocket进行数据传输,需要设计DataSocket服务器和DataSocket客户端,在本系统中采用多服务器-单客户端的模式,即路口工控机作为服务器,校验用计算机作为客户端.其中服务器采用广播方式发送数据,避免了请求-应答方式造成的数据传输延时,保证客户端得到的数据即为服务器端的实时时间.
在DataSocket Server Manager中增加一个自定义的“time”项作为服务器发布系统时间的数据终端,同时此项也是客户端获取电子警察系统时间信息的数据源.
利用DataSocket实现远程实时数据传输流程如下:首先打开由URL地址指定的DataSocket数据源或数据终端,然后根据具体情况进行读写操作,最后关闭之前打开的数据源或数据终端防止非法操作.通用的DataSocket服务器端和客户端的LabVIEW程序分别如图5和图6所示.
图中字符串用于写入URL(要读取的数据源或要写入的数据终端),支持以下4种URL:dstp、opc、logos和file.本系统采用dstp,格式为:
图5 服务器端程序Fig.5 Program of server
dstp://servername/numericdata(numericdata是具有名称的tag,具体为本系统中的“time”).
图6 客户端程序Fig.6 Program of Client
在电子警察系统的路口工控机上运行DataSocket服务器端程序,利用LabVIEW的“获取系统时间”节点得到系统时间并将其写入到DataSocket服务器.在校验用计算机上运行DataSocket客户端程序,只要知道各工控机的IP或计算机名(对应于dstp格式中的“servername”)就可以读取各DataSocket服务器中的数据.采集的数据和标准时钟做比较即可完成数据校验,各工控机时间比较可完成时间同步性校验.
校验用PC机在读取各工控机时间的同时要求同时读取标准时钟时间,只有这样才能保证校验的正确性.本系统采用LabVIEW的多线程编程技术,在同一个while循环中完成如上两个数据读取的子程序,从而实现了数据读取的同步性.
基于GPS和LabVIEW的时钟设计,实现简单且精度高,为电子警察时间校验提供了可靠的标准时钟.图形化的编程语言LabVIEW编程简单,为GPS数据的接收和解码提供了高效的开发环境.采用Mscomm控件实现中断方式的串口通信与采用VISA的查询方式相比,数据的接收实时性更强,CPU的效率更高.利用DataSocket技术组建远程数据传输系统实现数据的实时传输,不仅不需要复杂的TCP/IP底层编程,而且能够充分利用网络资源减少测试的成本和时间.本系统利用GPS、LabVIEW和DataSocket技术的有机结合完成电子警察系统的在线批量测试.通过在河南省某电子警察系统生产厂家的测试,证明了系统有很强的实用性,提供的方案为电子警察时间校验提供了有效的检测方法.
[1] 何嘉卫.电子警察执法应遵循行政合理性和行政公开原则[D].厦门:厦门大学信息科学与技术学院,2007.
[2] PAN Xiao-gang,ZHOU Hai-yin.Method of combine orbit determination and its application in space based technology[C]//2009 IEEE Aerospace Conference,Big Sky,MT,United States,2009:1-9.
[3] 任凯,章传银,王天文.基于LabVIEW的GPS数据采集及处理[J].测绘科学,2009(6):226-227.
[4] TANGQiu,TENGZhao-sheng,GUOSi-yu,et al.Design of power quality monitoring system based on Lab-VIEW[C]//Proc of 2009 Int Conf on Measuring Technology and Mechatronics Automation.Zhangjiajie,Hunan,China:ICMTMA,2009:292-295.
[5] 吕向锋,高洪林,马亮,等.基于LabVIEW串口通信的研究[J].国外电子测量技术,2009(12):27-30.
[6] 夏星欣,戴瑜兴.在LabVIEW中利用ActiveX技术实现串行通信[J].仪表技术,2005(5):15-16.
[7] 石尔达.基于LabVIEW的GPS设备定位仪的研究[D].吉林:东北电力大学自动化工程学院,2011.
[8] 靳红涛,韩捷,郝伟,等.基于LabVIEW动态链接库(DLL)的信号分析系统[J].郑州大学学报:工学版,2003,23(1):101-104.
[9] 李伯全,潘海彬.DataSocket技术在远程监控系统中的应用[J].计算机应用,2003(S2):229-230.