基于MSP430單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第1頁
基于MSP430單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第2頁
基于MSP430單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第3頁
基于MSP430單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第4頁
基于MSP430單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于msp430單片機(jī)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) 摘要本論文主要闡述了一種以msp430f149單片機(jī)為核心的多路數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)采用了模塊化的設(shè)計(jì)思想,系統(tǒng)硬件電路的設(shè)計(jì)包括主控電路設(shè)計(jì)、電源部分設(shè)計(jì)、模擬量采集電路部分設(shè)計(jì)、復(fù)位電路部分設(shè)計(jì)、串口通信電路部分設(shè)計(jì)五部分。電源電路為整個(gè)提供3.3v電源電壓,復(fù)位電路采用max809芯片實(shí)現(xiàn)對單片機(jī)的復(fù)位,具有很高的可靠性;模擬量數(shù)據(jù)采集通過片內(nèi)的a/d轉(zhuǎn)換通道與外部的采集傳感器進(jìn)行連接;單片機(jī)電路主要是完成與其它電路的接口,采集系統(tǒng)采集得到數(shù)據(jù)后,通過uart串口將數(shù)據(jù)送到上位機(jī)上去,可以將數(shù)據(jù)交給上位機(jī)進(jìn)行處理,從而降低采集系統(tǒng)的負(fù)擔(dān),并且也可

2、以避免采集系統(tǒng)的海量存儲器;軟件開發(fā)部分采用c語言編程,軟件開發(fā)以iar systems公司embedded workbench for msp430為集成開發(fā)環(huán)境,達(dá)到了采集到的數(shù)據(jù)能在pc機(jī)上顯示、存儲、繪制曲線、同時(shí)pc機(jī)能給單片機(jī)發(fā)送控制命令等功能。該系統(tǒng)充分體現(xiàn)了智能化、低功耗、高精度的發(fā)展趨勢。關(guān)鍵詞: msp430;串口通信;傳感器;a/d轉(zhuǎn)換abstract this paper describes the msp430f149 microcontroller as the core of a multi-channel data acquisition system. the

3、 system uses a modular design, system hardware design, including the master circuit design, power supply design, part of the design of analog acquisition circuit, reset circuit part of the design, serial communication circuit part of the design of five parts. to provide 3.3v power supply circuit for

4、 the entire supply voltage reset circuit using max809 reset the microcontroller chip with high reliability; analog data acquisition through the on-chip a / d conversion channels and the acquisition of external sensors connected; scm circuit is mainly done with the other circuits of the interface dat

5、a acquisition system are collected through the uart serial data up to the host computer, the data can be processed to the host computer, thereby reducing the burden of collection system, and also to avoid capture system of mass storage; software development part of the use of c language programming,

6、 software development to iar systems corporation embedded workbench for msp430 is an integrated development environment, to the collected data in pc, display, storage, drawing curves, and pc functions to the microcontroller send control commands and other functions. the system fully embodies the int

7、elligent, low-power, high-precision trends.key words: msp430; serial communication; sensor; a / d conversion 目 錄1緒論11.1研究背景11.2 論文主要內(nèi)容和結(jié)構(gòu)12基于msp430單片機(jī)采集系統(tǒng)的設(shè)計(jì)方案22.1 基于msp430單片機(jī)采集系統(tǒng)需求分析22.2系統(tǒng)整體方案設(shè)計(jì)23系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)(單元電路設(shè)計(jì))33.1主控電路的設(shè)計(jì)43.1.1 msp430單片機(jī)的選擇43.1.2 msp430單片機(jī)的端口選擇53.1.3 單片機(jī)電路設(shè)計(jì)53.2電源部分設(shè)計(jì)63.3復(fù)位電路部分設(shè)

8、計(jì)73.4傳感器模擬量采集電路部分設(shè)計(jì)83.5 串口通信電路部分設(shè)計(jì)103.5.1sp3220芯片選擇113.5.2串口通信的電路圖124基于msp430單片機(jī)采集系統(tǒng)軟件開發(fā)134.1軟件開發(fā)環(huán)境134.1.1 iar embedded workbench介紹134.1.2 iar embedded workbench 開發(fā)步驟134.2軟件開發(fā)設(shè)計(jì)194.3關(guān)鍵軟件程序214.3.1初始化設(shè)置214.3.2中斷服務(wù)程序234.3.3 主處理程序24結(jié)束語31參考文獻(xiàn)301緒論1.1研究背景數(shù)據(jù)采集是從一個(gè)或多個(gè)信號獲取對象信息的過程。在科學(xué)研究及其他各種領(lǐng)域中,數(shù)據(jù)采集和監(jiān)測已經(jīng)成為日益重

9、要的檢測技術(shù),廣泛應(yīng)用于工農(nóng)業(yè)等需要同時(shí)監(jiān)控溫度、濕度和壓力等場合。數(shù)據(jù)采集是工業(yè)控制等系統(tǒng)中的重要環(huán)節(jié),通常采用一些功能相對獨(dú)立的單片機(jī)系統(tǒng)來實(shí)現(xiàn),作為測控系統(tǒng)不可缺少的部分,數(shù)據(jù)采集的性能特點(diǎn)直接影響到整個(gè)系統(tǒng)。在許多工業(yè)測控機(jī)械、醫(yī)療儀器以及消費(fèi)電子產(chǎn)品中,都對數(shù)據(jù)采集系統(tǒng)的實(shí)時(shí)性與功耗提出了更高的要求:即在滿足微功耗、微型化的總體設(shè)計(jì)原則的基礎(chǔ)上,又要能實(shí)時(shí)反映現(xiàn)場采集數(shù)據(jù)的變化。這就對系統(tǒng)的功耗、采樣速度、數(shù)據(jù)存儲和傳輸速度等提出了更高的要求。然而,隨著半導(dǎo)體與微控制器技術(shù)的飛速發(fā)展,各種微電子器件性能不斷提升,功耗卻不斷降低。技術(shù)的進(jìn)步使得高速度、低功耗的數(shù)據(jù)采集系統(tǒng)得以實(shí)現(xiàn)。自從

