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

付費下載

下載本文檔

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

文檔簡介

國家大學(xué)生創(chuàng)新性實驗計劃項目結(jié)題論文 中央民族大學(xué) 項目組成員: 邵燕 鄭旅軍 孫福成 指導(dǎo)教師:程衛(wèi)軍 職稱:副教授 項目編號: NMOE200811016 2009 年 12 月 15 日 基于 GPS+ARM+GSM 智能電子導(dǎo)游 設(shè)計與實現(xiàn) - 2 - 目錄 : 一、 選題背景 - - 3 - 二、 系統(tǒng)設(shè)計的關(guān)鍵問題及解決方案 - - 4 - 1、 GIS 電子地圖制作: - - 4 - 2、數(shù)據(jù)的接收及精度的提高 - - 8 - 1)測量的誤差來源 - - 8 - 2) GPS NMEA0183 接受協(xié)議 - - 9 - 3)定位信息的提取及處理 - - 10 - 4)改善定位精度 - - 10 - 3、 GSM 數(shù)據(jù)處理 - - 12 - 4、 GPS 與 GSM 及地圖顯示部分相互整合 - - 14 - 1系統(tǒng)硬件的選擇 - - 15 - 2系統(tǒng)軟件的選擇 - - 15 - 3系統(tǒng)整個程序流程的設(shè)計 - - 18 - 五、 研究成果 - - 22 - 參考文獻(xiàn): - - 23 - 致謝 - - 24 - - 3 - 基于 GPS+ARM+GSM 智能電子導(dǎo)游設(shè)計與實現(xiàn) 中央民族大學(xué) 邵燕 鄭旅軍 孫福成 指導(dǎo)教師:程 衛(wèi)軍 職稱:副教授 摘要: 本項目 在 GPS、 GSM的技術(shù)基礎(chǔ)上, 制作 了 數(shù)據(jù)格式的 中央民族大學(xué)電子地圖 來 開發(fā)智能導(dǎo)游系統(tǒng) 。 選取 ARM9-2410 開發(fā)板 和 嵌入式 Linux 操作系統(tǒng)進(jìn)行設(shè)計。通過 改進(jìn)卡爾曼算法實現(xiàn)更高精度的 GPS 定位 ; 通過 GSM 模塊短信通信 實現(xiàn) 導(dǎo)游儀間 的相互定位 ,將全球定位技術(shù)與第二代移動通信技術(shù)相結(jié)合很好地實現(xiàn)了 系統(tǒng) 功能 ; 使用 QT 進(jìn)行 程序界面設(shè)計 來實現(xiàn)人機(jī)交互,界面著重從藝術(shù)設(shè)計的 角度 出發(fā),注重人性化、智能化,界面美觀大方,易于操作。 關(guān)鍵字: GPS; ARM; GSM;電子導(dǎo)游 一、 選題背景 目 前,先進(jìn)的發(fā)達(dá)國家 旅游業(yè)界內(nèi)已經(jīng)廣泛采用非人工講解的導(dǎo)游儀。在我國,電子導(dǎo)游還屬于 新生事物,主要體現(xiàn)在 運用范圍不夠廣, 開發(fā)技術(shù)不夠成熟。 最早的電子導(dǎo)游使用是在廣西桂林漓江開始出現(xiàn),幾年來國內(nèi)的各著名旅游景點也逐步開始引入電子導(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)人性化的特點 。 其次,智能型電子導(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)和隊友走散的狀況,即使有手機(jī)等通訊工具,在陌生的特別是面積比較大的自然景區(qū),游客仍然 不能快而方便的找到彼此, 因此 項目組進(jìn)行了 智能電子導(dǎo)游的設(shè)計與實現(xiàn) , 使得上述情況發(fā)生時雙方能夠通過電子導(dǎo)游互相定位,直觀而方便的尋找到隊友。同時改進(jìn)電子導(dǎo)游的服務(wù)內(nèi)容,使其更加智能 - 4 - 化。在操作界面風(fēng)格上注重 人性化 設(shè)計,使其更好的為旅游者服務(wù)。 二、 系統(tǒng)設(shè)計的 關(guān)鍵問題 及解決方案 1、 GIS 電子地圖制作 : 項目涉及的是 GIS(地理信息系統(tǒng)) 在嵌入式設(shè)備上的應(yīng)用電子地圖瀏覽。典型的嵌入式 GIS應(yīng)用由嵌入式硬件系統(tǒng)、嵌入式操作系統(tǒng)、和嵌入式 GIS 軟件組成。由于嵌入式設(shè)備本身的條件限制,其數(shù)據(jù)存儲和處理能力有限, 在項目中我們采用 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)境,實現(xiàn)了一種能運行在以嵌入式 LINUX 為操作系統(tǒng)的設(shè)備上的導(dǎo)航電子地圖 。 a.生成電子地圖; 利用 mapinfo7.0 軟件制作本校區(qū)電子地圖, 如下圖 1-1 所示。 這里要注意地圖的地理坐標(biāo),因為這將涉及到后面 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 定義的 點 、線、面、多義線、區(qū)域、圓弧、文本、矩形、圓角矩形和橢圓等實體,具體如圖 1-2 所示。 MID 文件為對應(yīng)實體的屬性。掌握了文件關(guān)系之后,就可以用或語言編程實現(xiàn)對 .mif 文件的讀取。 圖 1-1 mipinfo 編輯軟件制作民大地圖 - 5 - 圖 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 所示 , K K 垂直 OP 軸 ,設(shè) O K與 OP 軸夾角為 u , KT 為 K 點在子午橢圓的切線 ,得 : 圖 1-3 - 6 - 則橢球圓上一點 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)原點的不同 ,坐標(biāo)軸的方向和刻度單位不同。因此 ,它們之間的變換只要通過比例變換、平移變換和旋轉(zhuǎn)變換就可以實現(xiàn)。假設(shè)原坐標(biāo)系的坐標(biāo)值為 ( X , Y) ,變換后的坐標(biāo)值為 ( sx , sy) , x 軸 , y 軸的比例變換因子分別為 xs , ys ;平移變換因子分別為 t x , ty ,旋轉(zhuǎn)角度為 ;則它們之間的坐標(biāo)變換可用下列方程實現(xiàn) : 比例變換方程為 : - 7 - 平移變換方程為 : 旋轉(zhuǎn)變換方程為 : 本項目中采用高斯 -克呂格投影。經(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ù)。 代碼實現(xiàn)為: 首先調(diào)用 translate() 函數(shù)轉(zhuǎn)化繪圖設(shè)備坐標(biāo)系統(tǒng)的原點( 0, 0)到窗口的左上角。具體 實現(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 圖形 界面的圖形 繪制: 圖形的繪制包括點、線等 的繪 制,繪制工作都是在類 Show 中的 paintEvent(QpaintEvent*)函數(shù)中完成的。 主要代碼如下 : Class MyMap:public QWidget Protected: Void paintEvent(QpaintEvent*); ; Void MyMap:paintEvent(QpaintEvent*0 - 8 - Qpainter 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ǔ),地圖的縮放和漫游就比較容易實現(xiàn)。地圖縮放只需在將平面坐標(biāo)轉(zhuǎn)化為屏幕坐標(biāo)時,將轉(zhuǎn)化比例再乘上一個縮放因子 K;同樣,地圖漫游只需在坐標(biāo)轉(zhuǎn)化時,加上或減去一個漫游常數(shù) scale.即可實現(xiàn)放大和縮小效果。但是在實際實現(xiàn)時,每一次地圖刷新都要重繪一次地圖,使得系統(tǒng)處理速度驟降,不能很好的工作,因此,項目在實際中采用 柵格形式和 實時 繪制 結(jié)合的方案,地圖主體以 柵格 顯示為主 ,關(guān)鍵點的數(shù)據(jù)采用讀取 .mif 文件中的信息來繪制。這樣,系統(tǒng)處理的速度得到了很大的提高,而美中不足是在放大縮小時圖像邊緣會有細(xì)小模糊出現(xiàn),但完全不影響整體效果。 2、 數(shù)據(jù)的接收及 精度的提高 1) 測量的誤差來源 在衛(wèi)星信號的收發(fā)過程中 , 以及對信號的傳播時間計算方面都不可避免的帶來誤差 , 引起定位誤差的因素有很多 , 大致可以分成以下幾類。 設(shè)備誤差 首先 , 雖然衛(wèi)星上裝了精確度很高的原子鐘 , 但是原子鐘還是存在誤差 , 衛(wèi)星軌道本身雖然很高但是收到地球大氣層的影響要產(chǎn)生 漂移 , 其次接收器本身時鐘也存在誤差和噪聲 , 這些都影響定位的精確度 ,但這些不是主要的。 大氣層的干擾 GPS 通過電波發(fā)送定時信號 , 當(dāng) GPS 信號經(jīng)過電離層 (Ionosphere)上一些帶電性的粒子及對流層(Troposphere)上的水汽時 , 信號便產(chǎn)生遲滯延時的現(xiàn)象。這些延時不可能提前預(yù)知 , 因為受到天氣的影響 , 另外還受到大氣環(huán)境的影響 , 在好的接收器中考慮了典型大氣層延時的影響 , 做了相應(yīng)的修正 , 但是不可能對大氣層的變化做出實時的 , 精準(zhǔn)的數(shù)學(xué)模型 , 所以大氣層 對定時信號的延時影響依然存 - 9 - 在 , 這也是影響定位精度的又一原因。 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è)計 , 出于美國自身及其盟國安全的考慮 , 在這一碼制當(dāng)中加入了時鐘偽碼和星歷偽碼 , 導(dǎo)致其定位精度在 100 米左右 ,提供給民間和非軍事同盟國使用。 P 碼 (Precise Code), 頻率為 10.23MHZ, 每七天重復(fù)一次可同時采用 L1 及 L2 載波變 , 主要提供軍事用途 P 碼的頻率大約是 C/A 碼的 10 倍不但更為精確 ,也更不易被干擾。這種定位精度很高的碼制只有美國軍方獨家使用 其他因素 以上前兩種都可以說是固有的誤 差 , 而 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)行全方位實時三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng)。 GPS 接收機(jī)接收到的數(shù)據(jù)通過串口輸入,其數(shù)據(jù)格式符合 NMEA0183 標(biāo)準(zhǔn) ,格式如下 圖 1-4 所示 : 圖 1-4 NMEA0183 標(biāo)準(zhǔn)語句 中,字段 0( GPGGA)中包含了我們所需要的所有定位信息,所以我們只取這段 - 10 - 數(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:校驗值 3)定位信息的 提取及處理 GPS 接收機(jī)接收到的數(shù)據(jù)以字符的形式進(jìn)入串口,我們把字符“ GA”作為標(biāo)志符,獲取經(jīng)度和緯度信息,程序代碼如下: (注)變量 buffi, buff_lati, buff_loni都是 char 型變量,電子地圖中使用的是 double型變量,所以需要把 char 型轉(zhuǎn)變成 double 型,程序代碼如下: 4)改善定位精度 - 11 - G P S 模塊數(shù)據(jù)采樣(以理工樓6 0 5 室為對象)116.3129116.313116.3131116.3132116.3133116.3134116.3135116.31361 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79采樣次數(shù)緯度G P S 測得數(shù)據(jù)GOOGLE EARTH測得數(shù) 據(jù)G P S 模塊數(shù)據(jù)采樣(以理工樓6 0 5 室為對象)39.947239.947339.947439.947539.947639.947739.947839.94791 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77采樣次數(shù)經(jīng)度G P S 測得經(jīng)度GOOGLE EARTH測 得經(jīng)度 GPS 單點定位系統(tǒng)誤差改正 比較實測觀測值與其真值 , 可以 看出 , Y 坐標(biāo) 、 X 坐標(biāo)均偏 大 。因此 ,本手持式 GPS 定位中存在著明顯的系統(tǒng)誤差 , 而量級在 10 米級 , 因此需要對所使用的儀器進(jìn)行誤差模擬來改善系統(tǒng)誤差對單點定位精度的影響。 按式 (3) 計算系統(tǒng)誤差均值 - 12 - ix, iy 為控制點的觀測值與其已知值之差。 經(jīng)系統(tǒng)誤差改正后的結(jié)果由式 ( 4) 計算。 4 算法上改善定位精度 系統(tǒng) 使用改進(jìn)的卡爾曼濾波算法 來 提高定位精度, 5針對最小二乘法和標(biāo)準(zhǔn)卡爾曼濾波的特點,通過偽距離估計出接收機(jī)的位置和鐘差,避免由于濾波初 值,系統(tǒng)噪聲方差以及測量噪聲方差帶來的濾波發(fā)散問題。在進(jìn)行卡爾曼濾波時 ,關(guān)鍵是 建立數(shù)學(xué)模型、 確定狀態(tài)向量、建立系統(tǒng)方程和測量方程、確定噪聲統(tǒng)計特性等。 6 3、 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ò)的短信來實現(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命令及其功能介紹如下: - 13 - AT 命令 功能 AT+IPR=9600 設(shè)置波特率為 B9600 AT&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ā)送信息代碼如下: 接收信息代碼如下: - 14 - 刪除信息代碼如下: 4、 GPS與 GSM 及地圖顯示部分 相互整合 在嵌入式 linux 下針對 GPS與 GSM 模塊分別編碼,成功實現(xiàn)各自功能后,需要在 qt 界面中將二者的代碼相互整合,實現(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ī)制 , 這個機(jī)制可以在對象之間彼此并不了解的情況下將它們的行為聯(lián)系起來, 取代了老舊的開發(fā)套件所使用的粗糙的回調(diào)和消息映射。其次模塊間任務(wù)的優(yōu)先級別不同, GPS需要實時的不斷接受信息,而 GSM 則只在需要的時候使用,因此要合適設(shè)計二者的運行方式,才能達(dá)到高效快捷的使用效果 - 15 - 三、 方案 選擇 1 系統(tǒng)硬件的選擇 1)本項目選擇芯 片 ARM9-2410 作為系統(tǒng)處理器, ARM9 系列芯片具有 高性能、廉價、耗能低 等特點,目前 已經(jīng)成功地廣泛應(yīng)用于嵌入控制、消費 /教育類多媒體、 dsp 和移動式應(yīng)用等領(lǐ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ù)處理能力。 8 2)本項目選擇 GSM 模塊來實現(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)運營商和系統(tǒng)開發(fā)商的重視,基于這種業(yè)務(wù)的各種應(yīng)用也蓬勃發(fā)展起來。利用 GSM 短信息 (SMS)進(jìn)行電子導(dǎo)游之間的通訊具有 成本低、可靠性高等特點。利用 GSM 短信息系統(tǒng)進(jìn)行無線通信還具有雙向數(shù)據(jù)傳輸功能,性能穩(wěn)定。 3) 本項目選擇 XW-GPS100 作為 GPS 定位模塊,它具有 速度快 、 靈敏度高 、 定位精度準(zhǔn) 、 智能化多徑檢測與抑制 等優(yōu)點。 GPS 即全球定位系統(tǒng)( Global Positioning System)是美國從 本世紀(jì) 70 年代開始研制,于 1994 年全面建成,具有在海、陸、空進(jìn)行全方位實時三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng)。 全球定位系統(tǒng)的主要特點包括全天候運行、全球覆蓋、三維定速定時高精度、快速省時高效率、應(yīng)用廣泛多功能等等。 9GPS 是目前世界上運用最廣泛,技術(shù)最成熟的定位技術(shù),可充分實現(xiàn)本項目的定位要求。 2系統(tǒng)軟件的選擇 1) PC端系統(tǒng)的選擇 進(jìn)行嵌入式開發(fā), PC 端系統(tǒng)選擇 一般有兩種方式,一 是選擇雙系統(tǒng)( Linux Windows XP) ;二 是選擇虛擬機(jī)安裝 LINUX。前者的優(yōu)點是運行速度快,缺 點是切換系統(tǒng)的時候需要重新啟動。后者的優(yōu)點是可以 任意 切換系統(tǒng),缺點是對硬件要求較高。 為了共享資料和方便查找網(wǎng)絡(luò)資源,本項目選擇方法 2,即在 Windows 主機(jī)上安裝虛擬宿主機(jī) ,作為開發(fā)環(huán)境。 2) 嵌入式操作系統(tǒng)的選擇 本項目選擇 嵌入式 Linux作為操作系統(tǒng)。 純商業(yè)性的嵌入式操作系統(tǒng)主要有 WinCE和 VxWorks,開源的嵌入式操作系統(tǒng)有嵌入式 Linux,其他的還有 uC/OS-II 等。 經(jīng)過比對幾款系統(tǒng)之間的利弊選擇 - 16 - 了嵌入式 Linux,它 是按照嵌入式操作系統(tǒng)的要求而設(shè)計的一種小型操作系統(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 的主要原因之一。而與之相匹配的實現(xiàn)我們選擇了 Qt 來實現(xiàn)各種應(yīng)與程序的人機(jī)交互,力求整個系統(tǒng)更加人性化和智能化。 ( 1) QT/ Embedded 軟件體系結(jié)構(gòu)介紹 QTE 是著名的 Qt 庫 開發(fā)商 Trolltech 公司開發(fā)的面向嵌入式系統(tǒng)的 Qt 版本 , 熟悉 Linux 界面設(shè)計的人一定對 QT 不會陌生 , 很多人正在使用的 KDE 就是基于 QT 圖形庫開發(fā)的 ,QT 自身則是通過使用Xlib 來實現(xiàn)其圖像顯示功能的。由于 Xlib 本身比較大 , 無法適應(yīng)嵌入式開發(fā)的需要 ,Trolltech 公司設(shè)計了新的 QTE 圖形庫 , 它在底層徹底摒棄了 X lib, 僅采用 framebuffer 作為底層圖形接口 , 而在上層依然保持原來 QT 的架構(gòu) , 使在很多 X Window 上設(shè)計的程序能非常方便的移植。 11 從 QT 到 QTE 的這個開發(fā)過程體現(xiàn)了軟件開發(fā)中非常重要的一個思想 : 軟件設(shè)計一定要保持易用性和可移植性。 QTE 是使用 C+語言設(shè)計的 , 雖然犧牲了一些效率 , 但在當(dāng)前很多界面開發(fā)人員已經(jīng)適應(yīng)了 MFC 的開發(fā)模式時 , 使用 C+無疑會更方便開發(fā)人員 。在代碼設(shè)計上 , Qt/Embedded 利用了 C+獨有的機(jī)制 , 如繼承、多態(tài)、模板等 , 具體實現(xiàn)非常靈活。但其底層代碼由于追求與多種系統(tǒng)、多種硬件的兼容 , 代碼補(bǔ)丁較多 , 風(fēng)格稍顯混亂。 2 . 軟件總體架構(gòu) 圖 1-6 - 17 - 上 圖 描述了 QTE 軟件的總體架構(gòu)。 QTE 共可分為三層架構(gòu) : a. 圖形引擎和事件驅(qū)動層 : 這一層通過調(diào)用和直接訪問 Linux 操作系統(tǒng)的 framebuffer 和輸入設(shè)備驅(qū)動實現(xiàn)。 b. 上層圖形層 : 圖形引擎封裝了對 FrameBuffer 的繪圖操作 , 是低級別的繪圖層 , 這一層抽象出對于顯示設(shè)備的具體操作接口 ( 圖形設(shè)備環(huán)境 ) , 如選擇畫刷、畫線、畫矩形、 alpha 操作等 , 為上層開發(fā)和用戶提供了圖形的抽象層。 c. 上層控件層 : 這一層通過公共抽象類 QWidget , 實現(xiàn)了用戶所需的主要控件類。 3 . 圖形引擎層的實現(xiàn) 這是整個系統(tǒng)最復(fù)雜的一部分 , 也使用了很多典型的設(shè)計模式。底層圖形引擎基于 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)隊列中取出并裝入新 的參數(shù) , 直到整個隊列中的 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ù)實現(xiàn)。下圖為 Qt/Embedded 中底層圖形引擎實現(xiàn)結(jié)構(gòu)。 圖 1-7 - 18 - 如 圖 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 實體。此時調(diào)用 QWSServer:openDisplay () 函數(shù)創(chuàng)建窗體 , 在 QWSServer:openDisplay( ) 中對 QWSDisplay: : Data 中的 init ()加以調(diào)用 ; 根據(jù)QgfxDriverFactory 實體中的定義 ( 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 后 , 其它需要運行的 Qt/Embedded 程序在加載后采用共享內(nèi)存及有名管道的進(jìn)程通信方式 , 以同步訪問模式獲得對共享資源 framebuffer 設(shè)備的訪問權(quá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è)計 作 為一個 同時使用 GPS 和 GSM 模塊的系 統(tǒng), 如何 處理 好 收發(fā)信息之間的同步關(guān)系和數(shù)據(jù)交互 這個問題特別重要,本項目使用 是使用定時器 的方式來實現(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)實時地接受 GPS 數(shù)據(jù),每一次從完整數(shù)據(jù)中提取出所需的基本信息如時間,經(jīng)緯 度等內(nèi)容,然后通過定時器觸發(fā)顯示到界面上,考慮到人的肉眼分辨頻率,數(shù)據(jù)刷新次數(shù)不易過快,同時也因為人的步行速度較慢,不需要達(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ī),這 - 19 - 種特性適合數(shù)據(jù)遠(yuǎn)程傳送 。 13本 項目 采用的是 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ì)的論述,此處不展開講解。 N Y Y 圖 1-8 設(shè)置共享方手機(jī)號碼 彈出 GSM對話框 若“介紹”功能鍵按下 每 3 秒觸發(fā)定時器,刷新一次 ,顯示信息到界面, 繪制位置點到地圖上 循環(huán)提取出所需數(shù)據(jù)并進(jìn)行優(yōu)化處理提高精度。 自動接受 GPS信息 系統(tǒng)初始化,設(shè)置串口,讀入地圖主界面 開始 提取當(dāng)前位置信息 若“評分”功能鍵按下 若“ GSM”功能鍵按下 發(fā)送 點擊“關(guān)閉”返回主界面 彈出 學(xué)校介紹 對話框 彈出 評分系統(tǒng) 對話框 點擊按 鈕瀏覽信息 點擊按鈕進(jìn)行投票統(tǒng)計 點擊“關(guān)閉”返回主界面 點擊“關(guān)閉”返回主界面查詢是否有隊友位置信息 判斷是否為地理信息顯示 提示信息,自動接收 Y 繪制對方位置點到地圖上 返回主界面 是 是 否 等待 下次查詢 - 20 - 四、系統(tǒng) 總體 開發(fā) 流程圖 及進(jìn)度 1、 系統(tǒng) 總體 開發(fā)流程圖 ,如圖 1-9 所示。 圖 1-9 ARM9-2410 開發(fā)板 Bootloader 的移植 裁剪編譯 Linux2.4+Qtopia 制作系統(tǒng)鏡像文件 燒錄鏡像文件,并能成功在開發(fā)板上運行 QT 環(huán)境的配置和搭建 GPS 模塊串口通信的實 現(xiàn)、制作電子地圖 應(yīng)用程序的 UI設(shè)計 ,讀取地圖 GSM 模塊發(fā)送短信功能實現(xiàn) 界面與模塊之間的整合 測試,調(diào)試,完成 軟件系統(tǒng)設(shè)計 硬件系統(tǒng)設(shè)計 安裝交叉編譯工具鏈 - 21 - 2、項目 整體進(jìn)度表及工作涉及工作量 本 項目 整體 進(jìn)度表 如下圖 1-10 所示, 主要工作量和涉及相關(guān) 知識為: 系統(tǒng)平臺搭建(硬件 +軟件): 嵌入式系統(tǒng)開發(fā), LINUX操作系統(tǒng)應(yīng)用。 GPS、 GSM 模塊使用部分: 單片機(jī),微機(jī)接口,主要用于串口操作實現(xiàn)信息提取、查詢,進(jìn)制計算轉(zhuǎn)換。 地圖部分: 使用 MAPINF

溫馨提示

  • 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

提交評論