基于ARM系統(tǒng)的AD多路采集控制_第1頁
基于ARM系統(tǒng)的AD多路采集控制_第2頁
基于ARM系統(tǒng)的AD多路采集控制_第3頁
基于ARM系統(tǒng)的AD多路采集控制_第4頁
基于ARM系統(tǒng)的AD多路采集控制_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄1.引言12.硬件概述22.1stm32功能特性概述22.2 stm32時鐘電路2 2.3 stm32復(fù)位電路33 多路數(shù)據(jù)采集系統(tǒng)總體設(shè)計3 3.1 系統(tǒng)設(shè)計要求33.2 系統(tǒng)設(shè)計方案44 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計44.1 最小系統(tǒng)的設(shè)計44.2 stm32f103系列規(guī)格說明44.3 stm32f103rbt6處理器64.4 電壓采集系統(tǒng)的設(shè)計75 系統(tǒng)調(diào)試及軟件設(shè)計85.1 最小系統(tǒng)板調(diào)試85.2 系統(tǒng)整體調(diào)試86 總結(jié)10參考文獻11附錄12基于arm系統(tǒng)的ad多路采集控制摘要:設(shè)計了一個基于arm芯片的多路數(shù)據(jù)采集系統(tǒng),可以實現(xiàn)對路數(shù)據(jù)的采集,信號的采集方式可以是單路采集也可以是多

2、路循環(huán)采集,通過調(diào)節(jié)滑動變阻器的電阻來調(diào)節(jié)輸出電壓的變化。數(shù)據(jù)采集的結(jié)果以數(shù)字的形式在串口助手窗口顯示。經(jīng)軟硬件綜合調(diào)試,驗證了方案的可行性。關(guān)鍵詞:數(shù)據(jù)采集;arm;ad轉(zhuǎn)換;stm1.引言數(shù)據(jù)采集系統(tǒng)是將采集傳感器輸出的溫度、壓力、流量、位移等模擬信號轉(zhuǎn)換成計算機能識別的數(shù)字信號,進行相應(yīng)的計算存儲和處理;同時,可將計算所得的數(shù)據(jù)進行顯示或打印,以便實現(xiàn)對某些物理量的監(jiān)測和控制。嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機為基礎(chǔ),軟硬件可剪裁,適用于對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。嵌入式系統(tǒng)的核心是各種類型的嵌入式處理器。目前,采用arm技術(shù)的微處理器占據(jù)了主流,其應(yīng)用遍

3、及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、dsp、網(wǎng)絡(luò)系統(tǒng)、無線移動應(yīng)用等各類產(chǎn)品市場。而 arm微處理器的cortex系列專為安全要求較高的應(yīng)用而設(shè)計。其中,cortex-m3適于高性能、低成本需求的嵌入式應(yīng)用。2.硬件概述2.1stm32功能特性概述 stm32系列基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計的arm cortex -m3內(nèi)核。按性能分成兩個不同的系列:stm32f103“增強型”系列和stm32f101“基本型”系列。增強型系列時鐘頻率達到72mhz,是同類產(chǎn)品中性能最高的產(chǎn)品;基本型時鐘頻率為36mhz,以16位產(chǎn)品的價格得到比16位產(chǎn)品大幅提升的性能,是16位產(chǎn)

4、品用戶的最佳選擇。兩個系列都內(nèi)置32k到128k的閃存,不同的是sram的最大容量和外設(shè)接口的組合。時鐘頻率72mhz時,從閃存執(zhí)行代碼,stm32功耗36ma,是32位市場上功耗最低的產(chǎn)品,相當于0.5ma/mhz。圖 1 stm32b2m103xx2.2 stm32時鐘電路rtc是stm32的脈搏,是單片機的驅(qū)動源。使用任何一個外設(shè)都必須打開相應(yīng)的時鐘。這樣的好處就是,如果不使用一個外設(shè)的時候,就把它的時鐘關(guān)掉,從而可以降低系統(tǒng)的功耗,打到節(jié)能,實現(xiàn)低功耗的效果。stm32的時鐘可以由以下3個時鐘源提供:1、 hsi:高速內(nèi)部時鐘信號stm32單片機內(nèi)帶的時鐘(8m頻率)精度較差。2、 h

