工程中經常需要實現異地數據的同步采集。現有的該類系統大多采用對采集的數據打“時間戳”的方法來實現數據采集的同步性。大量的“數據戳”隨數據一起存入 RAM,占用了RAM的存儲空間,增加了后續數據處理的復雜度。針對上述問題,本文提出了一種電平觸發的同步方法,其要點是利用GPS授時檢測預置的采集開始時刻的到來,并在該時刻下一個秒脈沖的上升沿產生高電平的觸發信號,一組異地分布的數據采集裝置因而可以同步工作。按照上述方法設計了具體系統,并進行了實驗,結果表明可以達到1 ?滋s的同步精度[1]。 1 同步原理與實現方案 GPS接收機輸出的NEMA信息通過串口1送入解碼模塊,并提取GPS狀態信息和時間信息分別輸出到與門和數據處理模塊。數據處理模塊處理輸入的時間信息,并每隔1 s與串口2輸入的預設時刻信息比較,若兩者完全相同,則在秒脈沖的下一個上升沿時刻產生同步信號。當GPS狀態信息與同步信號電平都為高時,產生觸發信號觸發一組異地分布的數據采集裝置同步開始工作。 對于一組異地分布需要同步采集的數據采集裝置,每個裝置都增加1個(FPGA)同步裝置,預置相同的采集開始時刻。同步裝置根據GPS授時信息不斷檢測該時刻的到來,并在該時刻的下一個秒脈沖上升沿觸發數據采集動作,使得異地分布的數據采集裝置同步開始工作。 單個同步裝置的系統框圖如圖1所示。 2 系統硬件設計 2.1 設備簡介 2.1.1 GPS接收機性能簡介 本系統采用Navysyc CW25接收機,此接收機是一款專門的授時型接收機。該接收機具有12個并行通道,可同時跟蹤12顆衛星,完全校準到UTC時間,產生精確度高達幾十納秒的同步授時,并且支持RS-232串口通信,通信速率38 400 b/s。 2.1.2 GPS秒脈沖輸出特性簡介 秒脈沖PPS(Pulse Per Second)[5-6],是1個電平信號,以方波形式輸出,周期為1 s,高電平持續時間為100 μs。高電平上升沿為PPS輸出的精確時刻,其波形如圖2所示。 接收機取得有效導航的時候,脈沖上升沿時刻與UTC時刻相差在±30 ns以內,RS-232傳輸數據中UTC時刻的輸出較秒脈沖上升沿有一定的延遲,即接收機先為用戶提供秒脈沖,再提供對應的時間信息,(FPGA)同步控制模塊對此(時間信息的滯后)須進行恰當處理,以使PPS的上升沿與實際的時間信息對應。 2.2 系統硬件總體實現 本系統硬件設計主要是利用FPGA設計和實現同步控制功能。由于FPGA與GPS的串口通信采用標準的RS-232接口,所以利用EDK提供的IP核可以直接實現。 3 FPGA設計 3.1 頂層設計 利用FPGA實現基于GPS的異地數據采集同步控制系統的核心處理單元,采用自頂向下的設計方法,用Verilog HDL語言描述,使用Xilinx Spartan-3A FPGA在ISE 10.1中進行仿真、綜合和實現[2-3]。頂層設計由解碼模塊、I/O控制模塊和數據處理模塊組成。 工作過程為:串口接收到GPS接收機發來的NEMA $POLYT語句,I/O控制模塊檢測語句開始和結束標志字符,并檢查語句格式的正確性,將正確的語句存入輸入緩存;解碼模塊提取出NEMA信息中的時間信息和GPS定位信息,時間信息輸入數據處理模塊,GPS定位信息作為“與門”輸入;數據處理模塊中,將解碼模塊送來的時間信息進行處理并鎖存,與預設的時間信息比對,當兩者完全相同時,在下一個PPS上升沿時刻產生同步信號,此同步信號和GPS定位信息相與生成觸發信號,觸發數據采集卡同步開始工作。 3.2 解碼模塊 解碼模塊的任務是提取GPS接收機發來的NEMA語句中的時間信息。FPGA的串口接收到GPS接收機發來的NEMA $POLYT語句,I/O控制模塊檢測語句開始和結束標志字符,并檢查語句格式的正確性,將正確的語句存入輸入緩存,再從緩存中提取出時間信息并鎖存。$POLYT語句格式如下:$POLYT,hhmmss.ss,ddmmyy,UTC_TOW,week,GPS_TOW,Clk_B,Clk_D,PG,cs,每一項以逗號相隔,其中“hhmmss”項為格林威治時間的時、分、秒信息,FPGA控制板通過解讀此報文信息便可得到與1 PPS信號對應的時間信息[3]。解碼模塊工作的程序流程圖如圖3所示。 3.3 數據處理模塊 數據處理模塊的作用有兩部分:調整從緩存提取的時間信息和產生同步觸發信號。 調整時間信息包括2個方面,(1)GPS接收機輸出的時間是GMT時間,需要轉換成當前地理位置所在時區的時間。(2)由于GPS接收機的時間信息總是在與之對應的秒脈沖上升沿到來后從串口發出,所以在t時刻的秒脈沖上升沿到來時,t時刻的時間信息還未被數據處理單元接收到。為了實現秒脈沖和時間信息的同步輸出,需要將t-1時刻的時間信息加1 s作為t時刻的絕對時間。圖4所示顯示了調整前后的時間與秒脈沖的對應關系。 將調整后的時間信息與預設的時間信息進行比較,兩者完全相同。在下一個PPS脈沖的上升沿對應時刻產生1個電平信號,此信號和GPS狀態信息“相與”后輸出信號即為數據采集卡的觸發信號。仿真結果如圖5所示。 本文提出了一種改進的基于GPS的異地數據采集的同步方法,并利用FPGA進行了具體設計和實現。實驗結果表明,上述方法和設計克服了常用的“時間戳”方式占用額外存儲空間和加重數據處理負擔的缺點,滿足分布式數據采集對同步精度的要求,并且有助于實現同步裝置的小型化、高穩定性,便于維護與升級。 參考文獻 [1] 李煒,王彪.基于GPS授時的異地同步數據采集系統[J].測控技術,2006,25(3):40-42. [2] 田耕,徐文波,胡彬,等.Xilinx ISE Design Suite 10.x FPGA開發指南[M].北京:人民郵電出版社,2008. [3] Xilinx Inc. DS312 PDF, Spartan-3A FPGA Family:Complete Data Sheet[Z]. Xilinx Inc, 2006. [4] BAUCH A, PIESTER D, MOUDRAK A,et al. Time comparisons between USNO and PTB: a model for the determination of the time offset between GPS time and the future galileo system time[C]. Frequency Control Symposium and Exposition, Montreal, Canada, 2004. [5] 王琦,胡修林.基于OEM板的GPS定位接收機的研究與實現[J].電子工程師,2004,30(11):4-6. [6] 苗世洪,王少榮,劉沛.一種基于GPS的時間同步裝置[J].電子計算機與外部設備,2000,24(1):15-16. 來源:電子技術應用 作者:孫改匣 趙曙光 王洪亮 |