10、1996年ti公司推出的16位、具有超低功耗和豐富的片上外圍模塊的msp430系列單片機(jī),該系列單片機(jī)就以其低功耗特性被廣泛應(yīng)用于醫(yī)療、電子儀表以及消費(fèi)類電子等產(chǎn)品中。msp430系列單片機(jī)支持采用匯編語言和c語言進(jìn)行開發(fā),該系列單片機(jī)集成了較豐富的片內(nèi)外設(shè)備,方便高效的開發(fā)環(huán)境,適應(yīng)工業(yè)級運(yùn)行環(huán)境。與目前廣泛使用的89c51單片機(jī)相比,具有指令少,超低功耗,運(yùn)算速度快等優(yōu)點(diǎn),因而在許多領(lǐng)域特別是要求超低功耗的領(lǐng)域得到了廣泛應(yīng)用。數(shù)據(jù)采集給我們的生活提供了許多的便利,設(shè)計(jì)的采集系統(tǒng)可同時(shí)測量溫度、濃度、壓力、濕度和流量等廣泛應(yīng)用于各種工業(yè)自控環(huán)境,環(huán)境溫度監(jiān)測、工業(yè)過程控制涉及水利水電等眾多行

11、業(yè)。1.2 論文主要內(nèi)容和結(jié)構(gòu)本論文中主要介紹了多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)方法;并且闡述了所用器件的工作原理、主要特點(diǎn)、硬件電路設(shè)計(jì)和軟件設(shè)計(jì),是一個(gè)具有完整功能的數(shù)據(jù)采集系統(tǒng)。通過對超低功耗系列單片機(jī)msp430,上位機(jī)、max809芯片、sp3220芯片、電源芯片lm317等的介紹,達(dá)到熟悉器件的性能、功能及使用方法,應(yīng)用c語言設(shè)計(jì)編程實(shí)現(xiàn)多路信號采集系統(tǒng),實(shí)現(xiàn)采集到的數(shù)據(jù)能在pc機(jī)上顯示、存儲、繪制曲線、同時(shí)pc機(jī)能給單片機(jī)發(fā)送控制命令等功能,并用protel繪制電路原理圖。本論文大體結(jié)構(gòu)主要由緒論、msp430單片機(jī)采集系統(tǒng)的設(shè)計(jì)方案、硬件電路的設(shè)計(jì)與實(shí)現(xiàn)和系統(tǒng)軟件開發(fā)四部分組成。硬

12、件電路的設(shè)計(jì)與實(shí)現(xiàn)由單片機(jī)模塊、傳感器模擬量采集模塊、串口通信模塊和電源供電及復(fù)位模塊等來實(shí)現(xiàn)它的功能;系統(tǒng)軟件開發(fā)分為軟件開發(fā)環(huán)境和軟件開發(fā)設(shè)計(jì)兩部分。2基于msp430單片機(jī)采集系統(tǒng)的設(shè)計(jì)方案2.1 基于msp430單片機(jī)采集系統(tǒng)需求分析為了使該采集系統(tǒng)能更好地使用目前的數(shù)據(jù)采集,基于msp430單片機(jī)的采集系統(tǒng)應(yīng)具有以下功能:遠(yuǎn)端控制功能。即單片機(jī)與上位機(jī)進(jìn)行串口通訊;能采集多路信號。即可實(shí)現(xiàn)8通道數(shù)據(jù)采集;采集到的數(shù)據(jù)能在pc機(jī)上顯示、存儲等功能;具有同時(shí)監(jiān)控溫度、濕度、壓力和流量等功能;復(fù)位功能。芯片復(fù)位具有很高的可靠性。2.2系統(tǒng)整體方案設(shè)計(jì)通過2.1節(jié)的功能分析,本系統(tǒng)采用模塊化

13、的設(shè)計(jì)思路,以msp430f149單片機(jī)作為系統(tǒng)的核心控制元件,軟件開發(fā)以iar systems公司的embedded workbenchfor msp430為集成開發(fā)環(huán)境,系統(tǒng)設(shè)計(jì)方案如圖2-1所示。msp430f149單片機(jī)采集傳感器pc(上位機(jī))復(fù)位模塊8路a/d外設(shè)及參考電壓輸入口串口通信模塊電源模塊圖21系統(tǒng)方案設(shè)計(jì)框圖由圖2-1可以看出,電源模塊為整個(gè)系統(tǒng)提供電源電壓,復(fù)位模塊對msp430f149單片機(jī)進(jìn)行復(fù)位后,經(jīng)8路a/d外設(shè)及參考電壓與外部的采集傳感器進(jìn)行連接來采集數(shù)據(jù),將采集到的數(shù)據(jù)通過串口通信模塊傳給上位機(jī),由于單片機(jī)與上位機(jī)進(jìn)行通信時(shí)接口電平不同,因此,需要進(jìn)行接口轉(zhuǎn)

14、換。采用sp3220芯片來完成接口電平的轉(zhuǎn)換 ,最后傳輸?shù)缴衔粰C(jī),完成數(shù)據(jù)的采集、接收及校驗(yàn)。 3系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)通過2.2節(jié)系統(tǒng)方案設(shè)計(jì),系統(tǒng)整體電路的設(shè)計(jì)包括主控電路設(shè)計(jì)、電源部分設(shè)計(jì)、模擬量采集電路部分設(shè)計(jì)、復(fù)位電路部分設(shè)計(jì)、串口通信電路部分設(shè)計(jì)五部分。系統(tǒng)整體電路設(shè)計(jì)如圖31所示。 圖3-1系統(tǒng)整體設(shè)計(jì)電路圖3.1主控電路的設(shè)計(jì)3.1.1 msp430單片機(jī)的選擇msp430系列單片機(jī)是美國德州儀器公司(ti)推出的超低功耗16位混合信號處理器(mixed signal processor),集多種領(lǐng)先技術(shù)于一體。該系列單片機(jī)集成了較豐富的片內(nèi)外設(shè)備,方便高效的開發(fā)環(huán)境,適應(yīng)工業(yè)級運(yùn)