5、se:高速外部時鐘信號精度高,來源(1)hse外部晶振/陶瓷諧振器(晶振); (2)hse用戶外部時鐘。3、 lse:低速外部晶體32.768khz,主要提供一個精確地時鐘源,一般作為rcc時鐘使用。 圖2 晶振電路2.3 stm32復(fù)位電路我在該設(shè)計中使用了手動復(fù)位和上電自動復(fù)位組合電路,復(fù)位開關(guān)通過復(fù)位電路產(chǎn)生復(fù)位信號的優(yōu)點是信號的波形比較好,復(fù)位電路可以去掉開關(guān)的抖動。 圖3 復(fù)位電路3 多路數(shù)據(jù)采集系統(tǒng)總體設(shè)計3.1 系統(tǒng)設(shè)計要求本數(shù)據(jù)采集系統(tǒng)的設(shè)計要求實現(xiàn)多路直流電壓的實時采集和順序轉(zhuǎn)換。經(jīng)過部分采集處理后,由串行數(shù)據(jù)總線將轉(zhuǎn)換數(shù)據(jù)發(fā)送至上位機界面,經(jīng)過換算,以檢測采集的電源正常與否

6、;同時在輸出端產(chǎn)生4路數(shù)字信號,以用作輸出測試與控制。3.2 系統(tǒng)設(shè)計方案根據(jù)上述設(shè)計要求和數(shù)據(jù)采集系統(tǒng)的設(shè)計規(guī)范,將系統(tǒng)劃分為兩個部分:最小系統(tǒng)和采集系統(tǒng)。最小系統(tǒng)采用基于arm cortex-m3架構(gòu)的微控制器stm32f103rbt6為主控cpu,利用其內(nèi)置16通道adc對輸入的多路直流電壓信號進行實時采集和轉(zhuǎn)換,內(nèi)置外設(shè)usart將轉(zhuǎn)換結(jié)果經(jīng)過串口發(fā)送在pc端由串口調(diào)試助手顯示。 采集系統(tǒng)采用4路直流電壓的采集,采用比例分壓的方法,利用排阻進行采集電壓的比例轉(zhuǎn)換,以達到adc轉(zhuǎn)換的參考基準電壓要求。電壓信號的輸入采用比例分壓的方法,將4路模擬電壓利用串口通信輸入到最小系統(tǒng)進行處理。電壓

7、信號經(jīng)過采集板,級聯(lián)輸入到最小系統(tǒng)板中,利用cpu內(nèi)置adcl中的10個轉(zhuǎn)換輸入通道,依次進行轉(zhuǎn)換。設(shè)置cpu_內(nèi)部dma模塊實現(xiàn)轉(zhuǎn)換結(jié)果的存儲,利用串口轉(zhuǎn)發(fā)數(shù)據(jù),在上位機顯示轉(zhuǎn)換結(jié)果。4 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計 根據(jù)系統(tǒng)構(gòu)成原理,硬件設(shè)計上,最小系統(tǒng)和采集系統(tǒng)兩部分通過并行接口實現(xiàn)多塊板級聯(lián),通過選擇相應(yīng)的輸入通道和轉(zhuǎn)換通道,實現(xiàn)信號采集和轉(zhuǎn)換結(jié)果的顯示。最小系統(tǒng)中,采用stm32f103rbt6微控制器,工作頻率可達72mhz,內(nèi)置2個12位adc,16個外部模擬信號輸入通道,可達1 u s轉(zhuǎn)換時間,轉(zhuǎn)換范圍是o3.6v;支持7個dma通道,可操作多種通用外設(shè),如定時器、adc、usart

8、等;內(nèi)置3個同步16位定時器。4.1 最小系統(tǒng)的設(shè)計按照stm32最小系統(tǒng)的設(shè)計規(guī)范和本系統(tǒng)的功能要求,最小系統(tǒng)構(gòu)成如圖4所示:電源模塊外圍電路模塊系統(tǒng)復(fù)位adc通道輸入cpustm32f103kbt6 usart串行通信圖4 最小系統(tǒng)設(shè)計框圖電源模塊:cpu為3.3v供電,最小系統(tǒng)外部輸入電源為5v,經(jīng)過電壓轉(zhuǎn)換芯片lm1117-3.3獲得3.3v輸出電壓,以提供系統(tǒng)電源。電源的輸入輸出端并接濾波電容,分別濾除電源的高頻和低頻噪聲。 usart串行通信接口模塊:支持同步單向通信、半雙工單線通信、和全雙工模式。具有用于多緩沖器配置的dma方式,可以實現(xiàn)高速數(shù)據(jù)通信。單獨的發(fā)送器和接收器使能位,

