基于CortexM3芯片的無線測距系統(tǒng)畢業(yè)論文_第1頁
基于CortexM3芯片的無線測距系統(tǒng)畢業(yè)論文_第2頁
基于CortexM3芯片的無線測距系統(tǒng)畢業(yè)論文_第3頁
基于CortexM3芯片的無線測距系統(tǒng)畢業(yè)論文_第4頁
基于CortexM3芯片的無線測距系統(tǒng)畢業(yè)論文_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢畢 業(yè)業(yè) 設(shè)設(shè) 計(jì)(論計(jì)(論 文)文) 設(shè)計(jì)設(shè)計(jì)(論文論文)題目題目: 基于 Cortex-M3 芯片的無線測距系統(tǒng) 學(xué)生姓名: 指導(dǎo)教師: 二級學(xué)院: 專業(yè): 班 級: 學(xué)號: 提交日期:2014 年 4 月 20 日 答辯日期:2014 年 5 月 10 日 目 錄 目 錄.I 摘 要.III ABSTRACT.IV 1 緒論.5 1.1 課題背景 .5 1.2 課題內(nèi)容 .5 1.3 課題意義 .5 2 相關(guān)技術(shù)基礎(chǔ)概述.7 2.1 CORTEX-M3 內(nèi)核芯片 .7 2.2 串口協(xié)議 .7 2.3 GPS 定位技術(shù)及數(shù)據(jù)傳輸協(xié)議 .8 2.4 12864 顯示器 .10 3 軟件環(huán)境

2、的構(gòu)建 .12 3.1 編譯環(huán)境的安裝與使用 .12 3.2 PCB 繪制軟件的安裝與使用 .19 4 系統(tǒng)總體方案設(shè)計(jì).21 4.1 功能需求 .21 4.2 系統(tǒng)的總體框架 .21 5 硬件設(shè)計(jì).22 5.1 硬件功能需求及芯片選型 .22 5.1.1 硬件功能需求 .22 5.1.2 芯片的選型 .22 5.2 硬件模塊電路設(shè)計(jì) .22 5.2.1 主控芯片 STM32 最小系統(tǒng)電路設(shè)計(jì) .22 5.2.2 硬件功能模塊電路設(shè)計(jì) .25 6 軟件設(shè)計(jì).27 6.1 軟件功能需求及軟件結(jié)構(gòu) .27 6.2 程序流程框圖 .27 7 總結(jié).31 7.1 總結(jié) .31 7.2 實(shí)際應(yīng)用場景 .

3、31 8 參考文獻(xiàn).32 基于 Cortex-M3 芯片的無線測距系統(tǒng) 摘 要 到目前位置,GPS 的應(yīng)用已經(jīng)更加的廣泛,已從軍事、國防和國家高科技產(chǎn)業(yè)擴(kuò)展到 各個(gè)民用領(lǐng)域??梢哉f,現(xiàn)在人類的生活已經(jīng)離不開 GPS 了,人們居家生活需要使用 GPS 定位服務(wù)來查找自己周邊的各種生活服務(wù),自駕出游需要使用 GPS 進(jìn)行路線導(dǎo)航,生活 娛樂交友也無時(shí)無刻不用到 GPS 來確定自己此時(shí)此刻所在的位置。GPS 已經(jīng)不知不覺地融 入到了我們生活的各個(gè)方面。GPS 定位測距系統(tǒng)的主控制器選用 Cortex-M3 系列的 ST 公 司的 STM32 系列 32 位單片機(jī)。主控制器電路包括 STM32F103

4、 主芯片以及外圍的主晶振和 實(shí)時(shí)時(shí)鐘晶振,芯片 I/0 端口,另外還用排針將 5v,3.3v 電源線,地線引出(主要為外 設(shè)供電) ;板子有三個(gè)按鍵,其中一個(gè)是復(fù)位按鍵,另外兩個(gè)是普通功能按鍵,有三個(gè) LED 燈,其中一個(gè)電源指示燈,另外兩個(gè)用于測試系統(tǒng);板子還配有串口,能與計(jì)算機(jī)串 口進(jìn)行串口通信,用于各種軟件的開發(fā)和調(diào)試;此系統(tǒng)還配有實(shí)時(shí)時(shí)鐘模塊,板子斷電 之后仍然可以保持時(shí)鐘芯片的運(yùn)轉(zhuǎn)。最后就是電源模塊和 JTAG 下載器接口了,電源模塊 將 5V 電源轉(zhuǎn)成 3.3V 電源,因?yàn)?STM32 芯片的工作電源電壓要求 3.3v,JTAG 接口用于程 序的下載和在線調(diào)試。 關(guān)鍵字:最小系統(tǒng)板

5、;GPS;STM32;串口 System of measuring distance based on Cortex-M3 chip Abstract Now, GPS applications have become more widespread, from the military, national defense and high-tech industries extended to all civilian areas. We can say that now human life has been inseparable from GPS, people living at h

6、ome need to use GPS location services to find their own living around the various services, car travel route requires the use of GPS for navigation, GPS is used to find friend around you. In short, GPS has been integrated into all aspects of our lives. GPS positioning ranging system master controlle

7、r selects Cortex-M3 series ST s STM32 family of 32- bit microcontrollers . Main controller circuit includes STM32F103 main chip and the external master oscillator and real- time clock oscillator chip I / 0 ports , also with a pin to lead 5v, 3.3v power lines, ground line( mainly peripheral power sup

8、ply ) ; board has three keys , one of which is the reset button, the other two are ordinary function keys ,there are three LED lights , one is power indicator , the other two are for the testing system ; board comes with serial, serial communication can be performed with the computer serial port, fo

