基于gps和gprs的汽車防盜系統(tǒng)應(yīng)用軟件設(shè)計(jì)_第1頁
基于gps和gprs的汽車防盜系統(tǒng)應(yīng)用軟件設(shè)計(jì)_第2頁
基于gps和gprs的汽車防盜系統(tǒng)應(yīng)用軟件設(shè)計(jì)_第3頁
基于gps和gprs的汽車防盜系統(tǒng)應(yīng)用軟件設(shè)計(jì)_第4頁
基于gps和gprs的汽車防盜系統(tǒng)應(yīng)用軟件設(shè)計(jì)_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于XScale270嵌入式WinCE開發(fā)實(shí)驗(yàn)與實(shí)踐――EduKit系列叢書 Email:support@Tel:0755-256313651PAGE基于GPS和GPRS的汽車防盜系統(tǒng)應(yīng)用軟件設(shè)計(jì)摘要:隨著人們生活水平的提高,汽車己逐步進(jìn)入家庭,但伴隨科學(xué)技術(shù)的發(fā)展,汽車偷盜技術(shù)也越來越高,令人們防不勝防,已對全世界造成極大的危害,如何開發(fā)有效的汽車防盜裝置成為了一個重要的課題?;贕PS和GPRS的汽車防盜系統(tǒng)是把GPS技術(shù)和GPRS技術(shù)綜合在一起的高科技系統(tǒng),是對車輛管理提出的較理想的解決方案。本文主要介紹了汽車防盜系統(tǒng)的總體結(jié)構(gòu)與工作原理、軟件開發(fā)過程中所面臨的一些技術(shù)難點(diǎn),以及開發(fā)運(yùn)行過程中所要用到的開發(fā)工具和運(yùn)行平臺,詳細(xì)的論述了系統(tǒng)軟硬件的總體設(shè)計(jì)思想、各功能模塊的設(shè)計(jì)及其具體實(shí)現(xiàn)算法。在整個系統(tǒng)的設(shè)計(jì)過程中,充分考慮到了系統(tǒng)的可行性、正確性、穩(wěn)定性和可靠性,并且界面友好美觀大方,操作簡單方便快捷,適合作為車載設(shè)備使用。關(guān)鍵字:GPS、GPRS、汽車防盜、嵌入式開發(fā)Abstract:Withtheimprovementoflivingstandards,thecarhasbeengraduallyintothefamily.Butaccompaniedbythedevelopmentofscienceandtechnology,automobilethefthasbecomeincreasinglyhigh-technology,itisveryhardtoprotect,andtheworldhascausedagreatdealofharm.Sohowtodevelopeffectiveanti-theftcarDevicehasbecomeanimportantissue.GPRSandGPS-basedvehicleanti-theftsystemistheGPStechnologyandGPRStechnologyintegratedwithhigh-techsystems,isavehicleofchangeforthebettermanagementofthesolution.Thisarticleintroducedtheoverallstructureandtheworkingprincipleoftheautomobileanti-theftsystem,thesoftwaredevelopmentprocessfacedbyanumberoftechnicaldifficulties,aswellasthedevelopmenttoolsandoperatingplatform.Italsodiscussedindetailthesystem’shardwareandsoftwaredesignsThinking,thefunctionalmoduledesignandrealizationofspecificalgorithm.Throughoutthedesignprocess,fullytakingintoaccountthefeasibility,accuracy,stabilityandreliability.Andtheinterfaceisfriendly,anditissimpleandconvenientenoughtooperate,suitableforuseason-boardequipment.Keywords:GPS、GPRS、Automobileanti-theft、EmbeddedDevelopment目錄1.緒論 32.系統(tǒng)需求分析 42.1汽車防盜系統(tǒng)所要實(shí)現(xiàn)的功能 42.1.1系統(tǒng)的總體結(jié)構(gòu)與工作原理 42.1.2本次設(shè)計(jì)所要完成的工作 52.2軟件開發(fā)過程中的技術(shù)難點(diǎn) 62.3系統(tǒng)運(yùn)行平臺 62.4系統(tǒng)開發(fā)平臺 62.5系統(tǒng)使用條件 62.5.1頻率范圍 62.5.2環(huán)境要求 72.6軟件開發(fā)時間進(jìn)度表 73.系統(tǒng)設(shè)計(jì)開發(fā)中所用的關(guān)鍵平臺和技術(shù)的介紹 83.1EmbestEduKit-IV硬件運(yùn)行平臺 83.2WindowsCE6.0 93.3GPS接收機(jī)及其數(shù)據(jù)格式 93.4GPRS無線通信 103.5VisualStudio2005開發(fā)工具 114.系統(tǒng)總體設(shè)計(jì) 124.1硬件總體設(shè)計(jì) 124.1.1系統(tǒng)硬件總體構(gòu)架 124.1.2監(jiān)控中心硬件結(jié)構(gòu) 124.1.3車載終端硬件結(jié)構(gòu) 134.2軟件總體設(shè)計(jì) 144.2.1軟件總體設(shè)計(jì)結(jié)構(gòu)圖 144.2.2軟件各功能模塊的描述 145.軟件詳細(xì)設(shè)計(jì) 195.1車載終端軟件的詳細(xì)設(shè)計(jì) 195.1.1車載終端程序功能及主要流程圖 195.1.2軟件各功能模塊的詳細(xì)設(shè)計(jì) 225.2監(jiān)控中心軟件的詳細(xì)設(shè)計(jì) 405.2.1監(jiān)控中心系統(tǒng)的程序界面及功能描述 405.2.2軟件設(shè)計(jì)思想與流程圖 416.軟件測試 446.1基本信息 446.2測試實(shí)況記錄 446.3測試分析和建議 447.軟件使用手冊 467.1車載終端軟件的使用手冊 467.2監(jiān)控中心軟件的使用手冊 538.總結(jié) 57致謝 58參考文獻(xiàn) 591.緒論隨著人們生活水平的提高,汽車己逐步進(jìn)入家庭,對汽車防盜的要求也越來越高。但伴隨科學(xué)技術(shù)的發(fā)展,汽車偷盜技術(shù)也越來越高,令人們防不勝防,已對全世界造成極大的危害。汽車防盜無論是對汽車制造商還是社會保險(xiǎn)業(yè)都具有極其重要的研究價值,如何制定出更為嚴(yán)范的法規(guī),開發(fā)出更為有效的汽車防盜裝置,減少車主的損失是今后人們研究的重要課題。傳統(tǒng)的汽車機(jī)械防盜裝置主要是通過鎖輪胎、方向盤以及制動踏板等方法實(shí)現(xiàn)被動防盜,其安全性較差,尤其是不能解決防搶和遠(yuǎn)距離遙控報(bào)警的問題,一旦被偷盜就束手無策了。所以機(jī)械防盜技術(shù)的應(yīng)用己經(jīng)達(dá)到了其物理性能的極限,發(fā)展的潛力不大。針對目前世界范圍內(nèi)汽車盜竊案的上升趨勢,各汽車廠家都在不斷地改進(jìn)防盜技術(shù),尤其是隨著各種高性能傳感器、微控制器和GPS衛(wèi)星導(dǎo)航技術(shù)在汽車和汽車運(yùn)輸管理上的應(yīng)用,汽車智能化防盜技術(shù)也悄然降臨。其中利用GPS全球衛(wèi)星定位系統(tǒng)來做定位導(dǎo)航是GPS的最基本應(yīng)用,它能夠隨時提供車輛的地理位置,由于GPS技術(shù)應(yīng)用于移動目標(biāo)的監(jiān)控有著其他監(jiān)控手段無法比擬的優(yōu)勢,因此采用GPS技術(shù)對各種車輛實(shí)施防盜監(jiān)控、調(diào)度管理是一個新的研究熱點(diǎn)。盡管GPS技術(shù)能夠?qū)崟r提供車輛的位置,但這還是遠(yuǎn)遠(yuǎn)不足的,因?yàn)檐囍鞑豢赡苤苯雍托l(wèi)星對話,必須通過某些中間介質(zhì)來進(jìn)行信息的傳輸,而GPRS網(wǎng)絡(luò)是非常好的選擇。GPRS網(wǎng)絡(luò)覆蓋面積廣,傳輸速率高,使用者眾多,而GPRS網(wǎng)絡(luò)典型應(yīng)用就是在手機(jī)上,因此車主通過手機(jī)就可以對車輛進(jìn)行防盜控制了。本次設(shè)計(jì)就是在GPS和GPRS的基礎(chǔ)上開發(fā)出一套汽車防盜系統(tǒng),能夠?qū)ζ嚪辣I提供有效的支持,具有很強(qiáng)的實(shí)際應(yīng)用意義。2.系統(tǒng)需求分析2.1汽車防盜系統(tǒng)所要實(shí)現(xiàn)的功能2.1.1系統(tǒng)的總體結(jié)構(gòu)與工作原理基于GPS和GPRS的車輛防盜報(bào)警及指揮調(diào)度系統(tǒng)是把GPS技術(shù)、現(xiàn)代通用無線分組業(yè)務(wù)(GPRS)綜合在一起的高科技系統(tǒng),是對車輛管理提出的較理想的解決方案。該系統(tǒng)采用GPS技術(shù)對移動目標(biāo)進(jìn)行實(shí)時定位,利用GPRS數(shù)字移動通信網(wǎng)絡(luò)進(jìn)行實(shí)時數(shù)據(jù)傳輸,實(shí)現(xiàn)定位跟蹤、監(jiān)控報(bào)警、反劫防盜、指揮調(diào)度等功能。整個系統(tǒng)是由車載移動單元和指揮監(jiān)控中心兩個部分組成的,它們之間的通信是通過GPRS網(wǎng)絡(luò)來進(jìn)行的,系統(tǒng)的總體結(jié)構(gòu)圖如圖2-1所示。圖2-1系統(tǒng)總體結(jié)構(gòu)圖車載移動單元設(shè)備可以為指揮監(jiān)控中心實(shí)時提供每一個移動目標(biāo)的最新定位數(shù)據(jù)、運(yùn)行狀況和報(bào)警信息等,是用戶終端。指揮監(jiān)控中心則通過接收車載終端的信息,從而實(shí)時地顯示出當(dāng)前監(jiān)控的車輛的地理位置,另外還可以隨時對車載終端進(jìn)行控制。GPRS通信網(wǎng)絡(luò)則進(jìn)行數(shù)據(jù)、語音、圖像等的傳輸。整個系統(tǒng)的工作原理圖如圖2-2所示。圖2-2系統(tǒng)工作原理圖2.1.2本次設(shè)計(jì)所要完成的工作本次畢業(yè)設(shè)計(jì)最終所要達(dá)到的目的是開發(fā)出一套汽車防盜系統(tǒng)的軟件,然后把這個軟件運(yùn)行在一個專門的硬件平臺上,最后把這個硬件平臺安裝到汽車?yán)飳?shí)現(xiàn)防盜和報(bào)警的功能,系統(tǒng)運(yùn)行的結(jié)構(gòu)層次圖如圖2-3所示:圖2-3系統(tǒng)運(yùn)行的結(jié)構(gòu)層次圖圖2-3顯示的是汽車防盜系統(tǒng)開發(fā)完成后,在實(shí)際運(yùn)行中的系統(tǒng)總體軟硬件結(jié)構(gòu)圖。對照圖2中系統(tǒng)運(yùn)行的結(jié)構(gòu)層次圖,此次設(shè)計(jì)所要完成的工作只是開發(fā)最上層的終端應(yīng)用軟件,即開發(fā)車載終端的軟件。另外,為了更好的對車載終端軟件進(jìn)行測試,還開發(fā)了一套簡單的模擬監(jiān)控中心的軟件,它充當(dāng)指揮監(jiān)控的功能。在整個設(shè)計(jì)中,所進(jìn)行的是原型開發(fā),即只開發(fā)軟件,不進(jìn)行硬件平臺的設(shè)計(jì)和開發(fā),而是直接采用英蓓特公司開發(fā)的硬件平臺EduKit-IV實(shí)驗(yàn)箱。該硬件平臺已經(jīng)提供了相關(guān)的配套設(shè)備,如GPS模塊和GPRS模塊等,這些模塊的驅(qū)動程序也提供了,直接使用即可。另外,EduKit-IV實(shí)驗(yàn)箱并不是在裸機(jī)下直接運(yùn)行程序,而是提供了裁剪后的嵌入式操作系統(tǒng)WindowsCE6.0,使得開發(fā)出來的軟件能夠直接在操作系統(tǒng)上運(yùn)行,就像在PC機(jī)的操作系統(tǒng)上運(yùn)行一樣,非常方便。軟件的開發(fā)是在PC機(jī)上進(jìn)行的,采用的是基于VisualStudio2005的WindowsCE開發(fā)平臺,在軟件開發(fā)好了以后,就可以把生成的可執(zhí)行文件導(dǎo)入到EduKit-IV實(shí)驗(yàn)箱中的操作系統(tǒng)上,然后就可以在該平臺上運(yùn)行程序了。其中,所要開發(fā)的汽車防盜系統(tǒng)軟件具體要實(shí)現(xiàn)的功能如下:(1)車輛實(shí)時監(jiān)控:每一個移動目標(biāo)的最新定位數(shù)據(jù)、運(yùn)行狀況和報(bào)警信息等顯示在指揮監(jiān)控中心,保障監(jiān)控中心對車輛的實(shí)時監(jiān)控。(2)GPS定位顯示:當(dāng)前車輛的GPS定位信息顯示在車載移動單元上,供車主進(jìn)行查詢。(3)語音聯(lián)絡(luò):車載移動單元在傳輸車輛的位置信息同時還可以實(shí)現(xiàn)雙向通話。(4)收發(fā)短信:車主可以通過車載移動單元來進(jìn)行短信的收發(fā)。(5)車輛控制:監(jiān)控中心可以通過發(fā)送特殊指令的短信編碼來對車輛進(jìn)行控制。(6)特殊事件報(bào)警:當(dāng)車主遇到特殊事件時可實(shí)時向監(jiān)控中心報(bào)警,并可將車輛的實(shí)時位置以特殊的標(biāo)記顯示。2.2軟件開發(fā)過程中的技術(shù)難點(diǎn)(1)使用什么樣的開發(fā)平臺來進(jìn)行軟件的開發(fā)。(2)理解GPS獲取定位信息的工作原理,以及如何在軟件設(shè)計(jì)中通過使用GPS來獲取車輛的當(dāng)前定位信息。(3)理解GPRS進(jìn)行網(wǎng)絡(luò)通信的工作原理,以及如何通過GPRS來實(shí)現(xiàn)收發(fā)短信、撥打電話和接聽電話的功能。(4)如何使用GPRS來傳遞GPS數(shù)據(jù)信息。(5)如何識別系統(tǒng)發(fā)送過來的報(bào)警信息和控制信息。(6)采用什么方法把所開發(fā)出來的軟件導(dǎo)入到EduKit-IV實(shí)驗(yàn)箱中。(7)把軟件導(dǎo)入到實(shí)驗(yàn)箱中后,如何運(yùn)行和使用它。2.3系統(tǒng)運(yùn)行平臺深圳英蓓特信息技術(shù)有限公司開發(fā)的最新嵌入式教學(xué)平臺EduKit-IV,搭配核心XscalePXA270板和GPS、GPRS模塊,操作系統(tǒng)使用的是WindowsCE6.0。2.4系統(tǒng)開發(fā)平臺Microsoft的軟件開發(fā)平臺VisualStudio2005,其中嵌入操作系統(tǒng)WindowsCE6.0。PC機(jī)配置:CPU:Intel2.8GHz內(nèi)存:512M硬盤:80G操作系統(tǒng):WindowsXP2.5系統(tǒng)使用條件2.5.1頻率范圍(1)GPS頻率范圍:1575.42±1.023MHz(2)GPRS頻率范圍:890960MHz2.5.2環(huán)境要求由于整個系統(tǒng)使用到了EduKit開發(fā)板、GPS和GPRS模塊等硬件,因此對系統(tǒng)的使用環(huán)境有了一定的要求,具體如下:(1)存儲溫度:-55℃~+100℃(2)工作溫度:-10℃~55℃(3)相對濕度:5%~95%(4)海拔:-1600m~18000m2.6軟件開發(fā)時間進(jìn)度表表2-1軟件開發(fā)進(jìn)度表階段主要工作應(yīng)完成的文檔計(jì)劃起始時間計(jì)劃終止時間實(shí)際起始時間實(shí)際終止時間系統(tǒng)需求調(diào)研用戶需求及用戶環(huán)境可行性報(bào)告

