姜華,王軍,姜志,杜博軍
(1.蘇州科技大學電子與信息工程學院,江蘇 蘇州 215009;2.中國白城兵器實驗中心,吉林 白城 137001)
基于USB便攜式北斗/GPS導航授時系統設計
姜華1,王軍1,姜志2,杜博軍2
(1.蘇州科技大學電子與信息工程學院,江蘇蘇州215009;2.中國白城兵器實驗中心,吉林白城137001)
針對便攜式計算機系統時間定位信息不準問題,提出一種基于USB便攜式北斗/GPS雙模授時定位的系統設計。介紹了USB便攜式導航授時系統硬件設計和利用Visual Studio 2010軟件在Windows 10系統下的進行軟件設計,即串行通訊的初始化編譯和使用C++對衛星導航數據的解碼,同時利用MFC的應用程序開發功能設計解碼后對數據進行顯示的窗口。實驗證明:在Windows 10系統平臺下USB傳輸衛星信息穩定,數據顯示界面簡潔,且時間精度達到20 ns,定位信息精度為3m。
便攜;授時/定位;Visual Studio 2010;窗口設計
便攜式計算機提供的時間和位置信息是由網絡產生的,這種方式提供的數據精確度很低,并不能滿足工業領域要求。針對這種數據精度過低的問題,提出利用外部主控芯片對北斗/GPS接收到的衛星導航數據進行解碼,通過PCI總線接口給計算機提供可靠數據[1]。這種方法不足之處在于:對于現有的便攜式計算機已無PCI插槽,且過于依賴網絡存在。針對上述不足,現提出一種基于Windows 10操作系統下,使用USB協議傳輸北斗/GPS的衛星導航數據的系統設計,無需內部插槽,利用計算機進行數據解碼以及設計應用軟件實時顯示解碼后的數據。
系統包括四個模塊:北斗/GPS衛星導航數據接收模塊、通訊協議轉換模塊、計算機串口通訊模塊和數據解碼以及窗口設計模塊。北斗/GPS雙模授時的芯片連接天線接收衛星導航信息,通過USB接口轉換模塊傳輸到計算機的COM口,計算機CPU發送指令提取$GPRMC的碼流,利用VS 2010軟件編寫C++程序對$GPRMC碼流的時間定位信息進行提取,并設計窗口執行軟件來接收顯示數據,如圖1所示。
圖1 系統框架
北斗/GPS授時定位采用和芯星通有限公司的UM220芯片,是雙系統導航授時模塊,可同時支持北斗和
GPS的兩個頻點,并且功耗僅有350mW,提供了3個TTL電平的串口通訊引腳(UART),多種波特率可供選擇,UM220的封裝是屬于緊湊型的,體積小、功耗低和成本低的優越性讓其成為便攜式定位/授時的首選[2]。
USB接口是計算機通信的常用接口,而芯片的集成板上的接口屬于RS232類型,所以衛星導航數據傳輸到計算機之前要經過接口轉換器PL2303,通過一個RS232的全雙工異步串行通信裝置與USB直接連接,其通信方式完全兼容USB2.0規范,可在多種不同的操作系統下安裝運行它的驅動,系統硬件設計如圖2所示。
圖2 硬件連接圖
3.1通訊串口初始化設計
計算機接收衛星導航數據之前需要對USB和計算機之間的串行通訊做初始化處理,串口讀取數據的方法有很多,串口的參數信息都被創建在文件下再打開。VS 2010在Windows 10系統下對串口的設置都可以調用指定函數[3]。運用類函數庫中個函數指定初始端口為COM1,輸入數據模式為二進制的形式,輸入緩存空間分配為1 024字節,輸出緩存空間為512字節,對執行串口通訊的端口制定參數設置:波特率為9 600 bps、無校驗位、8個數據位、1個停止位[3],初始化流程如圖3所示。
圖3 初始化函數類型
3.2時間位置信息解碼設計
3.2.1數據幀格式
數據主要是通過天線接收到的衛星數據,這種數據具有固定的幀結構,而且在不經處理前這種數據都是通過字節流的方式傳輸到計算機內,所以必須對北斗/GPS的數據幀結構有所了解,才能對時間、位置等信息進行提取。軟件系統主要提取的數據是GPRMC碼流,是導航衛星的精簡數據,一個數據幀共有17個字段[4]。數據幀都是以$加上數據格式名稱的大寫字母作為開頭,逗號做為不同字段之間的分隔符[5],這也是解碼過程中區分數據的依據,具體數據類型分布如表1。
表1 數據幀格式
3.2.2數據信息解碼方法
接收完數據后將數據進行緩存,需要接收以$GPRMC為幀頭的數據,檢測出$GPRMC的幀頭后直接對數據的導航參數作提取,逗號會將每種參數隔開,所以通過所記逗號的個數來做依據[6],逗號個數的變化就是數據類型的改變,當計數到1時,且此刻串口接收數組中對應的數值不是ASCLL碼0x24,可確定時間數值被放在數組里面,定義一個CString類型的變量[7],用這個變量來存儲時間的數值,時間數值提取出來后需要對數值進行分離,按小時、分鐘、秒的順序依次對數組進行提取,如圖4所示,并將所得到的時間做變換,北斗/ GPS芯片內部傳達的時間信息是格林尼治時區的時間,所以需要將格林尼治時間變為北京時間,解碼后所得到的時間上再加上8個小時便可以得到準確的北京時間[8]。
3.3數據顯示與窗口設計
在界面軟件設計中,采用VS 2010開發平臺,將Microsoft Communications Control,version 6.0的控件添加到窗口中,使用類函數可以創建窗口中的圖標大小和按鍵功能,也可用軟件中控制窗口里的按鈕樣式[9],雙擊按鈕來創建按鈕本身的響應函數,系統中使用了一個開始通訊的按鈕,具體執行流程如圖5所示。
解碼后的數據以CString類型存放在各個對應的變量中,實驗中顯示數據是以靜態文本的形式,用靜態文本的控制變量對應顯示,使用m_ctrlhour.Format()和m_ctrlCom.SetwindowText()來顯示被解碼后的數據[10]。
圖4 北斗/GPS數據解碼流程圖
圖5 按鈕響應函數
基于USB便攜式導航授時系統的設計,將天線接收到的衛星導航數據經過北斗/USB雙模授時芯片的處理,再將數據的傳輸協議轉換成USB協議后,通過串口傳輸到計算機中,在計算機里面使用專用窗口對數據進行顯示,實驗傳輸系統如圖6所示。
圖6 硬件系統
實驗使用的便攜式計算機的操作系統為Windows 10系統,啟動北斗/GPS定時導航系統,定位時間僅需50 s,通過天線所接收到的時間、位置信息解碼后數值顯示穩定,時間精確度可達到20 ns,定位精度達到3 m,根據需要可對數據進行不同精度的解碼和顯示,經實驗證明該系統可執行度高、穩定性好、數值可靠,且程序可移植性較高,系統實驗結果如圖7所示。
圖7 實驗結果圖
USB便攜式授時定位系統通過北斗/GPS導航定位模塊為計算機提供可靠時間定位信息,在VS 2010的編譯環境下利用C++語言對北斗/GPS數據進行解碼和串口初始化,并在計算機內使用專用窗口對解碼數據進行顯示的功能,為應用層開發帶來便利。USB便攜式定位授時系統的便攜性、穩定性、精確性等優點,滿足了目前授時定位工業領域的需求。
[1]楊會玲,唐彬.基于PCI-E的北斗/GPS雙模授時系統設計[J].蘇州科技學院學報(工程技術版),2014,27(1):68-70.
[2]張超,顧濟華.基于GPS/BDS的移動目標定位追蹤系統設計[J].現代電子技術,2015,38(17):121-123.
[3]趙素娟.基于MOXA多串口卡的多串口通信的VC++實現[J].計算機與現代化,2011(8):117-119.
[4]張波濤,閆錦麗,羅維.基于VC++6.0實現的串口通訊[J].通訊世界,2015(13):109.
[5]史小雨,程鵬飛,蔡艷輝,等.差分GPS數據通信格式RTCM3.1及其解碼算法的實現[J].測繪通報,2012(6):4-6.
[6]陳磊,李康.基于ARM的GPS接收機解碼系統設計[J].科技信息,2013(19):90-91.
[7]劉斌,梁美美,李欣.基于NIOSH的GPS信息接收系統設計與實現[J].現代電子技術,2013(6):105-108.
[8]李必凱.Visual C++編程獲取GPS觀測數據的探討[J].信息通信,2013(5):69-69.
[9]傅瑤,韓誠山.多媒體定時器方法中MFC跨線程傳遞窗口類消息的實現[J].微型電腦應用,2014,30(6):5-6.
[10]衛洪春,彭小利,蒲國林.MFC窗口創建過程的研究[J].現代電子技術,2014,37(11):151-154.
Navigation timing system design based on portable UBSBeidou/GPS
JIANG Hua1,WANG Jun1,JIANG Zhi2,DU Bojun2
(1.School of Electronic and Information Engineering,SUST,Suzhou 215009,China;2.Bai Cheng Ordnance Test Center of China,Baicheng 137001,China)
As to the inaccurate time and position information of the portable computer system,this paper presents a system design based on portable USB and Beidou/GPS dual-mode positioning.The paper introduces the hardware design of USB portable positioning timing system and the software design under the windows system by the use of VS 2010,which is also the initialization of serial communication and the decode of the satellite navigation data by C++,and discusses the presentation of data after decoding by the application development function of MFC.Test results show that the information of USB is stable,the data display interface is simple,the time accuracy is 80 ns,and the accuracy of the positioning information is 5 m under theWindows 10 system platform.
portable;timing/location;VS 2010;window design
TP31
B
1672-0679(2016)03-0077-04
2015-11-02
江蘇省普通高校研究生科研創新計劃項目(SKCX16_044)
姜華(1993-),男,江蘇泰州人,碩士研究生。
通信聯系人:王軍(1976-),男,副教授,博士,主要從事光電信息處理研究,Email:281109685@qq.com。
(責任編輯:盧文君)