15、行環(huán)境,具有超低功耗、運(yùn)算性能強(qiáng)大、開發(fā)工具方便先進(jìn)、系統(tǒng)整合豐富實(shí)用等優(yōu)點(diǎn)。與目前廣泛使用的89c51單片機(jī)相比,具有指令少,超低功耗,運(yùn)算速度快的特點(diǎn)。因此,該系統(tǒng)選用了msp430單片機(jī)。msp430系列器件包含cpu、程序存儲器(rom、rom和flash rom)、數(shù)據(jù)存儲器(ram)、運(yùn)行控制、外圍模塊和振蕩器和倍頻器等主要功能模塊。其基本結(jié)構(gòu)如圖3-2所示??梢钥闯?,msp430內(nèi)部包含了計(jì)算機(jī)所有部件,是一個(gè)真正的單片機(jī)(微控制器mcu)。cpu由一個(gè)16位的alu、16個(gè)寄存器和一套指令控制邏輯組成。在16個(gè)寄存器中,程序計(jì)數(shù)器pc、堆棧指針sp、狀態(tài)寄存器sr和常數(shù)發(fā)生器c

16、gl、cg2這4個(gè)寄存器有特殊用途。除了r3cg2和r2cgl外,所有寄存器都可作為通用寄存器來用于所有指令操作。常數(shù)發(fā)生器是為指令執(zhí)行時(shí)提供常數(shù)的,而不是用于存儲數(shù)據(jù)的。對cgl、cg2訪問的尋址模式可以區(qū)分常數(shù)的數(shù)據(jù)。在cpu內(nèi)部有一組16位數(shù)據(jù)總線和16位的地址總線;cpu運(yùn)行正交設(shè)計(jì)、對模塊高度透明的精簡指令集;pc、sr和sp配合精簡指令組所實(shí)現(xiàn)的控制,使應(yīng)用開發(fā)可實(shí)現(xiàn)復(fù)雜的尋址模式和軟件算法。存儲器msp430系列采用“馮紐曼結(jié)構(gòu)”。因此,ram、rom和全部外圍模塊都位于同一個(gè)地址空間內(nèi),即用一個(gè)公共的空間對全部功能模塊進(jìn)行尋址。支持外部擴(kuò)展存儲器是將來性能增強(qiáng)的目標(biāo)。特殊功能寄

17、存器及外圍模塊安排在 000h1ffh區(qū)域;ram和rom共享0200hffffh區(qū)域,數(shù)據(jù)存儲器(ram)的起始地址是0200h。存儲器與cpu及存儲器數(shù)據(jù)總線(mdb)、存儲器地址總線(mab)的連接關(guān)系如圖3-2所示,它提供時(shí)鐘信號mclk。rom ujpflash rom1kb60kbcpuram126b10kb mdb .16位圖3-2 msp430單片機(jī)內(nèi)部結(jié)構(gòu)關(guān)系圖3.1.2 msp430單片機(jī)的端口選擇msp430的端口有p1、p2、p3、p4、p5、p6、s和com 8個(gè)端口,下面是具體的端口功能。(1)p1,p2端口:i/o,中斷功能,其他片內(nèi)外設(shè)功能如定時(shí)器、比較器;(2

18、)p3,p4,p5,p6端口:i/o,其他片內(nèi)外設(shè)功能如spi、uart模式,a/d轉(zhuǎn)換等;(3)s,com端口:i/o,驅(qū)動液晶。即端口com為液晶片的公共端,s為液晶片的段碼端,它們實(shí)現(xiàn)與液晶片的直接接口,液晶片輸出端也可經(jīng)軟件配置為數(shù)字輸出端口。根據(jù)本系統(tǒng)設(shè)計(jì)需求選擇了msp430f149單片機(jī)的p3.6,p3.7,p6.0-p6.7等端口,它具有i/o,其它片內(nèi)外設(shè)功能如spi、uart模式,a/d轉(zhuǎn)換等功能。3.1.3 單片機(jī)電路設(shè)計(jì)單片機(jī)電路作為整個(gè)系統(tǒng)的核心控制部分,主要是完成與其它電路的接口,在該系統(tǒng)中,單片機(jī)主要是負(fù)責(zé)將采集到的數(shù)據(jù)通過串口送到上位機(jī)進(jìn)行處理。單片機(jī)msp43

19、0f149的p3.6、p3.7端口分別與串口通信模塊t1in、rout連接;dvcc與電源3.3v的輸出口相接;rst/nimi與復(fù)位模塊的reset/端口相連;p6.0-p6.7分別與傳感器模擬量ain1-ain7端口相連。單片機(jī)的接口電路非常簡單,通過片內(nèi)的a/d通道實(shí)現(xiàn)模擬量采集,采用片內(nèi)的a/d轉(zhuǎn)換部分不僅可以降低系統(tǒng)設(shè)計(jì)的復(fù)雜性,而且還可以提高系統(tǒng)的可靠性,避免接口的復(fù)雜性,同時(shí)還可以減小pcb板的面積,模擬采集的參考電壓采用的是片內(nèi)提供的參考電壓。在這里需要考慮干擾問題,在該系統(tǒng)中的干擾比較小,因此模擬地和數(shù)字地共地,模擬電源輸入端增加一個(gè)濾波電容以減小干擾。電路圖如圖3-3所示。

