基于QT的多媒體車載導航系統(tǒng)GPS畢業(yè)論文_第1頁
基于QT的多媒體車載導航系統(tǒng)GPS畢業(yè)論文_第2頁
基于QT的多媒體車載導航系統(tǒng)GPS畢業(yè)論文_第3頁
基于QT的多媒體車載導航系統(tǒng)GPS畢業(yè)論文_第4頁
基于QT的多媒體車載導航系統(tǒng)GPS畢業(yè)論文_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 PAGE6 / NUMPAGES54畢業(yè)設計(論文)題 目基于QT的多媒體車載導航系統(tǒng)南 華 大 學畢業(yè)設計(論文)任務書學院:電 氣 工 程 學 院 題目: 基于QT的多媒體車載導航系統(tǒng) 起止時間:2011年 12月 15 日至2011年 5 月 30 日學生: 馬 步 云 專業(yè)班級: 自動化082 指導老師: 洪 鎮(zhèn) 南 教研室主任: 蘭 君 院 長: 立 宏 2011 年 12 月15日設計(論文)容與要求:一. 設計(論文)容:設計一個多媒體車載導航系統(tǒng),用于汽車定位,智能導航,多媒體娛樂,以達到優(yōu)化行車路徑,隨時查看所在地域,與時搜索餐飲、住宿、學校、醫(yī)院等方位,方便旅行的目的。設

2、計容1、多媒體車載導航系統(tǒng)的硬件系統(tǒng)設計:包括ARM 9 (S3C2410)模塊、256M Nand Flash模塊、2M Nor Flash模塊、Touch LCD模塊、GPS數(shù)據(jù)采集模塊。2、多媒體車載導航系統(tǒng)的軟件系統(tǒng):包括GPS數(shù)據(jù)采集模塊、車輛定位模塊、最短路徑的算法模塊、線路導航模塊、車載多媒體播放終端模塊、QT的系統(tǒng)搭建與移植模塊、基于Qt的百度地圖系統(tǒng)集成模塊、GPS設備驅(qū)動與嵌入式串口通信模塊。3、多媒體車載導航系統(tǒng)的性能要求(1)、定位功能:根據(jù)GPS采集到的經(jīng)緯度數(shù)據(jù)在地圖上定位顯示出當前位置。(2)、地圖導航功能:以當前地點作為起點,并且在地圖上制定的地方雙擊設置目的地

3、,經(jīng)過最短路徑算法,求出并顯示起到到終點的導航路徑。(3)、語音導航功能:模擬車輛運行,路徑移動,在相應的重要地點處,播報語音提示。(4)、娛樂功能:車載多媒體功能部分,可進行電影、音樂的選擇播放。(5)、導航地圖更新功能:利用在線百度地圖(API)進行地點的定位和路徑的選擇。二.設計(論文)要求:1. 獨立完成15000字以上的畢業(yè)論文一篇, 論文撰寫格式符合要求,數(shù)據(jù)準確,文字精煉。應包括目錄、中英文摘要、中英文關(guān)鍵詞、正文、參考文獻等。2原理圖、原理框圖和程序流程圖符合有關(guān)標準。參考文獻應有20篇以上,且外文文獻有5篇以上。3翻譯相關(guān)英文論文一篇,翻譯工作量不少于3000中文字,并附原文

4、;撰寫格式:按原文格式排版。4畢業(yè)論文用A4紙打印、按要求裝訂成冊。三. 設計(論文)進度:1查閱國外相關(guān)文獻資料,完成選題報告 (16周)2總體方案設計 (7周)3控制電路設計(8-11周)4元器件選擇 (12周)5軟件設計(12-14周)6撰寫畢業(yè)論文 (1415周)7初稿預審、正稿打印 (16周)8遞交畢業(yè)論文、畢業(yè)答辯 (17周)指導教師: .2011年12月22日南華大學本科生畢業(yè)設計(論文)開題報告設計(論文)題目基于QT的車載導航多媒體系統(tǒng)設計(論文)題目來源自主命題設計(論文)題目類型軟件設計起止時間2012-2-132012-5-10設計(論文)依據(jù)與研究意義隨著我們生活水平

5、的不斷提高,汽車數(shù)量急劇增加引起交通狀況惡化。目前,我國的機動車保有量正以15%的高速率增長,而我國城市道路的增長率僅為3%,交通擁擠狀況相當嚴重。因此,發(fā)展智能交通系統(tǒng)的意義非常重大。 GPS是20世紀80年代才開始應用于汽車交通領域的。但它的應用對減少交通阻塞、提高汽車運行效率、節(jié)約資源、提高安全性以與加強對車輛的集中管理和調(diào)度都有著非常重要的意義。我們想結(jié)合所學到的多媒體功能應用技術(shù)、嵌入式操作系統(tǒng)應用開發(fā)技術(shù)以與QT平臺技術(shù)以與未學到GPS應用技術(shù)、GPRS應用技術(shù)與GUI開發(fā)技術(shù)設計開發(fā)一套基于QT的車載導航系統(tǒng),包含定位功能、地圖導航功能、語音導航功能、娛樂功能等。這套系統(tǒng)可以為駕