9、r a variety of software development and debugging ; this system comes with real-time clock module , which can still keep the clock chip operation with board lack of power( but did not seem to present how to use ) .Finally there are a JTAG download interface and the power module, which will make 5V p

10、ower turn into a 3.3V power, because the STM32 chip operating supply voltage requirements 3.3v, JTAG interface is used in downloading and online debugger . Keywords: The board of minimum circuit system; STM32;GPS; Universal Synchronous Asynchronous Receiver Transmitter 1 緒論 1.1 課題背景 GPS 是的英文全名是 Navi

11、gation System Timing and Ranging/Global Position System,一般人們稱其為全球定位系統(tǒng)。全球定位系統(tǒng)是美國率先研發(fā)的,從 20 世紀(jì)七 八十年代開始由美國軍方國防部率先使用的,最后發(fā)展到各個(gè)民用領(lǐng)域的新一代衛(wèi)星導(dǎo) 航與定位系統(tǒng)。該系統(tǒng)為世界提供精確導(dǎo)航、精準(zhǔn)定位和時(shí)間查詢等服務(wù)。該系統(tǒng)由 24 顆在距離地球約二萬零二百千米高度的軌道上空的衛(wèi)星組成。地面上的 GPS 接受裝置或 設(shè)備接收器設(shè)備接收來自 5 到 12 個(gè)衛(wèi)星的信號,并根據(jù)這些受到的信號計(jì)算出自己的精 確位置、時(shí)間和速度。這明顯意味著 GPS 測量技術(shù)已經(jīng)從大致定位發(fā)展到精確定位。

12、由 于其定位的精度高,已經(jīng)被各個(gè)領(lǐng)域引進(jìn)作為地點(diǎn)位置測量。 到目前位置,GPS 的應(yīng)用已經(jīng)更加的廣泛,已從軍事、國防和國家高科技產(chǎn)業(yè)擴(kuò)展到 各個(gè)民用領(lǐng)域??梢哉f,現(xiàn)在人類的生活已經(jīng)離不開 GPS 了,人們居家生活需要使用 GPS 定位服務(wù)來查找自己周邊的各種生活服務(wù),自駕出游需要使用 GPS 進(jìn)行路線導(dǎo)航,生活 娛樂交友也無時(shí)無刻不用到 GPS 來確定自己此時(shí)此刻所在的位置。GPS 在我們?nèi)粘I钪?已經(jīng)成為了不可或缺的一部分。 1.2 課題內(nèi)容 此次研究的課題主要完成一下的任務(wù): 研究 GPS 工作原理及相關(guān)技術(shù) 研究 GPS 數(shù)據(jù)通信的協(xié)議 研究 Cortex-M3 內(nèi)核(主要研究其中的硬

13、件匯編指令) 熟練的掌握基于 Cortex-M3 內(nèi)核的依法半導(dǎo)體公司的芯片-STM32 的硬件編程 完成最小系統(tǒng)板原理圖、PCB 板的繪制 完成底層串口通信模塊的硬件設(shè)計(jì) 完成基于 STM32 芯片的各個(gè)硬件驅(qū)動程序的編寫 完成下位機(jī)與上位機(jī)的通訊 完成 12864 液晶驅(qū)動程序的設(shè)計(jì),為用戶提供可視化的界面 1.3 課題意義 通過本次課題,熟悉當(dāng)前熱門的 GPS 技術(shù)的原理以及相關(guān)技術(shù),鍛煉自己的動手能 力和語言表達(dá)能力。通過對串口協(xié)議和 GPS 通信協(xié)議的學(xué)習(xí),了解到了在各個(gè)通信場合 通信協(xié)議的重要性,通信協(xié)議讓通信雙方明白那些龐大數(shù)據(jù)流的意義,并可以保證通信 雙方的通信安全。通過最小系

14、統(tǒng)板的設(shè)計(jì),清楚地了解到最小系統(tǒng)的構(gòu)成以及各個(gè)模塊 的作用- STM32F103 主芯片以及外圍的主晶振和實(shí)時(shí)時(shí)鐘晶振,芯片 I/0 端口全部引出, 另外還用排針將 5v,3.3v 電源線,地線引出(主要是給外設(shè)供電) ;板子有三個(gè)按鍵, 其中一個(gè)是復(fù)位按鍵,另外兩個(gè)是普通功能按鍵,有三個(gè) LED 燈,其中一個(gè)電源指示燈, 兩個(gè)用于測試的 LED 燈;板子還配有串口,能與計(jì)算機(jī)串口進(jìn)行串口通信,用于各種軟 件的開發(fā)和調(diào)試;此系統(tǒng)還配有實(shí)時(shí)時(shí)鐘模塊,板子斷電之后仍然可以保持時(shí)鐘芯片的 運(yùn)轉(zhuǎn)(不過好像目前都沒怎么用到) ;最后就是電源模塊和 JTAG 下載器接口了,電源模 塊將 5V 電源轉(zhuǎn)成 3

15、.3V 電源,因?yàn)?STM32 芯片的工作電源電壓要求 3.3v,JTAG 接口用于 程序的下載和在線調(diào)試。通過這整個(gè)的設(shè)計(jì)過程,熟練的掌握了 PBC 的設(shè)計(jì)與制作過程。 通過硬件驅(qū)動程序的編寫,對硬件驅(qū)動編程又有了更加深一步的認(rèn)識與了解,熟悉各個(gè) 外設(shè)器件的功能與性能。并且很好地鍛煉了自己獨(dú)立閱讀外文資料的能力。 2 相關(guān)技術(shù)基礎(chǔ)概述 2.1 Cortex-M3 內(nèi)核芯片 本課題采用基于 Cortex-M3 依法半導(dǎo)體公司設(shè)計(jì)的芯片-STM32,該芯片擁有眾多先 進(jìn)的外設(shè): 復(fù)雜多變的 I/O 端口 功能強(qiáng)大的 DMA 先進(jìn)的高級定時(shí)器和通用定時(shí)器 方便靈活的 I2C 接口 速度極快的 FS