9、發(fā)送方為同步傳輸提供時鐘。10個帶標志的中斷源。除此之外還有外部時鐘,復(fù)位系統(tǒng),adc參考電壓,jtag調(diào)試接口的設(shè)計。4.2 stm32f103系列規(guī)格說明stm32f103系列使用高性能的arm cortex-m3 32位的risc內(nèi)核,工作頻率為72mhz,內(nèi)置高速存儲器,具有豐富的增強型i/o端口和連接到兩條高性能的外設(shè)總線的外設(shè)。stm32f103系列都至少包含2個12位的adc、1個高級定時器、3個通用16位定時器,還包含標準和先進的通信接口:2個ic、2個spi同步串行接口、3個usart異步串行接口、1個usb全速接口和一個can接口。i/o翻轉(zhuǎn)速度可達18mhz。 stm32

10、f103系列中等容量增強型系列產(chǎn)品供電電壓為2.0v至3.6v,包含-40至+85溫度范圍。一系列的省電模式保證低功耗應(yīng)用的要求。stm32f103系列中等容量系列產(chǎn)品提供包括從36腳至100腳的6種不同封裝形式;根據(jù)不同的封裝形式,期間中的外設(shè)配置不盡相同。下面給出該系列產(chǎn)品中的產(chǎn)品功能和外設(shè)配置一覽表,如表(1)所示:表1 stm32f103系列中等容量產(chǎn)品功能和外設(shè)配置4.3 stm32f103rbt6處理器電壓調(diào)壓器調(diào)壓器有三個操作模式:主模式、低功耗模式和關(guān)斷模式(1) 主模式用于正常的運行操作(2) 低功耗模式用于cpu的停機模式(3) 關(guān)斷模式用于cpu的待機模式:調(diào)壓器的輸出為

11、高阻狀態(tài),內(nèi)核電路 的供電切斷,調(diào)壓器處于零消耗狀態(tài) 該調(diào)壓器在復(fù)位后始終處于工作狀態(tài),在待機模式下關(guān)閉處于高阻輸出。adc(模擬/數(shù)字轉(zhuǎn)換器)stm32f103xx增強型產(chǎn)品內(nèi)嵌2個12位的模擬/數(shù)字轉(zhuǎn)換器,每個adc共用多達13個外部通道,可以實現(xiàn)單次或掃描轉(zhuǎn)換。在掃描模式下,自動進行在選定的一組模擬輸入上的轉(zhuǎn)換。adc接口上的其它邏輯功能包括:(1) 同步的采樣和保持(2) 交叉的采樣和保持(3) 單次采樣adc可以使用dma操作模擬看門狗功能允許非常精準的監(jiān)視一路、多路或所有選中的通道,當被監(jiān)視的信號超出預(yù)置的閾值時,將產(chǎn)生中斷。由標準定時器和高級控制定時器產(chǎn)生的事件,可以分別內(nèi)部級聯(lián)

12、到adc的開始觸發(fā)和注入觸發(fā),應(yīng)用程序能使ad轉(zhuǎn)換與時鐘同步。通用輸入輸出接口(gpio)stm32f103rbt6處理器具有51個多功能雙向5v兼容的i/o口,使用時可以作為通用gpio口,也可作為復(fù)用afio口。復(fù)用i/o中,本系統(tǒng)外設(shè)所使用的有:定時器4通道四tim4-ch4復(fù)用pb9口;usart1引腳usart1-tx、usart1-rx復(fù)用pa9、pa10:adc 轉(zhuǎn)換通道ch0ch9分別復(fù)用pa0pa7及pb0、pb1。對于復(fù)用功能的端口可以配置成以下模式:輸入模式(浮空、上拉或下拉)或復(fù)用功能輸出模式,此時輸入驅(qū)動器被配置成浮空輸入模式。adc通道端口用作adc輸入時將對應(yīng)端口

13、配置為模擬信號輸入模式;usart數(shù)據(jù)傳輸時,tx、rx復(fù)用端口分別配置為備用功能推拉模式和輸入浮動模式。通用定時器(timx)stm32f103xx增強型產(chǎn)品中,內(nèi)置了多達3個可同步運行的標準定時器(tim2、tim3和tim4)。每個定時器都有一個16位的自動加載遞加/遞減計數(shù)器、一個16位的預(yù)分頻器和4個獨立的通道,每個通道都可用于輸入捕獲、輸出比較、pwm和單脈沖模式輸出,在最大的封裝配置中可提供最多12個輸入捕獲、輸出比較或pwm通道。它們還能通過定時器鏈接功能與高級控制定時器共同工作,提供同步或事件鏈接功能。在調(diào)試模式下,計數(shù)器可以被凍結(jié)。任一標準定時器都能用于pwm輸出。每個定時