6、駛員充分的提供交通、安全、娛樂等信息,實現(xiàn)人、車、路的結(jié)合統(tǒng)一。這將極大的提高交通運輸效率,保證交通安全,增強行車的舒適性。設計(論文)主要研究的容、預期目標 本課題是要設計一個車輛遠程監(jiān)控系統(tǒng)能將串口采集到的現(xiàn)場數(shù)據(jù)通過GPRS網(wǎng)絡傳輸?shù)奖O(jiān)控中心,也可以接受遠程端發(fā)送的數(shù)據(jù),再根據(jù)數(shù)據(jù)的容相應的完成各種命令。駕駛員可以根據(jù)命令提示選擇線路,也可以在停車的時候進行娛樂休閑。該系統(tǒng)主要分以下部分來實現(xiàn):1、GPS數(shù)據(jù)采集與車輛定位2、最短路徑的算法與線路導航3、嵌入式QT的系統(tǒng)搭建與移植4、基于QT的百度系統(tǒng)集成5、基于ARM9的GPS設備驅(qū)動與串口通信三、設計(論文)的研究重點與難點主要重點是

7、以當前地點作為起點,并且在地圖上制定的地方雙擊設置目的地,經(jīng)過最短路徑算法,求出并顯示起到到終點的導航路徑,此為導航儀的核心功能。整個設計會應用到GPS應用技術(shù)、GUI開發(fā)技術(shù)、多媒體功能應用技術(shù)、嵌入式操作系統(tǒng)應用開發(fā)技術(shù)、系統(tǒng)構(gòu)建技術(shù)、驅(qū)動編寫技術(shù)、數(shù)據(jù)庫技術(shù)等。需要自己查找文獻資料,并進行相關(guān)方面的學習。具體參考資料如下:1、C程序設計語言Brian W.Kerhighan & Dennis M.Ritchie 2、CC+編程指南林銳 3、More Effective C+Scott Meyers 4、Linux 系統(tǒng)移植勇 賀 聶強5、Linux System Programming

8、Robert Love6、UNIX 網(wǎng)絡編程W.Richard Stevens7、UNIX環(huán)境高級編程Dennis M.Ritchie8、Unix 編程藝術(shù)Enic S.Raymond9、Linux設備驅(qū)動 EditionJonathan Corbet,,Alessandro Rubini,Greg Kroah-Hartman設計(論文)研究方法與步驟進度安排如下:查找文獻資料,了解車載導航研究現(xiàn)狀,研究成果,發(fā)展趨勢與存在問題;為系統(tǒng)制定初步的設計方案;學習關(guān)于GPS、GPRS方面的知識;更熟練的掌握并應用C+、QT的應用,學習QT編程;熟悉為系統(tǒng)開發(fā)所適用的開發(fā)板,包括其相關(guān)的接口,引導,

9、核等信息;學習嵌入式系統(tǒng)構(gòu)建,制作交叉編譯器,編寫B(tài)ootloader、移植Linux核;對基本的Linux驅(qū)動程序開發(fā)進行學習,包括串口、I/O、A/D轉(zhuǎn)換等;進行GPS車載導航程序的移植;對整個系統(tǒng)進行整合并聯(lián)調(diào),解決其中出現(xiàn)的問題。五、進行設計(論文)所需條件1、查找相關(guān)最短路徑算法的文案、理解不同的最短路徑算法的主要思想2、學習關(guān)于GPS方面的知識3、學習基本的C+知識4、學習Qt編程5、編寫自己的最短路徑算法和GPS導航程序六、指導老師意見: 簽名:年 月 日摘要:隨著當前嵌入式技術(shù)和汽車產(chǎn)業(yè)的迅猛發(fā)展,車載導航系統(tǒng)成為當今汽車產(chǎn)業(yè)界的一大熱點之一。在歐美等發(fā)達國家,車載導航儀產(chǎn)品已