16、MC STM32 的 GPI/O 功能強(qiáng)大,編程方便。其中每個(gè)端口有兩個(gè) 32 位 GPI/O 端口模式控 制寄存器,一個(gè) 16 位數(shù)據(jù)讀入寄存器,一個(gè) 16 位數(shù)據(jù)輸出寄存器,一個(gè) 32 位端口置位 復(fù)位寄存器。STM32 的端口之所以功能強(qiáng)大,是因?yàn)槠淇梢耘渲贸啥喾N工作模式,最常用 的工作模式有:通用推挽輸出,上拉/下拉輸入。其中每個(gè)端口的時(shí)鐘也可以進(jìn)行調(diào)節(jié), 這在低功耗領(lǐng)域極其有用。端口的最高時(shí)鐘不得高于 50MHz。 其中 GPI/O 端口可以用作通用端口,還可以用于復(fù)用端口。一些內(nèi)部外設(shè)的功能管 腳可以通過配置映射寄存器映射到其它管腳,這個(gè)功能使得引腳的重復(fù)率大大地降低。 端口的鎖定

17、機(jī)制將端口的配置鎖定,保證了端口配置不會被惡意修改。 STM32 的每一個(gè)芯片都可以端口都可以配置為中斷輸入管腳,這個(gè)強(qiáng)大的功能使得該 芯片處理實(shí)時(shí)事件的能力大大地增強(qiáng)。 2.2 串口協(xié)議 計(jì)算機(jī)與計(jì)算之間以及計(jì)算機(jī)與低速外設(shè)之間通常使用串口通信,串口通信屬于串 行通信。串行通信是將數(shù)據(jù)一位一位的發(fā)送出去,接收方將接受的數(shù)據(jù)一位一位拼接成 完整的數(shù)據(jù),由于串行通信將數(shù)據(jù)按位發(fā)送,其所用的數(shù)據(jù)線少,傳輸速度慢,適合低 速設(shè)備之間的通信,并且適用于長距離傳輸。相對于串行通信的并行通信,并行通信是 將數(shù)據(jù)位一次性同時(shí)發(fā)送出去,所需時(shí)間短,通信速度快,特別適合系統(tǒng)內(nèi)部各個(gè)組成 部分之間的通信,但其相對

18、于串行通信而言,數(shù)據(jù)線增大了幾倍,浪費(fèi)數(shù)據(jù)線,在長距 離通信中代價(jià)高昂,所以長距離通信一般不實(shí)用并行通信。 同步和異步通信方式 在串行通信中,又分為串行同步通信和串行異步通信。 異步通信中,發(fā)送設(shè)備和接受設(shè)備可以不實(shí)用同一個(gè)時(shí)鐘,因而對協(xié)議的要求不高, 極易實(shí)現(xiàn)。但是在傳送數(shù)據(jù)的過程中,通信雙方必須事先規(guī)定好通信的數(shù)據(jù)格式,即傳 輸協(xié)議,同時(shí)也必須確定通信的速率。以串口通信為例,其數(shù)據(jù)格式包含一位起始位, 若干數(shù)據(jù)位,以為奇偶校驗(yàn)位,一到二位停止位,在串口通信中,通信速率和波特率是 一個(gè)概念。所以在進(jìn)行串口通信中要事先確定收發(fā)雙方的數(shù)據(jù)格式和波特率。 由于異步通信的特點(diǎn),在通信過程中要在每個(gè)通

19、信數(shù)據(jù)上加上起始位和停止位。對 于快速傳送大量數(shù)據(jù)的場合,為了提高數(shù)據(jù)傳送的效率,一般采用同步串行傳送方式。 同步傳送時(shí),無須起始位和停止位。在同步通信中,數(shù)據(jù)的傳送往往是以幀為單位,這 個(gè)數(shù)據(jù)的長度依據(jù)傳輸數(shù)據(jù)的長度可大可小,在傳輸時(shí)只需在數(shù)據(jù)的頭部加上同步信號, 這樣就大大增加了數(shù)據(jù)傳輸?shù)男?。同步傳送要求對傳送的每一位在首發(fā)兩端保持嚴(yán)格 同步,發(fā)送端、接收端可使用同一時(shí)鐘源以保證同步。 數(shù)據(jù)傳送方式 在串行通信中,數(shù)據(jù)在連個(gè)設(shè)備之間進(jìn)行傳送。按照數(shù)據(jù)的傳送方向的不同,可以 把數(shù)據(jù)傳送方式分為:單工、半雙工和全雙工。 數(shù)據(jù)只能向單一方向傳送。從設(shè)備 1 發(fā)送到設(shè)備 2,設(shè)備 1 是發(fā)送方,

20、設(shè)備 2 是 1 接受方。 數(shù)據(jù)可從設(shè)備 1 發(fā)送到設(shè)備 2,此時(shí)設(shè)備 1 是放松方,設(shè)備 2 是接受方;也可以 2 從設(shè)備 2 發(fā)送到設(shè)備 1,此時(shí)設(shè)備 2 是發(fā)送方,設(shè)備 1 是接受方。但某一設(shè)備不能同接受 數(shù)據(jù)和發(fā)送數(shù)據(jù)。在這種方式下,由于兩設(shè)備之間只有一條傳輸線,某一時(shí)刻數(shù)據(jù)只能 向某一方向傳送。 相對于半雙工和單工通信,全雙工通信有兩根數(shù)據(jù)傳輸線,這就意味著,在同一 3 時(shí)刻,數(shù)據(jù)收發(fā)雙方可以同時(shí)向?qū)Ψ絺魉蛿?shù)據(jù)。所以全雙工通信速度也比其它兩種的通 信方式快。 傳輸速率 在并行通信中,傳輸速率用每秒傳輸?shù)淖止?jié)數(shù)表示,單位是:Bps。相對的,在串行 通信中,傳輸速率用波特率表示。波特率的

