版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 1 緒 論</b></p><p> 1.1 嵌入式技術(shù)研究背景</p><p> 當(dāng)今世界,伴隨著1946年第一臺電腦的誕生,世界開始了第三次科技革命,而電子科學(xué)、空間技術(shù)與計算機信息產(chǎn)業(yè)則組成這一次科技革命從20世紀(jì)中葉到現(xiàn)在的主角。電子產(chǎn)業(yè)的發(fā)展帶動了包括集成電路、計算機軟件技術(shù)、空間技術(shù)、生物工程、信息技術(shù)、通信技術(shù)等諸
2、多領(lǐng)域的快速發(fā)展,也衍生出第三次科技革命中重要的組成部分——嵌入式技術(shù)。</p><p> 隨著計算機、集成電路和通信技術(shù)的快速發(fā)展,嵌入式系統(tǒng)的性能逐步提高,功能也越來越豐富。其在眾多領(lǐng)域的應(yīng)用,給人們活帶來了便利的同時也改變著人們的生活方式、提高人們的生活質(zhì)量。特別是隨著嵌入式系統(tǒng)與Internet的緊密結(jié)合,使得嵌入式應(yīng)用項目越來越多樣化,產(chǎn)品功能也日益強大,極大地豐富了人們的生活。</p>
3、<p> 嵌入式微處理器是嵌入式系統(tǒng)核心,具有重量輕、體積小、低成本、高性能、可靠性高等優(yōu)點。目前主要的嵌入式處理器按體系結(jié)構(gòu)不同可分為五大類:ARM、POWERPC、MIPS、SH和x86系列。其中ARM處理器具備高性能、低功耗、低成本等顯著特點,是當(dāng)前32位和64位嵌入式處理器中應(yīng)用最為廣泛的一個系列。ARM公司只專注于設(shè)計高效IP內(nèi)核,授權(quán)給全世界各半導(dǎo)體公司使用,而不從事芯片銷售和生產(chǎn);其它半導(dǎo)體公司在ARM技術(shù)基
4、礎(chǔ)上,根據(jù)公司產(chǎn)品的定位,在添加各種設(shè)計后推出產(chǎn)品;最后由開發(fā)人員采用這些芯片來設(shè)計基于ARM技術(shù)的應(yīng)用產(chǎn)品。ARM公司成立二十多年來己經(jīng)發(fā)展為全球領(lǐng)先的IP供應(yīng)商,其生產(chǎn)模式也成為企業(yè)發(fā)展的典范。</p><p> 表1-1 ARM系列處理器內(nèi)核列表 </p><p> 2010年,ARM合作伙伴的出貨量達(dá)到了60億。 ARM核占手機處理器90%,上網(wǎng)本處理器30%,平板電腦處理器
5、70%的市場份額,已經(jīng)成為Intel的強勁競爭者。目前業(yè)界可以提供ARM內(nèi)核處理器的著名半導(dǎo)體公司有Samsung、TI、Freescale、Analog Devices、CirrusLogic和Intel等。S3C2410處理器就是Samsung提供的一款采用32位ARM內(nèi)核的處理器。</p><p> 嵌入式操作系統(tǒng)是支持嵌入式系統(tǒng)工作的操作系統(tǒng)軟件,一般用于比較復(fù)雜的嵌入式系統(tǒng)軟件開發(fā)中。嵌入式操作系統(tǒng)是
6、嵌入式系統(tǒng)的靈魂,一般具有實時性,它的出現(xiàn)減少了系統(tǒng)開發(fā)的總工作量,極大的提高了嵌入式系統(tǒng)開發(fā)效率,而且提高了嵌入式應(yīng)用軟件的可移植性。目前與嵌入式應(yīng)用相結(jié)合的常見嵌入式操作系統(tǒng)有VxWorks、Linux、WinCE、μCOS II等。</p><p> 1.2 GPS技術(shù)研究背景</p><p> 自1978年2月22日第一顆GPS試驗衛(wèi)星Navstar 1進(jìn)入軌道以來,30多年
7、來GPS已經(jīng)在社會發(fā)展、科技創(chuàng)新、軍事偵察、環(huán)境保護、地理測量等方面發(fā)揮了巨大的作用。以GPS為代表的衛(wèi)星導(dǎo)航定位應(yīng)用產(chǎn)業(yè)已成為國際公認(rèn)的八大無線產(chǎn)業(yè)之一。隨著美國GPS技術(shù)的不斷發(fā)展和設(shè)備更新?lián)Q代,其應(yīng)用領(lǐng)域?qū)絹碓綇V,應(yīng)用水平也會越來越高,而其性能亦會越來越完善。一般說來GPS衛(wèi)星發(fā)射的導(dǎo)航、定位信號是一種時空信息資源,可以向全球范圍內(nèi)的用戶提供海拔、位置、速度和時間等信息。隨著GPS技術(shù)從軍事專用轉(zhuǎn)向軍民兩用,GPS在民用市場所
8、蘊藏的巨大商機被發(fā)掘出來,進(jìn)一步推動了GPS技術(shù)的發(fā)展。GPS不僅用于導(dǎo)彈的引導(dǎo)系統(tǒng)、飛船的控制和引導(dǎo),更是廣泛應(yīng)用于安全防護、交通運輸、監(jiān)控指揮、抗震救災(zāi)、地理物理勘探、高精度測量等方面。尤其是隨著集成電路技術(shù)和衛(wèi)星導(dǎo)航接收機的發(fā)展,使得GPS接收機向著小型化、智能化方向發(fā)展。采用嵌入式技術(shù)突破以往GPS接收機由于處理器速度和體積而導(dǎo)致實時性不足的限制。更出現(xiàn)了融通信、計算機、GPS導(dǎo)航定位于一體的個人終端,使衛(wèi)星導(dǎo)航技術(shù)真正從專業(yè)應(yīng)
9、用走向了大眾應(yīng)用,成為繼通信、互聯(lián)網(wǎng)之</p><p> 2008年6月24日DataBeans發(fā)布的一份研究報告顯示,全球定位系統(tǒng)IC的需求在上升,芯片價格大幅下跌,開始廣泛應(yīng)用于手機市場、以及成熟的PND和汽車市場。GPS電子設(shè)備的出貨量在2007年達(dá)到一億兩千六百萬臺,年度復(fù)合增長率達(dá)到20%,預(yù)計2013年將達(dá)到5億臺。而最新的2011年的數(shù)據(jù)顯示,美國汽車GPS普及率為65%,在歐盟國家和日本的普及率
10、則更高,分別達(dá)到73%和76%。與之相比,我國汽車GPS普及率不到10%。與美國和歐盟相比,可以看出我國汽車GPS定位系統(tǒng)的市場發(fā)展空間巨大。</p><p> 由于嵌入式系統(tǒng)的高速發(fā)展和GPS應(yīng)用的推廣,尤其是我國北斗導(dǎo)航系統(tǒng)的亞太組網(wǎng)成功和開放使用,車載導(dǎo)航系統(tǒng)和手持導(dǎo)航設(shè)備的開發(fā)已經(jīng)成為嵌入式系統(tǒng)發(fā)展的一個熱門方面。當(dāng)前我國城市化進(jìn)程加快,城市建設(shè)和發(fā)展速度越來越快,道路變得日益錯綜復(fù)雜,找到一種使人們能
11、夠從容面對錯綜復(fù)雜的交通網(wǎng)的解決方案己經(jīng)迫在眉睫。而GPS定位和導(dǎo)航技術(shù)的應(yīng)用和發(fā)展,為這個問題帶來了很好的解決方案。因此,研究和開發(fā)基于ARM的GPS定位系統(tǒng)具有現(xiàn)實意義。</p><p> 1.3 嵌入式系統(tǒng)</p><p> 1.3.1 嵌入式系統(tǒng)的概述</p><p> 嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ),軟件硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對成
12、本、功能、可靠性、功耗、體積等有嚴(yán)格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及各種應(yīng)用程序四個部分組成,用于實現(xiàn)對其他設(shè)備的控制、監(jiān)視或管理等功能。由嵌入式系統(tǒng)的定義可見,嵌入式系統(tǒng)具有專業(yè)性強、技術(shù)密集、系統(tǒng)精簡等幾大特點:</p><p><b> (1) 專用性強</b></p><p> 嵌入式系統(tǒng)與應(yīng)用緊密的結(jié)
13、合,具有很強的專用性。面對個性化需求,其軟件系統(tǒng)和硬件平臺的結(jié)合非常緊密,針對不同的硬件系統(tǒng)進(jìn)行軟件移植需要根據(jù)系統(tǒng)的的變化進(jìn)行軟件的相應(yīng)修改;同時隨著任務(wù)的不同,往往需要對軟件進(jìn)行不同的設(shè)計和修改;而程序的編譯下載也要和系統(tǒng)相結(jié)合。 </p><p><b> (2) 技術(shù)密集</b></p><p> 嵌入式系統(tǒng)是為了滿足各行各業(yè)的不同需求,將先進(jìn)的計算機、電
14、子和半導(dǎo)體等技術(shù)進(jìn)行相互結(jié)合后的產(chǎn)物。這一點決定了它必然是一個技術(shù)密集的需要不斷創(chuàng)新和研究的領(lǐng)域和知識集成系統(tǒng)。</p><p><b> (3) 系統(tǒng)精簡</b></p><p> 嵌入式應(yīng)用系統(tǒng)必須根據(jù)應(yīng)用需求在滿足應(yīng)用系統(tǒng)的可靠性、功能、體積、成本等要求的情況下對軟硬件進(jìn)行裁剪。目前開發(fā)嵌入式系統(tǒng)的一般方法是:先設(shè)計一個相對通用的軟硬件平臺,然后在此基礎(chǔ)上進(jìn)
15、行軟硬件裁剪、優(yōu)化和擴展,從而設(shè)計出各種需要的應(yīng)用系統(tǒng)。一般的嵌入式系統(tǒng)結(jié)構(gòu)自底向上可分為3個部分,如圖1-1所示。</p><p> 圖1-1 嵌入式系統(tǒng)結(jié)構(gòu)</p><p> 嵌入式系統(tǒng)是專用計算機應(yīng)用系統(tǒng),它具有一般計算機組成的共性,也是由硬件和軟件組成。嵌入式系統(tǒng)硬件平臺提供了嵌入式系統(tǒng)軟件運行的物理平臺和通信接口,不同的應(yīng)用通常有不同的硬件平臺,但是基本結(jié)構(gòu)是相同的,通常包括
16、嵌入式處理器、存儲器、AD轉(zhuǎn)換器、擴展接口、人機交互接口和I/O接口等,如圖1-2所示。嵌入式系統(tǒng)的軟件分為嵌入式操作系統(tǒng)和嵌入式應(yīng)用軟件兩大部分,是整個系統(tǒng)的核心,控制系統(tǒng)的運行,提供人機交互信息等。</p><p> 圖1-2 嵌入式硬件平臺結(jié)構(gòu)</p><p> 1.3.2 嵌入式系統(tǒng)的選擇</p><p> 現(xiàn)今,與嵌入式相結(jié)合應(yīng)用比較廣泛的嵌入式操
17、作系統(tǒng)有VxWorks、Linux、WinCE、μCOS-II等,它們各具特點,相比較而言,嵌入式Linux更具有優(yōu)勢:</p><p> Linux屬于自由軟件,所以源代碼開放,各種軟件資源豐富;</p><p> 功能強大的內(nèi)核,性能高效、穩(wěn)定,支持多任務(wù)、多體系結(jié)構(gòu),如X86、ARM、MIPS、ALPMA、SPARC等;</p><p> 擁有完善的網(wǎng)絡(luò)
18、通訊、圖形界面、文件管理機制;</p><p> 支持大量的周邊硬件設(shè)備;</p><p> 大小、功能都可根據(jù)開發(fā)者需要進(jìn)行定制;</p><p> 良好的開發(fā)環(huán)境,不斷發(fā)展和更新的開發(fā)工具集;</p><p> 大量嵌入式開發(fā)者的廣泛支持;</p><p> 使用價格低廉,能有效降低產(chǎn)品成本。</p
19、><p> 這些優(yōu)勢,使嵌入式Linux系統(tǒng)占據(jù)嵌入式市場份額第一的同時也使得其研發(fā)熱潮蓬勃興起。除了一些傳統(tǒng)的Linux公司(如RedHat、Monta、Ubuntu等)正在從事嵌入式Linux的開發(fā)和應(yīng)用之外,IBM、Intel等著名企業(yè)相繼進(jìn)行嵌入式Linux的研究。</p><p> 嵌入式圖形用戶界面(Graphics User Interface)系統(tǒng)是嵌入式實時操作系統(tǒng)的一個
20、重要組成部分,隨著硬件設(shè)備價格不斷降低和可獲得性提高,嵌入式系統(tǒng)應(yīng)用范圍也不斷擴大,致使嵌入式系統(tǒng)迫切的需要高性能的圖形用戶界面系統(tǒng)來支持系統(tǒng)的開發(fā),而嵌入式Linux系統(tǒng)很好了兼容QT/Embedded和MiniGUI圖形界面開發(fā)工具。這些GUI的基本特點:</p><p> (1) 輕型、占用資源少;</p><p><b> (2)高性能;</b></
21、p><p><b> (3)高可靠性;</b></p><p><b> (4) 可配置。</b></p><p> 時代的發(fā)展和市場份額的分配告訴我們,圖形用戶界面GUI的應(yīng)用加速了計算機的普及廣度,而嵌入式技術(shù)的發(fā)展加速了計算機的普及深度,后PC時代日益呼喚著兩者緊密的融合。因此對二者的深入研究有著深刻的現(xiàn)實意義。&
22、lt;/p><p> 1.4 本課題的主要研究內(nèi)容及意義</p><p> 本設(shè)計主要根據(jù)便攜式GPS定位系統(tǒng)的要求,結(jié)合目前市場上出現(xiàn)的各種GPS定位系統(tǒng)整機產(chǎn)品,參考其相關(guān)功能、價格和實現(xiàn)方式等因素,本著低功耗、高性價比、高可靠性和簡化操作的原則,通過合理的選取硬件資源,輔之以個性化的軟件設(shè)計,使本系統(tǒng)具有一定的實用性、創(chuàng)新性和可擴展性。其成果對于進(jìn)一步豐富低端便攜式GPS定位系統(tǒng),
23、滿足大眾對于低端和簡易式操作GPS定位導(dǎo)航終端的市場需求,對我國的國民經(jīng)濟建設(shè)和GPS定位技術(shù)及產(chǎn)品的普及有著巨大的推動作用。</p><p> 根據(jù)要求,本設(shè)計主要研究了如下幾部分內(nèi)容:</p><p> GPS定位導(dǎo)航系統(tǒng)的總體方案設(shè)計;</p><p> ARM920T系列核中S3C2410系列處理器的原理、結(jié)構(gòu)、功能及其外圍設(shè)備的使用,GPS模塊的原理
24、和使用,以及各部分的聯(lián)系和作用;</p><p> 嵌入式Linux系統(tǒng)內(nèi)核、文件系統(tǒng)的裁剪、編譯和移植;</p><p> GPS模塊輸出的NEMA0183碼,通過串口接收存儲及GPRMC數(shù)據(jù)段提取和解析;</p><p> QT/Embedded的界面設(shè)計方法和GPS數(shù)據(jù)處理在圖形界面中的實現(xiàn);</p><p> 將GPS應(yīng)用程序
25、移植到Qtopia中去。</p><p> 2 GPS定位技術(shù)原理</p><p> 2.1 GPS系統(tǒng)組成</p><p> GPS是Navigation Satellite Timingand Ranging/Global Positioning System的簡稱,中文全稱是衛(wèi)星授時測距導(dǎo)航/全球定位系統(tǒng)。該系統(tǒng)是以衛(wèi)星為基礎(chǔ)的無線電導(dǎo)航系統(tǒng),具有全
26、球性、全能性、連續(xù)性、全天候、實時性的導(dǎo)航、定位和授時等多種功能,能為各類高速運動或靜止的用戶提供精確的瞬間三維空間坐標(biāo)、速度矢量和精確授時等服務(wù)。GPS系統(tǒng)有三大組成部分:空間部分、地面控制部分、用戶設(shè)備部分。</p><p> 空間部分:即GPS衛(wèi)星星座,由21顆工作衛(wèi)星和3顆備用衛(wèi)星共24顆衛(wèi)星</p><p> 組成。位于距地面20200km太空,均勻分布于6個軌道平面上,各軌
27、道相對赤道面傾角為55°。衛(wèi)星采用頻率1227.6MHz和1575.42MHz兩種無線電波發(fā)射導(dǎo)航定位信息和接收地面調(diào)試命令。</p><p> 地面控制部分:即地面監(jiān)控系統(tǒng),由一個主控站、三個注入站和五個監(jiān)測站</p><p> 組成,實現(xiàn)對衛(wèi)星運行軌道、時間調(diào)控、工作狀態(tài)的監(jiān)測和控制。</p><p> 用戶設(shè)備部分:即GPS信號接收機,由接收機
28、硬件和接收機軟件構(gòu)成。通過</p><p> 對捕的獲衛(wèi)星導(dǎo)航信息接收和處理,解譯出導(dǎo)航電文,實時計算出測點的時間、三維位置和速度。</p><p> 2.2 GPS定位基本原理</p><p> GPS定位基本原理是:衛(wèi)星不間斷地用二進(jìn)制形式向用戶發(fā)送自身的星歷參數(shù)和時間信息,用戶通過GPS接收機接收到這些信息后,經(jīng)過計算求出接收機的三維位置,三維方向以及運
29、動速度和時間信息。</p><p> 2.2.1 GPS衛(wèi)星信號</p><p> GPS衛(wèi)星發(fā)射的信號包括衛(wèi)星的位置信息(圖2-1展示了GPS信號的產(chǎn)生)。GPS信號包含三種成分:數(shù)據(jù)碼(D碼)、測距碼(C/A碼和P碼)、載波信號(L1和L2)內(nèi)容有:</p><p><b> 測距時間間距;</b></p><p&
30、gt;<b> 與導(dǎo)航相關(guān)的信息;</b></p><p> 大氣附加延遲校正參數(shù);</p><p> (4) 衛(wèi)星星歷及星鐘校正參數(shù)。</p><p> 圖 2-1 GPS信號的產(chǎn)生</p><p> 普通的GPS接收器只能接收二進(jìn)制數(shù)據(jù),然后根據(jù)特定的算法從接收到的信號中提取出導(dǎo)航電文,即數(shù)據(jù)碼D(t)
31、。導(dǎo)航電文有五部分內(nèi)容遙測碼、轉(zhuǎn)換碼、第一數(shù)據(jù)塊、第二數(shù)據(jù)塊和第三數(shù)據(jù)塊。</p><p> 遙測碼(TLW-Telemetry Word)每個子幀的第1個字,其含有同步信號能為各子幀提供一個同步起點,用于導(dǎo)航電文前導(dǎo)的捕獲,協(xié)助用戶快速解譯導(dǎo)航電文,判定衛(wèi)星是否可用。</p><p> 轉(zhuǎn)換碼(HOW-Hand Over Word)每個子幀的第2個字,主要內(nèi)容:Z計數(shù),用來輔助用戶快
32、速地從捕獲的C/A碼轉(zhuǎn)換到P碼捕獲。</p><p> 第一數(shù)據(jù)塊是由第1子幀第3~10個字組成,包含衛(wèi)星時鐘校正參量及其數(shù)據(jù)齡期,星期的周數(shù)編號,大氣校正參數(shù)和衛(wèi)星工作狀態(tài)等。</p><p> 第二數(shù)據(jù)塊是由第2、3子幀第3~10個字組成,其載有衛(wèi)星星歷,包含GPS定位中最常用的基本數(shù)據(jù):開普勒六參數(shù)、軌道攝動九參數(shù)、時間二參數(shù)。</p><p> 第三數(shù)
33、據(jù)塊是由第4、5子幀的第3~10個字組成,此數(shù)據(jù)塊的內(nèi)容每12.5分鐘重復(fù)一次,其中包含系統(tǒng)內(nèi)所有衛(wèi)星的粗略星歷、粗略時鐘校正量、衛(wèi)星識別及衛(wèi)星工作狀態(tài)的字符。</p><p> 每顆衛(wèi)星的數(shù)據(jù)需要占用一個子幀,該數(shù)據(jù)塊的目的是使用戶只要收到一顆衛(wèi)星的信號就可以初略知道其他衛(wèi)星的情況。當(dāng)GPS接收機接收到數(shù)據(jù)后,根據(jù)導(dǎo)航電文編排格式(表 2-1)提取出所需的NMEA-0183標(biāo)準(zhǔn)數(shù)據(jù),通過數(shù)據(jù)傳輸線傳送給微處理
34、器,進(jìn)行數(shù)據(jù)處理。</p><p> 表2-1 導(dǎo)航電文編排格式</p><p> 2.2.2 GPS定位方法和原理</p><p> GPS定位方法多種多樣,開發(fā)人員可以根據(jù)不同的需求采用不同的定位方法。目前GPS定位的方法大致有四類:多普勒法、偽距法、射電干涉測量法、載波相位測量法。四種都是比較常用的定位方法,多普勒定位和載波相位定位相對位居定位測量的精
35、度要高,但是其價格昂貴,多用于高端產(chǎn)品的設(shè)計。目前民用領(lǐng)域?qū)纫蟛桓叩膶?dǎo)航定位終端主要采用造價比較低廉的偽距測量定位法,此次設(shè)計也采用這種測量方法。</p><p> 偽距定位法的原理是:在某一瞬間利用GPS接收機同時測定至少四顆衛(wèi)星的偽距,根據(jù)已知的衛(wèi)星位置和偽距觀測值,采用距離交會法求出接收機的三維坐標(biāo)和時鐘改正數(shù)。作為GPS定位系統(tǒng)導(dǎo)航定位的最基本方法,偽距定位法具有數(shù)據(jù)處理簡單,對定位條件的要求低,
36、不存在整周模糊度問題,可以非常容易地實現(xiàn)實時定位的優(yōu)點,非常適合精度要求不高的普通導(dǎo)航領(lǐng)域。</p><p> GPS接收機對碼的量測而得到衛(wèi)星到接收機的距離稱為偽距(Pseudo range),簡稱PR。因為偽距含有衛(wèi)星時鐘與接收機時鐘的同步誤差以及大氣傳播誤差,所以GPS衛(wèi)星到接收機的實際距離,是GPS接收機通過恢復(fù)的衛(wèi)星鐘和接收機本身時鐘之間的差(即衛(wèi)星鐘傳播到用戶的時延)換算所得。如果兩者時間精確同步,
37、利用距離等于光速乘以時間,得衛(wèi)星和用戶間的真實距離R=C×t。但是衛(wèi)星鐘和用戶鐘卻不能精確同步,即兩者存在鐘差△t,所測得的距離并真實距離,而是偽距表示為PR=R+C△t,△t分正負(fù),接收機鐘慢于衛(wèi)星鐘則取正,反之取負(fù)。</p><p> 在GPS距離測量中,我們可以得到衛(wèi)星到接收機的距離,通過數(shù)學(xué)三維坐標(biāo)中距離公式 2-1:</p><p><b> (2-1)&
38、lt;/b></p><p> 利用接收到的四顆衛(wèi)星中的三顆數(shù)據(jù)組成三元方程組。解出觀測點的三維坐標(biāo)(x,y,z)。實際上,一般接收機時鐘不可能非常準(zhǔn)確,由此測出的衛(wèi)星信號的傳播時間存在誤差,得到的距離R也有誤差是偽距。假設(shè)接收機接收到衛(wèi)星信號的瞬間,接收機與衛(wèi)星導(dǎo)航系統(tǒng)的鐘差為定值△t,則此時距離公式應(yīng)換成:</p><p><b> (2-2)</b>&
39、lt;/p><p> 式2-2中,c 為光傳播速度。</p><p> 根據(jù)圖2-2 GPS定位原理圖示意圖確定公式 2-2~2-5 的方程式:</p><p> 圖2-2 GPS定位原理圖</p><p> (2-3) </p><p> (2-4) </p><p
40、> (2-5) </p><p> (2-6) </p><p> 聯(lián)立以上四個方程便解出x,y,z和△t,(x,y,z)即接收機空間坐標(biāo),并進(jìn)行接收機的時間修正。</p><p> 3 GPS定位系統(tǒng)硬件平臺的搭建</p><p> 3.1 ARM嵌入式開發(fā)平臺結(jié)構(gòu)</p><p
41、> 硬件開發(fā)平臺采用的是MagicARM2410試驗箱,由廣州致遠(yuǎn)電子有限公司開發(fā)。該開發(fā)系統(tǒng)的硬件平臺是基于ARM920T內(nèi)核的S3C2410A微處理器嵌入式系統(tǒng)。S3C2410A處理器采用0.18um制造工藝的32位微控制器。該處理器擁有:MMU,獨立的16Kb指令Cache和16Kb數(shù)據(jù)Cache,支持TFT的LCD控制器,NAND閃存控制器,4路DMA,3路UART,4路帶PWM的定時器,8路10位ADC,2個USB主機
42、接口,1個USB從機接口,2路SPI,I/O口,日歷和時鐘RTC,觸摸屏接口接口,IIC總線接口,IIS總線接口,SD主機和MMC接口,看門狗定時器。S3C2410處理器最高可運行在203MHz,由于有MMU可以運行µ CLinux、µ C/OS-II、Linux、和WinCE操作系統(tǒng),支持QT、MiniGUI圖形界面。</p><p> MagicARM2410開發(fā)板主要硬件資源:<
43、/p><p> ?。?) 8英寸640×480TFT真彩TFT液晶屏;</p><p> (2) 4線電阻式觸摸屏;</p><p> ?。?) 1個10/100M以太網(wǎng)口,網(wǎng)卡采用DM9000E;</p><p> (4) 2個JTAG接口;</p><p> ?。?) 4個主USB口,1個從USB口,采用
44、USB1.1協(xié)議;</p><p> ?。?) 1個68Pin PCMCIA接口;</p><p> ?。?) IIS數(shù)字音頻輸入輸出接口(2個揚聲器、1個咪頭);</p><p> ?。?) 1個PCMCIA接口擴展的CF卡接口;</p><p> ?。?) 1個PCMCIA接口擴展的IDE硬盤接口;</p><p>
45、; ?。?0) 1個SD/MMC卡接口;</p><p> ?。?1) 2路RS232轉(zhuǎn)換電路和接口;</p><p> ?。?2) 1路IrDA開關(guān)電路;</p><p> ?。?3) 1路485接口;</p><p> ?。?4) 1路CAN接口,采用SJA1000控制器控制;</p><p> ?。?5) 2路A
46、DC轉(zhuǎn)換模塊(CPU內(nèi)置);</p><p> ?。?6) 1個直流電機,1個步進(jìn)電機;</p><p> ?。?7) RTC后備電池;</p><p> ?。?8) WDT看門狗定時器;</p><p> ?。?9) 8位動態(tài)數(shù)碼管顯示;</p><p> ?。?0) 1個4×4矩陣小鍵盤;</p&g
47、t;<p> ?。?1) 1個直流蜂鳴器;</p><p> (22) 4個獨立LED燈;</p><p> ?。?3) 1個GPRS PACK接口(擴展GPRS模塊用);</p><p> (24) 1個VGA PACK接口(擴展VGA輸出接口用);</p><p> ?。?5) 2個總線擴展接口(1個16位,1個32位)
48、;</p><p> ?。?6) 1個20 Pin JTAG調(diào)試接口,EasyJTAG-H仿真器。</p><p> (27) 1個獨立按鍵(接到中斷輸入引腳);</p><p> ?。?8) 1路PWM DAC轉(zhuǎn)換輸出;</p><p> 3.2 嵌入式系統(tǒng)硬件電路設(shè)計</p><p> 本節(jié)中將介紹Magi
49、cARM核心板中的部分硬件電路,以及電路的作用。這些電路都與GPS定位系統(tǒng)的設(shè)計相關(guān)聯(lián),下面具體介紹各個電路。</p><p><b> 1)電源電路</b></p><p> MagicARM2410實驗箱的供電有一組3.3V電源提供,由于S3C2410A 所需的電壓為1.8V需要電壓轉(zhuǎn)換芯片。實驗板中采用輸出電路可達(dá)800mA,輸出精度在±1%以內(nèi)的
50、SPX117系列LDO芯片進(jìn)行轉(zhuǎn)換。MagicARM2410系統(tǒng)電源電路原理圖如圖3-1所示。</p><p> 圖3-1 系統(tǒng)電源電路</p><p><b> 2)復(fù)位電路</b></p><p> 由于S3C2410A芯片工作時的低功耗、低電壓、高速度導(dǎo)致其噪聲容限低,對時鐘源穩(wěn)定性、瞬態(tài)響應(yīng)性能、電源紋波、電源監(jiān)控可靠性等方面提
51、出了比其他芯片更高的要求。所以MagicARM2410核心板的復(fù)位電路采用了內(nèi)置E2 PROM存儲器復(fù)位門檻電壓為3.0~3.5V的CAT1025JI-30電源監(jiān)控復(fù)位芯片,來保證系統(tǒng)的穩(wěn)定性。復(fù)位電路如圖3-2所示:</p><p> 圖3-2 復(fù)位電路</p><p><b> 3)時鐘電路</b></p><p> S3C2410
52、A一般使用外部晶振提供時鐘,外部晶振頻率范圍10~20MHz。MagicARM2410核心板采用了12MHz的外部晶振,通過S3C2410A內(nèi)部鎖相環(huán)對時鐘倍頻至203MHz供處理器使用。另外S3C2410A具有獨立時鐘源,獨立電源供電的RTC(實時時鐘),因此要在其XTOrtc、XTIrtc引腳上接32768Hz的石英晶振。所以時鐘電路如圖3-3所示:</p><p> 圖3-3 時鐘電路</p>
53、;<p> 4)SDRAM存儲電路</p><p> SDRAM是嵌入式微處理器的內(nèi)存,相當(dāng)于個人電腦的內(nèi)存,掉電后數(shù)據(jù)即消失,不能夠永久保存。當(dāng)系統(tǒng)啟動時,CPU從復(fù)位地址0x0處開始讀取啟動程序,在完成系統(tǒng)初始化后,為了提高系統(tǒng)運行速度,程序被調(diào)入SDRAM中運行。同時,系統(tǒng)及應(yīng)用程序的運行數(shù)據(jù)、堆棧全部存放于SDRAM中。</p><p> MagicARM241
54、0核心板中使用HY57V561620設(shè)計了2片SDRAM,其使用了S3C2410A的nGCS6片選信號,32為數(shù)據(jù)總線,26根地址總線。SDRAM電路圖3-4所示:</p><p> 圖3-4 SDRAM內(nèi)存電路</p><p> 5)NAND Flash存儲電路</p><p> Flash存儲器是一種非易失、可電擦寫、掉電后數(shù)據(jù)不丟失的存儲器。它具有功耗
55、低、容量大、擦寫速度快、可分扇區(qū)或整片在系統(tǒng)擦除或編程等特點,由內(nèi)部嵌入的算法完成對芯片的操作,廣泛應(yīng)用于各種嵌入式、單片機等系統(tǒng)中。Flash存儲器通常用于存儲程序代碼、常量表等掉電后需保存的數(shù)據(jù)。</p><p> Flash主要可分為NOR Flash和NAND Flash。NOR Flash的特點是芯片內(nèi)執(zhí)行,不必把代碼讀到RAM中,傳輸效率很高,在1~4 MB的小容量時成本效益很高,但是寫入和擦除數(shù)據(jù)
56、速度低影響了其性能和使用范圍;NAND Flash的優(yōu)點是高單元密度,高存儲密度,高寫入、擦除速度,不過NAND Flash的管理和系統(tǒng)接口相對復(fù)雜。雖然NAND的管理和系統(tǒng)接口相對復(fù)雜,但是NAND器件擦除操作簡單快速,存儲容量大,S3C2410A提供了能夠從NAND Flash啟動系統(tǒng)的Steppingstone機制,因此S3C2410系統(tǒng)采用l片64MB K9F1208U0B NAND Flash同時作為啟動和保存系統(tǒng)程序ROM,
57、以降低了硬件成本。其與S3C2410A的連接如圖3-5所示:</p><p> 圖3-5 NAND Flash 存儲器電路</p><p> 6)RS232接口電路</p><p> RS232接口是現(xiàn)在主流的串行通信接口之一。1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。S3C210A具
58、有3個UART口,MagicARM2410核心板使用了UART1和UART0兩個九針接口,采用SP232E進(jìn)行RS232電平轉(zhuǎn)換。RS232串口電路如圖3-6所示:</p><p> 圖3-6 RS232串口電路</p><p> 7)彩色液晶屏及觸摸屏驅(qū)動電路</p><p> S3C2410A內(nèi)置有液晶控制器,最大支持256K色TFT彩色液晶屏、4K色S
59、TN彩色液晶屏。MagicARM核心板上設(shè)計了1個8英寸640×480的TFT液晶屏接口,其與S3C2410A接電路連接如圖3-7所示。由于液晶顯示屏所用背光燈電源電壓為5V,所以其需要獨立的電源轉(zhuǎn)換電路,其電路圖如圖 3-8所示。設(shè)計中采用帶有觸摸屏的LQ080V3DG01彩色液晶顯示屏。所以設(shè)計彩色液晶屏電路同時設(shè)計了觸摸屏的驅(qū)動電路,觸摸屏驅(qū)動電路如圖3-9所示。</p><p> 圖3-7
60、彩色液晶屏接口電路</p><p> 圖3-8 彩色液晶屏背光燈管驅(qū)動電路</p><p> 圖3-9 觸摸屏驅(qū)動電路</p><p> 3.3 GPS硬件模塊</p><p> 目前市場上GPS模塊多種多樣,主要生產(chǎn)廠商有美國天寶、瑞士徠卡、日本拓普康、上海華測、廣州中海達(dá)、廣州南方、麗臺、鼎天、環(huán)天、Garmin。最新的GP
61、S模塊往往采用第三代芯片。本次設(shè)計基于成本考慮采用,采用瑞士u-blox公司的NEO-5主芯片配合天線、放大器、濾波器,甚至導(dǎo)線、接頭其他元件制成。該GPS模塊采多功能獨立模組,以ROM為基礎(chǔ)架構(gòu),成本低,體積小,并具有眾多特性。采用u-blox最新的KickStart微弱信號攫取技術(shù),能確保采用此模組的設(shè)備在任何可接收到信號的位置及任何天線尺寸都能夠有最佳的初始定位性能并進(jìn)行快速定位。 </p><p>&l
62、t;b> 1)主要特性: </b></p><p> 50個通道衛(wèi)星接收功能 </p><p> 100萬個以上的相關(guān)系引擎 </p><p> 可同步追蹤GPS及伽俐略導(dǎo)航衛(wèi)星信號 </p><p> 提供多種接口:UART,USB,IIC,SPI </p><p><b>
63、2)性能參數(shù): </b></p><p> 接收器類型:50個接收通道 </p><p> GPS L1頻率,C/A碼 </p><p> SBAS:WAAS,EGNOS,MSAS,GAGAN </p><p> 啟動時間:冷啟動 29 sec </p><p> 熱啟動 < 1 s
64、ec </p><p> 輔助啟動 < 1 sec </p><p> 首次定位時間:< 1 sec </p><p> 最大更新速率:< 4Hz </p><p> 靈敏度: 冷啟動 -144dBm </p><p> 跟蹤靈敏度 -160dBm </p><p
65、> 捕獲靈敏度 -160dBm </p><p> 定位精度: Auto < 2.5m </p><p> SBAS < 2m </p><p> 定時精度: RMS 30ns </p><p> 99% < 60ns </p><p> 極限速度: 500m/s &l
66、t;/p><p> 運行溫度: -40~85℃ </p><p> 封裝尺寸: 16 × 12.2 × 2.4 mm </p><p><b> 3)電氣性能: </b></p><p> 工作電壓: 2.7V~3.6V </p><p> 功 耗: 全速模
67、式 135mW @ 3.0V </p><p> ECO 模式 129mW @ 3.0V </p><p> 備用電池: 1.4V~3.6V,25uA </p><p><b> 4)硬件連接 </b></p><p> UART(TTL電平): 1.VCC-VCC 2.GND-GND 3.TXD-P
68、3.0 4.RXD-P3.1 </p><p> UART(232電平): 9.VCC 10.GND 11.TXD 12.RXD </p><p> IIC: 5.SDA 6.SCL </p><p> SPI: 13.MOSI 14.MISO 15.SCK 16.CS <
69、/p><p> 4 搭建嵌入式Linux開發(fā)平臺</p><p> 傳統(tǒng)的嵌入式開發(fā)環(huán)境需要單片機的仿真器,包括C語言、匯編語言、調(diào)試工具等的集成開發(fā)環(huán)境IDE、實時操作系統(tǒng)等。隨著Flash技術(shù)的發(fā)展以及BDM調(diào)試工具的標(biāo)準(zhǔn)化,已可以省去仿真器,而使用簡單、通用的BDM調(diào)試工具。在軟件方面,Linux下的自由軟件GNU GCC可以完成幾乎所有知名CPU以及DSP的交叉C編譯和調(diào)試。設(shè)計
70、中的GPS定位應(yīng)用程序是基于嵌入式Linux操作系統(tǒng)進(jìn)行設(shè)計。嵌入式Linux是按照嵌入式操作系統(tǒng)的要求設(shè)計的一種支持多線程、多進(jìn)程的小型操作系統(tǒng)。其體系結(jié)構(gòu)如圖4-1所示,它是由一個內(nèi)核和一些可定制系統(tǒng)模塊構(gòu)成,如文件系統(tǒng)模塊、網(wǎng)絡(luò)模塊、驅(qū)動模塊。針對應(yīng)用進(jìn)行了裁剪和配置,只保留系統(tǒng)所需的模塊、ext2\jffs2文件系統(tǒng)等。其中內(nèi)存驅(qū)動模塊管理內(nèi)存,網(wǎng)絡(luò)模塊提供以太網(wǎng)接口,GPIO驅(qū)動模塊則是提供給觸摸屏和鍵盤使用,圖形驅(qū)動模塊為G
71、Ul和圖像顯示的底層支撐模塊。RS232接口及其驅(qū)動程序是本設(shè)計中用到的GPS數(shù)據(jù)讀取模塊。</p><p> 圖4-1 嵌入式Linux體系結(jié)構(gòu)</p><p> 4.1 硬件開發(fā)環(huán)境搭建</p><p> 搭建硬件開發(fā)環(huán)境,主要是把主機和MagicARMS3C2410開發(fā)板通過JTAG連接線串口電纜、連接起來、網(wǎng)線和路由連接起來。硬件開發(fā)平臺連接圖如圖
72、4-2所示。</p><p> 圖4-2 硬件開發(fā)平臺連接</p><p> 串口電纜連接主機和MagicARM2410開發(fā)板,在Windows系統(tǒng)中用超級終端來進(jìn)行控制。通過超級終端可以向目標(biāo)板發(fā)送命令,同時觀察目標(biāo)板中命令和程序運行過程中的輸出信息。JTAG用來固化Bootloader,由并口線與EasyJTAG-H仿真器構(gòu)成。網(wǎng)絡(luò)通訊采用直通網(wǎng)線通過路由的交換口來連接PC機和開
73、發(fā)板。網(wǎng)絡(luò)通訊在NFS方式mount主機、文件系統(tǒng)更新、以及各種網(wǎng)絡(luò)應(yīng)用調(diào)試時必須用到。</p><p> 4.2 宿主機開發(fā)環(huán)境建立</p><p> 4.2.1 安裝Linux系統(tǒng)</p><p> 考慮到我們平時使用電腦的習(xí)慣,本次設(shè)計采用在Windows下安裝VMware虛擬機,再在虛擬機中安裝Linux操作系統(tǒng)的方式來驚醒宿主機開發(fā)環(huán)境的建立,實
74、際開發(fā)環(huán)境選擇了RedHat 9.0。RedHat 9.0安裝時選擇軟件包是選擇完全安裝,大約需要 5G 空間,所以我們在進(jìn)行VMware軟件虛擬硬盤設(shè)置的時候需選擇 10G 大小的虛擬硬盤。然后其它的設(shè)置全部采用默認(rèn)設(shè)置即可。</p><p> 4.2.2 安裝GNU GCC交叉編譯器</p><p> 交叉編譯,簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。這里的平臺,
75、包含體系結(jié)構(gòu)(Architecture)、操作系統(tǒng)(Operating System)兩方面。嵌入式系統(tǒng)軟件的開發(fā)屬于跨平臺開發(fā),即開發(fā)平臺使用的處理器和開發(fā)對象的處理器往往不是同一類型,需要在主機上使用交叉編譯環(huán)境來進(jìn)行代碼編寫、鏈接、編譯和調(diào)試,生成能夠在目標(biāo)機上調(diào)試,運行的代碼,然后通過與目標(biāo)機通信,下載到目標(biāo)機中執(zhí)行和測試。因此通常嵌入式系統(tǒng)軟件的開發(fā),編譯是在宿主機,通過串口、并口或網(wǎng)絡(luò)把交叉編譯好的可執(zhí)行文件下載至目標(biāo)平臺上
76、的Flash等存儲介質(zhì),再在目標(biāo)機執(zhí)行。</p><p> 交叉編譯器與一般編譯器功能相似,都是把源代碼編譯成目標(biāo)文件,再通過鏈接器、可重定位程序和定位器把目標(biāo)文件重新定位成可執(zhí)行文件。兩者之間最大的差別在于交叉編譯器編譯出來的可執(zhí)行程序通常只能在特定CPU平臺上運行。因此一般而言每種CPU都對應(yīng)有不同的跨平臺編譯器。對于ARM920T的S3C2410A,可以使用常用的ARM交叉編譯器——GNU GCC,其即能
77、編譯Linux內(nèi)核和Linux下的應(yīng)用程序,還能夠作交叉編譯器,編譯運行在其它CPU上的程序,支持目前絕大部分的嵌入式CPU的交叉編譯。GNU GCC是一套完善的交叉編譯工具,包括:C交叉編譯器、匯編交叉工具、反匯編工具、連接工具、調(diào)試工具。</p><p> 設(shè)計中選擇了版本號為2.95.3的GCC交叉編譯器,cross_2.95.3.tar.bz2安裝包放置在home目錄下,下面是該編譯器的安裝過程:<
78、;/p><p> ?。?)打開終端,在/usr/local目錄下新建arm的目錄,,命令如下:</p><p> # mkdir /usr/local/arm</p><p> (2)進(jìn)入arm目錄,將安裝包cross_2.95.3.tar.bz2拷貝到該目錄下,并解壓安裝包,命令如下:</p><p> # cd /usr/local/a
79、rm</p><p> # cp /home/cross_2.95.3.tar.bz2 /usr/local/arm</p><p> # tar jxvf cross_2.95.3.tar.bz2</p><p> 上面命令執(zhí)行完畢,當(dāng)前目錄下會多出名為2.95.3的文件夾,即交叉編譯器所在的文件夾。</p><p> ?。?)增加編
80、譯器路徑,用vi打開/etc/profile文件,在文件Path manipulation處添加“pathmunge /usr/local/arm/2.95.3/bin”,命令如下:</p><p> # vi /etc/profile</p><p> profile文件內(nèi)容如圖4-3 。</p><p> 圖4-3 profile文件內(nèi)容</p&g
81、t;<p> 至此交叉編譯環(huán)境安裝完畢,重啟RedHat 9.0,打開終端輸入“arm-Linux-gcc -v”來驗證是否安裝成功。</p><p> 4.2.3 NFS服務(wù)器配置</p><p> NFS服務(wù)器配置時,同時需要配置IP 地址、防火墻、NFS服務(wù)。</p><p> VMware虛擬機中RedHat 9.0自動安裝了網(wǎng)卡及相
82、關(guān)網(wǎng)絡(luò)功能,因此不需要對網(wǎng)卡設(shè)備和驅(qū)動進(jìn)行安裝,只需要對IP進(jìn)行配置,分為宿主機和目標(biāo)板的IP設(shè)置。這里先設(shè)置宿主機IP 為192.168.1.105。配置命令:</p><p> # ifconfig eth0 192.168.1.105</p><p> RedHat9.0默認(rèn)打開了防火墻,對于外來的IP訪問會全部拒絕,導(dǎo)致其它網(wǎng)絡(luò)設(shè)備無法訪問它,即無法mount NFS服務(wù),許多
83、網(wǎng)絡(luò)功能也無法使用。因此需要關(guān)閉防火墻,操作如下:點擊RedHat Linux的Main Menu菜單,選擇System Settings→Security Level,打開RedHat Linux安全級別設(shè)置界面,安全級別設(shè)置為No Firewall(圖4-4所示)。</p><p> 圖4-4 關(guān)閉防火墻</p><p> 還需要在系統(tǒng)設(shè)置菜單去掉中iptables、ip6tab
84、les、ipchains服務(wù)和選中nfs服務(wù),主要操作如下:點擊 Main Menu 菜單,選擇 SystemSettings → Server Settings →Services,在彈出的界面中將iptables、ip6tables、ipchains服務(wù)前的“√”去掉,選中nfs服務(wù)前的“√”。設(shè)置界面如圖4-5所示。</p><p> 圖4-5 iptable服務(wù)設(shè)置</p><p&
85、gt; NFS服務(wù)器是一種把遠(yuǎn)程主機上的目錄通過網(wǎng)絡(luò)掛載到本地系統(tǒng)的一種共享機制,通過對網(wǎng)絡(luò)文件系統(tǒng)的支持,用戶可以在本地系統(tǒng)上像操作本地目錄一樣來操作遠(yuǎn)程主機的共享目錄。在嵌入式Linux 的開發(fā)過程中,通過建立NFS服務(wù),既可直接在嵌入式目標(biāo)系統(tǒng)上操作Linux 服務(wù)器的共享目錄,還可以對程序進(jìn)行在線調(diào)試和修改,提高軟件的開發(fā)效率。其配置操作如下:點擊Main Menu → System Settings → NFS Server
86、,出現(xiàn)如圖 4-6 NFS服務(wù)器配置界面。</p><p> 圖4-6 NFS服務(wù)器配置 圖4-7 設(shè)置NFS共享目</p><p> 點擊Add按鈕,在彈出的對話框中如圖4-7所示的界面,在Drictory和Hosts設(shè)置如圖4-7,并選擇允許客戶對共享目錄的操作為Read/Write,點擊OK按鈕完成NFS 配置。至此NFS
87、服務(wù)器配置完成,可以本機上的共享目錄mount到本機上另外一個目錄下測試NFS是否設(shè)置成功,命令如下:</p><p> # mount 192.168.1.105:/zyLinux/armwork /mnt</p><p> 然后查看mnt目錄中是否有armwork目錄下的文件,若有則NFS服務(wù)器啟動成功,</p><p> 4.2.4 超級終端配置和使用
88、</p><p> 超級終端是一個通用的串行交互軟件,很多嵌入式系統(tǒng)的應(yīng)用需要與之交換相應(yīng)程序,這些程序可以通過超級終端與嵌入式系統(tǒng)交互,所以超級終端也稱為嵌入式系統(tǒng)“顯示器”。使用和配置超級終端的操作如下:在Windows平臺上打開超級終端,然后輸入名稱(如圖4-8),后設(shè)置好串口屬性,其它采用默認(rèn)設(shè)置即可。點擊確定按鈕(如圖4-9)即完成超級終端的設(shè)置。</p><p> 圖4-8
89、 開啟超級終端 圖4-9 超級終端的設(shè)置</p><p> 至此,嵌入式Linux宿主機軟硬件開發(fā)平臺基本建立起來。主要進(jìn)行了硬件環(huán)境的搭建,主機上RedHat 9.0的安裝,交叉編譯器的安裝,NFS服務(wù)器的安裝和設(shè)置,以及超級終端的配置和使用。</p><p> 4.3 構(gòu)建嵌入式Linux目標(biāo)平臺</p><
90、p> 嵌入式Linux目標(biāo)平臺的構(gòu)建包括:移植Bootloader(ViVi)到目標(biāo)板,移植kernel映像文件到目標(biāo)板,移植Yaffs文件系統(tǒng)至 NAND Flash。</p><p> 從軟件角度進(jìn)行分析一個嵌入式Linux系統(tǒng)大致可分為四個層次:</p><p> (1) 系統(tǒng)啟動引導(dǎo)程序:即Bootloader程序;</p><p> (2)
91、Linux 內(nèi)核:不同嵌入式系統(tǒng)定制內(nèi)核和內(nèi)核啟動參數(shù);</p><p> (3) 文件系統(tǒng) :包括根文件系統(tǒng)和建立在Flash存儲器中的文件系統(tǒng);</p><p> (4) 應(yīng)用程序 :特定于用戶的應(yīng)用程序。</p><p> 通常在嵌入式系統(tǒng)中,系統(tǒng)的所有數(shù)據(jù)和軟件都存儲在Flash存儲器中。對于S3C2410A而言,上電或復(fù)位后PC指針指向的地址是
92、0x0000 0000。因此Flash的起始地址為 0x0000 0000。圖4-10是一種經(jīng)典的系統(tǒng)內(nèi)存結(jié)構(gòu)圖。</p><p> 圖4-10 內(nèi)存結(jié)構(gòu)</p><p> 建立3個MTD分區(qū)分別存儲Bootloader、kernel和rootfs,地址分配如下:</p><p> 0x0000 0000~0x0003 0000: “boot”</p
93、><p> 0x0003 0000~0x0020 0000: “kernel”</p><p> 0x0020 0000~0x0400 0000: “rootfs”</p><p> 4.3.1 引導(dǎo)程序Bootloader下載</p><p> 引導(dǎo)程序(Bootloader)是系統(tǒng)加電后運行的第一段代碼,相當(dāng)于PC機中的引導(dǎo)加載
94、程序BIOS和位于硬盤MBR中的0S Bootloader。Boot1oader的主要任務(wù)就是將內(nèi)核映像從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口處啟動操作系統(tǒng)。通過Bootloader可以完成對系統(tǒng)板上的主要部件如CPU、SDRAM、Flash和串行口等進(jìn)行初始化,下載文件到系統(tǒng)板,對Flash進(jìn)行擦除與編程;設(shè)置處理器的寄存器和內(nèi)存,關(guān)閉所有的輸入和中斷管腳,以防接下來的硬件初始化被突然進(jìn)入的信號干擾;再把操作系統(tǒng)和文件系統(tǒng)從存儲位
95、置調(diào)入內(nèi)存,對一些必要的操作系統(tǒng)參數(shù)進(jìn)行設(shè)置,最后由操作系統(tǒng)對CPU進(jìn)行控制。在一個基于ARM的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時通常都從地址0x00000000處開始執(zhí)行,而此地址存儲的一般是系統(tǒng)的Bootloader來初始化硬件設(shè)備,建立內(nèi)存空間的映射,從而將系統(tǒng)帶到一個合適的狀態(tài),為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好條件。</p><p> Bootloader一般擁有兩種操作模式:</p><
96、p> (1) 啟動加載模式:此模式下Boot1oader從目標(biāo)機的固態(tài)存儲器中將操作系統(tǒng)加載到RAM中運行,整個過程無人為干預(yù),為正常工作模式;</p><p> (2) 下載模式:該模式下,目標(biāo)機中的Bootloader通過網(wǎng)絡(luò)或串口等通信方式從宿主機上下載內(nèi)核和根文件系統(tǒng)等的映象到RAM中,然后存儲在目標(biāo)機的固態(tài)存儲器中或者直接引導(dǎo)系統(tǒng)運行。</p><p> 設(shè)計中,采用
97、了廣州致遠(yuǎn)電子有限公司隨MagicARM2410試驗箱一起提供的ZLG/BOOT作為Bootloader,ZLG/BOOT引導(dǎo)程序在SST39VF1601中運行。</p><p> ZLG/BOOT的下載:需要一個基于ADS的WR_NORFLASH.mcp工程,H-JTAG軟件。將EasyJTAG-H 和實驗箱相連,運行H-JTAG,打開WR_NORFLASH.mcp 工程,選擇DebugRel生成目標(biāo),進(jìn)入
98、AXD調(diào)試環(huán)境。在語句 while(1)處設(shè)置斷點,然后全速運行程序。程序停止后,如果蜂鳴器鳴叫一聲則表示已經(jīng)正確將ZLG/BOOT 下載到SST39VF1601 中,然后后將實驗箱斷電即可;如果蜂鳴器連續(xù)鳴叫則表示下載出錯,需要重新下載。下載完畢,將EasyJTAG-H拔掉,重新啟動系統(tǒng),即可在超級終端中看到如圖4-11界面:</p><p> 圖4-11 加載ZLG/BOOT后的啟動界面</p>
99、;<p> 4.3.2 Linux內(nèi)核編譯</p><p> 內(nèi)核是一整塊可執(zhí)行代碼。Linux系統(tǒng)中,內(nèi)核負(fù)責(zé)處理不同的并發(fā)進(jìn)程對系統(tǒng)的CPU、內(nèi)存、網(wǎng)絡(luò)等軟硬件資源的請求。內(nèi)核主要功能是進(jìn)行進(jìn)程管理和內(nèi)存管理,而系統(tǒng)在這兩方面的表現(xiàn)則體現(xiàn)著一個系統(tǒng)性能的好壞。</p><p> 經(jīng)過慎重考慮,畢設(shè)中選取了由致遠(yuǎn)電子有限公司提供的ARM Linux 源代碼包linu
100、x-2.4.18-rmk7-pxal-mz5-zhiyuan.tar.bz2,。下面介紹主要的編譯過程:</p><p> ?。?)在虛擬機中啟動RedHat 9.0,在根目錄下創(chuàng)建工作目錄armLinux,。命令如下:</p><p> # mkdir /armLinux</p><p> ?。?)切換到armlinux目錄下,并把放置在home目錄下的安裝包l
101、inux-2.4.18-</p><p> rmk7-pxal-mz5-zhiyuan.tar.bz2復(fù)制到該目錄下運行解壓命令解壓源代碼包,命令如下:</p><p> # cd /armlinux</p><p> # cp /home/linux-2.4.18-rmk7-pxal-mz5-zhiyuan.tar.bz2 /armlinux</p&g
102、t;<p> # tar jxvf linux-2.4.18-rmk7-pxal-mz5-zhiyuan.tar.bz2</p><p> 此時文件夾下會多出名為kernel的目錄,即為Linux源代碼安裝目錄,進(jìn)入此目錄</p><p> # cd ./kernel</p><p> (3)在kernel目錄下運行make menuconfi
103、g命令進(jìn)入Linux內(nèi)核配置主界面如圖4-12所示,進(jìn)行內(nèi)核的配置和裁剪,配置好內(nèi)核后保存退出即可。操作如下:</p><p> # make menuconfig</p><p> 圖4-12 Linux內(nèi)核配置主界面</p><p> ?。?)跟據(jù)給出的提示,建立依賴關(guān)系,然后編譯。命令如下:</p><p> # make de
104、p</p><p> # make zImage</p><p> 編譯完畢后,在arch/arm/boot目錄下生成了zImage映象文件,即為要下載到開發(fā)板中的內(nèi)核映象文件。</p><p> 4.3.3 文件系統(tǒng)</p><p> 在嵌入式Linux啟動時,第一個必須要掛載的是根文件系統(tǒng),文件系統(tǒng)不能直接控制物理設(shè)備,而是通過
105、Flash驅(qū)動來實現(xiàn)對文件和目錄的操作。目前常用的文件系統(tǒng)技術(shù)有:Yaffs、JFFS2、RAMFS、ROMFS等。</p><p> 設(shè)計中采用Yaffs文件系統(tǒng),Yaffs是一種常用的專門為Flash設(shè)備設(shè)計的一種可讀寫的嵌入式文件系統(tǒng),能有效的延長Flash使用壽命。而且相比其它文件系統(tǒng)Yaffs文件系統(tǒng)具有存取速度更快,占用內(nèi)存更少,自帶NAND Flash驅(qū)動,能為嵌入式系統(tǒng)提供直接訪問文件系統(tǒng)的AP
106、I等優(yōu)點。一個完整的Linux系統(tǒng)包括Kernel內(nèi)核和根文件系統(tǒng)。Linux內(nèi)核引導(dǎo)完成,就會掛載一個根文件系統(tǒng),若沒有找到內(nèi)核將報錯:</p><p> Kernel Panie:VFS:Unable to mount root fs on 02:00</p><p> 文件系統(tǒng)的位置通過環(huán)境變量指定,S3C2410A目前支持的啟動方式有:</p><p>
107、 root=/dev/bon/2;</p><p> root=/dev/mtdbloek/0 本地缺省啟動;</p><p> root=/dev/nfs。</p><p> 進(jìn)行嵌入式Linux開發(fā)時需要對Linux文件系統(tǒng)結(jié)構(gòu)有一定的了解。Linux的文件系統(tǒng)不僅包括普通的文件和目錄,而且每個和設(shè)備相關(guān)的實體也都被映射成為一個文件,這種文件被稱為特殊文
108、件,因此Linux的文件系統(tǒng)為設(shè)備和操作系統(tǒng)提供了統(tǒng)一的接口,使得數(shù)據(jù)存取和訪問高效而透明。Linux文件系統(tǒng)的結(jié)構(gòu)是一個樹形目錄,包含了所有構(gòu)成文件系統(tǒng)的目錄和文件。目錄既能包含其它目錄也能是其它目錄的子目錄,其中用“/”表示的根目錄處于目錄樹的頂端。Linux目錄結(jié)構(gòu)如圖4-13所示。此處只對文件系統(tǒng)基礎(chǔ)知識進(jìn)行介紹,具體的制作方法可查閱相關(guān)資料進(jìn)行。</p><p> 圖4-13 Linux文件系統(tǒng)目錄
109、結(jié)構(gòu)</p><p> 4.3.4 Linux內(nèi)核與文件系統(tǒng)移植</p><p> 當(dāng)文件系統(tǒng)映像文件和Linux內(nèi)核映像文件制作好后,可以使用ftp方式將內(nèi)核和文件系統(tǒng)映像下載到NAND Flash中。</p><p> 此過程需要用到FlashFXP軟件,因此首先在Windows下安裝此軟件,然后設(shè)置PC的網(wǎng)絡(luò)。打開“本地連接”的屬性,設(shè)置“Intern
110、et協(xié)議(TCP/IP)”的屬性,在彈出窗口中點擊“高級”按鈕,打開“高級TCP/IP設(shè)置”界面,點擊“添加”按鈕,在“IP地址”欄添加IP 地址(如192.168.15.99)和“掩碼地址”欄填掩碼地址255.255.255.0。最后如圖4-14高級TCP/IP設(shè)置所示。</p><p> 接著運行FlashFXP軟件,選擇“FTP”→“快速連接”打開快速連接界面,在“服務(wù)器或URL”欄輸入IP地址:192.
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于arm的gps導(dǎo)航定位系統(tǒng)設(shè)計
- 基于ARM的GPS定位系統(tǒng)設(shè)計.pdf
- 30605.基于arm的gps定位研究
- 基于ARM與LINUX的GPS定位終端的研究.pdf
- 基于ARM的GPS-CDMA雙模車載導(dǎo)航定位系統(tǒng)的硬件實現(xiàn).pdf
- 基于arm與linux的gps定位終端的研究(1)
- 基于ARM-Linux的公交車載GPS定位終端系統(tǒng)設(shè)計.pdf
- 基于ARM和GPS的手持定位導(dǎo)航系統(tǒng)的研究與實現(xiàn).pdf
- 基于ARM微處理器的GPS導(dǎo)航定位系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 49104.基于arm處理器的車載gps定位終端
- 基于arm-linux的gps導(dǎo)航系統(tǒng)
- 基于ARM的車載GPS-GPRS系統(tǒng).pdf
- 基于ARM9處理器的GPS導(dǎo)航定位系統(tǒng).pdf
- 基于ARM的車載GPS系統(tǒng)的研究.pdf
- 基于.net的車輛gps跟蹤定位系統(tǒng)
- 基于GPS的畜牧定位系統(tǒng)的研制.pdf
- 基于ARM9車載GPS與GPRS定位系統(tǒng)的地圖匹配算法研究.pdf
- 56784.基于arm的定位系統(tǒng)的實現(xiàn)
- 基于ARM9的車載GPS監(jiān)控終端系統(tǒng).pdf
- 基于android的gps個人衛(wèi)星定位系統(tǒng)
評論
0/150
提交評論