王世峰
(北京信息科技大學 自動化學院,北京100192)
雙模塊定位信息采集和顯示系統設計
王世峰
(北京信息科技大學 自動化學院,北京100192)
針對衛星定位系統在生產生活中廣泛應用的現狀,提出一種基于北斗/GPS雙模塊的定位信息的采集與處理系統。以C8051F007單片機作為定位信息采集與處理的核心,完成了北斗/GPS雙定位模塊BD-126與單片機的接口電路、 OLED顯示模塊電路、DC-DC升壓電路的設計,以及相應的軟件系統設計,將采集到的數據在OLED顯示和上位機PC端進行顯示。測試結果表明,該系統能夠實現定位信息的采集,并成功在OLED顯示屏和PC端進行顯示。
GPS;定位信息;UART;C8051F007
引 言
目前全球衛星定位導航系統有四個,分別為美國的GPS全球定位系統[1]、歐盟的Galileo(伽利略)全球定位系統、俄羅斯的 GLONASS(格洛納斯)全球定位系統和我國自行研制的北斗全球定位系統(BDS)[2]。中國的定位導航市場異軍突起,發展潛力較大。隨著目前運輸產業在國民生活中的作用日益凸顯,為提高運輸服務的水平,對其導航定位顯得尤其重要。在我們平時的生活中,如行車方向、位置定位導航、失物尋找,更離不開衛星定位導航。
美國的GPS全球定位系統能夠覆蓋全球范圍,是技術最為成熟、應用最為廣泛的全球定位系統。但此系統為美國所壟斷,一旦美國停止授權服務,將嚴重影響我們的生產生活,于是,我國投入大量精力自主研發了北斗衛星導航系統(BDS)。其在設計上,和GPS的性能不相上下,只是起步落后于GPS[3],因此還需要拓寬市場,但其對我國的國防建設、經濟發展起到了促進作用。因此為了獲得更好的服務,北斗/GPS組合式導航系統應運而生[4-5],其性能比在單模式下要好很多,可以滿足人們的社會需求,對提高人們生產生活的水平具有重要的意義。
本設計的主控制器為C8051F007單片機。定位信息的采集使用的是BD-126北斗/GPS雙定位模塊,BD-126北斗/GPS雙定位模塊與單片機之間通過軟件實現的UART通信協議進行連接。定位信息的顯示采用OLED模塊VGM128064A50A01和上位機PC進行雙顯示[6],OLED模塊與C8051F007單片機之間通過4線串行通信協議(SPI)進行連接,上位機PC與C8051F007單片機之間通過UART-USB轉接電路連接。電源電路采用LM1117芯片,輸入為PC端USB口的5 V電壓,輸出為3.3 V電壓,給整個系統供電。再將3.3 V電壓通過DC-DC升壓電路,將電壓升至8~15 V之間,供OLED顯示器使用。系統結構框圖如圖1所示。

圖1 系統結構框圖
2.1 單片機最小系統
單片機最小系統以C8051F芯片為主,包括電源電路、晶振電路、復位電路外部時鐘電路、JTAG下載電路、USB-UART轉換電路。
BD-126屬于雙模雙頻的組合定位接收機,是北斗定位系統和GPS定位系統的組合,具體是由擁有24顆衛星組成的GPS系統和擁有16顆工作衛星的BD-2系統組成,相比單一定位系統,雙模雙頻定位系統大大提高了定位精度。此模塊采用MTK 3333芯片設計,具有高性能、低功耗的優點,是一個完整的衛星定位接收設備,具備全方位功能,能滿足專業定位的嚴格要求。

圖3 CP2102的引腳定義
該模塊寬輸入電壓范圍為3.6~6 V,采用二級放大28 dB高增益25×25有源陶瓷天線,TTL電平輸出,可直接連接單片機。
2.2 OLED顯示模塊
用到的OLED顯示屏為VGM128064A50A01,屬于128 × 64點陣的OLED顯示屏,其與單片機間通過4線SPI通信連接,本設計將通過串行時鐘 SCLK,串行數據 SDIN、D/C、/CS將單片機與OLED模塊進行連接[7]。
OLED模塊的D1、D0兩個引腳分別與單片機的25、26號引腳P0.4、P0.5相連接,用來構建OLED模塊和單片機之間的數據通信。OLED的D/C管與單片機的27號引腳P0.6相連接用來控制OLED進行顯示。OLED的17號引腳CS芯片選擇引腳與單片機的28號引腳P0.7進行連接,其采用單片機C8051F007對芯片進行片選控制。
由于OLED顯示模塊需要8~15 V直流電壓供電,因此還需要設計一個3.3 V到8~15 V的一個直流-直流(DC-DC)升壓電路,這里將系統電壓3.3 V升高至顯示屏所需電壓8~15 V。所用到的芯片為MT18604,硬件連接為單片機的第32號引腳DAC0與MT18604的SHDN引腳相連。DC-DC升壓電路如圖2所示。

