北斗二代導航接收機的衛(wèi)星導航系統(tǒng)設計
2.2 無線數(shù)據(jù)傳輸模塊
華為GTM900-C是一款兩頻段GSM/GPRS無線模塊。它支持標準的AT命令及增強AT命令,提供豐富的語音和數(shù)據(jù)業(yè)務等功能,是高速數(shù)據(jù)傳輸?shù)雀鞣N應用的理想解決方案。S3C2440作為一種32位高性能、低成本、低功耗的嵌入式RISC微處理器,廣泛應用于通信系統(tǒng)、消費類電子產(chǎn)品、工業(yè)控制等產(chǎn)品中。S3C2440通過RS232控制GTM900-C,對于那些需要將遠程數(shù)據(jù)通過已有的GSM網(wǎng)絡發(fā)送到網(wǎng)路中去,實現(xiàn)網(wǎng)絡化功能。GTM-900C邏輯框圖如圖3所示。本文引用地址:http://m.butianyuan.cn/article/201610/306068.htm
3 系統(tǒng)的軟件實現(xiàn)
3.1 系統(tǒng)的軟件平臺
嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的重要組成部分,它為應用程序的開發(fā)提供了一個軟件平臺。實現(xiàn)嵌入式系統(tǒng)的第一步就是進行系統(tǒng)移植,其中包括操作系統(tǒng)內(nèi)核、文件系統(tǒng)和各設備驅(qū)動程序的移植。
本系統(tǒng)中采用Linux-2.6.30.4內(nèi)核,只需要對各功能模塊進行裁剪即可。嵌入式系統(tǒng)一般采用Flash作為存儲介質(zhì),F(xiàn)lash具有獨特的物理特性,必須使用專門的嵌入式文件系統(tǒng),本系統(tǒng)采用yaffs2文件系統(tǒng)。圖4是系統(tǒng)總體框圖。
3.2 軟件體系結(jié)構(gòu)
在本系統(tǒng)中,需要解算北斗數(shù)據(jù)、數(shù)據(jù)存儲、傳送等。整個系統(tǒng)的軟件由主控模塊、北斗定位模塊、GPRS通信模塊、LCD顯示模塊和串口操作模塊5部分組成,如圖5所示。
主控模塊完成硬件的初始化、調(diào)用北斗定位模塊和GPRS通信模塊提供的函數(shù)、調(diào)用LCD顯示模塊以顯示運行狀態(tài)信息。
3.3 北斗定位模塊程序設計
UM220模塊輸出的定位信息符合NMEA-0183通信標準格式,其輸出數(shù)據(jù)采用的是ASCII字符組成的字符串,包含了經(jīng)度、緯度、速度、時間、日期及衛(wèi)星狀況等信息。消息的基本格式為:
$MSGNAME,datal,data2,data3,…\r\n
NMEA—0183協(xié)議中最常見的幾種格式有GGA、RMC、GSV、VTG。用戶可根據(jù)需要選用某種數(shù)據(jù)句型。本系統(tǒng)將采用BDRMC數(shù)據(jù)格式。
北斗定位模塊程序的設計首先判斷所收到的數(shù)據(jù)是否為RMC記錄,如果是則對BDRMC字段進行解析并保存數(shù)據(jù),即只接收該語句即可。
$BDRMC數(shù)據(jù)格式如下所示:
$BDRMC,1>,2>,3>,4>,5>,6>,7>,8>,9>,10>,11>,12>*13>CR>LF>
其中1>~12>字段分別表示固定位置的UTC時間、是否有效、緯度、緯度半球、經(jīng)度、經(jīng)度半球、地面速度、地面方位、固定位置UTC日期、磁偏角、磁偏角方向、模式指示。
接收數(shù)據(jù)前,要先對串口進行配置,Linux下串口的配置信息大部分都保存在termios結(jié)構(gòu)體中,可以直接使用Linux API提供的接口或通過掩碼設置相關數(shù)據(jù)位進行串口的配置操作,具體操作在這里不再一一贅述。
開始接收數(shù)據(jù)時,若從串口讀入的不是“$”,則說明接收錯誤,重新接收數(shù)據(jù);若等于“$”,則接收正確。開始接收,再次判斷緩存,若接收的是“$BDRMC”語句,則開始將北斗數(shù)據(jù)存入Beidou_data[]數(shù)組中,最后仍判斷串口接收緩存。接收到“A”說明此次定位是有效的,若接收到“N”則釋放緩存,重新接收。由于北斗定位數(shù)據(jù)以“*”為分隔符,接收到字符“*”,即當緩存等于“*”的時候,說明北斗定位信息接收完畢。其程序流程圖如圖6所示。
3.4 GPRS/GSM模塊設計
GPRS/GSM模塊負責接收遠程信息并且傳送定位信息。對短消息的控制共有3種實現(xiàn)途徑:Block Mode、基于AT命令的Text Mode和基于AT命令的PDU Mode。使用Block Mode需要廠家提供的驅(qū)動支持。Text Mode比較簡單,但這種模式只能發(fā)送ASCII碼,不能發(fā)送中文的Unicode碼。PDU模式是發(fā)送接收短信息的一種方法,短信息正文經(jīng)過十六進制編碼后被傳送。目前PDU已取代Block Mode,因此本文主要討論PDU模式。
在PDU模式中,有三種編碼方式來對發(fā)送的內(nèi)容進行編碼,它們是7位、8位和UCS2編碼。7位編碼用于發(fā)送普通的ASCII字符,8位用于發(fā)送數(shù)據(jù)信息,UCS2編碼用來發(fā)送Unicode字符。所以當發(fā)送含有中文的信息時,只能使用Unicode編碼。GPRS/GSM模塊程序設計流程圖如圖7所示。
4 測試結(jié)果
系統(tǒng)各模塊正確連接后,LCD能夠正確顯示定位信息,圖8為北斗模塊輸出的ASCII信息。圖9為LCD顯示的經(jīng)緯度信息。
結(jié)語
衛(wèi)星導航定位系統(tǒng)被廣泛應用于國防、通信等各領域。本系統(tǒng)將嵌入式技術、衛(wèi)星導航系統(tǒng)、GPRS無線通信技術相結(jié)合,成功實現(xiàn)了北斗定位與GPRS通信為一體的嵌入式定位設備。在項目設計中,以嵌入式系統(tǒng)開發(fā)流程為依據(jù),通過進行需求分析,制定了合理的系統(tǒng)軟硬件功能劃分,分析了軟件系統(tǒng)和硬件系統(tǒng)設計,完成了設備的研制。
評論