21、單位是:波特,1 波特=1 位/妙(bps) 。串行 通信雙方使用相同的波特率,雖然收發(fā)雙方的時(shí)鐘不可能完全一樣,但由于每一幀的尾 數(shù)最多只有 12 位,因此時(shí)鐘的微小誤差不會影響接受數(shù)據(jù)的正確性。 在一般實(shí)驗(yàn)中,串口通信最常用的波特率是:9600bps 和 bps。 在串行通信是將數(shù)據(jù)拆分,一位一位地發(fā)送出去的。 2.3 GPS 定位技術(shù)及數(shù)據(jù)傳輸協(xié)議 NMEA0183 NMEA 0183 是美國國家海洋電子協(xié)會(National Marine Electronics Association )指定的標(biāo)準(zhǔn)協(xié)議,目前已經(jīng)被廣泛的接受作為 GPS 導(dǎo)航設(shè)備通信協(xié)議的標(biāo)準(zhǔn)。 其中協(xié)議的各個(gè)命令如表

22、 2-1 所示: 編號編號命令命令說明說明最大幀長度最大幀長度 1$GPGGA全球定位數(shù)據(jù)72 2$GPGSA衛(wèi)星 PRN 數(shù)據(jù)65 3$GPGSV衛(wèi)星狀態(tài)信息210 4$GPRMC運(yùn)輸定位數(shù)據(jù)70 5$GPVTG地面速度信息34 6$GPGLL大地坐標(biāo)信息無 7$GPZDAUTC 時(shí)間和日期無 表 2-1 指令意義 發(fā)送數(shù)據(jù)的順序如表 2-2 所示: 1234567 $PZDA$GPGGA$GPGLL$GPVTG$GPGSA$GPGSV*3$GPRMC 表 2-2 數(shù)據(jù)發(fā)送順序 協(xié)議幀總說明: 該協(xié)議采用 ASCII 字符直接傳輸,傳輸?shù)耐ㄐ鸥袷綖椋阂粋€(gè)起始位,無奇偶校驗(yàn)位, 一個(gè)停止位,通

23、信速率默認(rèn)為 4800bps。 幀格式形如:$bbccc,ddd,ddd,ddd*hh 1、 “$”幀命令起始位 2、bbccc地址域,前兩位為識別符,后三位為語句名 3、dddddd數(shù)據(jù) 4、 “*”校驗(yàn)和前綴 5、hh校驗(yàn)和,$和*字符之間所有 ASCII 字符的校驗(yàn)和(每個(gè) ASCII 字符的異或 運(yùn)算。 ) 6、數(shù)據(jù)信息結(jié)束的表示,表示回車和換行。 GPGGA 這幀數(shù)據(jù)是最常用的數(shù)據(jù),必須要掌握,包含的 GPS 信息也最多。 $GPGGA,* 全球定位時(shí)間,格式為 時(shí)分妙.毫秒。 緯度信息數(shù)據(jù)。 S 代表南緯,N 代表北緯。 經(jīng)度信息數(shù)據(jù)。 E 代表東經(jīng),W 代表西經(jīng)。 定位成功標(biāo)志,

24、0=定位失敗,1=定位成功。 連接衛(wèi)星的數(shù)量,從 0 到 12。 平面精度值,0.5 至 99.9。 海拔高度,-9999.9 之 9999.9。 高度的單位,M 代表長度單位米。 大地相對海平面的高度(999.9 到 9999.9) 。 高度的單位,M 代表長度米。 差分 GPS 接受數(shù)據(jù)的時(shí)間界限。 差分參考基站的編號。 校驗(yàn)和。 2.4 12864 顯示器 12864 液晶顯示器有兩種顯示模式,一:字庫顯示模式,二:圖像顯示模式。其中使 用字庫顯示模式是要使用基本指令集,使用圖像顯示模式時(shí)要用到擴(kuò)展指令集。 在操作 12864 液晶顯示器時(shí)要了解其各個(gè)管腳的定義與功能,表 2-3 是 1

25、2864 液晶 顯示器的管腳定義與功能: 引腳編號名稱電平功能 1VSS0V電源 2VDD+5V地 3V0-LCD 驅(qū)動電壓 4D/IH/LH:寫數(shù)據(jù) L:寫命令 5R/WH/LH:讀信號 L:寫信號 6EH/LH:使能 L:失能 7-14DB0-DB7H/L數(shù)據(jù)端口 15PSBH/LH:并行 L:串行 16NC- 17/RESH/LH:- L:復(fù)位 18NC- 19LED(+)+5VLCD 背光電源 20LED(-)0VLCD 背光地 表 2-3 12864 引腳名稱 常用寄存介紹: 1清除顯示,清除命令的定義如表 2-4 所示 RWRSDB7DB6DB5DB4DB3DB2DB1DB0 LL

26、LLLLLLLH 表 2-4 清除命令 功能:清除顯示屏幕,把 DDRAM 地址計(jì)數(shù)器調(diào)整為“00H” 2地址歸位,地址歸位命令如表 2-5 所示 RWRSDB7DB6DB5DB4DB3DB2DB1DB0 LLLLLLLLHX 表 2-5 地址歸位命令 功能:打 DDRAM 地址計(jì)數(shù)器調(diào)整為“00H”,游標(biāo)回到原點(diǎn),該功能不影響屏幕的顯 示 3顯示狀態(tài) 開/關(guān),顯示開關(guān)命令如表 2-6 所示 RWRSDB7DB6DB5DB4DB3DB2DB1DB0 LLLLLLHDCB 表 2-6 顯示開關(guān)命令 功能:D 為 1; 整體顯示開 C 為 1; 游標(biāo)顯示開 B 為 1; 游標(biāo)位置開 在編寫程序的過