10、經(jīng)走向成熟,形成了規(guī)?;氖袌鲂枨蟆5袊能囕d自主導航產(chǎn)品市場剛剛啟動,許多產(chǎn)品尚處于實驗室研發(fā)階段。中國地域遼闊、人口眾多并發(fā)展迅速,必將成為巨大的汽車消費市場,因此隨著未來經(jīng)濟的發(fā)展,中國的車載導航產(chǎn)品將具有廣闊的市場空間。研究車載導航系統(tǒng)在提高行車安全性、減輕駕駛者員負擔等方面具有很大作用,對解決城市交通問題具有重要意義。本論文首先討論了車載導航系統(tǒng)的原理和硬件結(jié)構(gòu),然后分析設計了軟件系統(tǒng)的工作流程與實現(xiàn)方案;重點介紹了在ARM處理器和Linux操作系統(tǒng)實現(xiàn)車載導航終端各功能模塊的詳細過程。系統(tǒng)由GPS數(shù)據(jù)采集并顯示、地圖顯示兩大部分組成,模擬GPS導航的過程。通過GPS模塊、arm9

11、硬件環(huán)境、嵌入式LINUX操作系統(tǒng)、TFT觸摸屏等模塊來完成整個體系的運作,使其實時采集GPS數(shù)據(jù),然后將GPS數(shù)據(jù)對應的地圖顯示出來。本設計的特點在于界面友好、用戶易操作、功耗低、便于戶外導航。關(guān)鍵詞:ARM;LINUX;GPS;C+語言;嵌入式操作系統(tǒng)Abstract:With the rapid development of embedded technology and automobile industry,vehicle navigation system has been well-known in automobile industry. In developed countr

12、ies like Europe and US, car-borne navigator has matured and has a big market. However, this product appeared in China only a short time ago, so most of its types are still on trial. Due to its vast land, large population and rapid-developing economy, there will be a high consumption of cars in China

13、. Therefore, car-borne navigator will be in great demand in China with the development of economy in the future. To study vehicle navigation system has an important effect on improving security of vehicle, reducing pressure of drivers, so plays an important role in solving transportation problems.Th

14、is Paper first discusses the principle of the vehicle navigation system and the principle of hardware structure,then the analysis has designed sottwaresystemS work flow and realizes the plan,focused on the ARM processor and theLinux operating system to achieve vehicle navigation terminal and its fun

15、ctionalmodules of the detailed realization process.so this system consists of GPS data collection, map display composed of two parts, simulated GPS navigation process. Through the GPS module, arm9 hardware environment, embedded LINUX operating system, TFT touch screen and other modules to complete t

16、he operation of the entire system to collect real-time GPS data, GPS data and then display the corresponding map. This design feature is user-friendly, user easy to operate, low power consumption, easy to a trip.Keywords:ARM; LINUX; GPS; C + + language; embedded operating systemTOC o 1-3 h z uHYPERL

17、INK l _Toc3255534221、系統(tǒng)方案選擇和論證 PAGEREF _Toc325553422 h 1HYPERLINK l _Toc3255534231.1引言 PAGEREF _Toc325553423 h 1HYPERLINK l _Toc3255534231.2 方案說明 PAGEREF _Toc325553423 h 1HYPERLINK l _Toc3255534241.2.1、總體設計方案 PAGEREF _Toc325553424 h 1HYPERLINK l _Toc3255534251.2.2、系統(tǒng)功能說明 PAGEREF _Toc325553425 h 2HYP

18、ERLINK l _Toc3255534261.3、部分模塊設計方案 PAGEREF _Toc325553426 h 2HYPERLINK l _Toc3255534271.3.1、控制模塊設計方案 PAGEREF _Toc325553427 h 2HYPERLINK l _Toc3255534281.3.2、操作系統(tǒng)選擇方案 PAGEREF _Toc325553428 h 3HYPERLINK l _Toc3255534291.3.3、 GPS模塊選擇方案 PAGEREF _Toc325553429 h 3HYPERLINK l _Toc3255534301.3.4、顯示模塊設計方案 PAG

19、EREF _Toc325553430 h 4HYPERLINK l _Toc3255534311.3.5、地圖文件存放方案 PAGEREF _Toc325553431 h 4HYPERLINK l _Toc3255534321.4、總體方案確定 PAGEREF _Toc325553432 h 4HYPERLINK l _Toc3255534331.4.1、系統(tǒng)硬件方案 PAGEREF _Toc325553433 h 4HYPERLINK l _Toc3255534341.4.2、軟件需求 PAGEREF _Toc325553434 h 5HYPERLINK l _Toc3255534352、系

20、統(tǒng)的硬件設計與實現(xiàn) PAGEREF _Toc325553435 h 5HYPERLINK l _Toc3255534362.1、主控芯片電路 PAGEREF _Toc325553436 h 6HYPERLINK l _Toc3255534372.2、 flash芯片電路 PAGEREF _Toc325553437 h 7HYPERLINK l _Toc3255534382.2.1、Nand flash芯片電路 PAGEREF _Toc325553438 h 8HYPERLINK l _Toc3255534392.2.2、 nor flash芯片電路 PAGEREF _Toc325553439

