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