論證項(xiàng)目可行性項(xiàng)目初步開發(fā)計(jì)劃需求分析確定系統(tǒng)運(yùn)行環(huán)境需求規(guī)格說明建立系統(tǒng)邏輯模型項(xiàng)目開發(fā)計(jì)劃確定系統(tǒng)功能及性能要求用戶手冊概要概要設(shè)計(jì)建立系統(tǒng)總體結(jié)構(gòu),劃分功能模塊概要設(shè)計(jì)說明書定義各功能模塊接口數(shù)據(jù)庫設(shè)計(jì)說明書(如果有)詳細(xì)設(shè)計(jì)設(shè)計(jì)各模塊具體實(shí)現(xiàn)算法詳細(xì)設(shè)計(jì)說明書確定模塊間詳細(xì)接口模塊測試計(jì)劃實(shí)現(xiàn)編寫程序源代碼程序調(diào)試報(bào)告進(jìn)行模塊測試和調(diào)試編寫用戶手冊用戶手冊測試測試整個軟件系統(tǒng)(健壯性測試)確認(rèn)測試報(bào)告

3.系統(tǒng)設(shè)計(jì)開發(fā)中所用的關(guān)鍵平臺和技術(shù)的介紹3.1EmbestEduKit-IV硬件運(yùn)行平臺本次設(shè)計(jì)在PC機(jī)上開發(fā)好了的軟件最后是要到EduKit-IV硬件平臺上運(yùn)行的。EmbestEduKit-IV教學(xué)實(shí)驗(yàn)平臺是一款功能強(qiáng)大的32位嵌入式ARM實(shí)驗(yàn)開發(fā)平臺,是深圳市英蓓特信息技術(shù)有限公司推出的具創(chuàng)新意識的EduKit系列第四代嵌入式教學(xué)實(shí)驗(yàn)平臺。如圖3-1所示:圖3-1EduKit-IV教學(xué)實(shí)驗(yàn)平臺實(shí)驗(yàn)箱外觀圖EmbestEduKit-IV教學(xué)實(shí)驗(yàn)系統(tǒng)的硬件由核心板、主板、功能模塊板以及相應(yīng)的適配器、連接線組成;軟件資源包含了當(dāng)前主流嵌入式操作系統(tǒng)Linux、WindowsCE6.0下的BSP包以及應(yīng)用程序。EmbestEduKit-IV支持多核多操作系統(tǒng),用戶可以根據(jù)學(xué)習(xí)、研究、開發(fā)的需要選擇軟硬件資源。EmbestEduKit-IV嵌入式ARM教學(xué)實(shí)驗(yàn)系統(tǒng)采用了模塊化的設(shè)計(jì)思路,整個硬件平臺的接口信號定義完整,在設(shè)計(jì)的時候充分考慮到了CPU的最大性能與最全功能,包含了各種功能模塊的接口,如GPS,GPRS,PWM電機(jī)、藍(lán)牙、FM收音等模塊,用戶可以方便地在平臺上進(jìn)行各種實(shí)驗(yàn)與實(shí)踐。此外,除了具有豐富的接口資源,此教學(xué)系統(tǒng)還具備了良好的擴(kuò)展性,比如,EduKit-IV預(yù)留了32位擴(kuò)展總線接口,從而大大減輕了用戶擴(kuò)展新功能的負(fù)擔(dān),方便用戶開發(fā)自已的目標(biāo)系統(tǒng)。本設(shè)計(jì)中采用的硬件組合方案主要是基于IntelXscalepxa270處理器的WindowsCE6.0嵌入式操作系統(tǒng)平臺,其中要配備的軟硬件資源主要包括EmbestEduKit-IV主板、Mini270核心子板(基于IntelXscalepxa270)、各種功能模塊板(如GPS模塊、GPRS模塊等)以及WindowsCE6.0下的板級支持包BSP。3.2WindowsCE6.0WindowsCE6.0是微軟開發(fā)的高度模塊化的嵌入式操作系統(tǒng),它可以根據(jù)目標(biāo)設(shè)備或平臺的不同特點(diǎn)進(jìn)行定制。在用戶定制的操作系統(tǒng)中,不需要的模塊可以被拿走,只有所需要的模塊才會被包含進(jìn)來;WindowsCE支持在多種不同的CPU硬件平臺上運(yùn)行,包括x86,MIPS,SuperH,ARM等嵌入式領(lǐng)域主流的CPU結(jié)構(gòu)。WindowsCE有著穩(wěn)健的實(shí)時性支持。實(shí)時性是指能夠在限定時間內(nèi)執(zhí)行完規(guī)定的功能,并對外部的異步事件做出反應(yīng)的能力。WindowsCE是一個實(shí)時操作系統(tǒng),實(shí)時支持功能在以下幾方面提升了其性能:支持嵌套中斷;允許更高優(yōu)先級別的中斷首先得到響應(yīng),而不是等待級別低的中斷服務(wù)線程完成;更好的線程響應(yīng)能力;對高級別的IST的響應(yīng)時間上限的要求更加嚴(yán)格;更多的優(yōu)先級別,256個優(yōu)先級別;更強(qiáng)的控制能力,對系統(tǒng)內(nèi)的線程數(shù)量的控制能力可使開發(fā)人員更好地掌握高度程序的工作情況;豐富的多媒體支持是WindowsCE的一大特性,基于DirectXAPI和WindowsMedia技術(shù)可以提供高性能的視頻、音頻、流式多媒體和3D圖形處理服務(wù)。另外,WindowsCE是一種開放的、可擴(kuò)展的、32位操作系統(tǒng),它被專門用于安裝在從工業(yè)控制器、通信集線器、自動售貨終端等企業(yè)設(shè)備到諸如數(shù)字照相機(jī)、電話和家庭娛樂設(shè)備等個人消費(fèi)品上。WindowsCE給開發(fā)人員提供了類似于Windows下的開發(fā)環(huán)境,它具有以下類似于Windows的內(nèi)建功能:MicrosoftWin32ApplicationProgrammingInterface(API)、ActiveXControls、消息隊(duì)列(MSMQ)、組件對象模型(ComponentObjectModel、COM)、動態(tài)模版庫(ActiveTemplateLibrary、ATL)和MFC。在WindowsCE中集成了ActiveSync功能,用戶可以通過串行接口、紅外接口或者網(wǎng)線把嵌入式設(shè)備和普通臺式PC方便的連接起來。另外WindowsCE還提供了內(nèi)建的多媒體功能(包括DirectX)、通信功能(TCP/IP,SNMP,TAPI等)。在本次的設(shè)計(jì)中,使用WindowsCE6.0作為EduKit-IV實(shí)驗(yàn)箱的操作系統(tǒng),它的界面和Windows有很大的相似之處,使用非常方便,穩(wěn)定性也不錯。由于WindowsCE6.0給開發(fā)人員提供了類似于Windows下的開發(fā)環(huán)境,因此在Windows下開發(fā)出來的軟件不需要經(jīng)過很大的改動就可以直接在WindowsCE6.0平臺下運(yùn)行,這非常有利于軟件的開發(fā)。3.3GPS接收機(jī)及其數(shù)據(jù)格式GPS即全球定位系統(tǒng)(GlobalPositioningSystem),這是一個由覆蓋全球的24顆衛(wèi)星組成的衛(wèi)星系統(tǒng)。這個系統(tǒng)可以保證在任意時刻,地球上任意一點(diǎn)都可以同時觀測到4顆衛(wèi)星,以保證衛(wèi)星可以采集到該觀測點(diǎn)的經(jīng)緯度和高度,以便實(shí)現(xiàn)導(dǎo)航、定位、授時等功能。這項(xiàng)技術(shù)可以用來引導(dǎo)飛機(jī)、船舶、車輛以及個人,安全、準(zhǔn)確地沿著選定的路線,準(zhǔn)時到達(dá)目的地。GPSOEM板用于接收GPS衛(wèi)星的信號,并計(jì)算出車載終端目前所在位置。它由變頻器、信號通道、微處理器和存儲單元組成。GPS模塊通過串行口向主控制器發(fā)送定位坐標(biāo);主控制器也可以向GPS模塊發(fā)送設(shè)置命令,以控制GPS模塊的狀態(tài)和工作方式。GPS模塊需要配備專門的GPS天線接收GPS衛(wèi)星信號。一般在比較開闊的地區(qū),需接收到三顆以上的GPS衛(wèi)星信號才能進(jìn)行準(zhǔn)確定位。在車載GPS智能終端系統(tǒng)中,把天線放置在車頂可以有比較好的定位效果。本次設(shè)計(jì)選擇的GPS是GM-305,其性能指標(biāo)如圖3-2所示。圖3-2GPS性能指標(biāo)圖GM-305接收機(jī)語句的輸入、輸出是通過RS-232串行接口完成,符合美國國家海洋電子協(xié)會制定的NMEA-0183通信標(biāo)準(zhǔn)格式。其通信端口的數(shù)據(jù)格式應(yīng)該設(shè)置為8個數(shù)據(jù)位、1個起始位和1個停止位;無奇偶校驗(yàn);波特率為115200b/s。NMEA-0183通信標(biāo)準(zhǔn)的輸出數(shù)據(jù)采用的是ASCII碼,其內(nèi)容包含了緯度、經(jīng)度、高度、速度、日期、時間、航向以及衛(wèi)星狀態(tài)等信息。語句有五種,對于不同的應(yīng)用,選用的語句記錄也不同,在本設(shè)計(jì)中只關(guān)心日期和時間、經(jīng)緯度、地面速度,因此只選用RMC記錄語句。一條$GPRMC語句包含13個記錄:語句標(biāo)識頭、世界時間、定位狀態(tài)、緯度、緯度方位、經(jīng)度、經(jīng)度方位、地面速度、地面路線、日期、磁偏角、校驗(yàn)和結(jié)束標(biāo)記,它一共占用70字節(jié)(其中還包括用于分隔記錄所使用的11個逗號),例如:$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10。3.4GPRS無線通信GPRS是通用分組無線業(yè)務(wù)(GeneralPacketRadioService)的簡稱,它突破了GSM網(wǎng)只能提供電路交換的思維方式,只通過增加相應(yīng)的功能實(shí)體和對現(xiàn)有的基站系統(tǒng)進(jìn)行部分改造來實(shí)現(xiàn)分組交換,這種改造的投入相對來說并不大,但得到的用戶數(shù)據(jù)速率卻相當(dāng)可觀。GPRS(GeneralPacketRadioService)是一種以全球手機(jī)系統(tǒng)(GSM)為基礎(chǔ)的數(shù)據(jù)傳輸技術(shù),可說是GSM的延續(xù)。GPRS和以往連續(xù)在頻道傳輸?shù)姆绞讲煌?,是以封包(Packet)式來傳輸,因此使用者所負(fù)擔(dān)的費(fèi)用是以其傳輸資料單位計(jì)算,并非使用其整個頻道,理論上較為便宜。GPS車輛定位監(jiān)控管理系統(tǒng)的通信方式有兩種:專用無線通信網(wǎng)和公眾GPRS網(wǎng)。GPS/GPRS車輛定位監(jiān)控管理系統(tǒng)利用GPRS短信息業(yè)務(wù)實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,短信息業(yè)務(wù)在移動臺和移動業(yè)務(wù)交換中心之間建立的是信令連接,具有優(yōu)先權(quán),可通率極高,誤碼率極低。這是GPRS公眾網(wǎng)帶來的專用網(wǎng)和集群網(wǎng)無法比擬的好處。短消息用于車輛監(jiān)控最大的優(yōu)點(diǎn)在于建立連接簡單,接續(xù)快,服務(wù)費(fèi)用低,這適合定時把定位信息發(fā)送到監(jiān)控中心。它與MCU之間采用標(biāo)準(zhǔn)的串行口進(jìn)行通信,通信的最高波特率可以達(dá)到