21、h 8HYPERLINK l _Toc3255534402.3、串口電路 PAGEREF _Toc325553440 h 9HYPERLINK l _Toc3255534412.4、 usb端口電路 PAGEREF _Toc325553441 h 10HYPERLINK l _Toc3255534422.5、系統(tǒng)總線與lcd接口電路 PAGEREF _Toc325553442 h 10HYPERLINK l _Toc3255534432.6、電源電路 PAGEREF _Toc325553443 h 11HYPERLINK l _Toc3255534443、系統(tǒng)的軟件設計 PAGEREF _To

22、c325553444 h 11HYPERLINK l _Toc3255534453.1、系統(tǒng)概述 PAGEREF _Toc325553445 h 11HYPERLINK l _Toc3255534463.2、軟件詳細設計 PAGEREF _Toc325553446 h 11HYPERLINK l _Toc3255534473.2.1、主函數(shù) PAGEREF _Toc325553447 h 11HYPERLINK l _Toc3255534483.2.2、畫布 PAGEREF _Toc325553448 h 13HYPERLINK l _Toc3255534493.2.3、位圖元素 PAGERE

23、F _Toc325553449 h 13HYPERLINK l _Toc3255534503.2.4、GPS類 PAGEREF _Toc325553450 h 14HYPERLINK l _Toc3255534513.2.5、主界面 PAGEREF _Toc325553451 h 20HYPERLINK l _Toc3255534523.2.6、地圖窗口 PAGEREF _Toc325553452 h 22HYPERLINK l _Toc3255534533.2.7、多媒體播放窗口 PAGEREF _Toc325553453 h 23HYPERLINK l _Toc3255534543.2.8

24、、游戲窗口 PAGEREF _Toc325553454 h 24HYPERLINK l _Toc3255534553.2.9、日歷窗口 PAGEREF _Toc325553455 h 24HYPERLINK l _Toc3255534563.2.10、電子書窗口 PAGEREF _Toc325553456 h 25HYPERLINK l _Toc3255534573.2.11、聲卡驅(qū)動移植 PAGEREF _Toc325553457 h 26HYPERLINK l _Toc3255534583.2.12、觸摸屏驅(qū)動移植 PAGEREF _Toc325553458 h 26HYPERLINK l

25、 _Toc3255534593.2.13、RTC驅(qū)動 PAGEREF _Toc325553459 h 27HYPERLINK l _Toc3255534604、移植與測試 PAGEREF _Toc325553460 h 28HYPERLINK l _Toc3255534614.1、檢查編譯環(huán)境的搭建 PAGEREF _Toc325553461 h 29HYPERLINK l _Toc3255534624.2、圖形界面的搭建 PAGEREF _Toc325553462 h 30HYPERLINK l _Toc3255534634.3、測試 PAGEREF _Toc325553463 h 32HY

26、PERLINK l _Toc3255534645、總結(jié) PAGEREF _Toc325553464 h 361、 系統(tǒng)方案選擇和論證1.1、引言GPS 是英文Global Positioning System(全球定位系統(tǒng))的簡稱,而其中文簡稱為“球位系”。GPS是20世紀70年代由美國陸海空三軍聯(lián)合研制的新一代空間衛(wèi)星導航定位系統(tǒng) 。其主要目的是為陸、海、空三大領域提供實時、 全天候和全球性的導航服務,并用于情報收集、核爆監(jiān)測和應急通訊等一些軍事目的。隨著人民生活水平的發(fā)展,GPS技術(shù)被越來越多的應用在個人PDA、個人車載終端、手機等設備上。人們通過GPS,能準確知道自己所在的位置,從實現(xiàn)到

27、導航、確定旅游路線、獲取地理信息等功能。本文介紹的GPS導航系統(tǒng),以ARM作為主控芯片,配以GPS、TFT觸摸屏、嵌入式LINUX操作系統(tǒng),構(gòu)建了一個集GPS信息顯示、地圖顯示為一體的完整系統(tǒng)。本系統(tǒng)在一定程度上推動了GPS導航設備研究的發(fā)展。1.2 方案說明1.2.1、 總體設計方案個人手持設備要求界面美觀、功耗低、易于操作。系統(tǒng)應有彩色觸摸屏;低功耗、高速度的處理芯片;帶有嵌入式操作系統(tǒng);GPS信息接收模塊;sd卡用以存放地圖。模塊框圖分別如圖1所示:影音音頻數(shù)據(jù)交互用戶交互影音視頻定位導航信息娛樂模塊揚聲器ARM9平臺嵌入式Linux+Qt/ESD卡、USB存儲多媒體模塊GPS模塊液晶、