圖2 DC-DC升壓電路原理圖
單片機與上位機PC進行通信時需要用到USB-UART轉接電路,此電路涉及到的芯片為CP2102,CP2102是一種USB轉UART的橋接器[8],集成度很高。CP2102芯片內部包含有振蕩器、USB收發器及其控制器和異步串行數據總線,其串行數據總線帶有全部的調制解調器控制信號。CP2101的UART接口包括數據信號和控制信號,數據信號由TX(發送)和RX(接收)引腳決定,控制信號由DSR、DTR、RTS、RI、CTS、DCD引腳決定。其UART支持的數據格式和波特率是可變的,可以通過對其編程進行控制, CP2102的引腳定義如圖3所示。
UART的數據格式和波特率的設置是通過在PC端編程后再COM口配置期間完成。該電路通過其驅動程序將PC端的USB口模擬成COM口,以達到擴展的效果。在PC端用軟件模擬一個COM口,它通過訪問硬件COM口的方式去訪問帶有CP2102芯片的器件。PC端與CP2102芯片間的數據傳輸是通過USB完成的,通過串口通信(UART)來完成單片機與CP2102芯片間的數據傳輸,構成USB-UATR轉接電路[9]。單片機實現USB-UART轉換電路原理圖,如圖4所示。

圖4 單片機實現USB-UART轉換電路原理圖
根據BD-126各引腳的定義,本設計將此模塊與單片機的連接為:BOOT引腳懸空;VCC接單片機20引腳VDD;GND接單片機21引腳DGND;TX接單片機23引腳P0.2,將BD-126的定位信息傳輸給單片機;RX接單片機22引腳P0.1,將單片機的控制信號送至BD-126;1PPS接單片機24引腳P0.3,來同步單片機與BD-126的時鐘。其接口原理圖如圖5所示。

圖5 BD-126模塊接口電路原理圖
在本設計的主程序設計的主要思路是:單片機通過軟件實現的UART發送指令協議來控制BD-126模塊的工作模式。
① 當BD-126模塊定位完成后,其1PPS引腳會產生定位脈沖,定位前端低電平,定位后有周期為1 s,高電平為100 ms的秒脈沖輸出,將此引腳接單片機外部中斷引腳,從而觸發單片機中斷,完成時鐘的同步。
② 在外部中斷的程序中通過串口通信程序讀取定位信息,并寫入單片機[10]。
③ 寫入單片機的定位信息,將分兩路進行顯示,第一路通過SPI通信協議將定位信息送入OLED顯示屏進行顯示。
④ 第二路通過串口UART通信協議定位,信息送入上位機PC端進行顯示。
根據程序的主要思路設計相應的程序流程圖,如圖6所示。

圖6 主程序流程圖
3.1 北斗/GPS定位信息采集程序設計

圖7 采集程序設計流程圖
定位信息的采集程序能夠完成的是對定位信息的采集,由于單片機RX、TX端口被占用,且單片機只有一個硬件實現的UART數據通信,因此需要采用軟件模擬UART的方式進行數據傳遞。在設計中所采用的是中斷方式模擬軟UART,并且每隔一定的時間更新一次采集。程序流程圖如圖7所示。
3.2 OLED顯示程序設計
單片機將定位信息通過SPI通信協議傳輸給OLED顯示屏,單片機接收到數據后,首先調用碼轉換函數,得到數據在系統的內部編碼; 然后根據編碼獲得該數據點陣數據的參數,再設置該字符要在 OLED 屏上顯示的位置;最后讀出字符點陣數據,然后一行一行地輸出,即可將定位信息顯示在屏幕上。其字符編碼得到系統內部編碼流程圖如圖8所示。其顯示程序流程圖如圖9所示。