20、圖3-3單片機(jī)電路3.2電源部分設(shè)計(jì)電源部分是整個(gè)系統(tǒng)的關(guān)鍵,系統(tǒng)以lm317芯片作為電源供電設(shè)計(jì)的核心。整個(gè)系統(tǒng)采用3.3v電壓供電。lm317的輸出電壓范圍是1.2v至37v,負(fù)載電流最大為1.5a。它的使用非常簡單,僅需兩個(gè)外接電阻來設(shè)置輸出電壓。此外它的線性調(diào)整率和負(fù)載調(diào)整率也比標(biāo)準(zhǔn)的固定穩(wěn)壓器好。lm317是美國國家半導(dǎo)體公司的三端可調(diào)正穩(wěn)壓器集成電路。lm317內(nèi)置有過載保護(hù)、安全區(qū)保護(hù)等多種保護(hù)電路。通常lm317不需要外接電容,除非輸入濾波電容到 lm317 輸入端的連線超過6英寸(約15厘米)。使用輸出電容能改變瞬態(tài)響應(yīng)。調(diào)整端使用濾波電容能得到比標(biāo)準(zhǔn)三端穩(wěn)壓器高的多的紋波抑

21、制比。lm317能夠有許多特殊的用法。比如把調(diào)整端懸浮到一個(gè)較高的電壓上,可以用來調(diào)節(jié)高達(dá)數(shù)百伏的電壓,只要輸入輸出壓差不超過lm317的極限就行。當(dāng)然還要避免輸出端短路。還可以把調(diào)整端接到一個(gè)可編程電壓上,實(shí)現(xiàn)可編程的電源輸出。如圖3-4所示為lm317是常見的可調(diào)集成穩(wěn)壓器,最大輸出電流為2.2a,輸出電壓范圍為1.2537v。 圖3-4中1、2腳之間為1.25v電壓基準(zhǔn),為保證穩(wěn)壓器的輸出性能,r1應(yīng)小于240歐姆,改變r(jià)2阻值即可調(diào)整穩(wěn)壓電壓值,d1,d2用于保護(hù)lm317。 圖3-4 lm317電源電路注意:為了減小電源噪聲,應(yīng)給各個(gè)電源均加上濾波電容,一般取10f和0.1 f的大小

22、電容組合。3.3復(fù)位電路部分設(shè)計(jì)復(fù)位電路是單片機(jī)工作的必要條件。因此,在單片機(jī)系統(tǒng)里,單片機(jī)需要復(fù)位電路,復(fù)位電路可以采用r-c復(fù)位電路,也可以采用復(fù)位芯片實(shí)現(xiàn)的復(fù)位電路,r-c復(fù)位電路具有經(jīng)濟(jì)性,但可靠性不高,用復(fù)位芯片實(shí)現(xiàn)的復(fù)位電路具有很高的可靠性,因此為了保證復(fù)位電路的可靠性,該系統(tǒng)采用復(fù)位芯片實(shí)現(xiàn)的復(fù)位電路,該系統(tǒng)采用max809芯片。為了減小電源的干擾,還需要在復(fù)位芯片的電源輸入腿加一個(gè)0.1uf的電容來實(shí)現(xiàn)濾波,以減小輸入端受到的干擾。max809芯片是一種單一功能的微處理器復(fù)位芯片,用于監(jiān)控微處理器(up)、微控制器(uc)以及其他邏輯系統(tǒng)的電源電壓。它可以在上電、掉電和節(jié)電情況

23、下向微控制器提供復(fù)位信號。當(dāng)電源電壓降至預(yù)置的復(fù)位門限以下時(shí),該電路就發(fā)出一個(gè)復(fù)位信號,并在電源已經(jīng)升高到此復(fù)位門限后至少保持140ms。 max809為漏極開路輸出,max809為推挽輸出。max809適用于低電平有效的復(fù)位輸出max809適用于高電平有效的復(fù)位輸出。特性監(jiān)控5.0v、3.3v、3v電源;復(fù)位延時(shí)時(shí)間最小為140ms;抗電源的瞬態(tài)干擾;低至1.1v電源時(shí)仍能產(chǎn)生有效的復(fù)位信號;小型的三管腳sot-23封裝;無需外部配件;適用于-40+105的溫度范圍。電路圖如圖3-5所示。 圖3-5 max809str芯片電路3.4傳感器模擬量采集電路部分設(shè)計(jì)3.4.1傳感器選擇本系統(tǒng)對日常

24、采集作用的需求分析,選擇了ds18b20數(shù)字溫度傳感器、粉塵濃度傳感器、濕度傳感器和空氣流量傳感器 。l ds18b20數(shù)字溫度傳感器是美國dallas公司繼ds1820之后推出的增強(qiáng)型單總線溫度傳感器,它具有體積更小、精度更高、適用電壓更寬、可組網(wǎng)等優(yōu)點(diǎn),該溫度傳感器可廣泛應(yīng)用于數(shù)據(jù)采集系統(tǒng)中的環(huán)境溫度監(jiān)測,取得了良好的測溫效果。與傳統(tǒng)的熱敏電阻相比,它具有可根據(jù)實(shí)際要求設(shè)置轉(zhuǎn)換精度并直接將溫度值轉(zhuǎn)換為數(shù)字量獨(dú)處的特點(diǎn)。ds18b20數(shù)字溫度傳感器的主要特性有:適應(yīng)電壓范圍寬、單線接口方式、可編程分辨率為912位,可實(shí)現(xiàn)高精度測溫、具有溫度報(bào)警功能和支持多點(diǎn)組網(wǎng)功能實(shí)現(xiàn)組網(wǎng)內(nèi)的多點(diǎn)測溫。l