28、觸摸屏模塊圖1.1 系統(tǒng)結(jié)構(gòu)框圖1.2.2、 系統(tǒng)功能說明(1).定位功能GPS通過接收衛(wèi)星信號,可以準確地定出其所在的位置,位置誤差小于10米。利用GPS,在地圖上實時顯示車輛當前位置。(2).地圖導航功能輸入目標地點后,自動在地圖上顯示出行車路線;假如用戶因為不小心錯過路口,沒有走車載GPS導航系統(tǒng)推薦的最佳線路,新為用戶設計一條回到主航線路線,或是為用戶設計一條從新位置到終點的最佳線路。(3).娛樂功能播放U盤、SD卡中的MP3、MP4文件,也可查看電子書。(4).數(shù)據(jù)存儲功能將地圖文件,影音文件,電子書等數(shù)據(jù)存儲在SD卡中。1.3、 部分模塊設計方案1.3.1、 控制模塊設計方案ARM

29、是一種處理器的IP核。英國ARM公司開發(fā)出處理器結(jié)構(gòu)后向其他芯片廠商授權(quán)制造,芯片廠商可以根據(jù)自己的需要進行結(jié)構(gòu)與功能的調(diào)整,因此實際中使用的ARM處理器有很多種類,主要有三星、飛利浦、ATMEL、INTEL制造的幾大類,功能與使用上均不一樣。ARM處理器核還可以嵌入其他專用芯片中作為中央處理單元使用,例如飛利浦的MP3解碼芯片就是采用ARM7核心的。ARM系列處理器很少集成片上硬件資源,更接近今天的處理器疇,基本不被認為是單片機。 AVR單片機是ATMEL公司研制開發(fā)的一種新型單片機,它與51單片機、PIC單片機相比運行效率高很多、芯片部的Flsah、EEPROM、SRAM容量較大、全部支持

