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

下載本文檔

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

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論