25、nf10gcg1000型粉塵濃度傳感器主要用于各種粉塵作業(yè)場所總粉塵的連續(xù)監(jiān)測,公共場所等環(huán)境監(jiān)測。其特點(diǎn)是:測量快速準(zhǔn)確、靈敏度高、性能穩(wěn)定、可預(yù)置k值、直接顯示并輸出粉塵質(zhì)量濃度。l 濕度傳感器是能感受氣體中水蒸氣含量,并轉(zhuǎn)換成可用輸出信號的傳感器。選用濕敏元件是最簡單的濕度傳感器。濕敏電阻的特點(diǎn)是在基片上覆蓋一層用感濕材料制成的膜,當(dāng)空氣中的水蒸氣吸附在感濕膜上時(shí),元件的電阻率和電阻值都發(fā)生變化,利用這一特性即可測量濕度。 l 空氣流量傳感器是測定吸入發(fā)動機(jī)的空氣流量的傳感器。電子控制汽油噴射發(fā)動流量傳感器機(jī)為了在各種運(yùn)轉(zhuǎn)工況下都能獲得最佳濃度的混合氣,必須正確地測定每一瞬間吸入發(fā)動機(jī)的

26、空氣量,以此作為ecu計(jì)算(控制)噴油量的主要依據(jù)。3.4.2模擬量采集電路在該系統(tǒng)中主要考慮模擬前端為傳感器,從傳感器送來的是標(biāo)準(zhǔn)信號(即4ma-20ma),這樣設(shè)計(jì)具有一定的通用性,只要前端接不同的傳感器就可以采集不同的信號源。由于a/d轉(zhuǎn)換基準(zhǔn)為電壓,也就是參考源為電壓,所以a/d轉(zhuǎn)換的是電壓,這樣需要將電流信號轉(zhuǎn)換成電壓信號。圖3-7模擬信號采集前端部分,圖3-8為模擬量采集具體的電路。 圖3-7模擬信號采集前端部分圖3-8模擬量采集由圖3-7所示,第1路信號采集了數(shù)字量的溫度;第2路信號采集了粉塵的濃度;第3路信號采集了空氣濕度;第4路采集了空氣的流量;第5路完成了數(shù)字量的溫度采集;

27、第6路完成了對空氣粉塵濃度的采集;第7路完成了對空氣濕度的采集;第8路完成了對空氣流量的采集。由圖3-8所示,采集電路通過一個(gè)電阻將電流信號轉(zhuǎn)換成電壓信號,為了提高采集的進(jìn)度,需要采用高精度的電阻,這里采用的是精度為1%的電阻。電路中采用二極管作為esd保護(hù)電路,考慮到干擾問題,采用電容進(jìn)行濾波處理,增加采集電路的抗干擾問題,數(shù)字量采集電路部分設(shè)計(jì)與此類似。3.5 串口通信電路部分設(shè)計(jì)該系統(tǒng)實(shí)現(xiàn)串口模塊主要是與上位機(jī)進(jìn)行通信,單片機(jī)系統(tǒng)將采集到的數(shù)據(jù)送到上位機(jī)進(jìn)行處理,從而減輕單片機(jī)系統(tǒng)的處理負(fù)擔(dān)。由于單片機(jī)與上位機(jī)進(jìn)行通信時(shí)接口電平不同,因此需要進(jìn)行接口轉(zhuǎn)換,這里采用sp3220芯片來完成接

28、口電平的轉(zhuǎn)換。sp3220芯片與一般的rs232芯片在使用上基本相同。如圖3-9所示為串口通信的框圖。msp430單片機(jī)sp3220pc 圖3-9串口通信框圖3.5.1sp3220芯片選擇sp3220是一款低功耗的rs232驅(qū)動芯片,該芯片有以下特性:(1) 寬電壓供電,供電電壓為:3.3v5.0v;(2) 上傳速率可達(dá)235kbps;(3) 低功耗的電流為1ua;(4) 增強(qiáng)性esd規(guī)范。為了便于硬件電路的設(shè)計(jì),下面圖3-10給出該芯片的管腳圖: 圖3-10 sp3220芯片圖由圖3-10可以看出,該芯片具有16個(gè)管腳,下面是具體的管腳功能。en/:接收使能管腳;shdn/:低功耗控制管腳;

29、c1+、c1-:電壓增倍的充電電容的正極和負(fù)極;c2+、c2-:倒置充電電容的正極和負(fù)極;v+、v-:由充電電容產(chǎn)生的5.5v的正極和負(fù)極;vcc:電源管腳; gnd:接地管腳;t1out:rs232驅(qū)動的輸出;t1in:ttl/cmos的輸入; r1out:ttl/cmos的輸出;r1in:rs232的輸入。根據(jù)系統(tǒng)需求選用了sp3220芯片的shdn/、t1out、t1in、 r1out和r1in五個(gè)管腳。3.5.2串口通信的電路圖 圖3-11串口通信的電路圖由圖3-11所示,通過一個(gè)上拉電阻r208將shdn/管腳拉高,使該芯片一直處于工作狀態(tài),如果系統(tǒng)需要處于低功耗狀態(tài),也可以通過單片

30、機(jī)來控制該管腳,工作的時(shí)候?qū)⒃摴苣_設(shè)置為低電平,需要處于低功耗的時(shí)候?qū)⒃摴苣_設(shè)置為高電平,這樣很容易實(shí)現(xiàn)控制。在管腳c1+、c1-、c2+、c2-、v+和v-分別放置0.1uf的電容實(shí)現(xiàn)充電作用,滿足相應(yīng)的充電泵的要求。管腳t1out、tin、riout和rin分別是232轉(zhuǎn)換的輸入輸出腳,實(shí)現(xiàn)單片機(jī)的ttl電平與上位機(jī)的接口電平的轉(zhuǎn)換??紤]到減小電源的干擾,還需要在芯片的電源輸入腿加一個(gè)0.1uf的電容來實(shí)現(xiàn)濾波,以減小輸入端受到的干擾。4基于msp430單片機(jī)采集系統(tǒng)軟件開發(fā)4.1軟件開發(fā)環(huán)境該系統(tǒng)采用的開發(fā)環(huán)境是iar embedded workbenchformsp430v3.42a,