圖8 字符編碼得到系統內部編碼流程圖

圖9 OLED顯示程序流程圖
3.3 UART通信接口程序設計
單片機要實現UART通信,首先要進行串口初始化;此程序應用在單片機與上位機PC之間。UART通信流程圖如圖10所示。UART中斷程序流程圖如圖11所示。
3.4 上位機串口通信程序設計
先移植PC端串口程序,增加接收和提取GPS數據的處理程序,修改文件和源程序中的類名,然后添加GPS數據處理代碼[11]:
需要在CGpsProcView類中增加無模態對話框CGpsDataWin的指針變量GpsDataWin,并設置一個布爾變量GpsDataWinOn,此布爾變量默認為TRUE,由此布爾變量控制是否打開GPS數據的顯示窗口,增加相應的菜單和工具欄,能夠打開或關閉GPS數據顯示窗口。
在CGpsProcView類中增加和GPS數據解釋和處理有關的數據類型和常數定義。

圖10 UART通信流程圖

圖11 UART中斷程序流程圖

圖12 UART通信流程圖
添加新函數GpsDataProc(),并在DispData()中增加對該函數的調用以顯示定位數據。
GpsDataProc()通過UART接收單片機傳輸的數據并存儲到GPS緩沖區,然后對數據進行解釋處理。主要處理方法是:先找到語句結束標志' ',然后向前找到“$GP”,再將兩者間的字符串放到到一個線性存儲區,再從該線性存儲區對前部固定長度的數據按固定位置轉換數據,對后面長度變化的數據,按搜索語句分隔符‘,’的方法轉換數據。單片機與上位機PC進行通信的UART通信流程圖如圖12所示。
經調試后,程序運行正常,系統啟動和運行后在OLED端的顯示圖片。
系統運行后在上位機PC端的顯示如圖13所示,上位機定位數據顯示窗口14所示。

圖13 上位機PC端的顯示

圖14 上位機定位數據顯示窗口

[1] 陳吉. 基于GPS的土地面積測繪技術及土地管理信息系統的研究[D].杭州:浙江大學,2013.
[2] 辛德奎. 基于北斗/GPS雙模的田間作業機車工況監測系統[D].大慶:黑龍江八一農墾大學,2015.
[3] 黃攀. 基于GPS/DR緊組合車載導航系統研究及實現[D].哈爾濱:哈爾濱工程大學,2013.
[4] 黃少鋒,張尊泉,鄧斌,等. 基于單片機采集與顯示GPS定位信息系統的設計[J]. 空軍雷達學院學報,2007(1):37-39.
[5] 徐允鶴. 基于GPS和北斗導航技術的靶船遙測系統設計[D]. 哈爾濱:哈爾濱工程大學,2009.
[6] 劉振武. 基于GPS和GPRS的城市公交智能終端系統設計[D]. 哈爾濱:東北林業大學,2014.
[7] 肖文文,胡平平. OLED字符顯示和圖形繪制系統的設計與實現[J]. 北京信息科技大學學報:自然科學版,2011(6):70-75.
[8] 徐璟. 基于USB接口的GPRS無線網卡的研究[D].武漢:武漢科技大學,2007.
[9] 陳賢明,何志偉,張杰,等. USB-UART轉換器CP2102在智能電動機保護器中的應用[J]. 日用電器,2006(3):44-46.
[10] 李靜,程安宇,陳卓.51單片機C語言程序設計[M].北京:人民郵電出版社,2010.
[11] 趙建領,弓雷. 51系列單片機開發寶典[M].北京:電子工業出版社,2012.
Design of Double Module Positioning Information Acquisition and Display System
Wang Shifeng
(School of Automation,Beijing Information Science and Technology University,Beijing 100192,China)
In view of the widespread application of satellite positioning system in production and life,a positioning information acquisition and processing system based on Beidou/GPS dual module is proposed.The C8051F007 MCU is used as the core of acquisition and processing.The Beidou/GPS dual positioning module BD-126 and MCU interface circuit,the OLED display module circuit,the DC-DC boost circuit are designed,and the corresponding software system is designed also.The system collects the data in the OLED display and the host computer PC-side to display.The experiment results show that the system can complete the acquisition of positioning information,and successfully displayes on the OLED display and PC-side.
GPS;location information;UART;C8051F007
TP211
A
迪娜
2016-12-28)