14、器都有獨立的dma請求機制。4.4 電壓采集系統(tǒng)的設(shè)計 電壓采集系統(tǒng)作為本系統(tǒng)的第二部分,主要實現(xiàn)多路電壓信號順序選擇輸入,獲得adc采集端的輸入電壓信號,并能選擇不同的adc通道,以實現(xiàn)4路電壓信號采集與最小系統(tǒng)板級聯(lián)。本部分主要包括電壓采集模塊、數(shù)據(jù)選擇模塊、以及輸入輸出接口等。電壓采集模塊:電路中采用電阻比例分壓的方法,獲取輸入電壓信號,以達到cpu采集轉(zhuǎn)換的基準電壓的要求。在實際硬件設(shè)計中,采用比例阻值的排阻代替分離電阻以便于電路板的繪制和整體布局。數(shù)據(jù)選擇模塊:采用16選1輸出的模擬開關(guān)cd4067作為數(shù)據(jù)選擇器,輸出控制由cpu四個端口輸入高低電平作為二進制組合以確定輸出的數(shù)據(jù)通道

15、。輸入輸出接口:本系統(tǒng)數(shù)據(jù)采集和最小系統(tǒng)兩部分采用40針排線連接,各個采集板上可以同時選擇兩個不同的通道,級聯(lián)后各板將數(shù)據(jù)選擇器的輸出信號送至相應(yīng)的adc轉(zhuǎn)換通道。5 系統(tǒng)調(diào)試及軟件設(shè)計設(shè)計并加工好外圍印刷電路板后,開始硬件和軟件的調(diào)試。調(diào)試過程中采用逐個功能單元調(diào)試,一個功能單元調(diào)試正常后再調(diào)試下一功能模塊,確保電路板出問題時可以很快發(fā)現(xiàn)問題點,再將各功能單元組合設(shè)置,逐步完成軟件設(shè)計和系統(tǒng)調(diào)試,實現(xiàn)系統(tǒng)設(shè)計要求。系統(tǒng)調(diào)試所使用的開發(fā)環(huán)境為mdk,仿真工具為st-linkii,使用usb接口。5.1 最小系統(tǒng)板調(diào)試將電源模塊、復(fù)位、外部晶振焊到電路板上,組成最小系統(tǒng),分模塊,分步驟,調(diào)試系統(tǒng)

16、各部分。加電調(diào)試前檢測是否有電源短路,確保電路安全。電源模塊:電路外部輸入電壓為5v,經(jīng)電壓轉(zhuǎn)換后在lmlll7-3.3v輸出端得到3.3v的輸出。加電后,首先通過萬用表測量電壓輸出是否正確,然后通過示波器觀察輸出電平的波形是否滿足系統(tǒng)對電源精度的要求,如不滿足,可以通過加大濾波電容的方法解決。最小系統(tǒng)供電正常后,連接仿真器,通過軟件平臺可以檢測到最小系統(tǒng)cpu,表明cpu焊接正常。調(diào)試過程中會用到外部晶振,需要檢測晶振電路,將系統(tǒng)上電,使用示波器檢測晶振管腳,觀察波形,看晶振是否起振。然后編寫一個簡單的led測試程序來觀察cpu是否能正常工作,通過軟件設(shè)置電路中l(wèi)ed連接的 i/o端口(pb

17、6)輸出模式,觀察是否有閃爍。dma調(diào)試:dma用來提供在外設(shè)和存儲器之間或者存儲器之間的高速數(shù)據(jù)傳輸。dma通道配置包括:設(shè)置外設(shè)寄存器、數(shù)據(jù)存儲器的基地址,確定數(shù)據(jù)量和通道優(yōu)先級,以及數(shù)據(jù)傳輸?shù)姆较?、循環(huán)模式、外設(shè)和存儲器的增量模式等。adc1對應(yīng)dma通道1請求,adc通道配置中使能dma請求。dma可以用于主要的外設(shè):spi、ic、usart、通用、基本和高級控制定時器tim和adc。 除此之外還有usart調(diào)試、adc調(diào)試等。5.2 系統(tǒng)整體調(diào)試最小系統(tǒng)板各功能單元調(diào)試通過后,將最小系統(tǒng)板與數(shù)據(jù)采集板級聯(lián)進行系統(tǒng)整體調(diào)試。 系統(tǒng)調(diào)試主要包括:外設(shè)和系統(tǒng)時鐘初始化,gpio初始化,us