31、embedded workbenchfor msp430是iar systems公司為msp430微處理器開發(fā)的一個(gè)集成開發(fā)環(huán)境。4.1.1 iar embedded workbench介紹iar embedded workbench 是一種用于開發(fā)應(yīng)用各種不同的目標(biāo)處理器的靈活的集成環(huán)境。它提供一個(gè)方便的窗口界面用于迅速的開發(fā)和調(diào)試。embedded workbench 支持多種不同的目標(biāo)處理器,使用項(xiàng)目模式組織應(yīng)用程序。它有如下一些特點(diǎn)。(1)通用性a) 可以在windows環(huán)境下運(yùn)行;b) 分層的項(xiàng)目(project)表示;c) 直觀的用戶界面;d) 工具與編輯器全集成;e) 全面的超文

32、本幫助。(2) 編輯器a) 可以同時(shí)編輯匯編和c語言源文件;b) 編輯匯編和c語言程序的句法用文本格式和顏色區(qū)別顯示;c) 強(qiáng)有力的搜索和置換命令,而且可以多個(gè)文件搜索;d) 從出錯列表直接跳轉(zhuǎn)到出錯的相關(guān)文件的相關(guān)語句;e) 可以設(shè)置在出錯語句前標(biāo)志;f) 圓括號匹配;g) 自動縮進(jìn),可以設(shè)置自動縮進(jìn)的空格;h) 每個(gè)窗口的多級取消與恢復(fù)。4.1.2 iar embedded workbench 開發(fā)步驟第一次使用程序編寫調(diào)試一般需要經(jīng)過創(chuàng)建工作站、創(chuàng)建并保存工程、創(chuàng)建或加載源文件、保存工作站、設(shè)置工作環(huán)境(目標(biāo)芯片、調(diào)試方式、仿真器接口類型、工程編譯連接和調(diào)試七個(gè)步驟。第一步:創(chuàng)建新工作站

33、打開iar embedded workbench。單擊:“開始”、“程序”、iar systems、 iar embedded workbench for msp430 v3,自動創(chuàng)建一個(gè)新的工作站,出現(xiàn)如4-1所示的界面。 圖4-1第一次進(jìn)入embedded workbench界面提示如下:create new project in current workspace:在新工作站中創(chuàng)建新的工程。add existing project to current workspace:添加已經(jīng)存在的工程到當(dāng)前的工作站中。open existing workspace:打開已經(jīng)存在的工作站。examp

34、le workspace: 打開示例工作站。根據(jù)您的具體情況選擇上述4個(gè)選項(xiàng)之一。第二步:創(chuàng)建并保存工程單擊選項(xiàng)中create new project in new workbench。出現(xiàn)圖4-2界面。圖4-2 創(chuàng)建新工程選擇工程類型(empty project、asm、c、c+或xternally built executable),若選擇的工程類型為empty project,單擊“ok”按鈕,出現(xiàn)圖4-3界面,選擇保存路徑,同時(shí)輸入工程文件名(如test),單擊保存,一個(gè)工程就建立完成了。圖4-3 保存新工程第三步:創(chuàng)建一個(gè)新工程文件點(diǎn)擊菜單project-creat new proj

35、ect.如圖4-4所示,彈出對話框如圖4-5所示,因?yàn)槲覀兯褂玫拈_發(fā)語言是c,所以選擇c結(jié)構(gòu)下的main,點(diǎn)擊“ok”將彈出工程文件保存路勁的對話框如圖4-6所示,選擇要保存的路徑,填上新建的工程名稱,點(diǎn)擊“保存”按鈕將彈出如圖4-7所示的界面,在main.c編輯面板中將自動生成的main.c修改為#include“msp430x14x.h”void main(void)wdtctl=wdtpw+wdthold;/stop watchdog; 修改后如圖4-8所示.然后點(diǎn)擊左上角的save all菜單如圖4-9所示,彈出保存工作區(qū)間對話框如圖4-10所示,在對話框中設(shè)置好工作區(qū)間的保存路勁及

36、工作區(qū)間的名稱,點(diǎn)擊“保存按鈕保存退出,返回圖4-8所示的界面。圖4-4 新建工程圖4-5 選擇開發(fā)語言創(chuàng)建main函數(shù)圖4-6 設(shè)置工程保存路徑及工程名稱圖4-7 新建的工程面板圖4-8 修改后的main.c圖4-9 點(diǎn)擊save all保存圖4-10 保存工作區(qū)間第四步:編輯代碼,根據(jù)需要往工程中加入自己的c文件和h文件件。第五步:設(shè)置編譯選項(xiàng)。代碼編輯好以后,在工作面板左邊,右鍵點(diǎn)擊工作區(qū)間里的工程名稱(我的工程名稱為mcu_basedtempreturedectection.ewp),選擇options.(如圖4-11所示),彈出如圖4-12所示的options選項(xiàng)卡,根據(jù)我們的器件設(shè)

37、置相關(guān)的選項(xiàng)卡,完成后點(diǎn)擊“ok”退出。圖4-11 打開工程的options選項(xiàng)卡圖4-12 設(shè)置options選項(xiàng)卡第五步:編譯工程點(diǎn)擊圖4-13中紅圈內(nèi)的“compile”和“make”對工程進(jìn)行編譯。注:compile只能編譯單個(gè)文件,make將會對整個(gè)工程文件進(jìn)行編譯和鏈接最后生成可執(zhí)行文件(后綴為.d43)圖4-13 編譯工程第六步:點(diǎn)擊圖4-13中紅圈內(nèi)的debug按鈕,可編譯生成的可執(zhí)行文件下載到430單片機(jī)內(nèi)部flash中,可以在線使用jtag接口單步、多步調(diào)試或者設(shè)置斷點(diǎn)調(diào)試,也可以關(guān)掉調(diào)試窗口,復(fù)位單片機(jī)后讓其自動運(yùn)行。至此,整個(gè)開發(fā)流程完畢。4.2軟件開發(fā)設(shè)計(jì)本系統(tǒng)采用模

