歡迎您光臨本站 登入註冊首頁

概述

1引言   GPS(全球定位系統)是為海上、陸地和空中各種運輸工具和移動設備的導航和定位而開發的,具有高精度、全天候、全球性和點間無需通視等優點,使測量技術發生了質的飛躍……

1 引言
    GPS (全球定位系統)是為海上、陸地和空中各種運輸工具和移動設備的導航和定位而開發的,具有高精度、全天候、全球性和點間無需通視等優點,使測量技術發生了質的飛躍。GPS技術引入我國后,特別是美國取消SA政策后的這幾年發展十分迅速。目前,GPS已被廣泛應用在工程測量、地理測繪、交通運輸和軍事等諸多領域,取得了明顯的社會和經濟效益,發展前景十分廣闊。
    在GPS的行業應用中,數據接收終端是最基本的設備。目前的數據接收終端具有智能化和可擴展性不斷增強的發展趨勢,表現為內嵌的MCU功能越來越強大,介面越來越豐富。本文介紹一種以目前比較流行的基於ARM7架構的嵌入式處理器S3C44B0X和Motorola的M12模塊的GPS數據接收終端的設計。

2 終端的硬體設計
    終端由S3C44B0X 和M12模塊及一些外圍器件組成,系統的硬體結構如圖1所示。
    S3C44B0X具有2個功能完整的串口(UART),其I/O操作電壓範圍為3.0~3.6 V,M12模塊提供一個用於輸入控制信息和輸出定位與狀態信息串口,其I/O電平符合TTL電平範圍,為0~3 V,因此,可以將S3C44B0X的I/O輸出高電平設置成3 V,把S3C44B0X 和M12的RxD、TxD和GND直接連接,進行非同步串列數據交換。由於S3C44B0X內部存儲空間非常有限,需要外擴存儲器件,這裡擴展了一片FLASH和一片SDRAM 存儲器。此外,鍵盤和顯示器被掛接在S3C44B0X上面,以提供人機交互的功能。
 
圖1 系統硬體結構框圖
2.1 S3C44B0X 與存儲器的介面設計
    S3C44B0X自身不具有ROM,因此必須外接ROM來存儲掉電后仍需要保存的代碼和數據。本系統採用SST39VF160閃速存儲器(FLASH Memory)作為系統的ROM,此器件具有非易使性,可輕易擦寫。該器件容量為1 MB×16,與S3C44B0X介面如圖2所示。
 
圖2 S3C44B0X與SST39VF160介面圖
    由於本終端採用SST39VF160作為程序存儲器(內含處理器的啟動代碼),所以SST39VF160映射在處理器的Bank0區域內。因此,他的片選端與處理器的nGCS0相連。
    為了提高程序運行的速度和效率,系統還擴展了SDRAM 作為程序數據暫存空間。SDRAM器件的型號為IS42S16400,其存儲空間組織方式為1 MB×16×4 Bank,共64 Mb,數據匯流排寬度為16,其與S3C44B0X的介面如圖3所示。
 
圖3 S3C44B0X 與IS42S16400介面圖
2.2 S3C44B0X與LCD的介面設計
    本系統採用了G35_II LCD套件作為顯示器,G35_II的液晶屏尺寸為3.5英寸,解析度為320×240,顏色為16灰度。S3C44B0X內部含有一個LCD驅動控制器,能自動產生LCD 驅動控制所需的控制信號,因此S3C44B0X可以與諸如黑白灰度、STN型彩色等LCD屏直接介面,而不需要另外加LCD控制器。在這種介面方式下,LCD顯示緩衝區映射在系統的存儲器空間上,程序只需將象素點內容寫入存儲器對應地址就可以實現對應LCD屏上象素點顏色的顯示。本終端採用S3C44B0X的PC口和PD口作為LCD驅動介面,使用4位象素灰度模式查找表和8位單掃描方式進行顯示。本終端的顯示器以顯示數據發送接收情況和數據流量信息為主。

3 S3C44B0X與M12模塊的介面程序設計
    接收終端使用S3C44B0X的COM0口向M12模塊發出控制指令和接收定位信息。M12模塊支持Motorola二進位格式和NMEA0183格式兩種的數據輸出模式。在Motorola二進位模式下,M12以9600 b/s的速率輸出數據和接收指令;在NMEA0183,M12以4800 b/s的速率輸出數據和接收指令。默認狀態下,M12模塊工作在Motorola二進位模式下。為了獲取更高的數據傳輸速度,本研究使用M12模塊默認的工作模式,即Motorola二進位模式。在該模式下,串列數據傳輸格式為:8位數據位,1位停止位,無奇偶校驗和硬體流控制。
    S3C44B0X以通過向M12發送AT指令的方式對其進行控制。根據Motorola GPS Products-Oncore User'sGuide所列舉的內容,Motorola的AT I/O指令一共有69條,其中M12模塊所支持的指令有51條。利用這些指令可以很方便的對M12模塊進行日期時問設定、自定義坐標設定和定位信息讀取等操作。在接收終端中,只需要讀取M12模塊的定位信息,因此程序中只用到51條指令中的1條指令:
@@EqmC
    該指令用於控制M12模塊輸出定位信息。其中“@@”是I/O指令的前綴;“Eq”是指令的關鍵字;“m”是M12模塊輸出(響應)信息模式選擇,其數值可以是0~255之間的整數,當“m”為0時,響應信息只輸出一次,當“m”為1時,響應信息每秒鐘輸出一次,當“m”為2時,響應信息每2 s輸出一次,如此類推,當“m”為255時,響應信息每255 s輸出一次;“C”是指令的校驗和(Checksum)數據;“”是回車符;“”是換行符。為了便於採集定位數據,將“m”的數值設置為0,使M12模塊每接收一次指令就回復一次定位數據。
    M12模塊在默認狀態下只能接受以Motorola二進位形式輸入的指令。所謂的Motorola二進位形式是指將指令的前綴、關鍵字和後綴(回車和換行)變換成相應的ASCII碼后,加上模式“m”與校驗和“C”組合成的二進位指令代碼。本研究中所用到的“@@EqmC”指令格式轉換如下:
Message format:@@EqmC
Hexadecimal:40 40 45 71 00 34 0D 0A
    其中,校驗和“C”是指“E”、“q”和“m”三個的校驗和,即0x45、0x71和0x00之間的校驗和(將0x45和0x71按位異或的結果再和0x00進行按位異或),結果為0x34。輸入指令時,只需要按照9600 b/s、8位數據位、1位停止位、無奇偶校驗和硬體流控制的串口格式,將0x40、0x40、0x45、0x71、0x00、0x34、0x0D和0x0A八個數從M12模塊的串口連續輸入進去即可,M12模塊在接收到其可識別的指令之後會在1 s之內做出響應。
    在接收和識別指令“@@EqmC”之後,M12模塊在接收到正常的GPS衛星信號時會以相同的串口數據格式和速率輸出以下格式的定位信息:
@@Eq,mm,dd,YY,hh,mm,ss,dd,mm.mmmm,n,ddd,
mm.mmmm,w,shhhh.h,sss.s,h,m,t,dd.d,nn,rrrr,aa,CC
    該信息是按照ASCII碼的形式輸出的,每段信息均以逗號相隔。根據Motorola GPS Products-Oncore User'sGuide對於該信息的解釋,該信息按照所描述的內容可以拆分成7大部分,其拆分示意格式如下:
@@Eq,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>
    其中,第1部分信息為日期信息。“mm”是指月,數值為01~12;“dd”是指日,數值為01~31;“yy”是指年,數值為98~18。
    第2部分信息是UTC(Universal Coordinated Time)時間信息。其中,“hh”為時,數值為00~23;“mh”為分,數值為00~59;“s”是秒,數值為00~60。
    第3部分信息是緯度信息。其中,“dd”是度,數值為00~90;“mm.mmmm”是分,數值為00.0000~59.9999;n為方向,他有兩個取值,一是“N”,代表北緯,二是“S”代表南緯。
    第4部分信息是經度信息。其中,“ddd”是度,數值為000~180;“mm.mmmm”是分,數值為00.0000~59.9999;w為方向,他有兩個取值,一是“w”,代表西經,二是“E”代表東經。
    第5部分信息是海拔高度。其中,“s”是符號,有“+”和“-”兩個取值;“hhhh.h”是以米為單位的高度數據。海拔高度信息的數值範圍為:-1000.0~+18000.0。
    第6部分信息是速度信息。其中“sss.s”是以節為單位的速度數據,其數值為000.0~999.9;“hhh.h”為以度為單位前進方位角數據,其數值為000.0~359.9。
    第7部分是接收終端的狀態信息。其中,“m”是定位工作模式信息,取值為0或1,0代表單機模式(Autonomous),1代表差分模式(Differentia1);“t”是定位類型信息,取值為0~3,0代表無定位,1代表2D定位,2代表3D定位,3代表廣播模式;“dd.d”是幾何因子信息,取值為00.0~99.9;“nn”使用中的衛星數目,數值為00~37;“rrrr”為參考站識別碼,數值為0000~1023;“aa”以秒為單位的差分數據時間,數值為00~60;“CC”為校驗和。
    GPS接收終端只需要M12模塊提供經緯度位置,所以需要通過程序提取上述的7大部分信息中第3和第4部分信息。S3C44B0X與M12模塊介面的COM0初始化代碼如下:
UFCON0=0x0;
UMCON0=0x0;
ULCON0=0x3;
UCON0= 0x245;
UBRDIV0= ((int)(Fclk/(16 * 9600))-1);
    S3C44B0X與M12的介面程序流程如圖4所示。S3C44B0X首先請求M12模塊輸出定位數據(向M12模塊發出指令“@@EqmC”),然後等待M12模塊回送數據。當M12模塊回送數據時,S3C44B0X首先做出判斷,確認其收到的是預期的定位信息,然後將定位信息(經緯度數據)截取下來,整理成可供顯示數據信息后在LCD上顯示經緯度數據,最後將串口的接收緩衝區清空,以免下次接收信息時出錯。由於M12模塊在1 s之內只能響應一條指令,所以接收終端的數據信息最快1 s更新一次。
 
圖4 S3C44B0X與M12的介面程序流程圖

4 結語
    本文講述了一個基於S3C44B0X和M12模塊的GPS數據接收終端的設計。通過在華南農業大學工程學院土槽實驗室的GPS基準點(坐標為:東經113°20.538 541',北緯23°09.581 834')的靜態定位實驗測定(持續進行了約50 min,採集到3125組經緯度數據,靜態定位數據分佈如圖5所示),M12模塊的單擊靜態定位精度為<7.81m,符合其用戶手冊上所標的無SA政策下<25m的精度範圍。接收終端運行穩定,定位信息每1 s更新一次,可作為對精度要求不高的民用地理定位。
 
圖5 系統靜態定位值散布圖


[admin via 研發互助社區 ] 基於S3C44B0X和M12模塊的GPS接收終端已經有2735次圍觀

http://cocdig.com/docs/show-post-42057.html