18、art初始化和adc、定時器初始化及adc通道設(shè)置和串口收發(fā)配置等。系統(tǒng)調(diào)試流程如圖5所示:rcc初始化nvic初始化gpio初始化adc初始化dma初始化uxart初始化信號自動采集等待一次采樣完成傳輸結(jié)束串口傳送數(shù)據(jù)軟件自動adc結(jié)束開始圖5 整體流程圖圖6 串口顯示按照上述流程完成程序設(shè)計,編譯、鏈接、運行,觀察輸入輸出情況。打開串口調(diào)試助手,在數(shù)據(jù)接收區(qū)內(nèi)以十六進制依次顯示經(jīng)過adc所獲得的輸入信號的轉(zhuǎn)換結(jié)果,圖中顯示了4路采樣輸出后的電壓值。調(diào)節(jié)滑動變阻器,可以串口助手窗口看到輸出電壓值的變化。電路能夠正常工作,且軟件調(diào)試成功,實現(xiàn)了設(shè)計要求。證明外圍電路的設(shè)計思路正確,軟件編程正確

19、,能夠滿足設(shè)計要求的需要。6 總結(jié)本數(shù)據(jù)采集系統(tǒng)充分利用微處理器stm32f103rbt6內(nèi)置的16路adc通道、dma控制器、usart通信接、定時器等豐富的外設(shè)資源,在系統(tǒng)實現(xiàn)上簡化了相關(guān)模塊的設(shè)計,提高了系統(tǒng)運行的可靠性。經(jīng)過系統(tǒng)硬件設(shè)計和軟件配置實現(xiàn)順序采集轉(zhuǎn)換輸入的多路電壓信號,并利用上位機界面顯示采集的信號,實現(xiàn)了輸入信號的實時監(jiān)測和管理,達到了系統(tǒng)設(shè)計的基本要求。在本次實習活動中,不僅需要動手也需要動腦,是軟件與硬件的結(jié)合。在外圍電路的制作過程中,使我們詳細的了解的電路的制作過程。增強的我們的動手能力。軟件的編寫過程,是對我們以前學過的嵌入式知識的總結(jié)與進一步提高。讓我們對軟件編

20、程有了更深一步的體會。參考文獻1 田澤. 嵌入式系統(tǒng)開發(fā)與應(yīng)用教程m . 北京:北京航空航天大學出版社,2005.3 2 周立功. arm 嵌入式系統(tǒng)基礎(chǔ)教程m . 北京:北京航空航天大學出版社,2005. 3 吳明暉. 基于arm 的嵌入式系統(tǒng)開發(fā)與應(yīng)用m . 北京:人民郵電出版社,2004. 4 朱永宏,馬梅方,梅杓春.國外電子測量技術(shù). 維普資訊網(wǎng) 第2期,2008 附錄1多路采樣外圍電路2采樣外圍電路圖3 軟件程序(1)主程序* 文件名 :main.c * 描述 :用3.5.0版本建的工程模板。 * 實驗平臺:野火stm32開發(fā)板 * 庫版本 :st3.5.0 * 作者 :wildfi

21、re team * 論壇 :/forum-1008-1.html * 淘寶 :*/#include stm32f10x.h#include usart1.h#include adc.hextern _io u16 adc_convertedvalue;/ 局部變量,用于存從flash讀到的電壓值 float adc_convertedvaluelocal4; int i;/ 軟件延時void delay(_io u32 ncount) for(; ncount != 0; ncount-);/* * 函

22、數(shù)名:main * 描述 : 主函數(shù) * 輸入 :無 * 輸出 : 無 */int main(void)systeminit(); /* usart1 config */usart1_config();/* enable adc1 and config adc1 to dma mode */adc1_init();printf(rn -這是一個adc實驗-rn); while(1)while(usart_getflagstatus(usart1,usart_flag_txe)=reset);/等待傳輸完成否則第一位數(shù)據(jù)容易丟失 for(i=0;idr; /dma_initstructure.dma_memorybaseaddr = (u32)&ad_value; /dma內(nèi)存基地址 dma_initstructure.dma_dir = dma_dir_peripheralsrc; dma_initstructure.dma_buffersize = 5; dma_initstructur

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論