115200b/s。GPRS模塊與SIM卡之間主要通過SIMCLK和SIMDATA信號線進(jìn)行數(shù)據(jù)通信。為了保證發(fā)送短消息與短消息到達(dá)之間的時間間隔盡量短,選用的SIM卡最好是同一個電信運(yùn)營商提供的。在使用GPRS功能時,還需要選擇支持GPRS的SIM卡,并開通GPRS服務(wù)。該模塊還支持驅(qū)動兩路麥克風(fēng)、兩路揚(yáng)聲器和一路蜂鳴器。其中一路麥克風(fēng)和揚(yáng)聲器可以連到手柄的聽筒上,以實(shí)現(xiàn)車載電話功能;另一路可以實(shí)現(xiàn)監(jiān)聽和免提功能,但這兩路不能同時工作,如果在通話中需用免提方式,可以通過AT指令:AT+SPEAKER=0或1進(jìn)行切換。3.5VisualStudio2005開發(fā)工具VisualStudio是微軟公司推出的開發(fā)環(huán)境。是目前最流行的Windows平臺應(yīng)用程序開發(fā)環(huán)境。VisualStudio可以用來創(chuàng)建Windows平臺下的Windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和Office插件。VisualStudio2005是微軟在2005年發(fā)布的VisualStudio版本,這個版本是面向.NET框架的(版本2.0)。其中.NET的通用語言框架機(jī)制(CommonLanguageRuntime,CLR),其目的是在同一個項(xiàng)目中支持不同的語言所開發(fā)的組件,所有CLR支持的代碼都會被解釋成為CLR可執(zhí)行的機(jī)器代碼然后運(yùn)行。VisualStudio2005包含有面向Windows開發(fā)使用的VisualBasic、VisualC++,面向Java開發(fā)的VisualJ#和面向.NET開發(fā)的VisualC#等。首先在PC機(jī)上安裝了VisualStudio2005后,接下來再安裝WindowsEmbeddedCE6.0軟件,那么WindowsCE6.0就自動嵌入到了VisualStudio2005的開發(fā)環(huán)境中,然后就可以使用它來進(jìn)行嵌入式應(yīng)用程序開發(fā)。另外,在選擇創(chuàng)建新的項(xiàng)目文件的時候,可以選擇配置了WindowsCE的嵌入式開發(fā)環(huán)境。由于WindowsCE就是微軟專門給嵌入式或移動電子設(shè)備使用的操作系統(tǒng),那么給WindowsCE開發(fā)的程序就可以給各種嵌入式設(shè)備使用。當(dāng)然,代碼在編譯之前要選擇TargetPlatform(目標(biāo)平臺),不過代碼是不用改動的,編譯器會自動把它編譯成目標(biāo)平臺上的可執(zhí)行文件。在整個系統(tǒng)的開發(fā)過程中,本人選擇的是面向Windows開發(fā)的VisualC++開發(fā)語言,它能夠非常方便的設(shè)計(jì)出所需要的界面,而且它面向?qū)ο蟮墓δ芤彩沟瞄_發(fā)過程變得更加的清晰和容易。另外,使用VisualStudio2005開發(fā)平臺有一個非常大的好處,那就是它提供給了使用者一個PocketPC(PPC)模擬器,這個模擬器使得使用者能夠在沒有物理設(shè)備的條件下也能夠開發(fā),讓程序直接在模擬器上運(yùn)行。于是在開發(fā)好了WindowsCE的應(yīng)用程序之后,并不需要馬上到EduKit-IV實(shí)驗(yàn)箱上去調(diào)試和運(yùn)行,而是可以在本機(jī)上通過PocketPC模擬器來調(diào)試程序。PocketPC模擬器雖然可以模擬出一套虛擬的設(shè)備來,但是如果想要使用GPS和GPRS模塊等模擬器所沒有的功能,那么模擬器就無能為力了,必須得到真實(shí)的硬件平臺上運(yùn)行。