38、塊化的設(shè)計(jì)思想,軟件模塊主要包括模擬量采集模塊、數(shù)字量采集模塊、串口通信模塊和主處理模塊。模擬量采集模塊主要是單片機(jī)通過a/d通道采集來自傳感器的信號,將信號進(jìn)行處理。該模塊主要涉及到a/d轉(zhuǎn)換和定時(shí)器a的操作,主要完成8通道模擬數(shù)據(jù)的采集,并且通過定時(shí)器a來控制采集的頻率,另外也設(shè)置一個(gè)標(biāo)志來通知主程序已經(jīng)獲得新的數(shù)據(jù),通過全局變量來實(shí)現(xiàn)與主處理程序?qū)崿F(xiàn)數(shù)據(jù)的交互。這部分程序采用中斷服務(wù)程序?qū)崿F(xiàn),在定時(shí)器a里先停止a/d轉(zhuǎn)換,讀取數(shù)據(jù)后啟動a/d轉(zhuǎn)換,然后再等待下一次中斷的到來。數(shù)字量采集主要是單片機(jī)通過的一般i/o口與數(shù)字采集電路進(jìn)行連接,單片機(jī)通過一般i/o口來簡單的讀取數(shù)字采集量的狀態(tài)

39、,判斷是高電平還是低電平。數(shù)據(jù)采集的時(shí)間間隔通過定時(shí)器b來完成,整個(gè)模塊采用的是中斷服務(wù)程序的結(jié)構(gòu)完成。串口模塊主要是與上位機(jī)的通信,從而將采集到的數(shù)據(jù)送到上位機(jī)進(jìn)行處理。當(dāng)接收到有數(shù)據(jù)時(shí),設(shè)置一個(gè)標(biāo)志來通知主程序有數(shù)據(jù)到來,當(dāng)主程序有數(shù)據(jù)要發(fā)送的時(shí)候,設(shè)置一個(gè)中斷標(biāo)志進(jìn)入中斷發(fā)送數(shù)據(jù)。主處理模塊首先完成初始化工作,初始化后進(jìn)入循環(huán)處理,在循環(huán)過程中主處理獲得采集的模擬數(shù)據(jù)和數(shù)字量數(shù)據(jù),并將得到的數(shù)據(jù)發(fā)送到上位機(jī)。下位機(jī)也接收來自上位機(jī)的的數(shù)據(jù)。整個(gè)程序基于中斷服務(wù)結(jié)構(gòu),為了實(shí)現(xiàn)中斷程序與主程序之間的數(shù)據(jù)交互,通過設(shè)置一些全局變量和全局的緩沖區(qū)來實(shí)現(xiàn),具體的流程圖如圖4-14所示。圖4-14主

40、流程圖通過流程圖可以看出,主處理只負(fù)責(zé)簡單的標(biāo)志判斷和設(shè)置標(biāo)志,然后從指定的緩沖區(qū)讀取數(shù)據(jù)或?qū)?shù)據(jù)放到相應(yīng)的緩沖區(qū),其他的處理由中斷來處理,因此主程序需要和中斷程序進(jìn)行交互。4.3關(guān)鍵軟件程序整個(gè)軟件設(shè)計(jì)包括初始設(shè)置、中置服務(wù)程序和主處理程序,下面對各個(gè)部分程序分別進(jìn)行詳細(xì)介紹。4.3.1初始化設(shè)置初始化程序主要包括時(shí)鐘初始化,a/d初始化、串口初始化。下面為a/d初始化和定時(shí)器初始化的程序代碼。void init_adc(void)/設(shè)置p6.0為模擬輸入通道p6sel = 0x07;/設(shè)置enc為0,從而修改adc12寄存器的值adc12ctl0 &= (enc);/轉(zhuǎn)換的起始地址為:ad

41、cmem0adc12ctl1 = cstartadd_0;/設(shè)置參考電壓為avss和avcc,輸入通道為a0adc12mctl0 = inch_0; /設(shè)置參考電壓為avss和avcc,輸入通道為a1 adc12mctl1 |= inch_1; /設(shè)置參考電壓為avss和avcc,輸入通道為a2 adc12mctl2 = inch_2; /設(shè)置參考電壓為avss和avcc,輸入通道為a3 adc12mctl3 = inch_3; /設(shè)置參考電壓為avss和avcc,輸入通道為a4 adc12mctl4 = inch_4; /設(shè)置參考電壓為avss和avcc,輸入通道為a5 adc12mctl5

42、 = inch_5; /設(shè)置參考電壓為avss和avcc,輸入通道為a6 adc12mctl6 = inch_6; /設(shè)置參考電壓為avss和avcc,輸入通道為a7 adc12mctl7 = inch_7 + eos;adc12ctl0 = |adc12on;adc12ctl0 = |msc;/轉(zhuǎn)換模式為:多通道、單次轉(zhuǎn)換 adc12ctl1 |=conseq_1;/smclk, 時(shí)鐘分頻為1,采樣脈沖由采樣的定時(shí)器產(chǎn)生 adc12ctl1 |= adc12ssel_1;adc12ctl1 |= adc12div_1;adc12ctl1 |= (shp);/使能adc轉(zhuǎn)換 adc12ctl0

43、 |= enc;return;void init_timera(void)/選擇smclk,清除tartactl = tassel1 + taclr;/1/8 smclktactl += id1;tsctl += id0;/ccr0 中斷允許cctl0 = ccie;/頻率為250hz ccro =4000;/增計(jì)數(shù)模式tactl |= mc0;return;4.3.2中斷服務(wù)程序該部分主要完成8通道模擬數(shù)據(jù)的采集,并且通過定時(shí)器a來控制采集的頻率。另外,也設(shè)置一個(gè)標(biāo)志來通知住程序已獲得新的數(shù)據(jù),通過全局變量來實(shí)現(xiàn)與主處理器程序進(jìn)行數(shù)據(jù)交互。這部分采用中斷服務(wù)程序?qū)崿F(xiàn),在定時(shí)器a里先停止a/d

