蘇麗華,趙可萍,崔 玥
摘 要:基于ARM處理器和嵌入式Linux 操作系統(tǒng)的特點(diǎn),利用CDMA網(wǎng)絡(luò)在數(shù)據(jù)傳輸中的優(yōu)點(diǎn)和GPS智能監(jiān)控系統(tǒng)結(jié)構(gòu),實(shí)現(xiàn)在32位RISC處理器AT91RM9200和嵌入式Linux操作系統(tǒng)平臺(tái)下將GPS技術(shù)與CDMA網(wǎng)絡(luò)相結(jié)合的嵌入式智能終端設(shè)計(jì)。系統(tǒng)功能簡化了多任務(wù)程序設(shè)計(jì),降低了開發(fā)難度。數(shù)據(jù)傳輸有著永遠(yuǎn)在線、費(fèi)用低廉的優(yōu)點(diǎn),同時(shí)確保數(shù)據(jù)傳輸萬無一失。隨著移動(dòng)通信網(wǎng)絡(luò)的發(fā)展, GPS智能終端在3G移動(dòng)通信系統(tǒng)中有著廣闊的應(yīng)用前景。
關(guān)鍵詞:嵌入式Linux;AT91RM9200;CDMA;智能終端
中圖分類號(hào):TP273;TP316.8 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004-373X(2009)12-025-03
Design of GPS Intelligent Terminal Based on Embedded ARM-Linux
SU Lihua,ZHAO Keping,CUI Yue
(School of Information and Communication Engineering,Tianjin Polytechnic University,Tianjin,300160,China)
Abstract: Based on the features of ARM processor and embedded Linux operating system,implementing the design of GPS intelligent terminal based on CDMA under 32bit RISC processor AT91RM9200 and embedded Linux operating system with the advantages of CDMA communication technology in data transmission and the components of GPS intelligent monitoring system to predigest the program of multitask and reduce the exploitation difficulty.Data transmission has the merits of online,low cost and safe.GPS intelligent terminal has wide application along with the development of mobile communication network.
Keywords:embedded Linux;AT91RM9200;CDMA;intelligent terminal
GPS智能終端是智能交通系統(tǒng)(ITS系統(tǒng))的重要組成部分,它將衛(wèi)星定位技術(shù)(GPS)、地理信息系統(tǒng)(GIS)以及無線通信技術(shù)融于一身。目前,衛(wèi)星定位終端通常由8位/16位單片機(jī)、GSM/GPRS通信模塊、GPS模塊、LCD液晶顯示器等組成,并且采用液晶部分與主控芯片組分離在兩個(gè)外殼里的分體式結(jié)構(gòu)。這里介紹一種基于ARM920處理器和嵌入式Linux操作系統(tǒng),將GPS技術(shù)與CDMA網(wǎng)絡(luò)相結(jié)合的嵌入式智能終端并設(shè)計(jì)。該終端具有將GPS終端的動(dòng)態(tài)位置、時(shí)間、狀態(tài)等信息實(shí)時(shí)地通過CDMA無線網(wǎng)絡(luò)鏈接到控制中心,在具有地理信息處理和查詢功能的電子地圖上進(jìn)行顯示,并對終端的準(zhǔn)確位置、速度、運(yùn)動(dòng)方向、終端狀態(tài)等基本信息進(jìn)行監(jiān)控和查詢;報(bào)警(包括主動(dòng)報(bào)警和自動(dòng)報(bào)警);顯示調(diào)度信息;外接設(shè)備數(shù)據(jù)采集、本地溫度采集及遠(yuǎn)程監(jiān)控等功能。
1 GPS智能監(jiān)控系統(tǒng)總體設(shè)計(jì)方案
GPS智能終端與監(jiān)控中心的通信方式是影響整個(gè)ITS系統(tǒng)功能的重要因素。為了解決目前終端采用GSM,GPRS網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸不足的問題,設(shè)計(jì)中采用CDMA 1X網(wǎng)絡(luò),其理論傳輸速率可達(dá)300 Kb/s,數(shù)據(jù)傳輸速率高,永遠(yuǎn)在線,基于IP協(xié)議可以訪問整個(gè)Internet;按流量收費(fèi),價(jià)格合理;具有良好的可擴(kuò)展性,覆蓋室內(nèi)絕大部分地區(qū)及距海岸線120 km內(nèi)的海域,基本不存在盲區(qū)。通信速度遠(yuǎn)高于GPRS網(wǎng)絡(luò),更加適合于大數(shù)據(jù)量、實(shí)時(shí)傳輸監(jiān)控,而且易于平滑過渡到3G移動(dòng)通信系統(tǒng)。GPS智能監(jiān)控系統(tǒng)由GPS智能終端、CDMA網(wǎng)絡(luò)、Internet網(wǎng)、監(jiān)控中心組成,如圖1所示。
2 GPS智能終端的硬件設(shè)計(jì)
2.1 平臺(tái)介紹
采用ARM處理器和嵌入式技術(shù)設(shè)計(jì)的移動(dòng)終端,相對于以8位/16位單片機(jī)作為中央處理器的終端而言,無論是功能上,還是人機(jī)界面都有顯著提高,是微處理器技術(shù)的重要發(fā)展。這里選用Atmel公司的AT91RM9200處理器為主控制器。該內(nèi)核屬于專門用于工業(yè)控制的ARM芯片,有較寬的工作溫度以及其他較好的工業(yè)參數(shù),同時(shí)集成了豐富的系統(tǒng)應(yīng)用外設(shè)及標(biāo)準(zhǔn)接口;在180 MHz主頻下高達(dá)200 MIPS處理速度;外部總線接口EBI;兩個(gè)USB 2.0主機(jī)口和一個(gè)USB 2.0設(shè)備口;一個(gè)10/100 Mb/s Ethernet通信接口;4個(gè)同步/異步串口;多種串行數(shù)據(jù)通路;支持I2C,I2S等。其豐富的外部設(shè)備和數(shù)據(jù)傳輸特性是選擇它作為主控制器的主要原因。
圖1 基于CDMA網(wǎng)絡(luò)的GPS智能監(jiān)控系統(tǒng)
2.2 硬件設(shè)計(jì)
GPS智能終端的硬件系統(tǒng)構(gòu)成如圖2所示。
圖2 GPS智能終端的硬件結(jié)構(gòu)框圖
2.2.1 ARM主控模塊
AT91RM9200的串口UART2和UART3分別與CDMA模塊、GPS模塊通信,在實(shí)際通信時(shí)兩路連接都加有LVTTL電平到RS 232電平的轉(zhuǎn)換電路。AT91RM9200接收GPS模塊從串口3發(fā)出的位置信息,解析出其中有用數(shù)據(jù)進(jìn)行封裝,然后以規(guī)定格式通過串口2交給CDMA模塊,通過CDMA網(wǎng)絡(luò)接入Internet網(wǎng)最終送至ITS監(jiān)控中心;接收并解析ITS控制中心發(fā)來的短消息命令,按命令進(jìn)行上傳定位等操作;把系統(tǒng)運(yùn)行狀態(tài)及ITS控制中心發(fā)來的信息在液晶屏上顯示出來。
2.2.2 CDMA通信模塊
CDMA模塊是整個(gè)系統(tǒng)的通信基礎(chǔ),設(shè)計(jì)中采用Fidelix公司的CDMA通信模塊FD810。該模塊內(nèi)嵌的高通 Qualcomm MSM6025芯片,除支持基本的通話和SMS短消息外,還支持CDMA20001x 無線數(shù)據(jù)傳輸。高速上下行速率與大緩存,數(shù)據(jù)傳輸速率高達(dá)153.6 Kb/s,可通過AT命令遠(yuǎn)程控制內(nèi)置TCP/IP協(xié)議堆棧。DTGS-800與AT91RM9200通過串口UART2實(shí)現(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)星信號(hào)。一般在比較開闊的地區(qū),需接收到3顆以上的GPS衛(wèi)星信號(hào)才能進(jìn)行準(zhǔn)確定位。
2.2.4 存儲(chǔ)器系統(tǒng)
存儲(chǔ)器系統(tǒng)采用4 MB NOR FLASH,64 MB NAND FLASH和32 MB SDRAM。NOR FLASH通過16位數(shù)據(jù)總線與CPU交換數(shù)據(jù),用來存儲(chǔ)Uboot,Linux內(nèi)核、文件系統(tǒng);NAND FLASH存儲(chǔ)應(yīng)用程序,作為系統(tǒng)的數(shù)據(jù)存儲(chǔ)器,如加載電子海圖等。為充分發(fā)揮32位ARM 處理器的數(shù)據(jù)處理能力,選用2片16位的HY57V281620HG并聯(lián),以構(gòu)建32位SDRAM與ARM交換數(shù)據(jù)。SDRAM在系統(tǒng)中主要用作程序的運(yùn)行空間、數(shù)據(jù)及堆棧區(qū)。
首先,通過JTAG口將Uboot、Linux內(nèi)核、文件系統(tǒng)燒寫到NOR FLASH,將應(yīng)用程序燒寫到NAND FLASH。在系統(tǒng)啟動(dòng)時(shí),CPU首先從復(fù)位地址0x0處讀取啟動(dòng)代碼,并將存有引導(dǎo)程序Uboot的NOR FLASH存儲(chǔ)器配置到Bank0,即AT91RM9200的NCS0引腳接至NOR FLASH芯片AT49BV322AD的CE端,這樣就可以從NOR FLASH啟動(dòng)嵌入式Linux操作系統(tǒng)。
3 GPS智能終端的軟件設(shè)計(jì)
嵌入式Linux系統(tǒng)只需引導(dǎo)程序、Linux微內(nèi)核、初始化進(jìn)程3個(gè)基本元素,移植嵌入式Linux,就是使實(shí)時(shí)內(nèi)核能在其他處理器(CPU)或微控制器(MCU)上運(yùn)行。將嵌入式Linux移植到AT91RM9200平臺(tái)上,一般需要4個(gè)步驟:下載源碼和建立交叉編譯環(huán)境,配置編譯內(nèi)核,制作文件系統(tǒng),下載和調(diào)試內(nèi)核。
3.1 應(yīng)用程序設(shè)計(jì)
應(yīng)用程序包括Uboot啟動(dòng)代碼、串口設(shè)備驅(qū)動(dòng)程序、CDMA網(wǎng)絡(luò)數(shù)據(jù)傳輸程序、GPS串口通信程序等。
(1) 系統(tǒng)加電后復(fù)位;
(2) Uboot初始化CPU,SDRMA,分配地址空間等;
(3) Uboot把Linux內(nèi)核的壓縮文件解壓到SDRAM中,同時(shí)Uboot把控制權(quán)移交到Linux。Linux的內(nèi)核有在FLASH存儲(chǔ)器上直接運(yùn)行和加載到內(nèi)存中運(yùn)行2種工作方式。這里采用的FLASH存儲(chǔ)器運(yùn)行方式相對較復(fù)雜,但運(yùn)行速度更快;
(4) 開始執(zhí)行SDRMA中的代碼,Linux內(nèi)核初始化,完成堆棧和中斷的分配等;
(5) 加載串口驅(qū)動(dòng)模塊,完成串口的初始化;
(6) 運(yùn)行CDMA網(wǎng)絡(luò)數(shù)據(jù)傳輸程序,通過CDMA網(wǎng)絡(luò)與Internet進(jìn)行連接;
(7) 運(yùn)行GPS串口通信程序,通過串口將GPS數(shù)據(jù)送至AT91RM9200。
至此,已建立了從GPS數(shù)據(jù)采集到數(shù)據(jù)傳輸?shù)耐暾那度胧奖O(jiān)控系統(tǒng)。
3.2 無線接入網(wǎng)絡(luò)程序
終端由CDMA網(wǎng)絡(luò)接入Internet后,通過互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)傳輸。系統(tǒng)上電和載入Linux后,首先初始化CDMA 模塊,進(jìn)行端口設(shè)置和波特率設(shè)置(115 200 b/s);然后進(jìn)入撥號(hào)等待狀態(tài)。由于該終端在功能上映射為無線Modem,所以登陸網(wǎng)絡(luò)需進(jìn)行PPP撥號(hào)連接,接入號(hào)為#777,用戶名和密碼均為CARD。啟動(dòng)程序后,確認(rèn)是否撥號(hào)成功,若成功撥號(hào),則調(diào)用GPS串口通信程序和網(wǎng)絡(luò)數(shù)據(jù)傳輸程序;最后使用Internet結(jié)束后,關(guān)閉無線連接。
3.3 CDMA網(wǎng)絡(luò)數(shù)據(jù)傳輸程序
在Linux操作系統(tǒng)下,監(jiān)控終端通過CDMA網(wǎng)絡(luò)與Internet連接,將數(shù)據(jù)上傳到監(jiān)控中心。套接字Socket是許多操作系統(tǒng)網(wǎng)絡(luò)編程的通用API,是介于網(wǎng)絡(luò)應(yīng)用層和傳輸層之間的編程接口。套接字提供了訪問下層通信協(xié)議的大量系統(tǒng)調(diào)用和相應(yīng)數(shù)據(jù)結(jié)構(gòu),進(jìn)程在Linux上的網(wǎng)絡(luò)通信過程就是使用套接字傳輸數(shù)據(jù)的過程。文中介紹的Socket通信采用面向連接的TCP協(xié)議。
客戶端和服務(wù)器端的TCP應(yīng)用程序流程如圖3所示。客戶機(jī)部分先由Socket()創(chuàng)建本地套接口,給服務(wù)器端套接口地址結(jié)構(gòu)賦值;用Connect()函數(shù)使本地套接口向服務(wù)器端套接口發(fā)出建立連接請求,經(jīng)3次握手建立TCP連接;若連接建立成功,則用Send()和Recv()函數(shù)與服務(wù)器通信;通信結(jié)束,用Close()關(guān)閉套接口。
服務(wù)器部分由Socket()創(chuàng)建套接口,并給套接口地址結(jié)構(gòu)賦值;調(diào)Bind()函數(shù)綁定套接口、用Listen()函數(shù)在該套接口上監(jiān)聽請求;當(dāng)Accept()函數(shù)接受請求,產(chǎn)生新的套接口及描述字,并與客戶端連接;在用Fork()函數(shù)派生新的子進(jìn)程與客戶端通信,主進(jìn)程繼續(xù)處理其他請求。
3.4 GPS串口通信程序
GPS串口通信程序是對采集到的GPS數(shù)據(jù)和車輛狀態(tài)數(shù)據(jù)進(jìn)行解析;對時(shí)間、經(jīng)度、緯度、速度及超速報(bào)警等數(shù)據(jù)解析,并以固定格式通過串口3傳送到AT91RM9200。GPS模塊的工作流程如圖4所示。
GPS接收數(shù)據(jù)采用NMEA0183格式,串行通信參數(shù)為8位數(shù)據(jù)位,無奇偶校驗(yàn);1位停止位,無數(shù)據(jù)流控制。波特率設(shè)為115 200 b/s。判斷幀起始是否為$GPGGA,如果是,按位讀取GPS數(shù)據(jù),從中提取UTC時(shí)間、經(jīng)度、緯度、速度,并按定義好的幀格式順序傳送至ARM,再由CDMA模塊轉(zhuǎn)發(fā)至監(jiān)控中心服務(wù)器。
圖3 客戶機(jī)和服務(wù)器TCP應(yīng)用程序流程
圖4 GPS模塊的工作流程
在Linux下,所有的硬件設(shè)備都被看成是普通文件,可以通過與普通文件相同的標(biāo)準(zhǔn)系統(tǒng)調(diào)用完成打開、關(guān)閉、讀取和寫入設(shè)備等操作。系統(tǒng)中每一個(gè)設(shè)備都用一種特殊的設(shè)備相關(guān)文件表示,存放在/dev目錄下。在Linux中,對每一個(gè)設(shè)備的描述是通過主設(shè)備號(hào)和次設(shè)備號(hào)來惟一確定的。由同一個(gè)設(shè)備驅(qū)動(dòng)控制的所有設(shè)備具有相同的主設(shè)備號(hào),主設(shè)備號(hào)描述控制這個(gè)設(shè)備的驅(qū)動(dòng)程序,即驅(qū)動(dòng)程序與主設(shè)備號(hào)是一一對應(yīng)的(0~255);次設(shè)備號(hào)用來區(qū)分同一個(gè)驅(qū)動(dòng)程序控制的不同設(shè)備。
圖5GPS數(shù)據(jù)采集、接收的調(diào)試界面
4 實(shí)驗(yàn)與結(jié)果
運(yùn)行嵌入式目標(biāo)板的客戶端程序采集GPS數(shù)據(jù)并發(fā)送,在上位機(jī)上運(yùn)行服務(wù)器端就能接收到GPS數(shù)據(jù)。如圖5所示為GPS數(shù)據(jù)采集、接收的調(diào)試界面的數(shù)據(jù),比較監(jiān)控中心服務(wù)器接收到的GPS數(shù)據(jù)與終端采集到GPS數(shù)據(jù)相一致,實(shí)現(xiàn)了終端與監(jiān)控中心無線、實(shí)時(shí)數(shù)據(jù)傳輸。本終端運(yùn)行穩(wěn)定、系統(tǒng)響應(yīng)時(shí)間小于等于3 s,網(wǎng)絡(luò)良好情況下數(shù)據(jù)傳輸速率達(dá)115 200 b/s。
5 結(jié) 語
利用嵌入式Linux操作系統(tǒng)開發(fā)平臺(tái)提供的系統(tǒng)功能,可以簡化多任務(wù)程序設(shè)計(jì),降低開發(fā)難度,輕松地完成前后臺(tái)編程方法難以完成的任務(wù)。由于CDMA數(shù)據(jù)傳輸有著永遠(yuǎn)在線、費(fèi)用低廉,并且能夠切換到SMS方式,保證數(shù)傳萬無一失的諸多優(yōu)點(diǎn),而且隨著移動(dòng)通信網(wǎng)絡(luò)的發(fā)展,該GPS智能終端更易平滑過渡到3G移動(dòng)通信系統(tǒng)。因此將會(huì)有更廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1]張健,蔣新華,陳興武.CAN總線在基于ARM嵌入式數(shù)控系統(tǒng)中的應(yīng)用[J].自動(dòng)化與儀表,2008(7):25-27.
[2]石為人,張杰,唐云建,等.無線傳感器網(wǎng)絡(luò)嵌入式網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2006(11):2 525-2 528.
[3]鄒思軼.嵌入式Linux設(shè)計(jì)與應(yīng)用[M].北京:清華大學(xué)出版社,2002.
[4]張宏壯,王建民.基于Linux的嵌入式數(shù)據(jù)采集系統(tǒng)[J].微計(jì)算機(jī)信息,2008(20):101-102.
[5]馬忠梅,李善平.ARM & Linux嵌入式系統(tǒng)教程[M].北京:北京航空航天大學(xué)出版社,2005.
[6]張海濤,邱聯(lián)奎,艾云峰.分布式嵌入式系統(tǒng)實(shí)時(shí)調(diào)度的建模[J].計(jì)算機(jī)應(yīng)用,2008(8):2 177-2 180.
[7]張海濤,龔龍慶.用于嵌入式計(jì)算機(jī)性能測評技術(shù)及方法研究[J].現(xiàn)代電子技術(shù),2008,31(14):49-54.
[8]杜宇峰,任欣,王黎.基于ARM嵌入式平臺(tái)下Linux驅(qū)動(dòng)程序開發(fā)[J].無線電工程,2008(6):53-55.
[9]方衛(wèi)民,孫百生,李娜.基于ARM的嵌入式網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].儀器技術(shù),2008(1):22-23.
[10]CORTES L A.Modeling and Formal Verification of Embedded Systems Based on a Petri Net Representation[J].Journal of Systems Architecture,2003,49(12):571-598.