4.系統(tǒng)總體設(shè)計(jì)4.1硬件總體設(shè)計(jì)4.1.1系統(tǒng)硬件總體構(gòu)架汽車防盜系統(tǒng)的硬件主要由三部分組成:車載終端、無線數(shù)據(jù)鏈路和監(jiān)控中心系統(tǒng)。系統(tǒng)的結(jié)構(gòu)如圖4-1所示:圖4-1系統(tǒng)結(jié)構(gòu)圖系統(tǒng)總體結(jié)構(gòu)圖中各部分硬件的功能說明如下:1.車載終端車載終端安裝在目標(biāo)車輛中,用于采集GPS定位數(shù)據(jù);并包含語音呼叫,收發(fā)短信,意外報(bào)警控制等功能。2.無線數(shù)據(jù)鏈路控制中心與車輛之間的數(shù)據(jù)傳輸線路;本系統(tǒng)采用GPRS或CDMA的TCP/IP的無線通信模式,不僅通信穩(wěn)定而且具有較低系統(tǒng)運(yùn)行成本。3.監(jiān)控中心系統(tǒng)由計(jì)算機(jī)軟硬件系統(tǒng)和中心控制器組成。中心控制器接收所有車載終端發(fā)送過來的信號并交給計(jì)算機(jī)軟件系統(tǒng)進(jìn)行分析處理。4.1.2監(jiān)控中心硬件結(jié)構(gòu)系統(tǒng)監(jiān)控中心結(jié)構(gòu)如圖4-2所示,主要包括GPRS通信網(wǎng)絡(luò)、GIS終端、電子顯示屏、監(jiān)控終端、主控計(jì)算機(jī)。監(jiān)控中心接收車載移動單元傳送來的車輛GPS定位數(shù)據(jù)信息,并對車輛的報(bào)警和調(diào)度信息進(jìn)行處理,實(shí)時顯示車輛當(dāng)前精確位置,從而方便的實(shí)現(xiàn)對車輛的調(diào)度、監(jiān)控、指揮等功能;同時也可通過GPRS無線通信網(wǎng)絡(luò)向指定的車載臺發(fā)送各種控制指令,實(shí)現(xiàn)對車輛的遠(yuǎn)程控制和信息查詢服務(wù)。圖4-2GPS車輛監(jiān)控指揮系統(tǒng)中心結(jié)構(gòu)圖4.1.3車載終端硬件結(jié)構(gòu)車載終端是由主控制器CPU、GPS接收機(jī)、GPRS無線通信模塊、功能控制單元和監(jiān)控信息顯示框組成,其結(jié)構(gòu)原理如圖4-3所示。圖4-3車載終端硬件結(jié)構(gòu)原理圖車載終端通過GPS接收天線接收GPS衛(wèi)星發(fā)射的定位信號,經(jīng)過CPU主控器處理,計(jì)算出車輛的日期、時間、經(jīng)緯度、速度和行駛方向等定位數(shù)據(jù)。主控制器CPU是核心,處理接收機(jī)發(fā)來的定位信息,將定位信息顯示在監(jiān)控信息顯示框上,并控制GPRS模塊進(jìn)行短信息的收發(fā),控制單元實(shí)現(xiàn)遙控監(jiān)聽、請求服務(wù)、中文短信息接收及通話等功能。由于GPRS無線模塊和GPS模塊都以串口通信方式與MCU相連,因此硬件設(shè)計(jì)較簡單。4.2軟件總體設(shè)計(jì)4.2.1軟件總體設(shè)計(jì)結(jié)構(gòu)圖汽車防盜系統(tǒng)總體是由車載終端和監(jiān)控中心兩個獨(dú)立的部分組合而成的,在軟件設(shè)計(jì)的時候,要把這兩個部分分開來設(shè)計(jì)。其中車載終端除了為車主提供正常的通信功能外,還可以為指揮監(jiān)控中心實(shí)時提供車輛的最新定位數(shù)據(jù)、運(yùn)行狀況和報(bào)警信息等,此外還可以通過接收車主發(fā)來的控制信息對車輛進(jìn)行控制,即完成防盜的功能,它的總體結(jié)構(gòu)設(shè)計(jì)如圖4-4所示。圖4-4車載終端總體結(jié)構(gòu)圖監(jiān)控中心則通過GPRS網(wǎng)絡(luò)可以對車載終端進(jìn)行監(jiān)控和控制,它可以接收車載終端發(fā)來的報(bào)警信息,并發(fā)出報(bào)警提示,另外還可以發(fā)送特殊的命令來對車載終端進(jìn)行控制,它的總體結(jié)構(gòu)設(shè)計(jì)如圖4-5所示。圖4-5軟件設(shè)計(jì)總體結(jié)構(gòu)圖4.2.2軟件各功能模塊的描述軟件的整體結(jié)構(gòu)設(shè)計(jì)好了之后,接下來對各個功能模塊進(jìn)行說明,畫出它們的IPO圖。(1)GPS模塊的IPO圖圖4-6GPS模塊的IPO圖(2)報(bào)警模塊的IPO圖圖4-7報(bào)警模塊的IPO圖(3)GPRS通信模塊的IPO圖圖4-8GPRS模塊的IPO圖(4)防盜模塊的IPO圖圖4-9防盜模塊的IPO圖(5)獲取GPS數(shù)據(jù)模塊的IPO圖圖4-10獲取GPS數(shù)據(jù)模塊的IPO圖(6)發(fā)送短信模塊的IPO圖圖4-11發(fā)送短信模塊的IPO圖(7)撥打電話模塊的IPO圖圖4-12撥打電話模塊的IPO圖(8)接聽電話模塊的IPO圖圖4-13接聽電話模塊的IPO圖(9)接收短信模塊的IPO圖圖4-14接收短信模塊的IPO圖(10)分析短信模塊的IPO圖圖4-15分析短信模塊的IPO圖(11)監(jiān)控車載終端模塊的IPO圖圖4-16監(jiān)控車載終端模塊的IPO圖(12)指揮控制車輛模塊的IPO圖圖4-17指揮控制車輛模塊的IPO圖