30、在線編程燒寫(ISP、每個IO口都可以以推換驅(qū)動的方式輸出高、低電平,驅(qū)動能力強、部資源豐富,一般都集成AD、DA模數(shù)轉(zhuǎn)換器;PWM;SPI、USART、TWI、I2C通信口;豐富的中斷源等。主要現(xiàn)在使用的型號是ATMEGA8/16。因此有以下兩種選擇方案。方案一:采用凌陽公司的16位單片機,它是16位控制器,具有體積小、驅(qū)動能力高、集成度高、易擴展、可靠性高、功耗低、結(jié)構(gòu)簡單、中斷處理能力強等特點。用于語音處理和識別等領域。滿足系統(tǒng)GPS模塊和語音導航功能的需要。但由于本系統(tǒng)需要彩色人機交互界面,對處理速度要求較高,故不采用。方案二:采用三星公司的s3c2440。s3c2440采用ARM92

31、0t核,實現(xiàn)了MMU、ARBA、BUS和Harvard的高速緩沖體系結(jié)構(gòu)。它是一塊高性能、低功耗的嵌入式芯片,并且可植入操作系統(tǒng)。在個人PDA領域應用較廣。植入操作系統(tǒng)后,用戶在GUI編程方面具有很大優(yōu)勢。它置AD/DA,便于擴展語音模塊。故選用此芯片為主控芯片。1.3.2、 操作系統(tǒng)選擇方案本項目選用Linux操作系統(tǒng),Linux操作系統(tǒng)廣泛應用在嵌入式設備中,因其源代碼開放、免費;核性能高效、多任務、可制定;完善的圖形管理、文件管理機制;良好的開發(fā)環(huán)境、強大的工具集。而且可移植QT開發(fā)環(huán)境,可實現(xiàn)跨平臺的編譯,代碼重用率高。最重要的是開放的源碼使開發(fā)成本降低。1.3.3、 GPS模塊選擇方

32、案方案一:采用串口接口GPS模塊。優(yōu)點:便于驅(qū)動,價格便宜。缺點:嵌入式linux的調(diào)試需要用到串口,若GPS模塊占用了串口會造成調(diào)試不便。故不采用方案二:采用usb接口GPS模塊。優(yōu)點:便于攜帶、連接開發(fā)板。缺點:驅(qū)動相對較難、價格相對較貴。為了便于調(diào)試和攜帶,采用usb接口GPS模塊。1.3.4、顯示模塊設計方案方案一:采用LCD顯示。液晶顯示屏(LCD)具有輕薄短小,低耗電量。但不能實現(xiàn)觸摸功能,故不采用。方案二:采用TFT顯示。TFT屏幕帶有四線式電阻觸摸膜,能實現(xiàn)觸摸功能、便于用戶操作,故采用。1.3.5、地圖文件存放方案方案一:采用s3c2440核心板置nand flash 存放。

33、Nand flash 讀取速度快。但容量較小,只有128M,不適合存放大量地圖數(shù)據(jù),故不采用。方案二:采用外置sd卡。Sd卡讀取速度相對較慢,且會增加成本。但能存放大量數(shù)據(jù)(),地圖更新升級也很方便。故采用。1.4、總體方案確定1.4.1、系統(tǒng)硬件方案表1.1系統(tǒng)硬件方案名稱說明CPUS3C2410, MPLL=200MFLASH2M norflash + 64M Nand FlashSDRAM64MUSB1個USB Host接口, 1.1標準網(wǎng)口10M串口2個3線串口SD卡接口sd卡容量1GI/O8路I/OLCD3.5寸240*320 TFT屏觸摸屏4線電阻式觸摸屏GPS模塊3線串口接線U盤

34、容量14G1.4.2、軟件需求表1.2 軟件需求名稱說明操作系統(tǒng)Linux-2.6.26開發(fā)工具GNU工具啟動代碼u-boot 1.3.4驅(qū)動程序所有硬件驅(qū)動文件系統(tǒng)根文件系統(tǒng)采用cramfs,用戶文件系統(tǒng)采用yaffs2GUIQT地圖百度地圖2、 系統(tǒng)的硬件設計與實現(xiàn)系統(tǒng)硬件采用友善之臂的mini2440開發(fā)板。Mini2440體積小,便于攜帶;接口豐富,易于擴展;功耗低,便于長時間戶外導航。Mini2440硬件特性如下圖:圖1.2 主控芯片電路2.1、 主控芯片電路主控芯片為s3c2440的6層核心板,該核心板性能穩(wěn)定、工藝精良。圖2.1 主控芯片電路2.2、 flash芯片電路flash

35、閃存是非易失存儲器,可以對稱為塊的存儲器單元塊進行擦寫和再編程。任何flash器件的寫入操作只能在空或已擦除的單元進行,所以大多數(shù)情況下,在進行寫入操作之前必須先執(zhí)行擦除。NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進行擦除前先要將目標塊所有的位都寫為0。由于擦除NOR器件時是以64128KB的塊進行的,執(zhí)行一個寫入/擦除操作的時間為5s,與此相反,擦除NAND器件是以832KB的塊進行的,執(zhí)行一樣的操作最多只需要4ms。執(zhí)行擦除時塊尺寸的不同進一步拉大了NOR和NADN之間的性能差距,統(tǒng)計表明,對于給定的一套寫入操作(尤其是更新小文件時),更多的擦除操作必須在基于NOR的單元中進行

36、。這樣,當選擇存儲解決方案時,設計師必須權(quán)衡以下的各項因素。 NOR的讀速度比NAND稍快一些。 NAND的寫入速度比NOR快很多。 NAND的4ms擦除速度遠比NOR的5s快。 大多數(shù)寫入操作需要先進行擦除操作。 NAND的擦除單元更小,相應的擦除電路更少。2.2.1、Nand flash芯片電路Nand flash是操作系統(tǒng)的程序存儲區(qū),該芯片掉電不丟失數(shù)據(jù)、壽命長,可反復擦寫。芯片容量128M。適合存放高密度數(shù)據(jù)結(jié)構(gòu)圖2.2 nand flash芯片電路2.2.2、 nor flash芯片電路Norflash是系統(tǒng)BIOS存儲區(qū)。該芯片掉電不丟失數(shù)據(jù)、壽命長,可反復擦寫。芯片容量8M。適

37、合高速度、低數(shù)據(jù)密度的數(shù)據(jù)結(jié)構(gòu)。NOR flash帶有SRAM接口,有足夠的地址引腳來尋址,可以很容易地存取其部的每一個字節(jié)。圖2.3 nor flash芯片電路2.3、 串口電路采用max3232電平轉(zhuǎn)換芯片與計算機通信。圖2.4 串口電路2.4、 usb端口電路采用usb2.0協(xié)議,usb接口是用來連接gps模塊。圖2.5 usb端口電路2.5、 系統(tǒng)總線與lcd接口電路圖2.6系統(tǒng)總線與lcd接口電路2.6、 電源電路系統(tǒng)的輸入電壓為DC5VC,因此可以通過LM1117-1.8、LM1117-33、MAX8869EU18芯片來轉(zhuǎn)換成系統(tǒng)需要的三種電壓分別為:1.8V、3.3V、1.25V

38、。圖2.6 電源電路3、 系統(tǒng)的軟件設計3.1、系統(tǒng)概述本系統(tǒng)的所有程序均采用C+語言編寫,開發(fā)工具為Qt,開發(fā)環(huán)境為ubuntu 11.10。應用軟件開發(fā)的模塊化思想來開發(fā)這個項目,程序定義了許多類來分別管理各個模塊,通過對各個類的操作,來構(gòu)建整個程序框架。各個類對象即可單獨提取出作為獨立的一個有機代碼,大大增加了項目的健壯性與可移植性。在將要進行的以下的代碼介紹中一般只給出了定義,某些類的具體實現(xiàn)未給出。3.2、軟件詳細設計3.2.1、主函數(shù)主函數(shù),項目入口,用于啟動其他模塊,并在屏幕上顯示主界面窗口。#ifndef MAINWINDOW_H#define MAINWINDOW_H#inc

39、lude #include #include gps.h#include mplayer.h#include ebook.h#include minesweeping.h#include ui_mainwindow.h/*namespace Ui class MainWindow;*/class MainWindow : public QMainWindow,public Ui:MainWindow Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); MainWindow();public slots: void ShowMpla

40、yer(); void ShowGps(); void ShowMine(); void ShowCalendar(); void ShowEbook();private: /Ui:MainWindow *ui;#endif / MAINWINDOW_H#include #include mainwindow.hint main(int argc, char *argv) QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();3.2.2、畫布定義畫布,在此畫布上進行圖形界面的生成,繪制,畫布也就相當于一個窗口界面

41、。我們所要展示的容都通過畫布產(chǎn)生界面,容在該界面生成,并且予以顯示。#ifndef MYCAVANS_H#define MYCAVANS_H#include #include mypixitem.hclass MyCavans:public QGraphicsScene Q_OBJECTpublic: explicit MyCavans(QObject *parent = 0); MyCavans(); int pd(int x,int y) if(x9|y9) return 0; return 1; void changeblock(int x,int y) pItemxy.changeMe

42、();protected: MyPixItem pItem1010; bool mineFlag100; int mNum;#endif / MYCAVANS_H3.2.3、位圖元素定義位圖元素,具體繪畫對象,以與在畫布上對繪畫對象的鼠標事件的回應。#ifndef MYPIXITEM_H#define MYPIXITEM_H#include #include class MyPixItem:public QGraphicsPixmapItempublic: MyPixItem(); bool getMflag() return mineflag; void changeMflag(bool m

43、) mineflag = m; void addM() isMine+; void makex(int a) x = a; void makey(int a) y = a; static void addok() okNum+; static int getok() return okNum; void changeMe(); int pd(int x,int y) if(x9|y9) return 0; return 1; signals: /void Pcheck(MyPixItem* p);protected: virtual void mousePressEvent(QGraphics

44、SceneMouseEvent *event);bool okflag; bool mineflag; bool markflag;int isMine; int x; int y; static int okNum;#endif / MYPIXITEM_H3.2.4、GPS類定義類GPS,用來讀取GPS接收器傳來的數(shù)據(jù),并進行分析處理,用于汽車定位等。#ifndef GPS_H#define GPS_H#include /#include ui_gps.hnamespace Ui class gps;class gps : public QDialog Q_OBJECTpublic: exp