27、程中,若不讀取芯片的忙碌狀態(tài),寫入數(shù)據(jù)與命令之后必須延時(shí)一 段時(shí)間,來等待芯片的操作結(jié)束。 3 軟件環(huán)境的構(gòu)建 3.1 編譯環(huán)境的安裝與使用 隨著時(shí)間的推移,ARM7 和 ARM9 內(nèi)核越來越深入微控制器領(lǐng)域,引來了許多的開發(fā)工 具對這些 CPU 的支持,其中主要的開發(fā)編譯平臺有 GCC、Greenhills、Keil、IAR 和 Tasking 等。隨著新一代 Cortex-M3 處理器的誕生,絕大部分的開發(fā)工具都很“識趣”地 迅速進(jìn)行更新以支持 Thumb-2 指令集。因此在進(jìn)行 STM32 開發(fā)之前,開發(fā)人員事先至少 需要要獲取以上幾種開發(fā)工具的一種。所幸的是,這些開發(fā)工具都能輕易的獲取

28、到,并 且有的還是免費(fèi)開源。 一般情況下,建議選用芯片提供商所推薦的開發(fā)平臺。但時(shí)至今日,每個(gè)開發(fā)平臺 都有其長處,要在兩個(gè)開發(fā)平臺之間分出優(yōu)劣,恐怕要花費(fèi)大量的時(shí)間來討論,并且往 往無疾而終。因此除了芯片提供商推薦的開發(fā)平臺外,開發(fā)人員還是有別的選擇的。開 發(fā)平臺主要分為兩類。一類是免費(fèi)開源的具有“大眾”性質(zhì)的開發(fā)平臺,而一類是收費(fèi) 具有“專業(yè)”性質(zhì)的開發(fā)平臺。 免費(fèi)的開發(fā)平臺,首當(dāng)其沖的無疑是基于 GCC 或 GUN 編譯器的開發(fā)平臺,這兩個(gè)編 譯器是完全免費(fèi)且開源的,用戶可以任意下載在任何場合放心使用。GCC 編譯器已經(jīng)被整 合到眾多的商業(yè)集成開發(fā)環(huán)境(IDE)和調(diào)試工具中,也由此出現(xiàn)了

29、許多廉價(jià)的開發(fā)工具 和評估開發(fā)板。GCC 編譯器的可靠性和穩(wěn)定性是有目共睹的,但是大眾普遍認(rèn)為它生成的 代碼不比商業(yè)平臺來的更有效率,而使用 GCC 遇到的問題也無法得到直接的技術(shù)支持, 這樣就會容易延緩產(chǎn)品的開發(fā)進(jìn)度。 商業(yè)開發(fā)平臺方面,ARM RealView 開發(fā)平臺作為 ARM 公司自行推出的產(chǎn)品,在業(yè)界 具備相當(dāng)?shù)臋?quán)威性,但其也以壓倒性的強(qiáng)大功能和令人生畏的價(jià)格令諸多工程師“又愛 又恨” 。RealView 編譯器是 ARM RealView IDE 一系列組件之一,在片上操作系統(tǒng)領(lǐng)域應(yīng) 用較多,但是對于微控制器開發(fā)并沒有很好的支持。MDK 的長處在于功能完善,易于使用, 而且為開發(fā)

30、者提供了無縫的工具集。 相比 Keil 而言,IAR 編譯環(huán)境是 1938 開發(fā)的,許多芯片公司,如德州儀器、意法半 導(dǎo)體、美信等的前沿產(chǎn)品都使用 IAR 編譯環(huán)境。 在本次課題中,使用 Keil 編譯環(huán)境。 首先在官網(wǎng) http:/ 1. 點(diǎn)擊安裝包安裝,選擇安裝路徑,出現(xiàn)如圖 3-1 所示的對話框: 圖 3-1 安裝初始化界面 2. 填寫用戶信息,輸入姓名、公司名和郵箱地址,安裝程序會彈出如圖 3-2 所示的 對話框: 圖 3-2 用戶信息登錄界面 3. 安裝完成之后需要對軟件進(jìn)行破解,否則軟件無法編譯調(diào)試打大的文件程序。 接下來是建立一個(gè)可用的工程,Keil 編譯器是以工程的形式來組織建

31、立代碼的,各 個(gè) c 語言的源文件都要在工程的組織形式下才能發(fā)揮作用。 首先點(diǎn)擊編譯中 project 中的 new project 按鈕,即新建一個(gè)工程,如圖 3-3 所示。 圖 3-3 新建工程界面 下面一步是選擇硬件的型號,這個(gè)步驟很重要,每款硬件都有區(qū)別,對應(yīng)的啟動代 碼也就不一樣,Keil 編譯器的一個(gè)優(yōu)點(diǎn)就是不需要用戶編寫硬件的啟動代碼,選擇硬件 的型號之后就會自動生成硬件的啟動代碼,所以這一步不能夠選錯(cuò),否則就會生成錯(cuò)誤 的啟動代碼,這樣硬件芯片就無法配置出正常的 c 語言運(yùn)行環(huán)境,整個(gè)軟件系統(tǒng)也就無 法正常工作,但往往這個(gè)錯(cuò)誤在程序中卻很難發(fā)現(xiàn)。 本課題所用的到硬件是 ST 公

