湖州師范學院信息工程學院 潘泉 成新民
設(shè)計一個基于單片機的經(jīng)緯度定位顯示系統(tǒng),系統(tǒng)通過單片機串行數(shù)據(jù)通信實現(xiàn)GPS 定位信息的接收及信息的顯示。本文詳細介紹了系統(tǒng)的硬件設(shè)計和系統(tǒng)軟件設(shè)計的方法。通過測試,系統(tǒng)工作性能較為穩(wěn)定,抗干擾能力強,功耗低,定位精度較精準,在測控定位領(lǐng)域的應(yīng)用開發(fā)中具有一定的應(yīng)用價值。
GPS(Global Positioning System,全球定位系統(tǒng))是一個以接收導(dǎo)航衛(wèi)星信號為基礎(chǔ)的無線電空間定位系統(tǒng),它可以利用衛(wèi)星采集到觀測點的經(jīng)緯度、高度和時間定位信息,地球表面和上方任何地點可以無源方式同時接收用于定位系統(tǒng)。GPS 在民用領(lǐng)域中發(fā)現(xiàn)其在定位、導(dǎo)航和計時等方面的價值,現(xiàn)廣泛運用于運輸、公共資源管理、精確測繪、公共安全等領(lǐng)域[1]。目前GPS 的外觀類型設(shè)計已逐漸向便攜化發(fā)展,因此本項目針對相關(guān)特種設(shè)備,采用高精度的GPS、MCU 處理器采集設(shè)備的地理信息,計算顯示出實時的所配備裝置的經(jīng)緯度信息,該系統(tǒng)可以有效地應(yīng)用于特定車輛設(shè)備的定位。
所設(shè)計的系統(tǒng)以51 單片機為核心,由GPS 模塊NEO-6M 通過天線獲取當前地理位置信息、時間日期等數(shù)據(jù),經(jīng)串行口輸入到51 單片機,經(jīng)51 單片機處理后,換算成經(jīng)緯度數(shù)據(jù)再傳至液晶顯示屏,由LCD12864 液晶顯示屏顯示出GPS 模塊所獲取的地理位置信息。系統(tǒng)設(shè)計了USB 輸出接口,可用于定位位置數(shù)據(jù)的導(dǎo)出,同時數(shù)據(jù)可以實時上傳云服務(wù)器以供上位機使用,系統(tǒng)能夠顯示與云服務(wù)器連接的指示提醒。硬件結(jié)構(gòu)框圖如圖1所示。
圖1 硬件結(jié)構(gòu)框圖Fig.1 Hardware structure block diagram
主控電路采用89C51 單片機為主控芯片,89C51 單片機是一種低功耗、高性能的CMOS8 位微控制器。在本系統(tǒng)設(shè)計的控制任務(wù)單片機主要需要用于數(shù)據(jù)接收控制和顯示控制。主控電路如圖2所示。
圖2 主控電路圖Fig.2 Main control circuit diagram
在數(shù)據(jù)接收控制中51 單片機內(nèi)部將集成串行口通信電路,此電路可以接收其他模塊傳送進來的數(shù)據(jù)信息,并將接收到的數(shù)據(jù)信息存儲至數(shù)據(jù)緩沖區(qū)中等待處理。
顯示控制將利用89C51 單片機的I/O 端口控制LCD 12864 液晶顯示器顯示相應(yīng)信息,顯示之前會先從數(shù)據(jù)緩沖區(qū)取出數(shù)據(jù)信息進行處理,然后送到LCD12864 液晶顯示器中進行所顯示需要的信息。
顯示模塊采用12864 中文圖形點陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192 個中文漢字(16×16 點陣)、128 個字符(8×16 點陣)及64×256 點陣顯示RAM(GDRAM)[2]。顯示模組背部自帶10K3×3 硬封可調(diào)電位器,可以調(diào)到顯示理想對比度;LED 背光極性可調(diào),JP4 為液晶背光正負反接處,此模組背光為4 顆LED 燈,非普通背光;模組自帶防靜電電容,抗干擾性更強。
其中12864 的3 腳為背光調(diào)節(jié)的引腳,當3 腳的電壓不同時,背光的亮度就不同,因此設(shè)計了一個電路來調(diào)節(jié)3 腳的電壓,就是利用一個滑動變阻器,一個腳接電源電壓,一個腳接地,調(diào)節(jié)滑動變阻器就可以改變中間引腳的電壓,我們只需將中間引腳和12864 的3 腳相連接即可。液晶顯示電路如圖3所示。
圖3 液晶顯示電路Fig.3 Liquid crystal display circuit
定位模塊選用UBLOX-6MGPS 模塊。該模塊具有高靈敏度、低功耗、便捷化等特點,適用于車載、手持設(shè)備,如車輛監(jiān)控、手機、攝像機及其他移動定位系統(tǒng)的應(yīng)用[3]。
系統(tǒng)中的定位模塊與單片機連接,由于定位模塊波特率的原因,使用11.0952 晶振,可以使單片機順利地解析出數(shù)據(jù)包進行計算。GPS 通過接收衛(wèi)星信號,可以準確地定出其所在的位置,位置誤差小于10m。同時GPS 還可以接收衛(wèi)星發(fā)下來的時間信息,利用單片機控制12864 顯示出當前時間,用戶可以很方便地了解時間。所設(shè)計的電路如圖4所示。
圖4 定位模塊電路圖Fig.4 Circuit diagram of positioning module
本系統(tǒng)的所有程序均采用C 語言編寫,程序定義了多個子程序來分別管理各個模塊,通過對各個子程序的操作,來構(gòu)建整個程序框架。各個子程序即可單獨提取出作為獨立的一個郵寄代碼,大大增加了項目的獨立性、靈活性。
系統(tǒng)開機后,液晶顯示屏和單片機進行初始化,然后開始接收從GPS 模塊傳遞過來的地理數(shù)據(jù)信息,并在此進行一次判斷處理,判斷接收到的數(shù)據(jù)是否真實卻有效,如果有效則開始接收該信息中的內(nèi)容,并送至語句標識區(qū)進行篩選,提取其中以“$GPRMC”開頭的語句[4];若沒有接收到數(shù)據(jù)則繼續(xù)等待。系統(tǒng)接收完數(shù)據(jù)后,通過51 單片機設(shè)定好的程序自動進行數(shù)據(jù)格式轉(zhuǎn)換處理。然后對液晶顯示屏進行清屏處理,并且將轉(zhuǎn)化格式后的數(shù)據(jù)傳到液晶顯示屏中并顯示該一系列信息。同時單片機通過每秒刷新一次RAM 頻率,從而可使得LCD12864 液晶顯示器實時地顯示當前GPS 地理信息和時間日期信息。系統(tǒng)主程序流程圖如圖5所示。
圖5 主程序流程圖Fig.5 Main program flow chart
系統(tǒng)開機并初始化結(jié)束后,開始接收地理數(shù)據(jù)信息,如果數(shù)據(jù)無效,則繼續(xù)接收,如果有效則開始轉(zhuǎn)換日期和時間成字符串形式進行顯示,對接收到的經(jīng)緯度數(shù)據(jù)信息,先判斷經(jīng)緯度方向,北緯還是南緯,東經(jīng)還是西經(jīng),并用“E、S、W、N”字母進行表示,開始分析計算經(jīng)緯度數(shù)據(jù),只有正常顯示緯度,才可以接下來顯示緯分,同理只有顯示出緯分,才可以緯秒,否則其中一塊數(shù)據(jù)出現(xiàn)錯誤會導(dǎo)致所有顯示數(shù)據(jù)的錯亂。最后設(shè)置所需顯示的整數(shù)部分和小數(shù)部分以及小數(shù)點的位置。顯示子程序流程圖如圖6所示。
圖6 顯示子程序流程圖Fig.6 Display subroutine flow chart
在定位子程序中,需要對接收到的有效信息進行提取、判斷和計算等處理,從而篩選出系統(tǒng)所需要的數(shù)據(jù)信息并將其轉(zhuǎn)換成相應(yīng)格式輸出。在該子程序中需要先判斷接收到的數(shù)據(jù)格式是否為“$GPRMC”,如果不是則返回繼續(xù)接收,如果數(shù)據(jù)正確則開始分離經(jīng)緯度、時間、日期并進行格式轉(zhuǎn)換,對數(shù)據(jù)進行分析計算同時轉(zhuǎn)化成ASCII 碼從而進行顯示。其中系統(tǒng)的解碼是單片機接收到以“$GPRMC”開頭格式的信息,然后篩選掉其他無效信息,提取出其中的經(jīng)緯度、時間、日期定位狀態(tài)等信息,具體實現(xiàn)則是在程序中設(shè)置一個標識數(shù),當標識數(shù)為1 時提取出的則是時間的定位信息并將其保存起來,當標識數(shù)為2 時提取出的則是定位狀態(tài)的信息,從而以此類推就可以將GPS 的數(shù)據(jù)解碼并將其全部存取下來。這樣的數(shù)據(jù)接收方式可以節(jié)約不少RAM,而且在數(shù)據(jù)接收之前只需要進行簡單地判斷數(shù)據(jù)格式即可,由此可以節(jié)省很多計算時間,讓給其他進程工作,從而大大減少了開發(fā)的時間成本以及定位電路的計算復(fù)雜程度。定位子程序流程圖如圖7所示。
圖7 定位子程序流程圖Fig.7 Positioning subroutine flow chart
該系統(tǒng)設(shè)計制作完成后,可實時定位跟蹤各種移動設(shè)備,當移動設(shè)備行動路線超過事先所規(guī)定的范圍時,可以通過后臺及時觀察并進行提醒或采取其他特殊措施進行制止;同時用戶自己持有該系統(tǒng)時,可以實時通過讀取12864 所顯示內(nèi)容,了解自己的位置以及當前時間。且本設(shè)備電路簡單、性能穩(wěn)定、可靠性高、硬件成本低、運算速度快、易于擴展。因此在一些特種設(shè)備中配備此裝置尤為必要,對于特種車輛的智慧監(jiān)管具有重要的現(xiàn)實意義,在測控領(lǐng)域的應(yīng)用開發(fā)中具有一定的實用價值。