45、licit gps(QWidget *parent = 0); gps(); int gpsState; void locate(float lng, float lat);protected: virtual void timerEvent ( QTimerEvent * event );private slots: void on_pushButton_clicked();private: Ui:gps *ui;int initGPS();void closeGPS();int getLngLat(float *longitude, float *latitude);#endif / GP

46、S_H#include gps.h#include#include#include ui_gps.h#include#include#include#include#include/#include#include#include #include #include using namespace std;gps:gps(QWidget *parent) : QDialog(parent), ui(new Ui:gps) ui-setupUi(this); gpsState = initGPS(); if (gpsState != 0) cerrGPS device can not be op

47、end gpsStateendl;gps:gps() closeGPS(); delete ui;void gps:locate(float lng, float lat) QString call = locateLngLat(; QString num; num.setNum(lng); call += num; call += , ; num.setNum(lat); call += num; call += ); cout lng: lng t lat: lat webView-page()-mainFrame()-evaluateJavaScript(call);void gps:t

48、imerEvent ( QTimerEvent * event ) static float lng = 121.49704f; static float lat = 31.276478f; lng += 0.00005f; lat += 0.00005f; int result = 0; if (result = getLngLat(&lng, &lat) = 0) coutlng lngtlatendl; locate(lng/100.0f, lat/100.0f); else cerrgetLngLat error resultendl;void gps:on_pushButton_cl

