王 杰,鄭國(guó)良
(鄭州大學(xué)電氣工程學(xué)院,河南鄭州450001)
智能交通發(fā)展中電子警察系統(tǒng)是不可或缺的一部分,并越來(lái)越得到重視.電子警察檢測(cè)記錄的結(jié)果將提交給管理機(jī)關(guān)作為執(zhí)法或者專項(xiàng)管理的數(shù)據(jù)依據(jù).然而在實(shí)踐中,利用電子警察提取的證據(jù)處罰違章行為常常引起一系列的不滿和爭(zhēng)論,公眾對(duì)電子警察實(shí)時(shí)監(jiān)控的準(zhǔn)確性提出質(zhì)疑[1].因此急需研究出檢驗(yàn)電子警察質(zhì)量的方法和裝置以檢測(cè)在運(yùn)行的電子警察是否合格,同時(shí)達(dá)到規(guī)范電子警察市場(chǎng)目的.在電子警察系統(tǒng)中,系統(tǒng)時(shí)鐘的準(zhǔn)確性和同步性是關(guān)系到取證是否可靠的關(guān)鍵因素,但目前還沒(méi)有有效的檢測(cè)手段.
針對(duì)電子警察時(shí)間準(zhǔn)確性和同步性校驗(yàn)問(wèn)題,筆者設(shè)計(jì)了基于GPS和LabVIEW的高精度標(biāo)準(zhǔn)時(shí)鐘,最后通過(guò)Datasocket技術(shù)實(shí)現(xiàn)了對(duì)電子警察系統(tǒng)的在線批量時(shí)間校驗(yàn).高精度時(shí)鐘由GPS-OEM接收板與PC機(jī)組成,二者之間的通信借助LabVIEW,采用中斷方式的串口通信,避免了查詢方式效率較低的問(wèn)題,從而提高了時(shí)鐘的精度.以設(shè)計(jì)的標(biāo)準(zhǔn)時(shí)鐘為時(shí)間基準(zhǔn),通過(guò)實(shí)時(shí)數(shù)據(jù)傳輸技術(shù)——Datasocket獲取電子警察系統(tǒng)時(shí)間,進(jìn)而完成在線批量時(shí)間校驗(yàn).
GPS是一種廣泛應(yīng)用的衛(wèi)星定位、導(dǎo)航和授時(shí)系統(tǒng),全天24 h不間斷地對(duì)全球提供免費(fèi)服務(wù),其時(shí)間精度更是可達(dá)到1~10 ns,因此可作為標(biāo)準(zhǔn)時(shí)間基準(zhǔn)[2].由于時(shí)鐘精度高,基于GPS的高精度時(shí)鐘已經(jīng)大范圍地應(yīng)用到電力系統(tǒng)、通信和檢測(cè)裝置等對(duì)時(shí)鐘要求較高的行業(yè)及裝置當(dāng)中.
市場(chǎng)上大多數(shù)GPS-OEM接收板與計(jì)算機(jī)通信都支持異步串行通信方式.NMEA-0183數(shù)據(jù)格式是大多數(shù)GPS接收機(jī)都遵循的數(shù)據(jù)格式,該格式已經(jīng)成為了一種國(guó)際通用的數(shù)據(jù)格式[3].筆者采用GARMIN公司的GPS25LVS-OEM接收板,該接收板支持以下類型的NMEA-0183定位語(yǔ)句:GGA、GSA、GSV、RMC 等,可根據(jù)實(shí)際需要選用特定的定位語(yǔ)句.本系統(tǒng)采用GPRMC定位語(yǔ)句,GPRMC語(yǔ)句格式如表1所示.
表1 GPRMC語(yǔ)句格式Tab.1 Format of GPRMC
LabVIEW是一種圖形化編程環(huán)境,是開(kāi)發(fā)測(cè)量、測(cè)試和控制系統(tǒng)的通用編程系統(tǒng).在Lab-VIEW中無(wú)需編寫復(fù)雜的文本程序代碼,只需借助圖標(biāo)和連線即可開(kāi)發(fā)出類似于流程圖的測(cè)試測(cè)量方案[4].
程序利用LabVIEW通過(guò)RS232串行通信方式與GPS-OEM接收板建立通信,采集其發(fā)送的GPS數(shù)據(jù).由GPRMC語(yǔ)句格式可知GPS提供了用于導(dǎo)航、定位和授時(shí)的多種數(shù)據(jù),但是在本系統(tǒng)僅僅需要其提供的時(shí)間信息,所以只需將接收到的GPS數(shù)據(jù)中的時(shí)間信息解碼即可.軟件由以下3個(gè)模塊組成:串口通信模塊、數(shù)據(jù)處理模塊和顯示模塊.
2.3.1 串口通信模塊
查詢和中斷是計(jì)算機(jī)實(shí)現(xiàn)串行通信的兩種方式[5].查詢方式是通過(guò)不間斷查詢串口狀態(tài)來(lái)檢測(cè)新數(shù)據(jù)的到來(lái),這種方式雖然可以實(shí)現(xiàn)高速數(shù)據(jù)的傳輸,但是需要長(zhǎng)時(shí)間獨(dú)立地占用CPU資源,致使CPU利用率低.中斷方式的串行通信則不需獨(dú)占CPU,只需在允許串口中斷的條件下,在產(chǎn)生串口中斷時(shí)響應(yīng)中斷進(jìn)行數(shù)據(jù)傳輸即可,此種模式下CPU大多數(shù)時(shí)間在處理其他事務(wù).在LabVIEW中實(shí)現(xiàn)串行通信有兩種方式:一種是利用VISA,另一種是利用 ActiveX 控件[3].對(duì)應(yīng)的利用VISA可完成查詢方式串口通信,利用ActiveX控件可完成中斷方式的串口通信(也可完成查詢方式的串口通信).
在文獻(xiàn)[3]中提出了兩種LabVIEW串口通信的方案:一種是在接收數(shù)據(jù)時(shí)加固定時(shí)長(zhǎng)的延時(shí),另一種是設(shè)置數(shù)據(jù)緩存區(qū)的大小.文獻(xiàn)[3]采用了方案二.雖然方案二與方案一相比在數(shù)據(jù)完整性和正確性方面有所提高,但是仍然是主動(dòng)查詢的通信方式,無(wú)法擺脫主動(dòng)讀取串口數(shù)據(jù)帶來(lái)的效率低的問(wèn)題,同時(shí)也不能保證數(shù)據(jù)接收和解析的實(shí)時(shí)性.在本系統(tǒng)中利用MSCOMM控件采用中斷方式進(jìn)行串口通信,在串口產(chǎn)生中斷后才讀取串口數(shù)據(jù),無(wú)中斷時(shí)CPU執(zhí)行其他操作任務(wù),真正提高了效率.由中斷的處理機(jī)制可知,在數(shù)據(jù)到來(lái)后可以立即接收,提高了實(shí)時(shí)性;采集的數(shù)據(jù)交由數(shù)據(jù)處理模塊做后續(xù)處理.
MSCOMM控件是微軟公司為windows環(huán)境提供的用于串行通信的 ActiveX控件[6].Lab-VIEW對(duì)MSCOMM控件提供很好的支持,在Lab-VIEW中使用MSCOMM控件比在VC和VB中還要簡(jiǎn)單方便.串口通信程序采用MSCOMM控件提供的事件驅(qū)動(dòng)方式來(lái)實(shí)現(xiàn).在串口配置之前首先需要注冊(cè)串口中斷事件,串口配置之后如有中斷則會(huì)調(diào)用已注冊(cè)的事件完成中斷服務(wù).本系統(tǒng)在串口中斷服務(wù)程序中完成串口數(shù)據(jù)的接受.具體過(guò)程為:當(dāng)通信事件發(fā)生時(shí)會(huì)觸發(fā)MSCOMM控件的OnComm事件,通過(guò)檢查CommEvent屬性的值可判斷是否發(fā)生了串口中斷事件;如果發(fā)生了串口中斷,則進(jìn)入中斷服務(wù)子程序進(jìn)行讀取緩存區(qū)中的數(shù)據(jù)的操作,完成對(duì)串口數(shù)據(jù)的接收.圖1和圖2給出了完整的串口通信程序.主程序和中斷服務(wù)程序之間采用隊(duì)列的方式傳遞數(shù)據(jù).
圖1 串口通信主程序Fig.1 Main program of serial communication
圖2 中斷服務(wù)程序Fig.2 Program of Interrupt Service
2.3.2 數(shù)據(jù)處理模塊
本系統(tǒng)雖然在初始配置時(shí)使得GPS-OEM接收板僅輸出GPRMC格式的數(shù)據(jù),但是GPS接收機(jī)在冷/熱啟動(dòng)時(shí)會(huì)對(duì)外發(fā)送無(wú)效的定位信息.所以在數(shù)據(jù)處理中仍要首先判斷數(shù)據(jù)是否為GPRMC格式的數(shù)據(jù),從而決定是否進(jìn)行后續(xù)的數(shù)據(jù)解碼.如果接受的數(shù)據(jù)符合要求,則截取GPRMC格式數(shù)據(jù)的<1>和<9>數(shù)據(jù)段進(jìn)行數(shù)據(jù)解碼處理.時(shí)間信息的解碼主要是通過(guò)字符串查找、截取、連接、格式化等節(jié)點(diǎn)完成.完整的時(shí)間信息處理流程如圖3.主要的數(shù)據(jù)解析程序如圖4.
值得指出的是,在數(shù)據(jù)處理過(guò)程中需注意對(duì)標(biāo)準(zhǔn)時(shí)間數(shù)據(jù)格式的轉(zhuǎn)換.GPS提供的是UTC時(shí)間,UTC是基于格林尼治標(biāo)準(zhǔn)時(shí)間(GMT)標(biāo)準(zhǔn)提供的準(zhǔn)確時(shí)間,與北京時(shí)間不在同一時(shí)區(qū)[7],因此需要根據(jù)時(shí)差統(tǒng)一調(diào)整為北京時(shí)間后才可用于時(shí)間校驗(yàn).
DataSocket技術(shù)是NI公司為實(shí)現(xiàn)測(cè)控?cái)?shù)據(jù)的共享和發(fā)布而開(kāi)發(fā)的實(shí)時(shí)數(shù)據(jù)技術(shù).它可以實(shí)現(xiàn)同一臺(tái)計(jì)算機(jī)中多個(gè)應(yīng)用程序內(nèi)部數(shù)據(jù)共享或者網(wǎng)絡(luò)中多臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)交換.雖然目前已經(jīng)存在有TCP/IP,DDE等多種程序間數(shù)據(jù)共享的技術(shù),但現(xiàn)存的這些技術(shù)都不屬于實(shí)時(shí)數(shù)據(jù)傳輸技術(shù)[8-9].DataSocket主要包括 DataSocket Server Manager、DataSocketServer和 DataSocket函數(shù)庫(kù)等三大部分.DataSocket擺脫了復(fù)雜的TCP/IP底層編程,因此大大簡(jiǎn)化Internet網(wǎng)上測(cè)控?cái)?shù)據(jù)實(shí)時(shí)交換的編程工作[9],同時(shí)利用它可以克服數(shù)據(jù)傳輸速率較慢的缺點(diǎn).
時(shí)間校驗(yàn)的難題是如何實(shí)時(shí)獲取眾多電子警察的系統(tǒng)時(shí)間,而DataSocket恰恰提供了網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)傳輸?shù)耐緩?利用DataSocket進(jìn)行數(shù)據(jù)傳輸,需要設(shè)計(jì)DataSocket服務(wù)器和DataSocket客戶端,在本系統(tǒng)中采用多服務(wù)器-單客戶端的模式,即路口工控機(jī)作為服務(wù)器,校驗(yàn)用計(jì)算機(jī)作為客戶端.其中服務(wù)器采用廣播方式發(fā)送數(shù)據(jù),避免了請(qǐng)求-應(yīng)答方式造成的數(shù)據(jù)傳輸延時(shí),保證客戶端得到的數(shù)據(jù)即為服務(wù)器端的實(shí)時(shí)時(shí)間.
在DataSocket Server Manager中增加一個(gè)自定義的“time”項(xiàng)作為服務(wù)器發(fā)布系統(tǒng)時(shí)間的數(shù)據(jù)終端,同時(shí)此項(xiàng)也是客戶端獲取電子警察系統(tǒng)時(shí)間信息的數(shù)據(jù)源.
利用DataSocket實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)數(shù)據(jù)傳輸流程如下:首先打開(kāi)由URL地址指定的DataSocket數(shù)據(jù)源或數(shù)據(jù)終端,然后根據(jù)具體情況進(jìn)行讀寫操作,最后關(guān)閉之前打開(kāi)的數(shù)據(jù)源或數(shù)據(jù)終端防止非法操作.通用的DataSocket服務(wù)器端和客戶端的LabVIEW程序分別如圖5和圖6所示.
圖中字符串用于寫入U(xiǎn)RL(要讀取的數(shù)據(jù)源或要寫入的數(shù)據(jù)終端),支持以下4種URL:dstp、opc、logos和file.本系統(tǒng)采用dstp,格式為:
圖5 服務(wù)器端程序Fig.5 Program of server
dstp://servername/numericdata(numericdata是具有名稱的tag,具體為本系統(tǒng)中的“time”).
圖6 客戶端程序Fig.6 Program of Client
在電子警察系統(tǒng)的路口工控機(jī)上運(yùn)行DataSocket服務(wù)器端程序,利用LabVIEW的“獲取系統(tǒng)時(shí)間”節(jié)點(diǎn)得到系統(tǒng)時(shí)間并將其寫入到DataSocket服務(wù)器.在校驗(yàn)用計(jì)算機(jī)上運(yùn)行DataSocket客戶端程序,只要知道各工控機(jī)的IP或計(jì)算機(jī)名(對(duì)應(yīng)于dstp格式中的“servername”)就可以讀取各DataSocket服務(wù)器中的數(shù)據(jù).采集的數(shù)據(jù)和標(biāo)準(zhǔn)時(shí)鐘做比較即可完成數(shù)據(jù)校驗(yàn),各工控機(jī)時(shí)間比較可完成時(shí)間同步性校驗(yàn).
校驗(yàn)用PC機(jī)在讀取各工控機(jī)時(shí)間的同時(shí)要求同時(shí)讀取標(biāo)準(zhǔn)時(shí)鐘時(shí)間,只有這樣才能保證校驗(yàn)的正確性.本系統(tǒng)采用LabVIEW的多線程編程技術(shù),在同一個(gè)while循環(huán)中完成如上兩個(gè)數(shù)據(jù)讀取的子程序,從而實(shí)現(xiàn)了數(shù)據(jù)讀取的同步性.
基于GPS和LabVIEW的時(shí)鐘設(shè)計(jì),實(shí)現(xiàn)簡(jiǎn)單且精度高,為電子警察時(shí)間校驗(yàn)提供了可靠的標(biāo)準(zhǔn)時(shí)鐘.圖形化的編程語(yǔ)言LabVIEW編程簡(jiǎn)單,為GPS數(shù)據(jù)的接收和解碼提供了高效的開(kāi)發(fā)環(huán)境.采用Mscomm控件實(shí)現(xiàn)中斷方式的串口通信與采用VISA的查詢方式相比,數(shù)據(jù)的接收實(shí)時(shí)性更強(qiáng),CPU的效率更高.利用DataSocket技術(shù)組建遠(yuǎn)程數(shù)據(jù)傳輸系統(tǒng)實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)傳輸,不僅不需要復(fù)雜的TCP/IP底層編程,而且能夠充分利用網(wǎng)絡(luò)資源減少測(cè)試的成本和時(shí)間.本系統(tǒng)利用GPS、LabVIEW和DataSocket技術(shù)的有機(jī)結(jié)合完成電子警察系統(tǒng)的在線批量測(cè)試.通過(guò)在河南省某電子警察系統(tǒng)生產(chǎn)廠家的測(cè)試,證明了系統(tǒng)有很強(qiáng)的實(shí)用性,提供的方案為電子警察時(shí)間校驗(yàn)提供了有效的檢測(cè)方法.
[1] 何嘉衛(wèi).電子警察執(zhí)法應(yīng)遵循行政合理性和行政公開(kāi)原則[D].廈門:廈門大學(xué)信息科學(xué)與技術(shù)學(xué)院,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數(shù)據(jù)采集及處理[J].測(cè)繪科學(xué),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].國(guó)外電子測(cè)量技術(shù),2009(12):27-30.
[6] 夏星欣,戴瑜興.在LabVIEW中利用ActiveX技術(shù)實(shí)現(xiàn)串行通信[J].儀表技術(shù),2005(5):15-16.
[7] 石爾達(dá).基于LabVIEW的GPS設(shè)備定位儀的研究[D].吉林:東北電力大學(xué)自動(dòng)化工程學(xué)院,2011.
[8] 靳紅濤,韓捷,郝偉,等.基于LabVIEW動(dòng)態(tài)鏈接庫(kù)(DLL)的信號(hào)分析系統(tǒng)[J].鄭州大學(xué)學(xué)報(bào):工學(xué)版,2003,23(1):101-104.
[9] 李伯全,潘海彬.DataSocket技術(shù)在遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,2003(S2):229-230.