GPS智能終端是智能交通系統(tǒng)(ITS系統(tǒng))的重要組成部分,它將衛(wèi)星定位技術(GPS)、地理信息系統(tǒng)(GIS)以及無線通信技術融于一身。目前,衛(wèi)星定位終端通常由8位/16位單片機、GSM/GPRS通信模塊、GPS模塊、LCD液晶顯示器等組成,并且采用液晶部分與主控芯片組分離在兩個外殼里的分體式結構。這里介紹一種基于ARM920處理器和嵌入式Linux操作系統(tǒng),將GPS技術與CDMA網(wǎng)絡相結合的嵌入式智能終端并設計。該終端具有將GPS終端的動態(tài)位置、時間、狀態(tài)等信息實時地通過CDMA無線網(wǎng)絡鏈接到控制中心,在具有地理信息處理和查詢功能的電子地圖上進行顯示,并對終端的準確位置、速度、運動方向、終端狀態(tài)等基本信息進行監(jiān)控和查詢;報警(包括主動報警和自動報警);顯示調度信息;外接設備數(shù)據(jù)采集、本地溫度采集及遠程監(jiān)控等功能。
1 GPS智能監(jiān)控系統(tǒng)總體設計方案
GPS智能終端與監(jiān)控中心的通信方式是影響整個ITS系統(tǒng)功能的重要因素。為了解決目前終端采用GSM,GPRS網(wǎng)絡進行數(shù)據(jù)傳輸不足的問題,設計中采用CDMA 1X網(wǎng)絡,其理論傳輸速率可達300 Kb/s,數(shù)據(jù)傳輸速率高,永遠在線,基于IP協(xié)議可以訪問整個Internet;按流量收費,價格合理;具有良好的可擴展性,覆蓋室內絕大部分地區(qū)及距海岸線120 km內的海域,基本不存在盲區(qū)。通信速度遠高于GPRS網(wǎng)絡,更加適合于大數(shù)據(jù)量、實時傳輸監(jiān)控,而且易于平滑過渡到3G移動通信系統(tǒng)。GPS智能監(jiān)控系統(tǒng)由GPS智能終端、CDMA網(wǎng)絡、Internet網(wǎng)、監(jiān)控中心組成,如圖1所示。
2 GPS智能終端的硬件設計
2.1 平臺介紹
采用ARM處理器和嵌入式技術設計的移動終端,相對于以8位/16位單片機作為中央處理器的終端而言,無論是功能上,還是人機界面都有顯著提高,是微處理器技術的重要發(fā)展。這里選用Atmel公司的AT91RM9200處理器為主控制器。該內核屬于專門用于工業(yè)控制的ARM芯片,有較寬的工作溫度以及其他較好的工業(yè)參數(shù),同時集成了豐富的系統(tǒng)應用外設及標準接口;在180 MHz主頻下高達200 MIPS處理速度;外部總線接口EBI。;兩個USB 2.0主機口和一個USB 2.O設備口;一個10/100 Mb/s Ethernet通信接口;4個同步/異步串口;多種串行數(shù)據(jù)通路;支持I2C,I2S等。其豐富的外部設備和數(shù)據(jù)傳輸特性是選擇它作為主控制器的主要原因。
2.2 硬件設計
GPS智能終端的硬件系統(tǒng)構成如圖2所示。
2.2.1 ARM主控模塊
AT91RM9200的串口UART2和UART3分別與CDMA模塊、GPS模塊通信,在實際通信時兩路連接都加有LVTTL電平到RS 232電平的轉換電路。AT91RM9200接收GPS模塊從串口3發(fā)出的位置信息,解析出其中有用數(shù)據(jù)進行封裝,然后以規(guī)定格式通過串口2交給CDMA模塊,通過CDMA網(wǎng)絡接入Internet網(wǎng)最終送至ITS監(jiān)控中心;接收并解析ITS控制中心發(fā)來的短消息命令,按命令進行上傳定位等操作;把系統(tǒng)運行狀態(tài)及ITS控制中心發(fā)來的信息在液晶屏上顯示出來。
2.2.2 CDMA通信模塊
CDMA模塊是整個系統(tǒng)的通信基礎,設計中采用Fidelix公司的CDMA通信模塊FD810。該模塊內嵌的高通Qualcomm MSM6025芯片,除支持基本的通話和SMS短消息外,還支持CDMA20001x無線數(shù)據(jù)傳輸。高速上下行速率與大緩存,數(shù)據(jù)傳輸速率高達153.6 Kb/s,可通過AT命令遠程控制內置TCP/IP協(xié)議堆棧。DTGS-800與AT91RM9200通過串口UART2實現(xiàn)數(shù)據(jù)的收發(fā)和AT指令的操作。
2.2.3 GPS模塊
GPS接收模塊選用芬蘭Fastrax公司的iTrax100。該模塊支持NMEA0183和Sony ASCⅡ協(xié)議的數(shù)據(jù)格式。GPS模塊通過串口3將數(shù)據(jù)以固定的幀格式發(fā)送至AT91RM9200。GPS模塊需要配備專門的GPS天線接收GPS衛(wèi)星信號。一般在比較開闊的地區(qū),需接收到3顆以上的GPS衛(wèi)星信號才能進行準確定位。
2.2.4 存儲器系統(tǒng)
存儲器系統(tǒng)采用4 MB NOR FLASH,64 MBNAND FLASH和32 MB SDRAM。NOR FLASH通過16位數(shù)據(jù)總線與CPU交換數(shù)據(jù),用來存儲Uboot,Linux內核、文件系統(tǒng);NAND FLASH存儲應用程序,作為系統(tǒng)的數(shù)據(jù)存儲器,如加載電子海圖等。為充分發(fā)揮32位ARM處理器的數(shù)據(jù)處理能力,選用2片16位的HY57V281620HG并聯(lián),以構建32位SDRAM與ARM交換數(shù)據(jù)。SDRAM在系統(tǒng)中主要用作程序的運行空間、數(shù)據(jù)及堆棧區(qū)。
首先,通過JTAG口將Uboot、Linux內核、文件系統(tǒng)燒寫到NOR FLASH,將應用程序燒寫到NANDFLASH。在系統(tǒng)啟動時,CPU首先從復位地址0x0處讀取啟動代碼,并將存有引導程序Uboot的NORFLASH存儲器配置到:Bank0,即AT91RM9200的NCS0引腳接至NOR FLASH芯片AT49BV322AD的CE端,這樣就可以從NOR FLASH啟動嵌入式Linux操作系統(tǒng)。
3 GPS智能終端的軟件設計
嵌入式Linux系統(tǒng)只需引導程序、Linux微內核、初始化進程3個基本元素,移植嵌入式Linux,就是使實時內核能在其他處理器(CPU)或微控制器(MCU)上運行。將嵌入式Linux移植到AT91RM9200平臺上,一般需要4個步驟:下載源碼和建立交叉編譯環(huán)境,配置編譯內核,制作文件系統(tǒng),下載和調試內核。
3.1 應用程序設計
應用程序包括Uboot啟動代碼、串口設備驅動程序、CDMA網(wǎng)絡數(shù)據(jù)傳輸程序、GPS串口通信程序等。
(1)系統(tǒng)加電后復位;
(2)Uboot初始化CPU,SDRMA,分配地址空間等;
(3)Uboot把Linux內核的壓縮文件解壓到SDRAM中,同時Uboot把控制權移交到Linux。
Linux的內核有在FLASH存儲器上直接運行和加載到內存中運行2種工作方式。這里采用的FLASH存儲器運行方式相對較復雜,但運行速度更快;
(4)開始執(zhí)行SDRMA中的代碼,Linux內核初始化,完成堆棧和中斷的分配等;
(5)加載串口驅動模塊,完成串口的初始化;
(6)運行CDMA網(wǎng)絡數(shù)據(jù)傳輸程序,通過CDMA網(wǎng)絡與Internet進行連接;
(7)運行GPS串口通信程序,通過串口將GPS數(shù)據(jù)送至AT91RM9200。
至此,已建立了從GPS數(shù)據(jù)采集到數(shù)據(jù)傳輸?shù)耐暾那度胧奖O(jiān)控系統(tǒng)。
3.2 無線接入網(wǎng)絡程序
終端由CDMA網(wǎng)絡接入Internet后,通過互聯(lián)網(wǎng)進行數(shù)據(jù)傳輸。系統(tǒng)上電和載入Linux后,首先初始化CDMA模塊,進行端口設置和波特率設置(115 200 b/s);然后進入撥號等待狀態(tài)。由于該終端在功能上映射為無線Modem,所以登陸網(wǎng)絡需進行PPP撥號連接,接入號為#777,用戶名和密碼均為CARD。啟動程序后,確認是否撥號成功,若成功撥號,則調用GPS串口通信程序和網(wǎng)絡數(shù)據(jù)傳輸程序;最后使用Internet結束后,關閉無線連接。
3.3 CDMA網(wǎng)絡數(shù)據(jù)傳輸程序
在Linux操作系統(tǒng)下,監(jiān)控終端通過CDMA網(wǎng)絡與Internet連接,將數(shù)據(jù)上傳到監(jiān)控中心。套接字Socket是許多操作系統(tǒng)網(wǎng)絡編程的通用API,是介于網(wǎng)絡應用層和傳輸層之間的編程接口。套接字提供了訪問下層通信協(xié)議的大量系統(tǒng)調用和相應數(shù)據(jù)結構,進程在Linux上的網(wǎng)絡通信過程就是使用套接字傳輸數(shù)據(jù)的過程。,文中介紹的Socket通信采用面向連接的TCP協(xié)議。
客戶端和服務器端的TCP應用程序流程如圖3所示??蛻魴C部分先由Socket()創(chuàng)建本地套接口,給服務器端套接口地址結構賦值;用Connect()函數(shù)使本地套接口向服務器端套接口發(fā)出建立連接請求,經(jīng)3次握手建立TCP連接;若連接建立成功,則用Send()和Recv()函數(shù)與服務器通信;通信結束,用Close()關閉套接口。
服務器部分由Socket()創(chuàng)建套接口,并給套接口地址結構賦值;調Bind()函數(shù)綁定套接口、用Listen()函數(shù)在該套接口上監(jiān)聽請求;當Accept()函數(shù)接受請求,產(chǎn)生新的套接口及描述字,并與客戶端連接;在用Fork()函數(shù)派生新的子進程與客戶端通信,主進程繼續(xù)處理其他請求。
3.4 GPS串口通信程序
GPS串口通信程序是對采集到的GPS數(shù)據(jù)和車輛狀態(tài)數(shù)據(jù)進行解析;對時間、經(jīng)度、緯度、速度及超速報警等數(shù)據(jù)解析,并以固定格式通過串口3傳送到AT91RM9200。GPS模塊的工作流程如圖4所示。
GPS接收數(shù)據(jù)采用NMEA0183格式,串行通信參數(shù)為8位數(shù)據(jù)位,無奇偶校驗;1位停止位,無數(shù)據(jù)流控制。波特率設為115 200 b/s。判斷幀起始是否為$G-PGGA,如果是,按位讀取GPS數(shù)據(jù),
在Linux下,所有的硬件設備都被看成是普通文件,可以通過與普通文件相同的標準系統(tǒng)調用完成打開、關閉、讀取和寫入設備等操作。系統(tǒng)中每一個設備都用一種特殊的設備相關文件表示,存放在/dev目錄下。在Linux中,對每一個設備的描述是通過主設備號和次設備號來惟一確定的。由同一個設備驅動控制的所有設備具有相同的主設備號,主設備號描述控制這個設備的驅動程序,即驅動程序與主設備號是一一對應的(O~255);次設備號用來區(qū)分同一個驅動程序控制的不同設備。
4 實驗與結果
運行嵌入式目標板的客戶端程序采集GPS數(shù)據(jù)并發(fā)送,在上位機上運行服務器端就能接收到GPS數(shù)據(jù)。如圖5所示為GPS數(shù)據(jù)采集、接收的調試界面的數(shù)據(jù),比較監(jiān)控中心服務器接收到的GPS數(shù)據(jù)與終端采集到GPS數(shù)據(jù)相一致,實現(xiàn)了終端與監(jiān)控中心無線、實時數(shù)據(jù)傳輸。本終端運行穩(wěn)定、系統(tǒng)響應時間小于等于3 s,網(wǎng)絡良好情況下數(shù)據(jù)傳輸速率達115 200 b/s。
5 結 語
利用嵌入式Linux操作系統(tǒng)開發(fā)平臺提供的系統(tǒng)功能,可以簡化多任務程序設計,降低開發(fā)難度,輕松地完成前后臺編程方法難以完成的任務。由于CDMA數(shù)據(jù)傳輸有著永遠在線、費用低廉,并且能夠切換到SMS方式,保證數(shù)傳萬無一失的諸多優(yōu)點,而且隨著移動通信網(wǎng)絡的發(fā)展,該GPS智能終端更易平滑過渡到3G移動通信系統(tǒng)。因此將會有更廣闊的應用前景。
評論
查看更多