49、icked() static int timer = 0; if (timer = 0) if (gpsState != 0) QMessageBox:information( this, GPS, gps device can not be opened!, QMessageBox:Ok); return; timer = startTimer(5000); couttimer timerstartedendl; else killTimer(timer); couttimer timerstoppedendl; timer = 0; int set_opt(int fd,int nSpee

50、d, int nBits, char nEvent, int nStop) struct termios newtio,oldtio; if ( tcgetattr( fd,&oldtio) != 0) perror(SetupSerial 1); return -1; bzero( &newtio, sizeof( newtio ) ); newtio.c_cflag |= CLOCAL | CREAD; newtio.c_cflag &= CSIZE; switch( nBits ) case 7: newtio.c_cflag |= CS7; break; case 8: newtio.

51、c_cflag |= CS8; break; switch( nEvent ) case O: newtio.c_cflag |= PARENB; newtio.c_cflag |= PARODD; newtio.c_iflag |= (INPCK | ISTRIP); break; case E: newtio.c_iflag |= (INPCK | ISTRIP); newtio.c_cflag |= PARENB; newtio.c_cflag &= PARODD; break; case N: newtio.c_cflag &= PARENB; break; switch( nSpee

52、d ) case 2400: cfsetispeed(&newtio, B2400); break; case 4800: cfsetispeed(&newtio, B4800); cfsetospeed(&newtio, B4800); break; case 9600: cfsetispeed(&newtio, B9600); cfsetospeed(&newtio, B9600); break; case 115200: cfsetispeed(&newtio, B115200); cfsetospeed(&newtio, B115200); break; case 460800: cf

53、setispeed(&newtio, B460800); cfsetospeed(&newtio, B460800); break; default: cfsetispeed(&newtio, B9600); cfsetospeed(&newtio, B9600); break; if( nStop = 1 ) newtio.c_cflag &= CSTOPB; else if ( nStop = 2 ) newtio.c_cflag |= CSTOPB; newtio.c_ccVTIME = 0; newtio.c_ccVMIN = 100; tcflush(fd,TCIFLUSH); if

54、(tcsetattr(fd,TCSANOW,&newtio)!=0) perror( set error); return -1; return 0;static FILE *fp = NULL;int initGPS() int nset1; fp = fopen(/dev/ttyUSB0, r); if(NULL = fp) return 1; nset1 = set_opt(fileno(fp),4800, 8, N, 1); if (nset1 = -1) fclose(fp); return 2; return 0;void closeGPS() if (fp) fclose(fp)

55、; fp = NULL; int getLngLat(float *longitude, float *latitude) char buf128; char begin20; char SN2 = 0; char WE2 = 0; char *flager = ,; while (1) memset(buf,0,128); if(NULL = fgets(buf, sizeof(buf), fp) return 3; memset(begin, 0, sizeof(begin); strcpy(begin, strtok(buf, flager); if(0 = strcmp(begin,

56、$GPRMC) strtok(NULL, flager); strtok(NULL, flager); *latitude = atof(strtok(NULL, flager); strcpy(SN, strtok(NULL, flager); *longitude = atof(strtok(NULL, flager); strcpy(WE, strtok(NULL, flager); return 0; 3.2.5、主界面主窗體通過五個pushButton發(fā)送信號,彈出導航、多媒體、游戲、日歷和電子書五個窗體。點擊對應選項,將分別出現(xiàn)對應的界面。#ifndef MAINWINDOW_H#

57、define MAINWINDOW_H#include #include #include gps.h#include mplayer.h#include ebook.h#include minesweeping.h#include ui_mainwindow.h/*namespace Ui class MainWindow;*/class MainWindow : public QMainWindow,public Ui:MainWindow Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); MainWindow();publ

58、ic slots: void ShowMplayer(); void ShowGps(); void ShowMine(); void ShowCalendar(); void ShowEbook();private: /Ui:MainWindow *ui;#endif / MAINWINDOW_H#include mainwindow.hMainWindow:MainWindow(QWidget *parent) : QMainWindow(parent) setupUi(this); connect(pushButton_2,SIGNAL(clicked(),this,SLOT(ShowM

59、player(); connect(pushButton,SIGNAL(clicked(),this,SLOT(ShowGps(); connect(pushButton_3,SIGNAL(clicked(),this,SLOT(ShowMine(); connect(pushButton_4,SIGNAL(clicked(),this,SLOT(ShowCalendar(); connect(pushButton_5,SIGNAL(clicked(),this,SLOT(ShowEbook();MainWindow:MainWindow() /delete ui;void MainWindo

60、w:ShowMplayer() mplayer player; player.exec();void MainWindow:ShowGps() gps gps; gps.exec();void MainWindow:ShowMine() minesweeping minesweep; minesweep.exec();void MainWindow:ShowCalendar() QWidget *widget = new QWidget(); widget-setGeometry(0,0,320,240); widget-setWindowFlags(Qt:FramelessWindowHin

溫馨提示

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

評論

0/150

提交評論