NMOE_項(xiàng)目結(jié)題論文_GPS+ARM+GSM的智能電子導(dǎo)游設(shè)計(jì)與實(shí)現(xiàn).doc_第1頁(yè)
NMOE_項(xiàng)目結(jié)題論文_GPS+ARM+GSM的智能電子導(dǎo)游設(shè)計(jì)與實(shí)現(xiàn).doc_第2頁(yè)
NMOE_項(xiàng)目結(jié)題論文_GPS+ARM+GSM的智能電子導(dǎo)游設(shè)計(jì)與實(shí)現(xiàn).doc_第3頁(yè)
NMOE_項(xiàng)目結(jié)題論文_GPS+ARM+GSM的智能電子導(dǎo)游設(shè)計(jì)與實(shí)現(xiàn).doc_第4頁(yè)
NMOE_項(xiàng)目結(jié)題論文_GPS+ARM+GSM的智能電子導(dǎo)游設(shè)計(jì)與實(shí)現(xiàn).doc_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家大學(xué)生創(chuàng)新性實(shí)驗(yàn)計(jì)劃項(xiàng)目結(jié)題論文中央民族大學(xué)基于gps+arm+gsm智能電子導(dǎo)游設(shè)計(jì)與實(shí)現(xiàn) 項(xiàng)目組成員: 邵燕 鄭旅軍 孫福成 指導(dǎo)教師:程衛(wèi)軍 職稱(chēng):副教授項(xiàng)目編號(hào):nmoe2008110162009年12月15日目錄:一、選題背景- 3 -二、系統(tǒng)設(shè)計(jì)的關(guān)鍵問(wèn)題及解決方案- 4 -1、gis電子地圖制作:- 4 -2、數(shù)據(jù)的接收及精度的提高- 8 -1)測(cè)量的誤差來(lái)源- 8 -2)gps nmea0183接受協(xié)議- 9 -3)定位信息的提取及處理- 10 -4)改善定位精度- 11 -3、gsm數(shù)據(jù)處理- 12 -4、 gps與gsm及地圖顯示部分相互整合- 14 -1系統(tǒng)硬件的選擇- 15 -2系統(tǒng)軟件的選擇- 15 -3系統(tǒng)整個(gè)程序流程的設(shè)計(jì)- 18 -五、研究成果- 21 -參考文獻(xiàn):- 22 -致謝- 23 -基于gps+arm+gsm智能電子導(dǎo)游設(shè)計(jì)與實(shí)現(xiàn)中央民族大學(xué) 邵燕 鄭旅軍 孫福成 指導(dǎo)教師:程衛(wèi)軍 職稱(chēng):副教授摘要:本項(xiàng)目在gps、gsm的技術(shù)基礎(chǔ)上,制作了數(shù)據(jù)格式的中央民族大學(xué)電子地圖來(lái)開(kāi)發(fā)智能導(dǎo)游系統(tǒng)。選取arm9-2410開(kāi)發(fā)板和嵌入式linux 操作系統(tǒng)進(jìn)行設(shè)計(jì)。通過(guò)改進(jìn)卡爾曼算法實(shí)現(xiàn)更高精度的gps定位;通過(guò)gsm模塊短信通信實(shí)現(xiàn)導(dǎo)游儀間的相互定位,將全球定位技術(shù)與第二代移動(dòng)通信技術(shù)相結(jié)合很好地實(shí)現(xiàn)了系統(tǒng)功能;使用qt進(jìn)行程序界面設(shè)計(jì)來(lái)實(shí)現(xiàn)人機(jī)交互,界面著重從藝術(shù)設(shè)計(jì)的角度出發(fā),注重人性化、智能化,界面美觀大方,易于操作。關(guān)鍵字:gps;arm;gsm;電子導(dǎo)游一、 選題背景目前,先進(jìn)的發(fā)達(dá)國(guó)家旅游業(yè)界內(nèi)已經(jīng)廣泛采用非人工講解的導(dǎo)游儀。在我國(guó),電子導(dǎo)游還屬于新生事物,主要體現(xiàn)在運(yùn)用范圍不夠廣,開(kāi)發(fā)技術(shù)不夠成熟。最早的電子導(dǎo)游使用是在廣西桂林漓江開(kāi)始出現(xiàn),幾年來(lái)國(guó)內(nèi)的各著名旅游景點(diǎn)也逐步開(kāi)始引入電子導(dǎo)游,但是國(guó)內(nèi)的應(yīng)用主要還集中在觸摸式視頻講解系統(tǒng)和僅基于gps定位的自動(dòng)講解系統(tǒng)。1 在智能化和人性化服務(wù)方面相對(duì)薄弱。電子導(dǎo)游在我國(guó)具有良好的發(fā)展勢(shì)頭,與人工導(dǎo)游相比,它在保護(hù)環(huán)境、避免游客之間的干擾、服務(wù)的質(zhì)量穩(wěn)定性、滿足游客的個(gè)性化需求等方面更有優(yōu)勢(shì)。智能型電子導(dǎo)游在我國(guó)具有良好的發(fā)展勢(shì)頭,首先與人工導(dǎo)游相比,它在保護(hù)環(huán)境、避免游客之間的干擾、導(dǎo)游服務(wù)的質(zhì)量穩(wěn)定性、滿足游客的個(gè)性化需求等方面更有優(yōu)勢(shì),智能型電子導(dǎo)游更能體現(xiàn)人性化的特點(diǎn)。其次,智能型電子導(dǎo)游在我國(guó)的市場(chǎng)需求將逐步變大。我國(guó)旅游資源豐富,歷史悠久,文化傳統(tǒng)別具一格。無(wú)論是自然風(fēng)光、文化古跡、民族風(fēng)情和革命紀(jì)念地,都有豐富多彩、引人入勝的內(nèi)容;隨著國(guó)內(nèi)人民生活水平的提高,人們對(duì)精神生活質(zhì)量的追求逐年提升,外加世界范圍內(nèi)旅游者對(duì)中國(guó)的興趣逐年上升,中國(guó)將成為世界旅游業(yè)最發(fā)達(dá)的國(guó)家之一;智能電子導(dǎo)游在保證旅游質(zhì)量的同時(shí)接納來(lái)自世界各地的旅游者將發(fā)揮它的無(wú)可比擬的優(yōu)越性。但是在調(diào)研過(guò)程中我們發(fā)現(xiàn),雖然電子導(dǎo)游能夠滿足游客自主游覽的需求,但游客在游覽過(guò)程中很容易出現(xiàn)和隊(duì)友走散的狀況,即使有手機(jī)等通訊工具,在陌生的特別是面積比較大的自然景區(qū),游客仍然不能快而方便的找到彼此,因此項(xiàng)目組進(jìn)行了智能電子導(dǎo)游的設(shè)計(jì)與實(shí)現(xiàn),使得上述情況發(fā)生時(shí)雙方能夠通過(guò)電子導(dǎo)游互相定位,直觀而方便的尋找到隊(duì)友。同時(shí)改進(jìn)電子導(dǎo)游的服務(wù)內(nèi)容,使其更加智能化。在操作界面風(fēng)格上注重人性化設(shè)計(jì),使其更好的為旅游者服務(wù)。二、 系統(tǒng)設(shè)計(jì)的關(guān)鍵問(wèn)題及解決方案1、gis電子地圖制作:項(xiàng)目涉及的是gis(地理信息系統(tǒng))在嵌入式設(shè)備上的應(yīng)用電子地圖瀏覽。典型的嵌入式gis應(yīng)用由嵌入式硬件系統(tǒng)、嵌入式操作系統(tǒng)、和嵌入式gis軟件組成。由于嵌入式設(shè)備本身的條件限制,其數(shù)據(jù)存儲(chǔ)和處理能力有限,在項(xiàng)目中我們采用mapinfo格式的地圖,對(duì)其數(shù)據(jù)進(jìn)行了適當(dāng)裁剪,并選擇了合適的數(shù)據(jù)結(jié)構(gòu)來(lái)組織裁剪后的數(shù)據(jù),減小了數(shù)據(jù)冗余,解決了在嵌入式設(shè)備上存儲(chǔ)大批量數(shù)據(jù)的問(wèn)題1。在此基礎(chǔ)上,以qt/embedded為開(kāi)發(fā)環(huán)境,實(shí)現(xiàn)了一種能運(yùn)行在以嵌入式linux為操作系統(tǒng)的設(shè)備上的導(dǎo)航電子地圖。a.生成電子地圖;利用mapinfo7.0軟件制作本校區(qū)電子地圖,如下圖1-1所示。這里要注意地圖的地理坐標(biāo),因?yàn)檫@將涉及到后面gps的定位能否與電子地圖的坐標(biāo)匹配問(wèn)題,也就是精度的問(wèn)題。b.電子地圖數(shù)據(jù):制作好本校的電子地圖之后,將其轉(zhuǎn)換成mif/mid 文件, mapinfo 主要通過(guò)mif、mid兩個(gè)文件向外交換數(shù)據(jù)以及與其他gis軟件建立數(shù)據(jù)接口,其中mif數(shù)據(jù)文件主要保存空間數(shù)據(jù)的圖形信息,mid數(shù)據(jù)文件主要保存空間數(shù)據(jù)的屬性信息。mif由頭文件和數(shù)據(jù)段組成,數(shù)據(jù)段包含mapinfo定義的點(diǎn)、線、面、多義線、區(qū)域、圓弧、文本、矩形、圓角矩形和橢圓等實(shí)體,具體如圖1-2所示。mid文件為對(duì)應(yīng)實(shí)體的屬性。掌握了文件關(guān)系之后,就可以用或語(yǔ)言編程實(shí)現(xiàn)對(duì).mif文件的讀取。圖1-1 mipinfo編輯軟件制作民大地圖 圖1-2 .mif文件內(nèi)容 c.地圖投影和坐標(biāo)轉(zhuǎn)換:由于從mapinfo的mif文件中獲得的數(shù)據(jù)是位于地球橢球面上的經(jīng)緯度坐標(biāo),所以需要經(jīng)過(guò)地圖投影將經(jīng)緯度坐標(biāo)數(shù)據(jù)投影為平面坐標(biāo)數(shù)據(jù),才能在qt圖形界面里正確繪制地圖。具體原理過(guò)程如下:大地坐標(biāo)轉(zhuǎn)換成地圖平面坐標(biāo)2。以o 為圓心,長(zhǎng)軸a 為半徑做圓弧rq ,又以o 為圓心, 短軸b 為半徑做圓弧l m ,如圖3 所示, kk 垂直op 軸,設(shè)o k與op 軸夾角為u , kt 為k 點(diǎn)在子午橢圓的切線,得: 圖1-3則橢球圓上一點(diǎn)k 坐標(biāo)( p , z) 為:其中:由圖1-3可得: 其中, h 為高度。地圖平面坐標(biāo)轉(zhuǎn)換成大地坐標(biāo) 。由式(2) 可得其逆變換為:地圖平面坐標(biāo)轉(zhuǎn)換為屏幕坐標(biāo)3由于地圖平面坐標(biāo)系和屏幕坐標(biāo)系都是平面直角坐標(biāo)系,它們之間的差別在于坐標(biāo)原點(diǎn)的不同,坐標(biāo)軸的方向和刻度單位不同。因此,它們之間的變換只要通過(guò)比例變換、平移變換和旋轉(zhuǎn)變換就可以實(shí)現(xiàn)。假設(shè)原坐標(biāo)系的坐標(biāo)值為( x , y) ,變換后的坐標(biāo)值為( sx , sy) , x 軸, y 軸的比例變換因子分別為xs , ys ;平移變換因子分別為t x , ty ,旋轉(zhuǎn)角度為;則它們之間的坐標(biāo)變換可用下列方程實(shí)現(xiàn) :比例變換方程為:平移變換方程為:旋轉(zhuǎn)變換方程為:本項(xiàng)目中采用高斯-克呂格投影。經(jīng)過(guò)地圖投影后,原來(lái)的經(jīng)緯度坐標(biāo)數(shù)據(jù)就轉(zhuǎn)化成了平面上以米為單位的坐標(biāo)數(shù)據(jù)。但是要把地圖繪制在嵌入式設(shè)備的屏幕上,還需要把平面坐標(biāo)數(shù)據(jù)轉(zhuǎn)化為屏幕上以像素為單位的坐標(biāo)數(shù)據(jù)。代碼實(shí)現(xiàn)為:首先調(diào)用translate()函數(shù)轉(zhuǎn)化繪圖設(shè)備坐標(biāo)系統(tǒng)的原點(diǎn)(0,0)到窗口的左上角。具體實(shí)現(xiàn)的核心代碼如下所示- r.movetopleft( qpoint(-r.width()/2, -r.height()/2) ); eraserect = eraserect.unite( mtx.map(r) ); eraserect.moveby( -1, -1 ); eraserect.setsize( qsize( eraserect.width() + 2,eraserect.height() + 2 ) ); um.translate( pw/2, ph/2 );/ 0,0 is center um = mtx * um;p.setworldmatrix( um );在qt圖形界面的圖形繪制: 圖形的繪制包括點(diǎn)、線等的繪制,繪制工作都是在類(lèi)show中的paintevent(qpaintevent*)函數(shù)中完成的。 主要代碼如下:class mymap:public qwidget protected:void paintevent(qpaintevent*);void mymap:paintevent(qpaintevent*0qpainter p(this);qpen pen(qcolor(2,142,188),3);p.setpen(pen);p.drawployline(draw);d.電子地圖的縮放和漫游電子地圖數(shù)據(jù)結(jié)構(gòu)選用矢量結(jié)構(gòu),這樣在地圖縮放顯示時(shí),原圖的各個(gè)部分成比例的縮放。以坐標(biāo)變換和地圖的顯示為基礎(chǔ),地圖的縮放和漫游就比較容易實(shí)現(xiàn)。地圖縮放只需在將平面坐標(biāo)轉(zhuǎn)化為屏幕坐標(biāo)時(shí),將轉(zhuǎn)化比例再乘上一個(gè)縮放因子k;同樣,地圖漫游只需在坐標(biāo)轉(zhuǎn)化時(shí),加上或減去一個(gè)漫游常數(shù)scale.即可實(shí)現(xiàn)放大和縮小效果。但是在實(shí)際實(shí)現(xiàn)時(shí),每一次地圖刷新都要重繪一次地圖,使得系統(tǒng)處理速度驟降,不能很好的工作,因此,項(xiàng)目在實(shí)際中采用柵格形式和實(shí)時(shí)繪制結(jié)合的方案,地圖主體以柵格顯示為主,關(guān)鍵點(diǎn)的數(shù)據(jù)采用讀取.mif文件中的信息來(lái)繪制。這樣,系統(tǒng)處理的速度得到了很大的提高,而美中不足是在放大縮小時(shí)圖像邊緣會(huì)有細(xì)小模糊出現(xiàn),但完全不影響整體效果。2、數(shù)據(jù)的接收及精度的提高1)測(cè)量的誤差來(lái)源在衛(wèi)星信號(hào)的收發(fā)過(guò)程中, 以及對(duì)信號(hào)的傳播時(shí)間計(jì)算方面都不可避免的帶來(lái)誤差, 引起定位誤差的因素有很多, 大致可以分成以下幾類(lèi)。設(shè)備誤差首先, 雖然衛(wèi)星上裝了精確度很高的原子鐘, 但是原子鐘還是存在誤差, 衛(wèi)星軌道本身雖然很高但是收到地球大氣層的影響要產(chǎn)生漂移, 其次接收器本身時(shí)鐘也存在誤差和噪聲, 這些都影響定位的精確度,但這些不是主要的。大氣層的干擾gps 通過(guò)電波發(fā)送定時(shí)信號(hào), 當(dāng)gps 信號(hào)經(jīng)過(guò)電離層(ionosphere)上一些帶電性的粒子及對(duì)流層(troposphere)上的水汽時(shí), 信號(hào)便產(chǎn)生遲滯延時(shí)的現(xiàn)象。這些延時(shí)不可能提前預(yù)知, 因?yàn)槭艿教鞖獾挠绊? 另外還受到大氣環(huán)境的影響, 在好的接收器中考慮了典型大氣層延時(shí)的影響, 做了相應(yīng)的修正, 但是不可能對(duì)大氣層的變化做出實(shí)時(shí)的, 精準(zhǔn)的數(shù)學(xué)模型, 所以大氣層對(duì)定時(shí)信號(hào)的延時(shí)影響依然存在, 這也是影響定位精度的又一原因。sa( selective availability) 策略gps 衛(wèi)星傳送兩種頻率的載波l1 (link 1) 載波的頻率為1575.42 mhz, l2 (link 2) 載波的頻率為1227.60mhz。這兩種載波可修正電離層遲滯效應(yīng)的誤差, 在載波上除了狀態(tài)訊息之外, 并調(diào)制了2 個(gè)供定時(shí)的碼c/a 碼(coarse acqusition), 頻率為1.023mhz, 僅在l1 載波上作調(diào)變, 每1023 位重復(fù)一次, 這種碼制的定位精度大大超出了原來(lái)的設(shè)計(jì), 出于美國(guó)自身及其盟國(guó)安全的考慮, 在這一碼制當(dāng)中加入了時(shí)鐘偽碼和星歷偽碼, 導(dǎo)致其定位精度在100 米左右,提供給民間和非軍事同盟國(guó)使用。p 碼(precise code), 頻率為10.23mhz, 每七天重復(fù)一次可同時(shí)采用l1 及l(fā)2 載波變, 主要提供軍事用途p 碼的頻率大約是c/a 碼的10 倍不但更為精確,也更不易被干擾。這種定位精度很高的碼制只有美國(guó)軍方獨(dú)家使用其他因素以上前兩種都可以說(shuō)是固有的誤差, 而sa 策略則是人為的, 這個(gè)是造成gps 定位精度下降的關(guān)鍵因素, 本文提供的方法就能大大改善由此策略造成的精度下降。另外還有其他的因素影響精度, 比如信號(hào)的多徑效應(yīng), 太空當(dāng)中的一些偶發(fā)事件都會(huì)對(duì)衛(wèi)星造成影響, 從而導(dǎo)致精度下降, 不過(guò)這些和sa略相比而言不占主要地位。2)gps nmea0183接受協(xié)議 全球定位位系統(tǒng)(global positioning system - gps)是美國(guó)從本世紀(jì)70年代開(kāi)始研制,歷時(shí)20年,耗資200億美元,于1994年全面建成,具有在海、陸、空進(jìn)行全方位實(shí)時(shí)三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng)。gps接收機(jī)接收到的數(shù)據(jù)通過(guò)串口輸入,其數(shù)據(jù)格式符合nmea0183標(biāo)準(zhǔn),格式如下圖1-4所示:圖1-4nmea0183標(biāo)準(zhǔn)語(yǔ)句中,字段0(gpgga)中包含了我們所需要的所有定位信息,所以我們只取這段數(shù)據(jù)做為有用數(shù)據(jù),其定義如下:字段0:$gpgga,語(yǔ)句id,表明該語(yǔ)句為global positioning system fix data(gga)gps定位信息字段1:utc 時(shí)間,hhmmss.sss,時(shí)分秒格式字段2:緯度ddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)字段3:緯度n(北緯)或s(南緯)字段4:經(jīng)度dddmm.mmmm,度分格式(前導(dǎo)位數(shù)不足則補(bǔ)0)字段5:經(jīng)度e(東經(jīng))或w(西經(jīng))字段6:gps狀態(tài),0=未定位,1=非差分定位,2=差分定位,3=無(wú)效pps,6=正在估算字段7:正在使用的衛(wèi)星數(shù)量(00 - 12)(前導(dǎo)位數(shù)不足則補(bǔ)0)字段8:hdop水平精度因子(0.5 - 99.9)字段9:海拔高度(-9999.9 - 99999.9)字段10:地球橢球面相對(duì)大地水準(zhǔn)面的高度字段11:差分時(shí)間(從最近一次接收到差分信號(hào)開(kāi)始的秒數(shù),如果不是差分定位將為空)字段12:差分站id號(hào)0000 - 1023(前導(dǎo)位數(shù)不足則補(bǔ)0,如果不是差分定位將為空字段13:校驗(yàn)值3)定位信息的提取及處理gps接收機(jī)接收到的數(shù)據(jù)以字符的形式進(jìn)入串口,我們把字符“ga”作為標(biāo)志符,獲取經(jīng)度和緯度信息,程序代碼如下:(注)變量buffi,buff_lati,buff_loni都是char型變量,電子地圖中使用的是double型變量,所以需要把char型轉(zhuǎn)變成double型,程序代碼如下:4)改善定位精度gps 單點(diǎn)定位系統(tǒng)誤差改正 比較實(shí)測(cè)觀測(cè)值與其真值, 可以看出, y 坐標(biāo)、x 坐標(biāo)均偏大。因此,本手持式gps 定位中存在著明顯的系統(tǒng)誤差, 而量級(jí)在10 米級(jí), 因此需要對(duì)所使用的儀器進(jìn)行誤差模擬來(lái)改善系統(tǒng)誤差對(duì)單點(diǎn)定位精度的影響。按式(3) 計(jì)算系統(tǒng)誤差均值ix, iy 為控制點(diǎn)的觀測(cè)值與其已知值之差。經(jīng)系統(tǒng)誤差改正后的結(jié)果由式( 4) 計(jì)算。4算法上改善定位精度系統(tǒng)使用改進(jìn)的卡爾曼濾波算法來(lái)提高定位精度,5針對(duì)最小二乘法和標(biāo)準(zhǔn)卡爾曼濾波的特點(diǎn),通過(guò)偽距離估計(jì)出接收機(jī)的位置和鐘差,避免由于濾波初值,系統(tǒng)噪聲方差以及測(cè)量噪聲方差帶來(lái)的濾波發(fā)散問(wèn)題。在進(jìn)行卡爾曼濾波時(shí),關(guān)鍵是建立數(shù)學(xué)模型、確定狀態(tài)向量、建立系統(tǒng)方程和測(cè)量方程、確定噪聲統(tǒng)計(jì)特性等。63、gsm數(shù)據(jù)處理 gsm 是global system for mobile communication 的簡(jiǎn)稱(chēng),中文名稱(chēng)為全球移動(dòng)通信系統(tǒng),是1992 年由歐洲標(biāo)準(zhǔn)化委員會(huì)統(tǒng)一推出的,以數(shù)字為主的第二帶代移動(dòng)電話系統(tǒng)。它采用數(shù)字通信技術(shù)、統(tǒng)一的網(wǎng)絡(luò)標(biāo)準(zhǔn),使通信質(zhì)量得以保證,是全球最成熟的數(shù)字移動(dòng)電話網(wǎng)絡(luò)標(biāo)準(zhǔn)之一,用的是窄帶tdma,能提供全面的語(yǔ)音、文字和數(shù)據(jù)業(yè)務(wù),并提供一些諸如短消息服務(wù)、語(yǔ)音信箱、呼叫轉(zhuǎn)移等的增值業(yè)務(wù)。7在本導(dǎo)游系統(tǒng)中,gps定位信息交互是通過(guò)gsm網(wǎng)絡(luò)的短信來(lái)實(shí)現(xiàn)的,gsm模塊同樣是通過(guò)串口操作。我們使用的gsm通信貓使用的是法國(guó)wavecom(微控科技)生產(chǎn)的模塊,雙波段(900/1800mhz)工作,支持通用at 命令。at 命令集是用于終端機(jī)(如pc 機(jī))和調(diào)制解調(diào)器(modem)之間通訊控制的一組命令。at 是attention 的縮寫(xiě)。所有at 命令都是以ascii 字符“at”開(kāi)始,并由回車(chē)符或換行符結(jié)束。我們用到的at命令及其功能介紹如下:at命令功能at+ipr=9600設(shè)置波特率為b9600at&w保存設(shè)置(未保存,斷電后設(shè)置將還原)at+cmgs=”138*”發(fā)送信息at+cmgr=1讀取第一條信息at+cmgd=1,4刪除所有信息對(duì)gsm模塊的操作通過(guò)串口ttys0,打開(kāi)串口后,對(duì)串口進(jìn)行初始化,接著就可以進(jìn)行收發(fā)信息的操作了。其流程圖和代碼如圖1-5所示: 圖1-5發(fā)送信息代碼如下:接收信息代碼如下:刪除信息代碼如下:4、 gps與gsm及地圖顯示部分相互整合 在嵌入式linux下針對(duì)gps與gsm模塊分別編碼,成功實(shí)現(xiàn)各自功能后,需要在qt界面中將二者的代碼相互整合,實(shí)現(xiàn)信息共享和命令的互相響應(yīng),例如利用gsm模塊將gps接受的當(dāng)前系統(tǒng)的位置信息以短信形式發(fā)送到另一個(gè)導(dǎo)游系統(tǒng)上,另一個(gè)導(dǎo)游系統(tǒng)利用gsm模塊接受位置信息后共享給電子地圖繪制程序段,將第一個(gè)系統(tǒng)的位置在地圖上顯示出來(lái)。此處主要應(yīng)用了qt設(shè)計(jì)的最重要特點(diǎn):信號(hào)-槽機(jī)制,這個(gè)機(jī)制可以在對(duì)象之間彼此并不了解的情況下將它們的行為聯(lián)系起來(lái),取代了老舊的開(kāi)發(fā)套件所使用的粗糙的回調(diào)和消息映射。其次模塊間任務(wù)的優(yōu)先級(jí)別不同,gps需要實(shí)時(shí)的不斷接受信息,而gsm則只在需要的時(shí)候使用,因此要合適設(shè)計(jì)二者的運(yùn)行方式,才能達(dá)到高效快捷的使用效果三、方案選擇1系統(tǒng)硬件的選擇1)本項(xiàng)目選擇芯 片arm9-2410 作為系統(tǒng)處理器,arm9系列芯片具有高性能、廉價(jià)、耗能低等特點(diǎn),目前已經(jīng)成功地廣泛應(yīng)用于嵌入控制、消費(fèi)/教育類(lèi)多媒體、dsp和移動(dòng)式應(yīng)用等領(lǐng)域。它的如下特點(diǎn)能充分的完成本項(xiàng)目的各項(xiàng)性能要求:5 級(jí)整數(shù)流水線,指令執(zhí)行效率更高;提供 1.1mips/mhz 的哈佛結(jié)構(gòu);支持 32 位 arm 指令集和 16 位 thumb 指令集;支持 32 位的高速 amba 總線接口;全性能的 mmu ,支持 windows ce 、 linux 、 palm os 等多種主流嵌入式操作系統(tǒng);支持?jǐn)?shù)據(jù) cache 和指令 cache ,具有更高的指令和數(shù)據(jù)處理能力。82)本項(xiàng)目選擇gsm模塊來(lái)實(shí)現(xiàn)系統(tǒng)間的相互通信。gsm是當(dāng)前應(yīng)用最為廣泛的移動(dòng)電話標(biāo)準(zhǔn)。它是目前基于時(shí)分多址技術(shù)的移動(dòng)通信體制中成熟、完善、應(yīng)用最廣泛的一種系統(tǒng),而短信息服務(wù)作為gsm網(wǎng)絡(luò)的一種基本業(yè)務(wù),已得到越來(lái)越多的系統(tǒng)運(yùn)營(yíng)商和系統(tǒng)開(kāi)發(fā)商的重視,基于這種業(yè)務(wù)的各種應(yīng)用也蓬勃發(fā)展起來(lái)。利用gsm短信息(sms)進(jìn)行電子導(dǎo)游之間的通訊具有成本低、可靠性高等特點(diǎn)。利用gsm短信息系統(tǒng)進(jìn)行無(wú)線通信還具有雙向數(shù)據(jù)傳輸功能,性能穩(wěn)定。3)本項(xiàng)目選擇xw-gps100作為gps定位模塊,它具有速度快、靈敏度高、定位精度準(zhǔn)、智能化多徑檢測(cè)與抑制等優(yōu)點(diǎn)。gps即全球定位系統(tǒng)(global positioning system)是美國(guó)從本世紀(jì)70年代開(kāi)始研制,于1994年全面建成,具有在海、陸、空進(jìn)行全方位實(shí)時(shí)三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng)。 全球定位系統(tǒng)的主要特點(diǎn)包括全天候運(yùn)行、全球覆蓋、三維定速定時(shí)高精度、快速省時(shí)高效率、應(yīng)用廣泛多功能等等。9gps是目前世界上運(yùn)用最廣泛,技術(shù)最成熟的定位技術(shù),可充分實(shí)現(xiàn)本項(xiàng)目的定位要求。2系統(tǒng)軟件的選擇1)pc端系統(tǒng)的選擇進(jìn)行嵌入式開(kāi)發(fā),pc端系統(tǒng)選擇一般有兩種方式,一是選擇雙系統(tǒng)(linuxwindows xp);二是選擇虛擬機(jī)安裝linux。前者的優(yōu)點(diǎn)是運(yùn)行速度快,缺點(diǎn)是切換系統(tǒng)的時(shí)候需要重新啟動(dòng)。后者的優(yōu)點(diǎn)是可以任意切換系統(tǒng),缺點(diǎn)是對(duì)硬件要求較高。為了共享資料和方便查找網(wǎng)絡(luò)資源,本項(xiàng)目選擇方法2,即在windows主機(jī)上安裝虛擬宿主機(jī),作為開(kāi)發(fā)環(huán)境。2)嵌入式操作系統(tǒng)的選擇 本項(xiàng)目選擇嵌入式linux作為操作系統(tǒng)。純商業(yè)性的嵌入式操作系統(tǒng)主要有wince和vxworks,開(kāi)源的嵌入式操作系統(tǒng)有嵌入式linux,其他的還有uc/os-ii等。經(jīng)過(guò)比對(duì)幾款系統(tǒng)之間的利弊選擇了嵌入式linux,它是按照嵌入式操作系統(tǒng)的要求而設(shè)計(jì)的一種小型操作系統(tǒng)。相對(duì)于wince、vxworks等作系統(tǒng),具有源碼開(kāi)放、易移植、模塊化、資源豐富等優(yōu)勢(shì);支持多線程、多進(jìn)程;支持多種平臺(tái),如x86、powerpc、arm、mips 等等。10其可伸縮的結(jié)構(gòu)使系統(tǒng)適合于從簡(jiǎn)單到復(fù)雜的各種嵌入式應(yīng)用;另外它擁有有大量的開(kāi)發(fā)工具,這些工具為嵌入式系統(tǒng)的開(kāi)發(fā)提供了良好的開(kāi)發(fā)環(huán)境也是我們選擇linux 的主要原因之一。而與之相匹配的實(shí)現(xiàn)我們選擇了qt來(lái)實(shí)現(xiàn)各種應(yīng)與程序的人機(jī)交互,力求整個(gè)系統(tǒng)更加人性化和智能化。(1)qt/ embedded 軟件體系結(jié)構(gòu)介紹qte 是著名的qt 庫(kù)開(kāi)發(fā)商trolltech 公司開(kāi)發(fā)的面向嵌入式系統(tǒng)的qt 版本, 熟悉linux 界面設(shè)計(jì)的人一定對(duì)qt 不會(huì)陌生, 很多人正在使用的kde 就是基于qt 圖形庫(kù)開(kāi)發(fā)的,qt 自身則是通過(guò)使用xlib 來(lái)實(shí)現(xiàn)其圖像顯示功能的。由于xlib 本身比較大, 無(wú)法適應(yīng)嵌入式開(kāi)發(fā)的需要,trolltech 公司設(shè)計(jì)了新的qte 圖形庫(kù), 它在底層徹底摒棄了x lib, 僅采用framebuffer 作為底層圖形接口, 而在上層依然保持原來(lái)qt 的架構(gòu), 使在很多x window 上設(shè)計(jì)的程序能非常方便的移植。11從qt 到qte 的這個(gè)開(kāi)發(fā)過(guò)程體現(xiàn)了軟件開(kāi)發(fā)中非常重要的一個(gè)思想: 軟件設(shè)計(jì)一定要保持易用性和可移植性。qte是使用c+語(yǔ)言設(shè)計(jì)的, 雖然犧牲了一些效率, 但在當(dāng)前很多界面開(kāi)發(fā)人員已經(jīng)適應(yīng)了mfc 的開(kāi)發(fā)模式時(shí), 使用c+無(wú)疑會(huì)更方便開(kāi)發(fā)人員 。在代碼設(shè)計(jì)上, qt/embedded 利用了c+獨(dú)有的機(jī)制, 如繼承、多態(tài)、模板等, 具體實(shí)現(xiàn)非常靈活。但其底層代碼由于追求與多種系統(tǒng)、多種硬件的兼容, 代碼補(bǔ)丁較多, 風(fēng)格稍顯混亂。2 . 軟件總體架構(gòu) 圖1-6上圖描述了qte 軟件的總體架構(gòu)。qte 共可分為三層架構(gòu):a. 圖形引擎和事件驅(qū)動(dòng)層: 這一層通過(guò)調(diào)用和直接訪問(wèn)linux 操作系統(tǒng)的framebuffer 和輸入設(shè)備驅(qū)動(dòng)實(shí)現(xiàn)。b. 上層圖形層: 圖形引擎封裝了對(duì)framebuffer 的繪圖操作, 是低級(jí)別的繪圖層, 這一層抽象出對(duì)于顯示設(shè)備的具體操作接口( 圖形設(shè)備環(huán)境) , 如選擇畫(huà)刷、畫(huà)線、畫(huà)矩形、alpha操作等, 為上層開(kāi)發(fā)和用戶提供了圖形的抽象層。c. 上層控件層: 這一層通過(guò)公共抽象類(lèi)qwidget , 實(shí)現(xiàn)了用戶所需的主要控件類(lèi)。3 . 圖形引擎層的實(shí)現(xiàn)這是整個(gè)系統(tǒng)最復(fù)雜的一部分, 也使用了很多典型的設(shè)計(jì)模式。底層圖形引擎基于framebuffer , framebuffer 是在linux 內(nèi)核架構(gòu)版本2.2 以后推出的標(biāo)準(zhǔn)顯示設(shè)備驅(qū)動(dòng)接口。采用mmap系統(tǒng)調(diào)用, 可以將framebuffer 的顯示緩存映射為可連續(xù)訪問(wèn)的一段內(nèi)存儲(chǔ)針。由于目前比較高級(jí)的arm 體系的嵌入式cpu 中大多集成了lcd 控制模塊, lcd 控制模塊一般采用雙dma 控制器組成的專(zhuān)用dma 通道。其中一個(gè)dma 可以自動(dòng)從一個(gè)數(shù)據(jù)結(jié)構(gòu)隊(duì)列中取出并裝入新的參數(shù), 直到整個(gè)隊(duì)列中的dma 操作都已完成為止。另外一個(gè)dma 與畫(huà)面緩沖區(qū)相關(guān), 這部分由兩個(gè)dma 控制器交替執(zhí)行, 并每次都自動(dòng)按照預(yù)定的規(guī)則改變參數(shù)。雖然使用了雙dma, 但這兩個(gè)dma控制器的交替使用對(duì)于cpu 來(lái)說(shuō)是不可見(jiàn)的。cpu 所獲得的只是由兩個(gè)dma 組成的一個(gè)“ 通道” 而已。在qt/embedded中, qscreen 類(lèi)為抽象出的底層顯示設(shè)備基類(lèi), 其中聲明了對(duì)于顯示設(shè)備的基本描述和操作方式, 如打開(kāi)、關(guān)閉、獲得顯示能力、創(chuàng)建gfx 操作對(duì)象等。另外一個(gè)重要的基類(lèi)是qgfx類(lèi)。該類(lèi)抽象出對(duì)于顯示設(shè)備的具體操作接口( 圖形設(shè)備環(huán)境) , 如選擇畫(huà)刷、畫(huà)線、畫(huà)矩形、alpha 操作等。以上兩個(gè)基類(lèi)是qt/embedded 圖形引擎的底層抽象。其中所有具體函數(shù)基本都是虛函數(shù), qt/embedded 對(duì)于具體的顯示設(shè)備, 如linux的framebuffer、qt virtual framebuffer 做的抽象接口類(lèi)全都由此繼承并重載基類(lèi)中的虛函數(shù)實(shí)現(xiàn)。下圖為qt/embedded 中底層圖形引擎實(shí)現(xiàn)結(jié)構(gòu)。圖1-7如圖1-7: 對(duì)于基本的framebuffer 設(shè)備, qt/embedded 用qlinuxfbscreen來(lái)處理。針對(duì)具體顯示硬件( 如mach 卡、voodoo卡) 的加速特性, qt/embedded 從qlinuxfbscreen 和圖形設(shè)備環(huán)境模板類(lèi)qgfxraster 繼承出相應(yīng)子類(lèi), 并針對(duì)相應(yīng)硬件重載相關(guān)虛函數(shù)。qt/embedded 在體系上為c/s 結(jié)構(gòu), 任何一個(gè)qt/embedded程序都可以作為系統(tǒng)中唯一的一個(gè)gui server 存在。當(dāng)應(yīng)用程序首次以系統(tǒng)gui server 的方式加載時(shí), 將建立qwsserver實(shí)體。此時(shí)調(diào)用qwsserver:opendisplay () 函數(shù)創(chuàng)建窗體, 在qwsserver:opendisplay( ) 中對(duì)qwsdisplay: : data 中的init ()加以調(diào)用; 根據(jù)qgfxdriverfactory 實(shí)體中的定義( qlinuxfbscreen)設(shè)置關(guān)鍵的qscreen 指針qt_screen 并調(diào)用connect ()打開(kāi)顯示設(shè)備( dev/fb0) 。在qwsserver 中所有對(duì)于顯示設(shè)備的調(diào)用都由qt_screen 發(fā)起。至此完成了qt/embedded 中qwsserver 的圖形發(fā)生引擎的創(chuàng)建。當(dāng)系統(tǒng)中建立好gui server 后, 其它需要運(yùn)行的qt/embedded 程序在加載后采用共享內(nèi)存及有名管道的進(jìn)程通信方式, 以同步訪問(wèn)模式獲得對(duì)共享資源framebuffer設(shè)備的訪問(wèn)權(quán)。隨著嵌入式處理器運(yùn)算能力的不斷提高, 對(duì)外設(shè)支持的不斷豐富, 嵌入式linux 系統(tǒng)的應(yīng)用也逐漸增多。12qte 延續(xù)了qt 在桌面系統(tǒng)的所有功能, 豐富的api 接口和基于組件的編程模型使得嵌入式linux 系統(tǒng)中的應(yīng)用程序開(kāi)發(fā)更加便捷。由于qt/embedded 本身面向高端的手持設(shè)備和移動(dòng)設(shè)備, 將成為未來(lái)嵌入式系統(tǒng)的主要gui。3系統(tǒng)整個(gè)程序流程的設(shè)計(jì)作為一個(gè)同時(shí)使用gps和gsm模塊的系統(tǒng),如何處理好收發(fā)信息之間的同步關(guān)系和數(shù)據(jù)交互這個(gè)問(wèn)題特別重要,本項(xiàng)目使用是使用定時(shí)器的方式來(lái)實(shí)現(xiàn)功能。gps和gsm的相關(guān)程序用c語(yǔ)言編寫(xiě),然后與qt圖形界面c+代碼整合在一起,核心程序流程下圖所示。主要包括系統(tǒng)初始化、gps數(shù)據(jù)處理、gsm數(shù)據(jù)處理3部分。如下圖1-8所示。 gps數(shù)據(jù)處理:通過(guò)定時(shí)器動(dòng)態(tài)實(shí)時(shí)地接受gps數(shù)據(jù),每一次從完整數(shù)據(jù)中提取出所需的基本信息如時(shí)間,經(jīng)緯度等內(nèi)容,然后通過(guò)定時(shí)器觸發(fā)顯示到界面上,考慮到人的肉眼分辨頻率,數(shù)據(jù)刷新次數(shù)不易過(guò)快,同時(shí)也因?yàn)槿说牟叫兴俣容^慢,不需要達(dá)到車(chē)載導(dǎo)航時(shí)的要求,因此界面顯示設(shè)置為每3秒鐘刷新一次信息。gsm數(shù)據(jù)處理 主機(jī)選擇gsm功能,則彈出新的對(duì)話框,將當(dāng)前系統(tǒng)的地理位置信息傳送給通訊模塊,以短信形式發(fā)送出去,同時(shí),通訊模塊循環(huán)以查詢方式來(lái)檢測(cè)是否有別人給本機(jī)發(fā)送信息,如果有,則顯示提示信息后自動(dòng)接收,然后在電子地圖上顯示出來(lái),如果接受信息不是位置信息而是其他信息內(nèi)容則報(bào)錯(cuò)提示然后退出子程序繼續(xù)查詢。gsm的短信業(yè)務(wù)sms利用信令信道傳輸,它不用撥號(hào)建立連接,把要發(fā)送的信息加上目的地址和其他控制信息發(fā)到短信服務(wù)中心,經(jīng)短信服務(wù)中心完成存儲(chǔ)再轉(zhuǎn)發(fā)送給目標(biāo)機(jī),這種特性適合數(shù)據(jù)遠(yuǎn)程傳送。13本項(xiàng)目采用的是pdu mode,采用at命令完成短信息的讀取和發(fā)送。如發(fā)送一條消息可以采用at+cmgs命令,格式如下:at+cmgs=+系統(tǒng)上電后,arm微控制器開(kāi)始執(zhí)行主程序。在主程序中,首先進(jìn)行系統(tǒng)初始化,初始化的內(nèi)容包括gps模塊和gsm模塊的基本參數(shù)設(shè)置,然后進(jìn)入主程序的數(shù)據(jù)處理部分,后文將有詳細(xì)的論述,此處不展開(kāi)講解。 設(shè)置共享方手機(jī)號(hào)碼彈出gsm對(duì)話框若“介紹”功能鍵按下每3秒觸發(fā)定時(shí)器,刷新一次,顯示信息到界面,繪制位置點(diǎn)到地圖上循環(huán)提取出所需數(shù)據(jù)并進(jìn)行優(yōu)化處理提高精度。自動(dòng)接受gps信息系統(tǒng)初始化,設(shè)置串口,讀入地圖主界面開(kāi)始提取當(dāng)前位置信息若“評(píng)分”功能鍵按下若“gsm”功能鍵按下發(fā)送 點(diǎn)擊“關(guān)閉”返回主界面彈出學(xué)校介紹對(duì)話框彈出評(píng)分系統(tǒng)對(duì)話框點(diǎn)擊按鈕瀏覽信息點(diǎn)擊按鈕進(jìn)行投票統(tǒng)計(jì)點(diǎn)擊“關(guān)閉”返回主界面點(diǎn)擊“關(guān)閉”返回主界面查詢是否有隊(duì)友位置信息判斷是否為地理信息顯示提示信息,自動(dòng)接收 y繪制對(duì)方位置點(diǎn)到地圖上返回主界面是是否等待下次查詢 nyy 圖1-8四、系統(tǒng)總體開(kāi)發(fā)流程圖及進(jìn)度1、系統(tǒng)總體開(kāi)發(fā)流程圖,如圖1-9所示。arm9-2410開(kāi)發(fā)板bootloader的移植裁剪編譯linux2.4+qtopia制作系統(tǒng)鏡像文件燒錄鏡像文件,并能成功在開(kāi)發(fā)板上運(yùn)行qt環(huán)境的配置和搭建gps模塊串口通信的實(shí)現(xiàn)、制作電子地圖應(yīng)用程序的ui設(shè)計(jì),讀取地圖gsm模塊發(fā)送短信功能實(shí)現(xiàn)界面與模塊之間的整合測(cè)試,調(diào)試,完成軟件系統(tǒng)設(shè)計(jì)硬件系統(tǒng)設(shè)計(jì)安裝交叉編譯工具鏈圖1-92、項(xiàng)目整體進(jìn)度表及工作涉及工作量本項(xiàng)目整體進(jìn)度表如下圖1-10所示,主要工作量和涉及相關(guān)知識(shí)為:系統(tǒng)平臺(tái)搭建(硬件+軟件):嵌入式系統(tǒng)開(kāi)發(fā),linux操作系統(tǒng)應(yīng)用。gps、gsm模塊使用部分:?jiǎn)纹瑱C(jī),微機(jī)接口,主要用于串口操作實(shí)現(xiàn)信息提取、查詢,進(jìn)制計(jì)算轉(zhuǎn)換。 地圖部分:使用mapinfo制作電子地圖, gis導(dǎo)航使用,圖形學(xué)系統(tǒng)主體部分:嵌入式應(yīng)用程

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論