周 曉, 鄭定超, 方玖琳
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310032)
?
基于UM220的北斗接收機(jī)及WEB終端設(shè)計(jì)
周 曉, 鄭定超, 方玖琳
(浙江工業(yè)大學(xué) 信息工程學(xué)院,杭州 310032)
根據(jù)北斗衛(wèi)星導(dǎo)航系統(tǒng)提供的定位服務(wù),設(shè)計(jì)一款便攜式北斗接收機(jī)進(jìn)行定位,同時設(shè)計(jì)WEB終端,接收數(shù)據(jù)并對其進(jìn)行分析處理和展示;北斗接收機(jī)采用UM220北斗模塊進(jìn)行定位,獲取定位數(shù)據(jù)后經(jīng)STM32單片機(jī)處理由GPRS模塊發(fā)送到遠(yuǎn)程服務(wù)器;WEB終端采用Java語言編寫北斗信息管理系統(tǒng),對接收到的數(shù)據(jù)進(jìn)行處理、存儲和展示;此外引入在線地圖API,通過地圖顯示位置信息;經(jīng)測試,北斗接收機(jī)能有效定位并轉(zhuǎn)發(fā)數(shù)據(jù)至服務(wù)器;通過WEB終端能對數(shù)據(jù)進(jìn)行查詢、顯示,有良好的人機(jī)交互體驗(yàn)。
衛(wèi)星導(dǎo)航;通用分組無線服務(wù)技術(shù);信息管理
北斗衛(wèi)星導(dǎo)航系統(tǒng)是我國自主研發(fā)實(shí)施的全球衛(wèi)星導(dǎo)航系統(tǒng),致力于向全球用戶提供高質(zhì)量的定位、導(dǎo)航、授時服務(wù),并向有更高要求的授權(quán)用戶提供進(jìn)一步服務(wù)。隨著系統(tǒng)建設(shè)不斷完善,北斗衛(wèi)星導(dǎo)航系統(tǒng)將擁有巨大的市場前景?,F(xiàn)如今,已經(jīng)發(fā)展進(jìn)入互聯(lián)網(wǎng)時代,物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,越來越多的產(chǎn)品趨向智能化、微型化。Java語言是互聯(lián)網(wǎng)軟件開發(fā)中最流行的計(jì)算機(jī)語言之一。Java是一種跨平臺的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,具有卓越的通用性、高效性、平臺移植性和安全性。本文擬設(shè)計(jì)一款便攜式北斗接收機(jī);同時根據(jù)數(shù)據(jù)通訊協(xié)議,采用Java語言編寫配套的WEB(網(wǎng)絡(luò)/網(wǎng)頁)終端進(jìn)行數(shù)據(jù)處理展示。
整個系統(tǒng)設(shè)計(jì)包括北斗接收機(jī)設(shè)計(jì)和WEB終端設(shè)計(jì)。系統(tǒng)原理示意圖如圖1所示,主要涉及北斗導(dǎo)航衛(wèi)星系統(tǒng)、便攜式移動終端、GSM/GPRS/3G基站、互聯(lián)網(wǎng)服務(wù)器、用戶WEB終端等相關(guān)知識。
圖1 系統(tǒng)原理示意圖
便攜式北斗接收機(jī)設(shè)計(jì)擬采用北斗模塊實(shí)現(xiàn)定位;在獲取經(jīng)緯度、時間、日期等有效信息后,數(shù)據(jù)通過單片機(jī)分析處理,由GPRS模塊轉(zhuǎn)發(fā)至服務(wù)器。
系統(tǒng)后臺使用本地電腦搭建服務(wù)器,利用動態(tài)域名解析軟件花生殼獲取一個公網(wǎng)可以訪問的IP地址。WEB終端使用Java語言編寫,利用優(yōu)秀的SSH框架(Struts2、Hibernate、Spring)搭建北斗信息管理系統(tǒng)。后臺程序在接收數(shù)據(jù)后,對其進(jìn)行分析判斷,把有效的數(shù)據(jù)存入數(shù)據(jù)庫,以供用戶調(diào)用。軟件提供良好的人機(jī)交互,頁面前端引入在線地圖API,可以通過地圖查看詳細(xì)位置信息。此外,軟件提供歷史數(shù)據(jù)查詢、用戶驗(yàn)證登錄等功能。
系統(tǒng)的硬件設(shè)計(jì)部分主要包括北斗接收機(jī)設(shè)計(jì)和服務(wù)器搭建。系統(tǒng)硬件組成框圖如圖2所示,北斗接收機(jī)主要由UM220北斗定位模塊,STM32控制模塊和SIM900A無線模塊組成;服務(wù)器主要使用本地電腦搭建,通過動態(tài)域名解析獲得公網(wǎng)可以訪問的IP地址。
圖2 系統(tǒng)硬件框圖
UM220定位模塊在獲取位置、時間等信息后,經(jīng)過STM32單片機(jī)處理,由SIM900A模塊通過HTTP服務(wù)發(fā)送到遠(yuǎn)程服務(wù)器。
2.1 UM220北斗定位模塊設(shè)計(jì)
UM220是和芯星通公司生產(chǎn)的BDS/GPS雙模定位芯片,內(nèi)置6軸MEMS器件,支持北斗+GPS雙系統(tǒng),可以直接輸出GNSS與MEMS組合定位結(jié)果。芯片無需外接CPU進(jìn)行控制,我們只需對其進(jìn)行外圍電路設(shè)計(jì)即可。圖3是基于UM220芯片設(shè)計(jì)的北斗定位模塊電路圖。模塊通過天線獲取信號后支持TXD、RXD串口輸出,方便信息的處理。
圖3 UM220模塊原理圖
2.2 STM32控制模塊設(shè)計(jì)
STM32單片機(jī)是意法半導(dǎo)體推出的一款性價比很高的單片機(jī),功能強(qiáng)大。它采用高性能“Cortex-M3”內(nèi)核,擁有一流的外設(shè),豐富的I/O口資源;而且功耗低,在72 MHz時消耗36 mA(所有外設(shè)處于工作狀態(tài)),待機(jī)時下降到2 μA,所以十分適合本系統(tǒng)設(shè)計(jì)使用。STM32芯片外設(shè)資源中擁有多個串口資源,系統(tǒng)設(shè)計(jì)中UM220模塊與STM32模塊的連接通過串口1進(jìn)行連接;SIM900A模塊與STM32模塊的連接通過串口2進(jìn)行連接。圖4是STM32控制模塊的電路設(shè)計(jì)原理圖。
圖4 STM32模塊原理圖
2.3 SIM900A無線模塊設(shè)計(jì)
SIM900A是ALIENTEK公司推出的一塊高性能工業(yè)級GSM/GPRS模塊,可以低功耗實(shí)現(xiàn)語言、短信、數(shù)據(jù)等信息的傳輸。SIM900A內(nèi)置了TCP/IP協(xié)議棧,可以由AT命令激活并且通過HTTP服務(wù)可以使設(shè)備方便地連接因特網(wǎng),實(shí)現(xiàn)無線通訊。在UM200模塊接收到定位信息后, STM32單片機(jī)經(jīng)過處理,由SIM900A模塊的HTTP服務(wù),將數(shù)據(jù)發(fā)送到遠(yuǎn)程服務(wù)器上,實(shí)現(xiàn)數(shù)據(jù)的無線傳輸。圖5是SIM900A模塊的原理框圖。
圖5 SIM900A模塊原理框圖
系統(tǒng)的軟件實(shí)現(xiàn)主要包括北斗接收機(jī)的內(nèi)置程序與WEB終端程序。接收機(jī)程序主要進(jìn)行北斗定位數(shù)據(jù)的解析,SIM900A模塊的設(shè)置和數(shù)據(jù)的發(fā)送;WEB終端程序主要進(jìn)行數(shù)據(jù)的接收、判斷、存儲和頁面的展示。
3.1 北斗模塊語句解析
NMEA 0183是美國國家海洋電子協(xié)會(national marine mlectronics association)為海用電子設(shè)備制定的標(biāo)準(zhǔn)格式,目前已經(jīng)成了GPS導(dǎo)航設(shè)備統(tǒng)一的RTCM標(biāo)準(zhǔn)協(xié)議。我國北斗衛(wèi)星導(dǎo)航系統(tǒng)要想在世界上占據(jù)一定的市場,就必須遵循一套能被世界所認(rèn)同的標(biāo)準(zhǔn)。本系統(tǒng)設(shè)計(jì)的北斗模塊的輸出協(xié)議采用北斗推薦定位信息,其語句格式為 BDRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,<11>*hh
表1 北斗推薦定位信息
北斗模塊輸出語句中的時間是UTC時間,與北京時間相差八個小時;經(jīng)緯度數(shù)據(jù)采用的是度分格式,在地圖顯示中需要的數(shù)據(jù)格式是度格式,所以我們對數(shù)據(jù)完成解析后需要進(jìn)行一定格式的轉(zhuǎn)換。語句以“”開頭,以hh
String []data;
if(first=='$'&&last==’*’)
{
data=str.split(","); //字符串分割
//對應(yīng)數(shù)據(jù)格式轉(zhuǎn)換
data[1]= changeTime(data[1]);//時間
data[3]= changeWD(data[3]);//緯度
data[5]=changeJD(data[5]);//經(jīng)度
data[9]= changeDate(data[9]);//日期
}
$BDRMC,015300.000,A,3013.826705,N,12002.193091,E,0.517,49.651,070915,E,A*07語句,通過解析得到的信息就是時間為8點(diǎn)30分,北緯30.13度,東經(jīng)120.02度,日期是2015年9月7號。
3.2 SIM900A模塊設(shè)置
AT(Attention)命令是一種調(diào)制解調(diào)器命令語言,SIM900A模塊就是通過AT指令進(jìn)行通信。大部分GSM/GPRS模塊通過終端設(shè)備(TE)或數(shù)據(jù)終端設(shè)備(DTE)向終端適配器(TA)或數(shù)據(jù)電路終端設(shè)備(DDCE)發(fā)送指令,與GSM 網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互。無線模塊軟件設(shè)計(jì)中主要利用AT命令激活模塊的HTTP服務(wù),然后通過GET方法向服務(wù)器發(fā)送數(shù)據(jù),設(shè)計(jì)中所涉及到主要的AT指令如表2所示。
表2 AT指令表
軟件中的URL是本地服務(wù)器地址通過花生殼軟件映射動態(tài)域名獲得,SIM900A模塊可以通過GPRS服務(wù)訪問到本地服務(wù)器。軟件對SIM900A模塊的設(shè)置通過編寫函數(shù)sim900a_send_cmd(u8 *cmd,u8 *ack,u16 waittime)實(shí)現(xiàn);其中,cmd為發(fā)送的命令字符串,ack為期待的應(yīng)答結(jié)果,wattime為等待時間,函數(shù)如果返回值為0代表成功,1代表失敗。模塊設(shè)置的偽代碼如下:
//初始化服務(wù)
sim900a_send_cmd("AT+HTTPINIT","OK",1000);
//設(shè)置參數(shù)值
sim900a_send_cmd("AT+ HTTPPARA =”http://a649303982.xicp.net/BDS?data=str”","OK",1000);
//激活方式:get
sim900a_send_cmd("AT+HTTPACTION=”0”","OK",1000);
//關(guān)閉服務(wù)
sim900a_send_cmd("HTTPTERM","OK",1000)
3.3 在線地圖顯示
WEB終端為了更好地展示數(shù)據(jù)信息,編寫腳本語言引入在線地圖API,軟件設(shè)計(jì)中使用的是搜狗地圖API。系統(tǒng)采用Ajax技術(shù)使頁面達(dá)到自動刷新功能,提高人機(jī)交互體驗(yàn)。在解析出經(jīng)緯度信息后,通過調(diào)用API提供的方法并傳入?yún)?shù),就能完成地圖的初始化。地圖顯示的部分代碼如下:
//初始化(39.981320,116.320247)
var myLatlng =new
sogou.maps.LatLng(39.981320,116.320247);
//指定中心點(diǎn)
var myOptions =
{zoom: 15,
center: myLatlng,
mapTypeId: sogou.maps.MapTypeId.ROADMAP
}
//加上標(biāo)記
var marker = new sogou.maps.Marker({
position: myLatlng,
map: map,
});
3.4 系統(tǒng)工作模式設(shè)計(jì)
系統(tǒng)設(shè)計(jì)擬分為兩種工作模式,手動模式和自動模式。手動模式下,北斗接收機(jī)通過人工按鍵向服務(wù)器端發(fā)送數(shù)據(jù);自動模式下,北斗接收機(jī)每隔10 s向服務(wù)器端發(fā)送數(shù)據(jù),時間間隔可調(diào)。終端用戶登錄WEB系統(tǒng)可以對歷史數(shù)據(jù)進(jìn)行查詢,可以通過實(shí)時顯示界面觀測最新一組數(shù)據(jù)信息。
經(jīng)過不斷研究改進(jìn),初步完成系統(tǒng)設(shè)計(jì)的大部分功能。同時,通過實(shí)驗(yàn)測試,系統(tǒng)運(yùn)行效果良好。通過歷史數(shù)據(jù)的查詢頁面,用戶可以查詢某段時間內(nèi)的數(shù)據(jù)信息,點(diǎn)擊某條記錄,右側(cè)地圖可以顯示該條記錄所代表的位置。通過實(shí)時數(shù)據(jù)顯示頁面,用戶可以實(shí)時觀測到最新的一組數(shù)據(jù)信息。
此次系統(tǒng)設(shè)計(jì)的便攜式北斗接收機(jī)采用UM220定位模塊和SIM900A無線模塊,在通過北斗系衛(wèi)星導(dǎo)航統(tǒng)定位后由GSM/GPRS無線網(wǎng)絡(luò)與遠(yuǎn)程服務(wù)器連接;同時,根據(jù)通訊協(xié)議解析數(shù)據(jù)后又編寫配套終端系統(tǒng)對數(shù)據(jù)進(jìn)行管理和展示。隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)的不斷建設(shè)、完善,有關(guān)北斗導(dǎo)航的應(yīng)用會越來越廣泛,本系統(tǒng)的相關(guān)研究可以起到一定的參考作用。
[1] 懷 洋,邵瓊玲,路振民.北斗/GPS混合定位模塊UM220應(yīng)用研究[J].國外電子測量技術(shù),2014(3):76-79.
[2] 王明新.基于SIM900A的GSM遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].電腦知識與技術(shù),2014,15:3500-3503.
[3] 霍 濤,賈振堂.基于STM32和SIM900A的無線通信模塊設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2014,17:106-110.
[4] 高 婷.基于北斗定位的海上落水報警裝置設(shè)計(jì)與研究[D].上海:上海海洋大學(xué),2014.
[5] 王明新.基于SIM900A的GSM遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].電腦知識與技術(shù),2014,15:3500-3503.
Design of BeiDou Receiver And WEB Terminal Based on UM220
Zhou Xiao, Zheng Dingchao, Fang Jiulin
(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310032,China)
Being based on location service which provided by BeiDou Navigation Satellite System, designing a portable BeiDou receiver to fix position. And designing the WEB terminal to receive the data from receiver, while analyzing, processing, displaying them. The BeiDou receiver used UM220 module to get the data, then the data was processed by STM32 MCU, finally it was sent to remote server through by GPRS module. The terminal system used Java language to write a information management system. It could process, storage and display the data which from BeiDou receiver. In addition, the system imported the online map API to show the position. According to the test, the BeiDou receiver could position accurately and send the data to server, the WEB system could provide service of query and display the data, which had a good human-computer interaction.
satellite navigation; GPRS; information management
2015-09-27;
2015-11-04。
周 曉(1971-),男,浙江永康人,副教授,博士,主要從事嵌入式應(yīng)用方向的研究。
1671-4598(2016)03-0238-03
10.16526/j.cnki.11-4762/tp.2016.03.065
TP3
A