32、司的招牌芯片 STM32F103VC,按圖 3-4 選擇正確的芯片 型號: 圖 3-4 芯片幸好選擇界面 經(jīng)過該過程后,下面就是在工程中組織排列源代碼了,首先要建立若干個(gè)文件夾, 以便將不功能的硬件驅(qū)動代碼存放在不同的位置,方便查找。在軟件當(dāng)中,點(diǎn)擊“三個(gè) 立方體”的按鈕,會出現(xiàn)如圖 3-5 的對話框,在如下的對話框中新建自己命名的文件夾 和添加一些源文件。 圖 3-5 工程文件夾建立界面 在設(shè)置完文本編輯工具之后,下面將要設(shè)置編譯環(huán)境。點(diǎn)擊“三個(gè)立方體”左邊的 按鈕會出現(xiàn)圖 3-6 的對話框。 圖 3-6 編譯器編譯選項(xiàng) 首先配置 C/C+選項(xiàng)卡中的內(nèi)容,在第一行中的宏定義中要寫入特定的宏定

33、義,事先 告訴編譯器將要編譯那種芯片,由于同一系列的不同芯片硬件時(shí)鐘等的配置上稍有差異, 所以有些編譯內(nèi)容頁不盡相同,在此通過宏定義讓機(jī)器具備了區(qū)分不同芯片的能力,使 得編譯器編譯出對應(yīng)每種不同芯片的正確文件。本課題所用到的芯片所對應(yīng)的宏定義為: STM32F10X_HD。 設(shè)置完編譯器的宏定義后,下面要設(shè)置工程中所使用到頭文件的文件目錄。因?yàn)樵?工程中涉及到了許多的 c 語言的源文件,而這些源文件中必然包括著許多的頭文件,有 些頭文件是系統(tǒng)自帶的,像系統(tǒng)的庫函數(shù)等,這些就不需要我們另行說明什么,系統(tǒng)會 自行的找到其所在的位置,另外有相當(dāng)一部分是用戶自定義的頭文件,系統(tǒng)中是沒有記 錄這些文件的

34、位置的,所以要想 Keil 編譯器識別這些頭文件,就必須手動設(shè)置這些頭文 件所在的目錄,這樣在編譯器編譯的時(shí)候就會去用戶指定的目錄去尋找這些頭文件,使 得編譯器正確編譯。要是不加這些目錄信息,編譯器就不知道要去哪里查找用戶的頭文 件,編譯器就會有出錯(cuò)提示。 編譯器編譯選項(xiàng)設(shè)置完成之后,緊接著要設(shè)置 Debug 選項(xiàng)卡中調(diào)試仿真選項(xiàng),點(diǎn)擊 Debug 選項(xiàng)卡后出現(xiàn)如圖 3-7 所示對話框: 圖 3-7 調(diào)試選項(xiàng) 該選項(xiàng)是仿真設(shè)置選項(xiàng),分為左右兩欄,左邊是設(shè)置軟件仿真的各個(gè)選項(xiàng),右邊是 設(shè)置硬件仿真的各個(gè)選項(xiàng),本課題調(diào)試采用硬件仿真,并使用 Jlink 進(jìn)行程序下載和調(diào) 試,所以在右邊第一欄長條中

35、選擇 Cortex-M3 Jlink,表示使用 Jlink 硬件來調(diào)試程序。 最后要設(shè)置編譯其中的下載功能,點(diǎn)擊 Utilities 選項(xiàng)卡,出現(xiàn)如下圖 3-8 對話框: 圖 3-8 下載選項(xiàng) 在第一個(gè)長條中選擇如上圖所示的硬件設(shè)備,完成之后再點(diǎn)擊長條右邊的 “Settings”按鈕,進(jìn)入到圖 3-9 的對話框: 圖 3-9 Flash 選項(xiàng) 在此對話框中,主要設(shè)置不同芯片的 Flash 映射,選擇之后,下載器就能根據(jù)該信 息將編譯好的固件下載到芯片 Flash 的對應(yīng)位置,從而讓程序正確運(yùn)行。 3.2 PCB繪制軟件的安裝與使用 1 安裝 AD10 電路圖繪制軟件如圖 3-10: 圖 3-1

36、0 AD10 安裝界面 2 選擇文件讀取路徑,如圖 3-11: 圖 3-11 AD10 安裝目錄選擇界面 4 系統(tǒng)總體方案設(shè)計(jì) 4.1 功能需求 系統(tǒng)主要要完成一下幾個(gè)功能: 驅(qū)動液晶顯示屏顯示系統(tǒng)指定的信息 能夠完成與電腦用戶應(yīng)用的數(shù)據(jù)通信和命令傳送 能夠完成 GPS 數(shù)據(jù)的采集與解析 在主控制器內(nèi)部能根據(jù)相應(yīng)的算法解析出來的數(shù)據(jù)算出兩個(gè) GPS 坐標(biāo)點(diǎn)之間的距 離 4.2 系統(tǒng)的總體框架 主 控 制 器 液晶顯示器 GPS數(shù)據(jù)接 受設(shè)備 應(yīng)用程序 按鍵功 能模塊 實(shí)時(shí)時(shí) 鐘模塊 LED燈顯示 模塊 串口 協(xié)議 通信驅(qū) 動協(xié)議 顯示驅(qū) 動 控制 驅(qū)動 控制 驅(qū)動 控制 驅(qū)動 圖 4-1 硬件