5.軟件詳細(xì)設(shè)計(jì)由于整個系統(tǒng)是由車載終端和監(jiān)控中心兩部分組成的,因此在進(jìn)行詳細(xì)設(shè)計(jì)的時候,要分別對這兩個部分進(jìn)行描述和說明。5.1車載終端軟件的詳細(xì)設(shè)計(jì)5.1.1車載終端程序功能及主要流程圖車載終端程序總體是由兩個部分組成的,一個部分是程序剛開始時的系統(tǒng)初始化,這個時候要求輸入一些數(shù)據(jù)來對整個系統(tǒng)進(jìn)行初始化,另外一個部分是程序運(yùn)行的主界面,它實(shí)現(xiàn)了車載終端系統(tǒng)的所有功能。1.系統(tǒng)初始化界面圖5-1系統(tǒng)初始化對話框系統(tǒng)初始化對話框是在程序開始運(yùn)行時顯示的,主要是對系統(tǒng)的一些功能進(jìn)行初始化,具體如下:1)短信服務(wù)中心號碼:輸入的是與每個電話卡相對應(yīng)的短信服務(wù)中心的號碼,每個地方電話卡對應(yīng)的號碼都不一樣。2)報(bào)警監(jiān)控中心號碼:輸入的是當(dāng)前監(jiān)控中心的號碼,其中第一個號碼是必須輸入的,第二個號碼可選。當(dāng)在實(shí)驗(yàn)箱上點(diǎn)擊報(bào)警按鈕后,會自動發(fā)送當(dāng)前GPS信息到設(shè)定的報(bào)警號碼。3)防盜受控號碼設(shè)置:輸入的是允許對本系統(tǒng)進(jìn)行操作的電話號碼,如果發(fā)送的短信不在該號碼之內(nèi),則拒絕給予反饋。第一個號碼必須設(shè)置,另外兩個號碼可選。2.程序主界面圖5-2車載終端程序運(yùn)行主界面圖5-2為車載終端程序運(yùn)行的主界面,即在程序運(yùn)行過程當(dāng)中顯示的界面,界面的功能圖解如下:1)車輛定位信息:實(shí)時顯示當(dāng)前車輛的GPS定位信息。2)撥打電話功能:在電話號碼編輯框中輸入電話號碼后,點(diǎn)擊“撥號”就可以撥打電話了,點(diǎn)擊“掛機(jī)”就可以掛斷電話了;當(dāng)有來電時,來電對話框顯示的是來電的號碼,點(diǎn)擊“接聽”就可以接聽來電了。3)發(fā)送短信功能:在電話號碼編輯框中輸入要發(fā)送去的電話號碼,在短信內(nèi)容中輸入要發(fā)送的內(nèi)容,再點(diǎn)擊“發(fā)送”,就可以發(fā)送短信了。4)接收短信功能:當(dāng)有短信發(fā)送來的時候,電話號碼編輯框自動顯示發(fā)送來的短信號碼,短信內(nèi)容編輯框則顯示所有發(fā)送來的短信的內(nèi)容;點(diǎn)擊“清除”,就可以清除掉之前收到的所有短信。另外,系統(tǒng)內(nèi)置隱藏的功能如下:1)報(bào)警功能:在實(shí)驗(yàn)箱上,按鈕KEY2為報(bào)警按鈕,當(dāng)點(diǎn)擊它后,系統(tǒng)會自動發(fā)送當(dāng)前GPS信息到預(yù)先設(shè)定的報(bào)警監(jiān)控中心號碼。2)防盜功能:系統(tǒng)還可以根據(jù)接收到的不同短信號碼和內(nèi)容自動給予不同的反饋,如果接收到的短信號碼是報(bào)警監(jiān)控中心號碼或短信受控號碼,則根據(jù)短信不同的編碼內(nèi)容給予不同的操作和回復(fù);否則只是顯示該條短信,并不自動回復(fù)。短信內(nèi)容的編碼說明如表5-1。表5-1短信編碼表接收到的短信內(nèi)容系統(tǒng)操作說明GPS發(fā)送當(dāng)前定位信息到該電話號碼短信中必須包含GPS字符串GPS+BeepOn發(fā)送當(dāng)前定位信息到該短信號碼,打開蜂鳴器短信中必須包含GPS和BeepOn字符串GPS+BeepOff發(fā)送當(dāng)前定位信息到該短信號碼,關(guān)閉蜂鳴器短信中必須包含GPS和BeepOff字符串GPS+Contro/發(fā)送當(dāng)前定位信息到該短信號碼,設(shè)置電話號受控號所要設(shè)置的受控號碼,它前面必須為Control,后面必須為//;短信中必須包含GPS字符串GPS+Accredi/發(fā)送當(dāng)前定位信息到該短信號碼,發(fā)送當(dāng)前定位信息到號碼159123456789159123456789為要發(fā)送定位信息的號碼,它前面必須為Accredit,后面必須為//;短信中必須包含GPS字符串GPS+Alar/ 發(fā)送當(dāng)前定位信息到該短信號碼,設(shè)置報(bào)警監(jiān)控中心的號碼15912345678為所要設(shè)置的報(bào)警電話號碼,它前面必須為Alarm,后面必須為//;短信中心必須包含GPS字符串GPS+Tape發(fā)送當(dāng)前定位信息到該短信號碼,播放事先錄好的錄音帶短信中必須包含GPS和Tape字符串GPS+Shut發(fā)送當(dāng)前定位信息到該短信號碼,控制車輛熄火短信中必須包含GPS和Shut字符串3.軟件運(yùn)行的主要流程圖防盜系統(tǒng)是整個系統(tǒng)的核心,它在整個系統(tǒng)中不停的運(yùn)行著,通過它監(jiān)控中心可以實(shí)時的了解當(dāng)前車輛的信息,可以更好的對車輛進(jìn)行監(jiān)控和控制,防盜系統(tǒng)的主要流程圖如圖5-3所示。圖5-3防盜系統(tǒng)流程圖程序開始的時候,就初始化GPRS,GPRS接收器不停的接收數(shù)據(jù)并傳遞到串口。從GPRS的串口中讀取數(shù)據(jù),經(jīng)過分析,如果來的是短信,那么就提取短信的號碼和信息,接下來需要分析接收到的短信號碼和內(nèi)容,并根據(jù)它的號碼和內(nèi)容做不同的操作;如果不是短信,則進(jìn)行其余相應(yīng)的操作。5.1.2軟件各功能模塊的詳細(xì)設(shè)計(jì)(1)GPS模塊接收定位信息流程圖[gps_locate()]GPS模塊在程序中占有非常重要的地位,因?yàn)樵谠O(shè)計(jì)中就是通過使用它來獲取車輛的當(dāng)前定位信息的,通過它的的信息來對車輛進(jìn)行監(jiān)控和調(diào)度,它是防盜系統(tǒng)和報(bào)警系統(tǒng)實(shí)現(xiàn)的基礎(chǔ),GPS接收定位信息的流程圖如圖5-4所示。圖5-4GPS接收信息流程圖在對GPS模塊初始化后,就不停的接收GPS模塊傳遞過來的信息。GPS模塊接收到的信息有五種語句,對于不同的應(yīng)用,選用的語句記錄也不同,在本設(shè)計(jì)中只關(guān)心日期和時間、經(jīng)緯度、地面速度,因此只選用RMC記錄語句,即只接收包含$GPRMC字符串的信息。如果檢測GPS模塊傳來的信息包含$GPRMC,則調(diào)用GPS信息處理函數(shù)gps_handle(),對接收到的字符串信息進(jìn)行處理,分析出有用的信息。程序清單5-1顯示的是獲取GPS信息的程序代碼。程序清單5-1獲取GPS信息程序代碼 /******************************************************************* 函數(shù)名稱:CALLBACKGPS::gps_locate 描述:對GPS串口接收到數(shù)據(jù)進(jìn)行分析 輸入?yún)?shù):DWORDUserParam:用戶調(diào)用時傳遞過來的參數(shù) BYTE*buf:串口收到的數(shù)據(jù) DWORDbufLen:數(shù)據(jù)的長度 輸出參數(shù):無 返回:無 *********************************************************************/ voidCALLBACKGPS::gps_locate(DWORDUserParam,BYTE*buf,DWORDbuflen) { GPS*pGPS=(GPS*)UserParam; char*nStrBuf; //存儲串口傳來的數(shù)據(jù) DWORDiLen=0; //當(dāng)前還剩多少個字符 DWORDiRev=0; //當(dāng)前接收的第iRev個字符 BYTE*temp=buf; //數(shù)據(jù)長度 iLen=buflen; nStrBuf=newchar[iLen];//獲取串口信息 while(iRev<iLen) { nStrBuf[iRev]=(char)(*buf); iRev++; buf++; } iRev=0; //判斷收到的數(shù)據(jù)是否滿足我們的需要 while(iLen>40) { if('$'==nStrBuf[iRev]) { if(!strncmp(&nStrBuf[iRev],"$GPRMC",6)) //Format:$GPRMC,DATA,...,DATA { if(iLen<74) { break; } //處理接收到的數(shù)據(jù) pGPS->gps_handle(pGPS->m_UserParam,&nStrBuf[iRev+6]); break; }//endif } else { iLen--; }//endif iRev++; } delete[]nStrBuf; }(2)GPS信息處理函數(shù)[gps_handle()]GPS接收到當(dāng)前車輛的定位信息后,這些數(shù)據(jù)并不能直接拿來使用,必須得對這些數(shù)據(jù)進(jìn)行相應(yīng)的加工和處理,使之成為車主所需要的數(shù)據(jù),GPS信息處理流程圖如圖5-5所示:圖5-5GPS處理信息流程圖由于GPS接收到的信息有固定的格式,如$GPRMC,063741.998,A,2234.2551,N,11408.0338,E,000.0,276.0,150805,002.1,W*7C所示。當(dāng)從gps_locate()接收到有效的GPS數(shù)據(jù)信息時,就可以按照GPS固定的信息格式進(jìn)行分析處理,最后從中提取出時間、日期、經(jīng)度、緯度、地面速度和方向等信息,在分析的途中可以把分析出來的數(shù)據(jù)信息保存在全局變量mes_stack[]中,并把它們顯示在屏幕上的對話框中,讓車主也能夠知道自己的當(dāng)前位置信息。(3)GPRS模塊初始化流程圖[OnInitDialog()]GPRS的初始化主要是初始化GPRS串口,以及給GPRS模塊發(fā)送AT命令,初始化它的短信接收和發(fā)送的格式,以及電話的來電顯示格式,流程圖如圖5-6所示。圖5-6GPRS初始化流程圖只有對GPRS模塊進(jìn)行初始化之后才能夠正確的使用它,通過它來接收和發(fā)送數(shù)據(jù)。先初始化GPRS串口,然后發(fā)送AT命令對GPRS模塊進(jìn)行測試,如果測試通過則返回OK,否則返回ERROR。當(dāng)測試通過后,就可以發(fā)送AT+CMGF=1命令和AT+CSCS=\”GPRS\”來設(shè)置短信的文本模式,發(fā)送"AT+CSCA=\"+8613800270500\",145(其中+8613800270500指的是與GPRS模塊上插入的SIM卡相對應(yīng)的短信服務(wù)中心號碼)來設(shè)置短信服務(wù)中心的號碼等,接下來再通過發(fā)送AT+CLIP=1來設(shè)置電話的來電顯示模式。GPRS初始化見程序清單5-2所示。程序清單5-2GPRS初始化程序代碼 //GPRS串口初始化 m_nBaud=4800; //波特率 m_nCom=2; //串口號 m_cParity=0; //校驗(yàn) m_nDatabits=8; //數(shù)據(jù)位 m_nStopbits=1; //停止位 //設(shè)置串口回調(diào)函數(shù) m_Port.OnCommRecv=OnCommRecv; //打開串口 if(!m_Port.OpenPort((DWORD)this,m_nCom,m_nBaud,m_cParity,m_nDatabits,m_nStopbits)) { returnFALSE; } //GPRS初始化 BYTECMD_ATTest[]="AT\r"; if(!m_FTestAT) //m_FTestAT=FALSE,之前沒有測試 { m_Port.WritePort(CMD_ATTest,3); //AT m_FTestAT=TRUE; //已經(jīng)測試過了 Sleep(1000); //延遲等待串口的反饋 } SendATCmd(_T("AT+CMGF=1")); //設(shè)置為文本模式 SendATCmd(_T("AT+CSCS=\"GSM\"")); //設(shè)置為文本模式 //設(shè)置短信中心號碼 SetCenterNo(); SendATCmd(_T("AT+CSMP=17,167,0,241")); //設(shè)置文本模式參數(shù) //直接從模塊讀取短信息而不是利用模塊從SIM卡讀取短信息 SendATCmd(_T("AT+CNMI=2,2,0,0,0")); //設(shè)置短信的存儲模式 //設(shè)置來電顯示 SendATCmd(_T("AT+CLIP=1"));(4)防盜功能模塊的設(shè)計(jì)車載智能系統(tǒng)防盜功能的實(shí)現(xiàn)主要是通過獲取監(jiān)控中心或者是受控號碼(預(yù)先設(shè)置的允許對車輛進(jìn)行操作的電話號碼)發(fā)送來的短信,然后根據(jù)特定的短信編碼來執(zhí)行不同的操作,流程如圖5-7所示。圖5-7防盜功能模塊實(shí)現(xiàn)圖(5)GPRS接收短信流程圖[receiveMessage()]程序中通過使用GPRS模塊來接收短信,流程圖如圖5-8所示。圖5-8GPRS接收短信流程圖系統(tǒng)從GPRS模塊的串口中不斷的獲取數(shù)據(jù)進(jìn)行查找分析,如果收到的字符串包含”CMT”或”cmt”字符串,則說明發(fā)送來的是短信,然后通過短信處理函數(shù)receiveMessage()對接收到的字符串進(jìn)行分析,由于短信的格式都是固定的,就可以根據(jù)這個格式提取出短信的號碼和信息,并把短信的號碼和信息顯示在對話框中,然后調(diào)用分析函數(shù)analyRevMessage(),對短信的號碼和內(nèi)容進(jìn)行進(jìn)一步的分析,并根據(jù)這個分析做不同的操作。GPRS接收短信程序代碼見程序清單5-3所示。程序清單5-3GPRS接收短信程序代碼 /******************************************************************* 函數(shù)名稱:receiveMessage 描述:接收短信信息 輸入?yún)?shù):DWORDUserParam:調(diào)用時傳遞過來的參數(shù) BYTE*buf:接收到的短信信息 intbufLen:短信長度 輸出參數(shù):無 返回:無 *******************************************************************/ //接收到的短信格式如下 //+CMT:"+8613925129212",,"07/09/26,11:47:41+32"... voidGPRS::receiveMessage(DWORDUserParam,BYTE*buf,intbufLen) { intipos=100; inti; BYTE*temp=buf; char*message; BOOLret=FALSE; while(ipos>0) { if('"'==*temp&&'+'==*(temp+1)) { //獲取短信號碼 for(i=0;i<11;i++) { ShortMessageNo[i]=(char)*(temp+4); temp++; } ShortMessageNo[11]='\0'; //顯示電話號碼 response(UserParam,ShortMessageNo,9); if(bufLen<=32) { ret=TRUE; } break; } temp++; ipos--; } //分析接收到的短信 if(ret==FALSE) { analyRevMessage(UserParam,message); } m_FMessage=TRUE; delete[]message; }(6)GPRS分析接收到的短信流程圖[analyRevMessage()]對接收到的短信號碼和信息進(jìn)行進(jìn)一步的分析,見圖5-9.圖5-9分析短信流程圖當(dāng)接收到短信號碼和內(nèi)容時,要對它們進(jìn)行分析,如果此時的來電號碼不是設(shè)定的受控號碼或報(bào)警號碼,則不予回復(fù),否則根據(jù)表5-1的短信編碼表執(zhí)行不同的操作,監(jiān)控中心通過這來控制車載終端,從而實(shí)現(xiàn)汽車防盜的功能。對接收到的短信進(jìn)行分析見程序清單5-4所示。程序清單5-4分析短信信息程序代碼 /******************************************************************* 函數(shù)名稱:analyRevMessage 描述:對接收到的短信信息進(jìn)行分析 輸入?yún)?shù):DWORDUserParam:調(diào)用時傳遞過來的參數(shù) char*buffer:接收到的短信信息 輸出參數(shù):無 返回:無 *******************************************************************/ voidGPRS::analyRevMessage(DWORDUserParam,char*buffer) { //接收的短信號碼是否是受控號碼 if(TestControlNo(ShortMessageNo)) { if((strTmp.Find(_T("GPS"))>=0)) { //根據(jù)接收到的短信的不同的編碼來進(jìn)行不同的操作 if((strTmp.Find(_T("BeepOn"))>=0)) { //打開蜂鳴器 setBeepOn(); } elseif((strTmp.Find(_T("BeepOff"))>=0)) { //關(guān)閉蜂鳴器 setBeepOff(); } elseif((strTmp.Find(_T("Control"))>=0)) { //增添短信受控號碼 setControlNo(strTmp); } elseif((strTmp.Find(_T("Alarm"))>=0)) { //重新設(shè)置報(bào)警號碼 setAlarmNo(strTmp); } elseif((strTmp.Find(_T("Tape"))>=0)) { //激活事先錄制好的錄音帶 setTape(); } elseif((strTmp.Find(_T("Accredit"))>=0)) { //發(fā)送定位信息到設(shè)置的任意號碼 m_Accredit=strTmp; m_hThread=CreateThread(NULL,0,setAccredit,this,0,&m_dwThreadID); } elseif((strTmp.Find(_T("Shut"))>=0)) { //控制車輛熄火 setShut(); } else { //只是發(fā)送回當(dāng)前車輛的定位信息 response(UserParam,ShortMessageNo,11); } } } }(7)GPRS發(fā)送短信流程圖[Send()]程序中通過使用GPRS模塊來發(fā)送短信,流程圖如圖5-10所示。圖5-10GPRS發(fā)送短信流程圖開始時向GPRS模塊發(fā)送AT命令A(yù)T+CMGS=”電話號碼”,通知GPRS模塊,要發(fā)送短信了,如果發(fā)送成功,則GPRS模塊返回OK,否則就返回ERROR。如果發(fā)送電話號碼成功,接下來就可以把要發(fā)送的信息寫入到GPRS串口了,當(dāng)短信信息發(fā)送成功后,GPRS模塊返回OK,否則就返回ERROR。發(fā)送短信程序代碼見程序清單5-5所示。程序清單5-5發(fā)送短信程序代碼 /******************************************************************* 函數(shù)名稱:Send 描述:發(fā)送短信號碼 輸入?yún)?shù):char*buffer:要發(fā)送的短信信息,char*phoneNo:要發(fā)送到的短信號碼 輸出參數(shù):無 返回:無 ********************************************************************/ voidGPRS::Send(char*buffer,char*phoneNo) { BYTE*CMD_Cmgs=NULL; DWORDLenMessageNo,MessageLen; DWORDi; //獲取要發(fā)送的內(nèi)容 MessageLen=strlen(buffer); //數(shù)據(jù)長度 ShortMessageSend=newBYTE[MessageLen+2]; //把要發(fā)送的數(shù)據(jù)轉(zhuǎn)化為BYTE類型 for(i=0;i<MessageLen;i++) { ShortMessageSend[i]=(BYTE)(*buffer); buffer++; } buffer=buffer-MessageLen; ShortMessageSend[i++]=0x1A; ShortMessageSend[i]='\r'; MessageLength=MessageLen+2; //發(fā)送的短信的長度 //獲取要發(fā)送的電話號碼 LenMessageNo=strlen(phoneNo); CMD_Cmgs=newBYTE[LenMessageNo+11]; *CMD_Cmgs='a'; *(CMD_Cmgs+1)='t'; *(CMD_Cmgs+2)='+'; *(CMD_Cmgs+3)='c'; *(CMD_Cmgs+4)='m'; *(CMD_Cmgs+5)='g'; *(CMD_Cmgs+6)='s'; *(CMD_Cmgs+7)='='; *(CMD_Cmgs+8)='"'; for(i=0;i<LenMessageNo;i++) { *(CMD_Cmgs+(i+9))=*phoneNo; phoneNo++; } phoneNo=phoneNo-LenMessageNo; *(CMD_Cmgs+LenMessageNo+9)='"'; *(CMD_Cmgs+LenMessageNo+10)='\r'; //寫發(fā)信息命令,發(fā)送短信號碼 m_Port.WritePort(CMD_Cmgs,LenMessageNo+11); m_FTestCMGS=TRUE; //短信信息的發(fā)送在mySendMessage()中 delete[]CMD_Cmgs; } /******************************************************************* 函數(shù)名稱:mySendMessage 描述:發(fā)送短信消息 輸入?yún)?shù):無 輸出參數(shù):無 返回:無 ********************************************************************/ voidGPRS::mySendMessage() { RETAILMSG(TRUE,(TEXT("\r\nSendMesssage"))); //ShortMessageSend存的是短信信息,MessageLength存的是短信信息的長度 m_Port.WritePort(ShortMessageSend,MessageLength); m_FSendMessage=TRUE; }(8)使用GPRS撥打電話流程圖[Call()]在程序中,通過向GPRS模塊發(fā)送相應(yīng)的AT命令來實(shí)現(xiàn)撥打電話的功能,流程圖如圖5-11所示。圖5-11GPRS撥打電話流程圖在GPRS模塊初始化之后,如果想要撥打電話,可以直接發(fā)送AT命令A(yù)TDnumber(number為要撥打的電話號碼)到GPRS串口,GPRS模塊就可以進(jìn)行電話連接,如果撥通電話則返回OK,否則返回ERROR。撥打電話程序代碼見程序清單5-6所示。程序清單5-6撥打電話程序代碼 /******************************************************************* 函數(shù)名稱:Call 描述:撥打電話 輸入?yún)?shù):CStringstr:要撥打的電話號碼 輸出參數(shù):無 返回:無 *******************************************************************/ voidGPRS::Call(CStringstr) { //ATH:掛斷所有(可能一個或者多個)正在建立或者已經(jīng)建立的呼叫 BYTECMD_HangUp[]="ath\r"; BYTECMD_Call[17]; DWORDLen_CMD_SimID=8; BYTE*PhoneNo=NULL; BYTE*change1=NULL; DWORDLen_PhoneNO,i; if(!m_FDialOK) //如果沒有播出電話或者模塊不是處于電話連接狀態(tài) { Len_PhoneNO=str.GetLength(); change1=(BYTE*)(LPCTSTR)str; PhoneNo=newBYTE[Len_PhoneNO]; //把雙字節(jié)的字符轉(zhuǎn)化為單字節(jié)的字符 for(i=0;i<Len_PhoneNO;i++) { (*PhoneNo)=(*change1); change1=change1+2; PhoneNo=PhoneNo+1; } //PhoneNo存的就是電話號碼 PhoneNo=PhoneNo-Len_PhoneNO; //AT//撥號';'結(jié)束 CMD_Call[0]='a'; CMD_Call[1]='t'; CMD_Call[2]='d'; for(i=0;i<Len_PhoneNO;i++) { CMD_Call[i+3]=*PhoneNo; PhoneNo++; } CMD_Call[Len_PhoneNO+3]=';'; CMD_Call[Len_PhoneNO+4]='\r'; PhoneNo=PhoneNo-Len_PhoneNO; //如果沒有播出電話,則可以播電話 if(!m_FDial) { //撥打電話 m_Port.WritePort(CMD_Call,Len_PhoneNO+5); m_FDial=TRUE; } delete[]PhoneNo; } else//如果是打電話狀態(tài),則掛機(jī) { m_Port.WritePort(CMD_HangUp,4); m_FHangUp=TRUE; } }(9)使用GPRS接聽電話流程圖[receivePhone()]在GPRS模塊接收到數(shù)據(jù)后,根據(jù)其中是否含有RING或ring來判斷接收到的是否是電話,主要流程圖如圖5-12所示。圖5-12GPRS接聽電話流程圖系統(tǒng)從GPRS模塊的串口中不斷的獲取數(shù)據(jù)進(jìn)行查找分析,如果收到的字符串包含”RING”或”ring”字符串,則說明發(fā)送來的是請求通話的信息,然后通過電話接收函數(shù)receiveMessage()來對收到的字符串進(jìn)行分析,由于來電的格式都是如+CLIP:\"固定的,就可以根據(jù)這個格式提取出來電的號碼,接下來讓蜂鳴器鳴叫來提醒用戶,如果想要接聽來電,給GPRS模塊發(fā)送ATA命令就可,這時就要關(guān)閉蜂鳴器了。接聽電話程序代碼見程序清單5-7所示。程序清單5-7接聽電話程序代碼 /******************************************************************* 函數(shù)名稱:receivePhone 描述:獲取接收到的電話的號碼 輸入?yún)?shù):DWORDUserParam:調(diào)用時傳遞過來的參數(shù) BYTE*temp:接收到的串口信息 輸出參數(shù):無 返回:無 *******************************************************************/ voidGPRS::receivePhone(DWORDUserParam,BYTE*temp) { charphoneNo[12]; inti=0; //讀取電話號碼的格式:+CLIP:\" while(*temp!='"') { temp++; } temp++; //獲取來電號碼 while(*temp!='"') { phoneNo[i]=(char)(*temp); temp++; i++; } phoneNo[i]='\0'; response(UserParam,phoneNo,8); //顯示電話號碼 //轟鳴器響 setBeepOn(); }(10)報(bào)警信息處理的流程圖防盜系統(tǒng)只是向監(jiān)控中心報(bào)告自己的當(dāng)前位置,當(dāng)出現(xiàn)了各種意外事故時,它并不能實(shí)時的向監(jiān)控中心報(bào)告,因此這就需要報(bào)警系統(tǒng)了。當(dāng)汽車遭遇各種事故時,報(bào)警系統(tǒng)就能夠馬上的向監(jiān)控中心報(bào)告情況,使得監(jiān)控中心可以更快更好的對事故進(jìn)行處理,因此它也是組成本系統(tǒng)的核心之一。報(bào)警功能模塊的設(shè)計(jì)如圖5-13所示。圖5-13報(bào)警功能模塊實(shí)現(xiàn)圖當(dāng)觸發(fā)了報(bào)警事件后,GPRS模塊通過短信發(fā)送當(dāng)前車輛的GPS定位信息到調(diào)動監(jiān)控中心,從而來實(shí)現(xiàn)報(bào)警功能,處理流程圖如圖5-14所示。圖5-14報(bào)警系統(tǒng)流程圖在實(shí)驗(yàn)箱上有個報(bào)警按鈕KEY2,當(dāng)有事件觸發(fā)報(bào)警后,系統(tǒng)馬上就把當(dāng)前GPS獲取的定位信息通過GPRS短信發(fā)送到預(yù)先設(shè)置的監(jiān)控中心,由于GPRS模塊不能同時發(fā)送兩條短信,因此必須等第一條短信發(fā)送完畢之后,再發(fā)送第二條短信,具體處理過程程序代碼見程序清單5-8所示。程序清單5-8報(bào)警處理過程程序代碼 /**************************************************************

溫馨提示

  • 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

提交評論