




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 電控學(xué)院課程設(shè)計(jì)(論文) 課程名稱: ARM課程設(shè)計(jì) 題 目: 基于ARM的頻率計(jì)系統(tǒng)設(shè)計(jì) 院 (系): 電xxxxxxxxxxxxxxx 專業(yè)班級(jí): 測(cè)控技術(shù)與與儀器xxxx班 姓 名: xxxxxxxxxxxx 學(xué) 號(hào): xxxxxxxxxxxxxxxxxxxxxxxxx 指導(dǎo)教師: xxxxxxxxxxxxxxxxxxxxxxx 2017 年 1 月 6 日摘 要隨著移動(dòng)設(shè)備的流行和發(fā)展,嵌入式系統(tǒng)已經(jīng)成為一個(gè)熱點(diǎn)。它并不是最近出現(xiàn)的新技術(shù),只是隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的發(fā)展,微控制芯片功能越來(lái)越大,而嵌入微控制芯片的設(shè)備和系統(tǒng)越來(lái)越多,從而使得這種技術(shù)越來(lái)越引人注目。它對(duì)軟硬件的體
2、積大小、成本、功耗和可靠性都提出了嚴(yán)格的要求。嵌入式系統(tǒng)的功能越來(lái)越強(qiáng)大,實(shí)現(xiàn)也越來(lái)越復(fù)雜,隨之出現(xiàn)的就是可靠性大大降低。最近的一種趨勢(shì)是一個(gè)功能強(qiáng)大的嵌入式系統(tǒng)通常需要一種操作系統(tǒng)來(lái)給予支持,這種操作系統(tǒng)是已經(jīng)成熟并且穩(wěn)定的,可以是嵌入式的Linux,WINCE等等。本文所要研究的就是基于ARM嵌入式系統(tǒng)的頻率計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。本設(shè)計(jì)采用了32位ARM微處理器STM32F103作為核心處理器和ARM Linux作為嵌入式操作系統(tǒng)。實(shí)現(xiàn)了單位周期的頻率計(jì)數(shù),采用串口與基于Labview的上位機(jī)實(shí)現(xiàn)通信,將實(shí)時(shí)結(jié)果顯示在上位機(jī)的界面。關(guān)鍵詞:嵌入式系統(tǒng),ARM ,STM32F103 ,嵌入式l
3、inux , Labview前 言在電子技術(shù)各參數(shù)中,頻率測(cè)量的精確度是最高的,因而人們常利用某種確定的函數(shù)關(guān)系把其他電參數(shù)的精確測(cè)量轉(zhuǎn)換為頻率的測(cè)量。目前,測(cè)量頻率方法主要有低頻測(cè)周期、高頻測(cè)頻率、多周期同步測(cè)量法以及多周期完全同步測(cè)頻法。采用低頻端測(cè)周、高頻端測(cè)頻時(shí),存在中界頻率測(cè)量誤差大即測(cè)量死區(qū)問(wèn)題,因此頻率的測(cè)量準(zhǔn)確度很難提高到較高的數(shù)量級(jí);采用多周期完全同步測(cè)頻法,則閘門控制時(shí)間必須是被測(cè)信號(hào)與時(shí)標(biāo)信號(hào)周期個(gè)數(shù)的最大公約數(shù),因此進(jìn)行一次完全同步測(cè)量需要很長(zhǎng)的時(shí)間,不適于對(duì)實(shí)時(shí)性要求較高的場(chǎng)合,多周期同步測(cè)頻法,其最大優(yōu)點(diǎn)就是與被測(cè)信號(hào)頻率大小無(wú)關(guān),測(cè)量速度快,精度高。但多周期同步測(cè)
4、量法存在同步電路結(jié)構(gòu)復(fù)雜,易造成誤觸發(fā),可靠性不高,且此方法雖在原理上消除了±1量化誤差,但在實(shí)際應(yīng)用中,經(jīng)過(guò)同步電路之后,只消除了-1量化誤差,仍不能保證完全消除+1量化誤差,因此測(cè)量精度會(huì)間歇性的出現(xiàn)較大偏差等問(wèn)題。集成數(shù)字頻率計(jì)由于所用元件少、投資少,體積小,功耗低,且可靠性高,功能強(qiáng),易于設(shè)計(jì)和研發(fā),使得它具有技術(shù)上的實(shí)用性和應(yīng)用的廣泛性。不論從我們用的彩色電視機(jī)、電冰箱,DVD,還有我們現(xiàn)在家庭常用到的數(shù)字電壓表數(shù)字萬(wàn)用表等等都包含有頻率計(jì)。現(xiàn)在頻率計(jì)已是向數(shù)字智能方向發(fā)展,即可以很精確的讀數(shù)也精巧易于控制。數(shù)字頻率計(jì)已是現(xiàn)在頻率計(jì)發(fā)展的方向,它不僅可以很方便的讀數(shù),而且還
5、可以使頻率的測(cè)量范圍和測(cè)量準(zhǔn)確度上都比模擬先進(jìn).而且頻率計(jì)的使用已是很多的方面,數(shù)字衛(wèi)星、數(shù)字通訊等高科技的領(lǐng)域都有應(yīng)用。所以頻率計(jì)的發(fā)展是一個(gè)整體的趨勢(shì)。一、系統(tǒng)概述1、STM32F103簡(jiǎn)介ARM 公司是專門從事基于RISC 技術(shù)芯片設(shè)計(jì)開(kāi)發(fā)的公司,作為知識(shí)產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計(jì)許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購(gòu)買其設(shè)計(jì)的ARM 微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐罚瑥亩纬勺约旱腁RM 微處理器芯片進(jìn)入市場(chǎng)。目前,全世界有幾十家大的半導(dǎo)體公司都使用ARM 公司的授權(quán),因此既使得ARM 技術(shù)獲得更多的第三方工具、制
6、造、軟件的支持,又使整個(gè)系統(tǒng)成本降低,使產(chǎn)品更容易進(jìn)入市場(chǎng)被消費(fèi)者所接受,更具有競(jìng)爭(zhēng)力。STM32F103xx增強(qiáng)型系列由意法半導(dǎo)體集團(tuán)設(shè)計(jì),使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號(hào)的器件都包含2個(gè)12位的ADC、4個(gè)通用16位定時(shí)器和2個(gè)高級(jí)定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)I2C和SPI、3個(gè)USART、一個(gè)USB和一個(gè)CAN。2、總體方案設(shè)計(jì)本次頻率計(jì)系統(tǒng)設(shè)計(jì)采用以STM32F103xx系列芯片為核心,由于F103
7、系列芯片的內(nèi)部資源較多,本次設(shè)計(jì)充分利用芯片內(nèi)部資源,設(shè)計(jì)出高精度的頻率計(jì)系統(tǒng)。STM32F103待測(cè)信號(hào)發(fā)生模塊定時(shí)器上位機(jī)顯示結(jié)果圖:系統(tǒng)整體框圖系統(tǒng)的主體功能是充分利用定時(shí)器,用32內(nèi)部的通用定時(shí)器3的復(fù)用功能-輸入捕獲。通過(guò)輸入捕獲對(duì)外部輸入STM32芯片內(nèi)部的脈沖上升沿計(jì)數(shù),輸入捕獲功能可以實(shí)現(xiàn)每一次外部脈沖輸入的上升沿引發(fā)一次中斷,再通過(guò)通用定時(shí)器4定時(shí)一秒,通過(guò)定時(shí)一秒鐘計(jì)算輸入捕獲中斷次數(shù)來(lái)判斷鐘外部脈沖輸入的頻率,最后將這個(gè)數(shù)據(jù)傳送給上位機(jī)通過(guò)虛擬儀器LABVIEW來(lái)顯示出頻率。設(shè)計(jì)中考慮到采用STM32F103開(kāi)發(fā)板作為硬件基礎(chǔ),板子承受的最大電壓為3.3V,而且程序調(diào)試中
8、如果接入外部脈沖輸入,不能夠立即查詢出問(wèn)題所在,所以通過(guò)芯片內(nèi)部資源通用定時(shí)器5的復(fù)用功能輸出PWM波來(lái)模擬外部脈沖輸入,這樣也可以更加簡(jiǎn)化硬件設(shè)計(jì),所以本次系統(tǒng)充分利用32芯片內(nèi)部定時(shí)器資源來(lái)設(shè)計(jì)系統(tǒng)。圖:系統(tǒng)設(shè)計(jì)流程圖二、整體功能設(shè)計(jì)1、STM32 通用定時(shí)器簡(jiǎn)介STM32 的通用定時(shí)器是一個(gè)通過(guò)可編程預(yù)分頻器( PSC)驅(qū)動(dòng)的 16 位自動(dòng)裝載計(jì)數(shù)器( CNT)構(gòu)成。 STM32 的通用定時(shí)器可以被用于:測(cè)量輸入信號(hào)的脈沖長(zhǎng)度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和 PWM)等。 使用定時(shí)器預(yù)分頻器和 RCC 時(shí)鐘控制器預(yù)分頻器,脈沖長(zhǎng)度和波形周期可以在幾個(gè)微秒到幾個(gè)毫秒間調(diào)整。 STM
9、32 的每個(gè)通用定時(shí)器都是完全獨(dú)立的,沒(méi)有互相共享的任何資源。STM3 的通用 TIMx (TIM2、 TIM3、 TIM4 和 TIM5)定時(shí)器功能包括: 1)16 位向上、向下、向上/向下自動(dòng)裝載計(jì)數(shù)器( TIMx_CNT)。 2)16 位可編程(可以實(shí)時(shí)修改)預(yù)分頻器(TIMx_PSC),計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為 165535 之間的任意數(shù)值。 3) 4 個(gè)獨(dú)立通道( TIMx_CH14),這些通道可以用來(lái)作為: A輸入捕獲 B輸出比較 C PWM 生成(邊緣或中間對(duì)齊模式) D單脈沖模式輸出 4)可使用外部信號(hào)( TIMx_ETR)控制定時(shí)器和定時(shí)器互連(可以用 1 個(gè)定時(shí)器控制另外
10、一個(gè)定時(shí)器)的同步電路。 5)如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA: A更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā)) B觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù)) C輸入捕獲 D輸出比較 E支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路 F觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理 2、定時(shí)器功能簡(jiǎn)介本次設(shè)計(jì)系統(tǒng)中需要利用通用定時(shí)器產(chǎn)生一秒定時(shí)。STM32F103中的通用定時(shí)器可以由向上計(jì)數(shù)、向下計(jì)數(shù)、向上向下雙向計(jì)數(shù)多種計(jì)數(shù)模式。向上計(jì)數(shù)模式中,計(jì)數(shù)器從0計(jì)數(shù)到自動(dòng)加載值(TIMx_ARR計(jì)數(shù)器內(nèi)容),然后重新從0開(kāi)始計(jì)數(shù)并且產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件。
11、在向下模式中,計(jì)數(shù)器從自動(dòng)裝入的值(TIMx_ARR)開(kāi)始向下計(jì)數(shù)到0,然后從自動(dòng)裝入的值重新開(kāi)始,并產(chǎn)生一個(gè)計(jì)數(shù)器向下溢出事件。而中央對(duì)齊模式(向上/向下計(jì)數(shù))是計(jì)數(shù)器從0開(kāi)始計(jì)數(shù)到自動(dòng)裝入的值-1,產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件,然后向下計(jì)數(shù)到1并且產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件;然后再?gòu)?開(kāi)始重新計(jì)數(shù)。系統(tǒng)中采用向上計(jì)數(shù)模式,并打開(kāi)定時(shí)中斷功能,當(dāng)定時(shí)一秒進(jìn)入中斷后后,讀取輸入捕獲進(jìn)入中斷的次數(shù)并將數(shù)據(jù)通過(guò)串行口發(fā)送到上位機(jī)顯示。圖:系統(tǒng)整體硬件3、PWM簡(jiǎn)介 PWM 是 Pulse Width Modulation 的縮寫(xiě),中文意思就是脈沖寬度調(diào)制,簡(jiǎn)稱脈寬調(diào)制。它是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路
12、進(jìn)行控制的一種非常有效的技術(shù),其控制簡(jiǎn)單、靈活和動(dòng)態(tài)響應(yīng)好等優(yōu)點(diǎn)而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,其應(yīng)用領(lǐng)域包括測(cè)量,通信,功率控制與變換,電動(dòng)機(jī)控制、伺服控制、調(diào)光、開(kāi)關(guān)電源,甚至某些音頻放大器,因此研究基于 PWM 技術(shù)的正負(fù)脈寬數(shù)控調(diào)制信號(hào)發(fā)生器具有十分重要的現(xiàn)實(shí)意義。PWM 是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法。通過(guò)高分辨率計(jì)數(shù)器的使用,方波的占空比被調(diào)制用來(lái)對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼。PWM 信號(hào)仍然是數(shù)字的,因?yàn)樵诮o定的任何時(shí)刻,滿幅值的直流供電要么完全有(ON),要么完全無(wú)(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復(fù)脈沖序列被加到模擬負(fù)載上去的。通
13、的時(shí)候即是直流供電被加到負(fù)載上的時(shí)候,斷的時(shí)候即是供電被斷開(kāi)的時(shí)候。只要帶寬足夠,任何模擬值都可以使用 PWM 進(jìn)行編碼。本次設(shè)計(jì)系統(tǒng)中利用通用定時(shí)器的復(fù)用功能輸出比較輸出PWM波,系統(tǒng)中通過(guò)調(diào)節(jié)PWM波的輸出周期來(lái)改變模擬輸出的脈沖頻率。4、輸入捕獲簡(jiǎn)介輸入捕獲模式可以用來(lái)測(cè)量脈沖寬度或者測(cè)量頻率。STM32 的定時(shí)器,除了 TIM6 和 TIM7,其他定時(shí)器都有輸入捕獲功能。 STM32 的輸入捕獲,簡(jiǎn)單的說(shuō)就是通過(guò)檢測(cè) TIMx_CHx 上的邊沿信號(hào),在邊沿信號(hào)發(fā)生跳變(比如上升沿/下降沿)的時(shí)候,將當(dāng)前定時(shí)器的值( TIMx_CNT)存放到對(duì)應(yīng)的通道的捕獲/比較寄存器( TIMx_CC
14、Rx)里面,完成一次捕獲。同時(shí)還可以配置捕獲時(shí)是否觸發(fā)中斷/DMA 等。接下來(lái),我們介紹我們需要用到的一些寄存器配置,需要用到的寄存器有: TIMx_ARR、TIMx_PSC、 TIMx_CCMR1、 TIMx_CCER、 TIMx_DIER、 TIMx_CR1、 TIMx_CCR1 這些寄存器在前面全部都有提到(這里的 x=5),我們這里就不再全部羅列了,我們這里針對(duì)性的介紹這幾個(gè)寄存器的配置。首先 TIMx_ARR 和 TIMx_PSC,這兩個(gè)寄存器用來(lái)設(shè)自動(dòng)重裝載值和 TIMx 的時(shí)鐘分頻,再來(lái)看看捕獲/比較模式寄存器 1: TIMx_CCMR1,這個(gè)寄存器在輸入捕獲的時(shí)候,非常有用,有
15、必要重新介紹,該寄存器的各位描述如圖所示:當(dāng)在輸入捕獲模式下使用的時(shí)候,對(duì)應(yīng)圖的第二行描述,從圖中可以看出,TIMx_CCMR1 明顯是針對(duì) 2 個(gè)通道的配置,低八位7: 0用于捕獲/比較通道 1 的控制,而高八位15: 8則用于捕獲/比較通道 2 的控制,因?yàn)?TIMx 還有 CCMR2 這個(gè)寄存器,所以可以知道CCMR2 是用來(lái)控制通道 3 和通道 4。本次頻率計(jì)設(shè)計(jì)系統(tǒng)中采用TIM5_CH1 來(lái)捕獲上升沿脈沖信號(hào),也就是要先設(shè)置輸入捕獲為上升沿檢測(cè),記錄發(fā)生上升沿的時(shí)候 TIM5_CNT 的值。當(dāng)上升沿到來(lái)時(shí),發(fā)生捕獲,并記錄得到一次脈沖信號(hào)值。這樣,定時(shí)一秒鐘捕獲到上升沿的次數(shù),就是每
16、秒測(cè)量到的脈沖次數(shù),即捕獲的脈沖頻率,這就是我們所需要的結(jié)果,然后通過(guò)串口連接到上位機(jī),將數(shù)據(jù)發(fā)送到上位機(jī)labview顯示結(jié)果。5、串口通信設(shè)計(jì)通用同步異步收發(fā)器(USART)提供了一種靈活的方法與使用工業(yè)標(biāo)準(zhǔn)NRZ異步串行數(shù)據(jù)格式的外部設(shè)備之間進(jìn)行全雙工數(shù)據(jù)交換。USART利用分?jǐn)?shù)波特率發(fā)生器提供寬范圍的波特率選擇。它支持同步單向通信和半雙工單線通信,也支持LIN(局部互連網(wǎng)),智能卡協(xié)議和IrDA(紅外數(shù)據(jù)組織)SIR ENDEC規(guī)范,以及調(diào)制解調(diào)器(CTS/RTS)操作。它還允許多處理器通信。接口通過(guò)三個(gè)引腳與其他設(shè)備連接在一起。任何USART雙向通信至少需要兩個(gè)腳:接收數(shù)據(jù)輸入(RX
17、)和發(fā)送數(shù)據(jù)輸出(TX)。 RX:接收數(shù)據(jù)串行輸入。通過(guò)采樣技術(shù)來(lái)區(qū)別數(shù)據(jù)和噪音,從而恢復(fù)數(shù)據(jù)。 TX :發(fā)送數(shù)據(jù)輸出。當(dāng)發(fā)送器被禁止時(shí),輸出引腳恢復(fù)到它的I/O端口配置。當(dāng)發(fā)送器被激活,并且不發(fā)送數(shù)據(jù)時(shí),TX引腳處于高電平。在單線和智能卡模式里,此I/O 口被同時(shí)用于數(shù)據(jù)的發(fā)送和接收。串口做為ARM的重要外部接口,同時(shí)也是軟件開(kāi)發(fā)的重要調(diào)試手段。對(duì)于 單片機(jī)學(xué)習(xí)來(lái)說(shuō),非常重要。而我們開(kāi)發(fā)板使用的 STM32F103 最多可以提 供 5 路串口。那么 STM32 的串口操作步驟是怎么樣的呢? 1) 打開(kāi) GPIO 的時(shí)鐘使能和 USART 的時(shí)鐘使能。 2) 設(shè)置串口 IO 的 IO 口模式。
18、 (一般輸入是模擬輸入, 輸出是復(fù)用推挽輸出) 3) 初始化 USART。 (包括設(shè)置波特率、數(shù)據(jù)長(zhǎng)度、停止位、效驗(yàn)位等) 4) 如果使用中斷接收的話,那么還要設(shè)置 NVIC 并打開(kāi)中斷使能。串口總線在發(fā)送或接收前應(yīng)處于空閑狀態(tài),發(fā)送的一幀數(shù)據(jù)包括一個(gè)起始位、一個(gè)數(shù)據(jù)字(8或9位)、校驗(yàn)位和1或2個(gè)的停止位。由此表明數(shù)據(jù)幀的完整和數(shù)據(jù)準(zhǔn)確行。圖:串口發(fā)送配置流程圖6、上位機(jī)顯示界面設(shè)計(jì)上位機(jī)的顯示界面通過(guò)labview軟件設(shè)計(jì)。上位機(jī)Labview的設(shè)計(jì)主要是串口配置設(shè)計(jì)和結(jié)果顯示,其整體設(shè)計(jì)后的界面如下圖所示:圖:上位機(jī)顯示界面三、系統(tǒng)總體調(diào)試本次設(shè)計(jì)系統(tǒng)中的主要軟件設(shè)計(jì)就是對(duì)STM32F1
19、03芯片內(nèi)部定時(shí)器的充分利用并綜合調(diào)用,由于32芯片的設(shè)計(jì)采用庫(kù)函數(shù)開(kāi)發(fā)方式編寫(xiě)程序,大大簡(jiǎn)化了程序的設(shè)計(jì)難度。本次設(shè)計(jì)系統(tǒng)中也遇到了一些問(wèn)題,在老師和同學(xué)的幫助下最后都一一解決了,在此也謝謝幫助過(guò)我的老師和同學(xué)們。1.設(shè)計(jì)中的捕獲中斷在幾次調(diào)試中都沒(méi)有得到正確的數(shù)據(jù),最后通過(guò)前前后后的軟件檢查發(fā)現(xiàn)了問(wèn)題的所在,原來(lái)是在程序沒(méi)有對(duì)通用定時(shí)器的捕獲功能映射到相應(yīng)的GPIO端口,因此IO口不能相應(yīng)的識(shí)別上升沿,就不能產(chǎn)生中斷并返回正確的數(shù)據(jù)。改正方案:打開(kāi)STM32的GPIO口配置,并使定時(shí)器輸入捕獲功能到相應(yīng)的IO口,改正之后,通過(guò)串口助手調(diào)試可以得到正確的捕獲到的脈沖頻率。2. 下位機(jī)程序整體
20、設(shè)計(jì)之后檢查沒(méi)錯(cuò),并可以正確的在串口助手顯示正確的結(jié)果,后邊在上位機(jī)設(shè)置完成后串口通訊,但在labview界面中不能正確顯示結(jié)果,后來(lái)多次查詢,發(fā)現(xiàn)是STM32F103板子沒(méi)有232模塊,因此不能正確的進(jìn)行串口通訊。改正方案:在硬件設(shè)計(jì)中重新設(shè)計(jì)硬件通信模塊,改正之后就可以正常的通信,上位機(jī)可以正確的顯示結(jié)果。當(dāng)然,在調(diào)試中還遇到很多細(xì)節(jié)問(wèn)題,這些錯(cuò)誤相信只要能夠稍微認(rèn)真一點(diǎn)就能夠避免的。四、設(shè)計(jì)心得這次的課程設(shè)計(jì)是基于 STM32F103的頻率計(jì),實(shí)現(xiàn)的主要功能用ARM的定時(shí)器/計(jì)數(shù)器的定時(shí)和計(jì)數(shù)功能,外部擴(kuò)展基于LABVIEW的上位機(jī),實(shí)現(xiàn)實(shí)時(shí)顯示,求累計(jì)每秒進(jìn)入ARM的外部脈沖個(gè)數(shù)用上位
21、機(jī)顯示。 在做數(shù)字頻率計(jì)的設(shè)計(jì)時(shí),開(kāi)始是遇到不少的問(wèn)題,比如我們想如此微弱的信號(hào)是怎樣被數(shù)字頻率計(jì)檢測(cè)的呢,頻率計(jì)到底是什么設(shè)計(jì)原理呢,畢竟還沒(méi)有接觸過(guò)實(shí)際設(shè)計(jì)和開(kāi)發(fā),所以在考慮問(wèn)題的時(shí)候往往是不全面的,也就是說(shuō)這次設(shè)計(jì)還有不少的方面沒(méi)有考慮周全,也一定存在著這樣那樣的問(wèn)題。在調(diào)試工作時(shí),我們要注意認(rèn)真檢查設(shè)備連接是否正確。采用單片機(jī)智能控制,結(jié)合外圍電子電路,得以高低頻率的精度測(cè)量,編程簡(jiǎn)單,精度高。自己學(xué)習(xí)ARM已經(jīng)有一段的時(shí)間了,這次我又一次利用它來(lái)完成課程設(shè)計(jì),現(xiàn)在深深地感受ARM的適用性強(qiáng)、應(yīng)用面廣、功能完善。ARM技術(shù)發(fā)展已經(jīng)很成熟,在電子控制系統(tǒng)應(yīng)用上仍然占有很重要的地位,作為一
22、名測(cè)控專業(yè)的學(xué)生,學(xué)習(xí)好ARM嵌入式就顯得很有必要。在學(xué)習(xí)ARM時(shí),不能只滿足于課本以及軟件仿真,更為重要的是注重它在實(shí)際生活中的應(yīng)用,多思考、多動(dòng)手搭建電路,這樣我們才能將所學(xué)的東西內(nèi)化,為今后在系統(tǒng)設(shè)計(jì)中打下一個(gè)堅(jiān)實(shí)的基礎(chǔ)確保各個(gè)部件都在正常工作,再進(jìn)行軟件調(diào)試工作。調(diào)試過(guò)程,按照步驟進(jìn)行操作,切記自己隨意妄為??傊@次課程設(shè)計(jì)還是學(xué)習(xí)到了很多東西,耐心,團(tuán)隊(duì)合作等等。感謝我們組員的配合以及老師的耐心指導(dǎo)。實(shí)際的操作總是比理論的學(xué)習(xí)困難更多,有很多問(wèn)題是我們沒(méi)有遇到過(guò)的,學(xué)習(xí)了一學(xué)期的ARM,無(wú)論理論知識(shí)學(xué)的如何,如果不動(dòng)手操作,我們永遠(yuǎn)不會(huì)解決這些問(wèn)題,因?yàn)槲覀円膊粫?huì)碰到這些問(wèn)題,發(fā)現(xiàn)
23、問(wèn)題解決問(wèn)題,這才是求學(xué)求知的途徑。ARM嵌入式的內(nèi)容很豐富,我們現(xiàn)在知道的不過(guò)是鳳毛麟角,但是這一學(xué)期的學(xué)習(xí)加上這一周的課程設(shè)計(jì),使我對(duì)ARM的興趣更加濃烈。實(shí)踐出真知,這句話用在學(xué)習(xí)ARM身上最適合不過(guò),理論與實(shí)踐結(jié)合才能夠創(chuàng)新。我覺(jué)得做課程設(shè)計(jì)同時(shí)也是對(duì)課本知識(shí)的鞏固和加強(qiáng),平時(shí)看課本時(shí),有時(shí)問(wèn)題老是弄不懂,做完課程設(shè)計(jì),那些問(wèn)題就迎刃而解了。 我次的課程設(shè)計(jì)是基于 STM32F103的頻率計(jì),實(shí)現(xiàn)的主要功能用ARM的定時(shí)器/計(jì)數(shù)器的定時(shí)和計(jì)數(shù)功能,外部擴(kuò)展基于LABVIEW的上位機(jī),實(shí)現(xiàn)實(shí)時(shí)顯示,求累計(jì)每秒進(jìn)入ARM的外部脈沖個(gè)數(shù)用上位機(jī)顯示。當(dāng)老師在之前讓我們選題目時(shí),我就開(kāi)始在網(wǎng)上
24、、在圖書(shū)館找資料,當(dāng)接觸到基于ARM的頻率計(jì)這個(gè)題目時(shí),我很迷茫,不知從何下手,雖說(shuō)這學(xué)期已經(jīng)開(kāi)ARM課了,但是自認(rèn)為學(xué)的一點(diǎn)都不好。隨后我們?nèi)ド暇W(wǎng)查找資料,去圖書(shū)館查文獻(xiàn),但是都沒(méi)有找到類似的課題,最后經(jīng)過(guò)我與組員的努力,勉強(qiáng)有些許思緒,雖說(shuō)最后我們沒(méi)能很完善的做出課題,但這個(gè)過(guò)程是值得高興地。在模擬硬件電路部分,我們查了相關(guān)的資料,其中遇到了很多的繁瑣問(wèn)題,但經(jīng)過(guò)同學(xué)幫助都得以解決;在軟件方面,我們按照書(shū)上的資料,逐步學(xué)習(xí),逐步推敲,最終寫(xiě)出了部分程序,雖然功能沒(méi)有完全表現(xiàn)出來(lái),但是我們都很認(rèn)真的去動(dòng)手做了。事實(shí)上,我們遇到的問(wèn)題遠(yuǎn)不止這些,但是,無(wú)論怎樣的挫折,無(wú)論怎樣的想要放棄,最后都
25、堅(jiān)持了下來(lái)。有困難就查資料,有困難就請(qǐng)教同學(xué),有困難就解決困難!本著這樣的信念和心態(tài),我們解決了一個(gè)個(gè)的困難,雖說(shuō)結(jié)果不能達(dá)到預(yù)期結(jié)果,但從中我們也學(xué)到了很多知識(shí),從原來(lái)不太熟悉的STM32F103、ARM各個(gè)部件到最后的的每一部分都有所了解,我覺(jué)得這就是我們堅(jiān)持到最后的最大成果,其實(shí)在很多事情來(lái)臨時(shí),我們不僅僅關(guān)心的是最后的結(jié)果,更重要的是擁有其中的過(guò)程。在整個(gè)動(dòng)手過(guò)程,既加深了我們對(duì)ARM的理論認(rèn)識(shí),又通過(guò)STM32F103這個(gè)很有意思的載體,實(shí)現(xiàn)了對(duì)ARM的應(yīng)用。同時(shí),對(duì)我而言,這次課程設(shè)計(jì)還有更重要的意義,那就是我開(kāi)啟了對(duì)ARM制作的興趣,個(gè)人希望在以后的工作學(xué)習(xí)中,加強(qiáng)這方面的訓(xùn)練,
26、多制作出自己感興趣的ARM作品。書(shū)本上的知識(shí)很多都是理想化后的結(jié)論,忽略了很多實(shí)際的因素,或者涉及的不全面,可在實(shí)際的應(yīng)用時(shí)這些是不能被忽略的,我們不得不考慮這方的問(wèn)題,這讓我們無(wú)法根據(jù)書(shū)上的理論就輕易得到預(yù)想中的結(jié)果,有時(shí)結(jié)果甚至很差別很大。通過(guò)這次實(shí)踐使我更深刻的體會(huì)到了理論聯(lián)系實(shí)際的重要性,我們?cè)诮窈蟮膶W(xué)習(xí)工作中會(huì)更加的注重實(shí)際,避免成為只會(huì)紙上談兵的趙括。在做本次課程設(shè)計(jì)的過(guò)程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十分必要的,同時(shí)也是必不可少的。我們是在做單片機(jī)課程設(shè)計(jì),但我們不是藝術(shù)家,他們可以拋開(kāi)實(shí)際盡情在幻想的世界里翱翔,而我們
27、一切都要有據(jù)可依,有理可尋,不切實(shí)際的構(gòu)想永遠(yuǎn)只能是構(gòu)想,永遠(yuǎn)無(wú)法升級(jí)。參考文獻(xiàn)1徐千洋.Linux C函數(shù)庫(kù)參考手冊(cè).M中國(guó)青年出版社.2002 2陳堅(jiān),孫志月.MODEM通信編程技術(shù)M.西安電子科技大學(xué)出版社.1998 3李現(xiàn)勇.Visual C+串口通信技術(shù)與工程實(shí)踐M.人民郵電出版社.2004 4何小平.選擇適合ARM的嵌入式操作系統(tǒng)J.BMRfech Inc.2003 5馬忠梅,馬廣云,徐英慧,田譯.ARM嵌入式處理結(jié)構(gòu)與應(yīng)用基礎(chǔ)M.北京航空航天大學(xué)出版社.2002 6周立功,ARM嵌入式
28、系統(tǒng)基礎(chǔ)教程(第二版)M.北京:北京航空航天大學(xué)出版社.2008.97 Ren Yafie,Ke Xizheng,Liu Yijie.MEMS Gyroscope Performance Estimate Based on Allan VarianceA.InProceedings of 2007 8th International Conference on Electronic Measurement & InstrumentsC. Xi'anChina.Vol.1, 260-263.8 邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開(kāi)發(fā)方法M.北京:機(jī)械工業(yè)出版社,2004.9 薛濤.單
29、片機(jī)與嵌入式系統(tǒng)開(kāi)發(fā)方法M.北京:清華大學(xué)出版社,2009.10.附錄:附錄一:系統(tǒng)電路原理圖附錄二:主程序圖#include "public.h"#include "printf.h"#include "systick.h"#include "input.h"#include "key.h"#include "time.h"#include "pwm.h"int main()u8 fx=1;u32 ti=0;time_init();key_init();
30、 input_init(); printf_init(); pwm_init(); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);while(1)delay_ms(345);TIM_SetCompare2(TIM3, 400);void input_init()/input_initTIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_ICInitTypeDef TIM5_ICInitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_A
31、PB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE); TIM_ClearITPendingBit(TIM5,TIM_IT_Update|TIM_IT_CC1); TIM_TimeBaseInitStructure.TIM_Period = 0xffff; TIM_TimeBaseInitStructure.TIM_Prescaler = 71; TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseInitStructure.TIM_CounterMode = TI
32、M_CounterMode_Up;TIM_TimeBaseInit(TIM5,&TIM_TimeBaseInitStructure);TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1; TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1
33、; TIM5_ICInitStructure.TIM_ICFilter = 0x00; TIM_ICInit(TIM5, &TIM5_ICInitStructure); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStructure.NVIC_IRQChannelSubPriority=1; NVIC_InitStruct
34、ure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM5,ENABLE); TIM_ITConfig(TIM5, TIM_IT_Update|TIM_IT_CC1, ENABLE );void key_init() /key_initGPIO_InitTypeDef GPIO_InitStructure;SystemInit();RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);GPIO_InitS
35、tructure.GPIO_Pin=K_UP; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=K_DOWN|K_LEFT|K_RIGHT;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO
36、_Init(GPIOE,&GPIO_InitStructure);GPIO_ResetBits(GPIOA,K_UP);void time_init()/time_initTIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);TIM_ClearITPendingBit(TIM4,TIM_IT_Update);TIM_TimeBaseInitStructure.TIM_P
37、eriod = 999;TIM_TimeBaseInitStructure.TIM_Prescaler = 35999;TIM_TimeBaseInitStructure.TIM_ClockDivision = 0; TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);TIM_Cmd(TIM4,ENABLE); TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE );NVIC_Prio
38、rityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);void pwm_init()/ pwm_initGPIO_
39、InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;TIM_OCInitTypeDef TIM_OCInitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);GPIO_InitStructure.GPIO_Pi
40、n=GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOC,&GPIO_InitStructure);/TIM3定時(shí)器初始化TIM_TimeBaseInitStructure.TIM_Period = 1000; TIM_TimeBaseInitStructure.TIM_Prescaler = 71;TIM_TimeBaseInitStructure.TIM_ClockDivision = 0;TIM_T
41、imeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, & TIM_TimeBaseInitStructure);GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OCPolari
42、ty=TIM_OCPolarity_Low;TIM_OC2Init(TIM3,&TIM_OCInitStructure);TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);TIM_Cmd(TIM3,ENABLE);void TIM4_IRQHandler() /定時(shí)器4中斷函數(shù)static u8 i=0;TIM_ClearITPendingBit(TIM4,TIM_IT_Update);i+; if(i>=2)i=0;printf("一秒鐘出現(xiàn)上升沿次數(shù)為:%d rn",count);count=0;#include "printf.h"int fputc(int ch,FILE *p) USART_SendDat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司白云山爬山活動(dòng)方案
- 公司新春裝飾活動(dòng)方案
- 公司職員服務(wù)活動(dòng)方案
- 公司端午節(jié)節(jié)活動(dòng)方案
- 公司紅包墻抽獎(jiǎng)活動(dòng)方案
- 公司用人優(yōu)惠活動(dòng)方案
- 公司聚會(huì)活動(dòng)策劃方案
- 公司溫泉旅游活動(dòng)方案
- 公司聯(lián)合宣傳策劃方案
- 公司西湖劃船活動(dòng)方案
- 匯川技術(shù)的在線測(cè)評(píng)
- 高職計(jì)算機(jī)專業(yè)《Python程序設(shè)計(jì)》說(shuō)課課件
- 北師大版中考數(shù)學(xué)考試大綱
- 大學(xué)俄語(yǔ)一級(jí)課程考試試卷 (A 卷)
- 物業(yè)管理與體育場(chǎng)館
- JT-T-795-2011事故汽車修復(fù)技術(shù)規(guī)范
- JBT 10437-2024 電線電纜用可交聯(lián)聚乙烯絕緣料(正式版)
- 初中數(shù)學(xué)教育教學(xué)案例(3篇模板)
- 工作擔(dān)保合同范本
- DZ∕T 0289-2015 區(qū)域生態(tài)地球化學(xué)評(píng)價(jià)規(guī)范(正式版)
- 福建省廈門一中2024年物理高一下期末教學(xué)質(zhì)量檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論