37、系統(tǒng)的組成框圖 系統(tǒng)的結(jié)構(gòu)框圖如圖 4-1 所示,系統(tǒng)的各個(gè)模塊由主控制器負(fù)責(zé)控制,首先由 GPS 接收器將接收到的數(shù)據(jù)傳輸給主控制器,主控制器根據(jù)用戶從按鍵,應(yīng)用處理輸入的命 令對接受到的數(shù)據(jù)采取不同的處理方法,處理后的結(jié)果可以通過液晶顯示器直接呈現(xiàn)給 用戶,也可以將結(jié)果通過串口發(fā)送給應(yīng)用程序,由應(yīng)用程序完成顯示部分的功能。 5 硬件設(shè)計(jì) 5.1 硬件功能需求及芯片選型 5.1.1 硬件功能需求 系統(tǒng)要擁有最小系統(tǒng)的全部電路功能 系統(tǒng)要有與電腦通信的串口模塊 系統(tǒng)要擁有在線調(diào)試功能,在發(fā)生錯(cuò)誤的時(shí)候能進(jìn)行調(diào)試 5.1.2 芯片的選型 根據(jù)以上要求可以列出如表 5-1 所示的全部芯片型號: 芯

38、片名稱所需數(shù)量描述 STM32103VC1主控制器芯片 MAX32321CMOS 電平轉(zhuǎn) RS-232 電平 ASM117-3.3V15V 電壓轉(zhuǎn) 3.3V 電壓 晶振232768kHz 和 8MHz 按鍵3一個(gè)復(fù)位,兩個(gè)功能按鍵 LED 燈3一個(gè)電源指示燈 表 5-1 選型器件 5.2 硬件模塊電路設(shè)計(jì) 5.2.1 主控芯片STM32最小系統(tǒng)電路設(shè)計(jì) 主控芯片 STM32 最小系統(tǒng)電路包括電源電路、復(fù)位電路、晶振電路和寫入電路。 電源電路 電源電路如圖 5-1 和 5-2 所示,電路中,引腳 6 的 VBAT 為電池,引腳 22 的 VDDA 為 外部芯片電源,VDD_15 為外部電源,供給

39、 3.3V,VSSA 接地。 圖 5-1 電源模塊 電源引腳濾波電路 電源引腳濾波電路如圖 5-3 和圖 5-4 所示。圖 5-3 中在芯片的電源引腳和地引腳之 間連接 5 個(gè)濾波電容,用來濾除電源的毛刺。圖 5-4 中使用電感來濾除電源中的交流信 號,并使用一大一小兩個(gè)電容來分別濾除電源中的低頻噪聲和高頻噪聲。VDDA 是經(jīng)濾波 后得到的,VSSA 是經(jīng)濾波后的電感所得到的。減少引線,可增加輸入電流大小,Vref 為 參考電壓,電感的作用是通直流阻交流,電容的作用是進(jìn)行濾波,在參考電壓之間增加 0.1uF 和 10uF 的濾波電容,其中小電容可以慮高頻噪聲干擾,大電容可以慮低頻噪聲干 擾。

40、圖 5-2 電源電路 圖 5-3 STM32 電源引腳濾波(1) 圖 5-4 STM32 電源引腳濾波(2) 外部時(shí)鐘電路 在單片機(jī)系統(tǒng)中,晶振的做事是至關(guān)重要的。它為單片機(jī)系統(tǒng)提供穩(wěn)定的系統(tǒng)時(shí)鐘。 無論是何種電子儀器儀表,工作時(shí)都需要時(shí)鐘電路。所以晶振電路是單片機(jī)系統(tǒng)的基礎(chǔ), 在一定程度上單片機(jī)的一個(gè)總線周期所用的時(shí)間與晶振的頻率成反比。晶振時(shí)鐘電路如 圖 5-5 所示。 圖 5-5 晶振時(shí)鐘電路 本系統(tǒng)使用的是無源晶振是 25MHz 的晶振,外加兩個(gè)電容,大小為 20pF,電容大小 由芯片手冊中指定,輸入信號經(jīng) OSC IN 進(jìn)入,經(jīng) X1 無源晶振,最后輸出的信號依然為 25MHz,由此

41、產(chǎn)生反饋。 復(fù)位電路 圖 5-6 復(fù)位電路 圖 5-6 為復(fù)位電路,復(fù)位電路中使用 MAX809 復(fù)位管理芯片,MAX809 為低電平復(fù)位管 理芯片。復(fù)位電路在單片機(jī)系統(tǒng)中也是必須的組成部分,單片機(jī)系統(tǒng)因?yàn)槟承┮蛩囟?運(yùn)行程序發(fā)生異常,導(dǎo)致單片機(jī)無法正常工作,這個(gè)時(shí)候就可以通過復(fù)位電路了對單片 機(jī)進(jìn)行手動復(fù)位,使程序恢復(fù)正常的狀態(tài)。提高了單片機(jī)的穩(wěn)定性,使單片機(jī)能夠應(yīng)付 復(fù)雜多變的環(huán)境。低電平時(shí),復(fù)位有效。當(dāng)?shù)碗娖匠掷m(xù)一段時(shí)間,單片機(jī)就能達(dá)到復(fù)位 的效果。它使用 3 管腳的 SOT23 封裝。 NRST 引腳為復(fù)位引腳,平常都為高電平,在復(fù)位電路中,都會不斷監(jiān)測 3 號引腳的 電壓值,當(dāng) 3

42、 號引腳的電壓值低于 2.3V 的時(shí)候,2 號引腳會產(chǎn)生低電平,以此來給主控 芯片 STM32 復(fù)位。 仿真寫入電路 JTAG 是仿真下載接口,STM32 芯片可以通過該接口進(jìn)行硬件仿真和下載,它是將電 腦編譯好的固件下載到單片機(jī)中的工具,有這極其中藥的地位。 圖 5-7 仿真寫入電路 5.2.2 硬件功能模塊電路設(shè)計(jì) 硬件功能模塊電路包括液晶顯示電路、按鍵檢測電路和狀態(tài)指示燈電路和繼電器控 制電路。 按鍵電路 按鍵電路如圖 5-8 所示。從高電平到低電平會產(chǎn)生下降沿中斷,未按鍵的時(shí)候是高 電平,當(dāng)有中斷產(chǎn)生的時(shí)候說明有鍵按下。通過相應(yīng)控制引腳的下降沿觸發(fā)中斷和內(nèi)部 上拉控制方式,可以完成按鍵