44、轉(zhuǎn)換,讀取數(shù)據(jù)后啟動a/d轉(zhuǎn)換,然后在等待下一次中斷的到來,下面為定時(shí)器a處理和a/d轉(zhuǎn)換部分的程序代碼。interrupt timera0_vector void timera_isr(void)int results8;int i;/關(guān)閉轉(zhuǎn)換adc12ctl0 &= enc;/讀初轉(zhuǎn)換結(jié)果adc_buf0nadc_count = adc12mem0; /讀出轉(zhuǎn)換結(jié)果 adc_buf1nadc_count = adc12mem1; /讀出轉(zhuǎn)換結(jié)果 adc_buf2nadc_count = adc12mem2; /讀出轉(zhuǎn)換結(jié)果 adc_buf3nadc_count = adc12mem3; /

45、讀出轉(zhuǎn)換結(jié)果 adc_buf4nadc_count = adc12mem4; /讀出轉(zhuǎn)換結(jié)果 adc_buf5nadc_count = adc12mem5; /讀出轉(zhuǎn)換結(jié)果 adc_buf6nadc_count = adc12mem6; /讀出轉(zhuǎn)換結(jié)果 adc_buf7nadc_count = adc12mem7; nadc_count += 1; if (nadc_count = = 10) /設(shè)置標(biāo)志 nadc_flag = 1; nadc_count = 0; /將數(shù)據(jù)倒向數(shù)據(jù)緩沖區(qū) for (i = 0; i 10;i+) adc_buf_temp0i = adc_buf0i; for

46、 (i = 0; i 10;i+) adc_buf_temp1i = adc_buf1i; for (i = 0; i 10;i+) adc_buf_temp2i = adc_buf2i;for (i = 0; i 10;i+) adc_buf_temp3i = adc_buf3i;for (i = 0; i 10;i+) adc_buf_temp4i = adc_buf4i;for (i = 0; i 10;i+) adc_buf_temp5i = adc_buf5i;for (i = 0; i 10;i+) adc_buf_temp6i = adc_buf6i;for (i = 0; i

47、10;i+) adc_buf_temp7i = adc_buf7i; /開啟轉(zhuǎn)換adc12ctl0 |= enc + adc12sc;以上程序使用了全局變量“nadc_flag”通知主程序有新的數(shù)據(jù)采集數(shù)據(jù)獲得;全局變量”nadc_count”用來技術(shù)處理;“adc_buf0”等全局變量用來臨時(shí)存放數(shù)據(jù);“adc_temp0”等全局變量用來作為住程序交換數(shù)據(jù)的緩沖區(qū)。4.3.3 主處理程序主處理程序主要是負(fù)責(zé)與各個(gè)中斷服務(wù)程序之間進(jìn)行數(shù)據(jù)交互。主程序與a/d采集中斷服務(wù)程序進(jìn)行數(shù)據(jù)交互,將得到的數(shù)據(jù)封裝后,與串口中斷服務(wù)程序機(jī)型數(shù)據(jù)交互,由串口段程序?qū)?shù)據(jù)發(fā)送到pc機(jī)。下面為具體的程序代碼。v

48、oid main(void) int i; /關(guān)閉看門狗 wdtctl = wdtpw + wdthold; /關(guān)閉中斷 _dint(); /初始化 init_clk();init_adc();init_timera();init_port();init_timerb();/初始化變量nadc_flag = 0;nadc_count = 0;nsend_tx1 = 0;ntx1_len = 0;ntx1_flag = 0;nrx1_len _temp = 0;nrev_uart1 = 0;nrx1_len = 0;/打開中斷_eint();/開始循環(huán)for(;) /處理模擬量采集并發(fā)送if (

49、nadc_flag = = 1); nadc_flag = 0;/等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完畢while(1) if (ntx1_flag = = 0) break; /將數(shù)據(jù)由字轉(zhuǎn)換成字節(jié)for (i = 0;i 8)& 0x00ff);/設(shè)置幀結(jié)束標(biāo)志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據(jù)的長度ntx1_len = 22;/設(shè)置中斷標(biāo)志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完畢while(1) if (ntx1_flag = = 1) break; /將數(shù)據(jù)由字轉(zhuǎn)換成字節(jié)for (i = 0;i 8)& 0x00

50、ff);/設(shè)置幀結(jié)束標(biāo)志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/發(fā)送數(shù)據(jù)的長度ntx1_len = 22;/設(shè)置中斷標(biāo)志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完畢while(1) if (ntx1_flag = = 0) break; /將數(shù)據(jù)由字轉(zhuǎn)換成字節(jié)for (i = 0;i 8)& 0x00ff); /設(shè)置幀結(jié)束標(biāo)志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據(jù)的長度ntx1_len = 22;/設(shè)置中斷標(biāo)志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完

51、畢while(1) if (ntx1_flag = = 0) break; /將數(shù)據(jù)由字轉(zhuǎn)換成字節(jié)for (i = 0;i 8)& 0x00ff); /設(shè)置幀結(jié)束標(biāo)志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據(jù)的長度ntx1_len = 22;/設(shè)置中斷標(biāo)志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完畢 while(1) if (ntx1_flag = = 0) break; /將數(shù)據(jù)由字轉(zhuǎn)換成字節(jié)for (i = 0;i 8)& 0x00ff); /設(shè)置幀結(jié)束標(biāo)志uart1_tx_buf20 = 0xaa;uart1_tx_buf21 = 0xaa;/ 發(fā)送數(shù)據(jù)的長度ntx1_len = 22;/設(shè)置中斷標(biāo)志ifg2 |= utxifg1;/等待緩沖區(qū)里的數(shù)據(jù)發(fā)送完畢while(1) if (ntx1_flag = = 0) brea

溫馨提示

  • 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

提交評論