43、的識別。 圖 5-8 按鍵電路 狀態(tài)指示燈電路 指示燈電路如圖 5-9 所示。I/O 口控制的,通過主控芯片的 PE7 和 PE8 來控制指示燈, 當(dāng)控制引腳為低電平時(shí),相應(yīng)的指示燈亮,當(dāng)控制引腳為高電平時(shí),相應(yīng)的指示燈滅。 圖 5-9 指示燈電路 6 軟件設(shè)計(jì) 6.1 軟件功能需求及軟件結(jié)構(gòu) 軟件需要完成硬件通信,控制以及數(shù)據(jù)解析等功能: 能夠從按鍵檢測到用戶的命令 能夠收到應(yīng)用程序發(fā)來的用戶命令,并完成其指定的功能 能夠接受到 GPS 傳回來的數(shù)據(jù) 能夠在規(guī)定的時(shí)間范圍內(nèi)解析出數(shù)據(jù) 能夠驅(qū)動實(shí)時(shí)時(shí)鐘 能夠驅(qū)動液晶顯示屏顯示任何漢字 能夠完成與應(yīng)用程序的數(shù)據(jù)與命令的傳輸 6.2 程序流程框圖

44、 程序模塊分為按鍵檢測,上位機(jī)通信,液晶顯示器驅(qū)動,GPS 接受設(shè)備通信: 按鍵檢測模塊,讀取用戶按下的按鍵,執(zhí)行相應(yīng)的用戶命令,圖 6-1 為其流程圖: 開始 是否有按鍵按 下 是 讀取按鍵編號,調(diào) 用相應(yīng)的子程序 否 功能子程序 圖 6-1 按鍵檢測模塊 按鍵檢測子程序,用戶可以通過按鍵控制程序的流程,完成用戶指定的功能。 應(yīng)用程序通信子模塊,接受來自上位機(jī)的數(shù)據(jù)或命令,完成相應(yīng)的操作: 開始 待機(jī)應(yīng)用程序中斷 激活 分析數(shù)據(jù)類型命令解析指令數(shù)據(jù)解析數(shù)據(jù) 內(nèi)部處理液晶顯示發(fā)揮終端應(yīng)用程序 發(fā)送指令 圖 6-2 上位機(jī)通信子程序 如圖 6-2 所示,該子程序負(fù)責(zé)與上位機(jī)的通信。包括接受來自上

45、位的數(shù)據(jù)與命令, 向上位機(jī)發(fā)送采集到的數(shù)據(jù)等。 液晶驅(qū)動子程序,調(diào)用液晶顯示器的顯示功能: 開始 讀寫控制協(xié)議 寫入液晶顯示器 是 寫入指令是否 成功 否 結(jié)束 圖 6-3 液晶顯示器驅(qū)動子程序 從圖 6-3 看出,該子程序驅(qū)動液晶顯示器向用戶顯示顯示中文提示信息,以及最終 的結(jié)果,方便用戶查看該系統(tǒng)所測量的到的數(shù)據(jù)。 GPS 接受設(shè)備通信模塊: 開始 進(jìn)入等待狀態(tài) GPS發(fā)送 數(shù)據(jù) 中斷系統(tǒng) 激活 接受數(shù)據(jù)并分 析類型 數(shù)據(jù)調(diào)用數(shù)據(jù)處理程序 命令 解析命令,調(diào)用子 程序 子程序集合 圖 6-4 GPS 信號數(shù)據(jù)接受子程序 有圖 6-4 分析可知,該子程序負(fù)責(zé)接受來自 GPS 衛(wèi)星的定位數(shù)據(jù)信

46、息,并使用 GPS 通信協(xié)議通過串口將接受到的數(shù)據(jù)通過串口發(fā)送給主控制器,由主控制器完成最后的處 理。 7 總結(jié) 7.1 總結(jié) 通過本次課題,熟悉當(dāng)前熱門的 GPS 技術(shù)的原理以及相關(guān)技術(shù),鍛煉自己的動手能 力和語言表達(dá)能力。通過對串口協(xié)議和 GPS 通信協(xié)議的學(xué)習(xí),了解到了在各個(gè)通信場合 通信協(xié)議的重要性,通信協(xié)議讓通信雙方明白那些龐大數(shù)據(jù)流的意義,并可以保證通信 雙方的通信安全。通過最小系統(tǒng)板的設(shè)計(jì),清楚地了解到最小系統(tǒng)的構(gòu)成以及各個(gè)模塊 的作用- STM32F103 主芯片以及外圍的主晶振和實(shí)時(shí)時(shí)鐘晶振,芯片 I/0 端口全部引出, 另外還用排針將 5v,3.3v 電源線,地線引出(主要是給外設(shè)供電) ;板子有三個(gè)按鍵, 其中一個(gè)是復(fù)位按鍵,另外兩個(gè)是普通功能按鍵,有三個(gè) LED 燈,其中一個(gè)電源指示燈, 兩個(gè)用于測試的 LED 燈;板子還配有串口,能與計(jì)算機(jī)串口進(jìn)行串口通信,用于各種軟 件的開發(fā)和調(diào)試;此系統(tǒng)還配有實(shí)時(shí)時(shí)鐘模塊,板子斷電之后仍然可以保持時(shí)鐘芯片的 運(yùn)轉(zhuǎn)(不過好像目前都沒怎么用到) ;最后就是電源模塊和 JTAG 下載器接口了,電源模 塊將 5V 電源轉(zhuǎn)成 3.3V 電源,因?yàn)?STM32 芯片的工作電源電壓要求 3.3v,

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論