- 低功耗智能傳感器的設(shè)計(jì)
- 傳感器系統(tǒng)的軟硬件介紹
- 采用微控制器MSP430F2013
- 系統(tǒng)采用內(nèi)部DCO作為時(shí)鐘
- 系統(tǒng)利用差分傳輸數(shù)據(jù)
在工業(yè)控制過(guò)程中,經(jīng)常需要對(duì)一些參數(shù)進(jìn)行測(cè)量,而一般傳感器的輸出信號(hào)較弱,不適合作遠(yuǎn)距離傳輸。為了減小干擾,通常采用4~20mA電流輸出的雙絞線(xiàn)變送器。信號(hào)模擬處理的變送器,由于電路的復(fù)雜性的限制,非線(xiàn)性補(bǔ)償效果不理想,很難在全溫度范圍內(nèi)實(shí)現(xiàn)溫度補(bǔ)償,因此達(dá)不到較高的精度要求。隨著低功耗高精度單片機(jī)、Σ-ΔADC和Σ-ΔDAC的日益普及,為高精度的智能變送器的設(shè)計(jì)提供了技術(shù)途徑。
本文介紹的單片傳感信號(hào)接口設(shè)計(jì)采用了德州儀器公司新近推出的一款多功能的微控制器MSP430F2013,它內(nèi)部集成了16位的Σ-ΔADC。2kb的程序空間和128b的數(shù)據(jù)存儲(chǔ)空間,可以完成數(shù)據(jù)的智能采集,并采用差分傳輸方式進(jìn)行數(shù)據(jù)的傳輸。數(shù)據(jù)按幀進(jìn)行傳輸,傳輸過(guò)程中采用CRC檢驗(yàn)進(jìn)行差錯(cuò)控制。
MSP430F2013的結(jié)構(gòu)特點(diǎn)
MSP430F2013是TI公司MSP430系列的一款微控制器,它具有以下結(jié)構(gòu)特點(diǎn):16位的RISCCPU、16位的寄存器和常數(shù)發(fā)生器,可以獲得很高的代碼效率;五種低功耗模式,在便攜式的測(cè)量應(yīng)用中可以延長(zhǎng)電池的使用壽命;數(shù)控振蕩器(DCO)使得從低功耗模式切換到正常模式只要不到1μs;一個(gè)16位的定時(shí)器;10個(gè)I/O口;具備同步通信協(xié)議(SPI或者I2C);一個(gè)16位的Σ-ΔADC。
MSP430F2013的典型應(yīng)用是傳感系統(tǒng)捕獲模擬信號(hào),將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),然后利用數(shù)字信號(hào)作屏幕顯示或者將數(shù)字信號(hào)傳輸?shù)揭粋€(gè)主機(jī)系統(tǒng)中用作其他處理。
系統(tǒng)介紹
常見(jiàn)的模數(shù)轉(zhuǎn)換電路對(duì)模擬信號(hào)要進(jìn)行信號(hào)放大,而且一般都要設(shè)計(jì)一個(gè)與單片機(jī)的接口電路,本系統(tǒng)具有很高的集成度,單片即可完成信號(hào)的放大、模數(shù)轉(zhuǎn)換,軟件濾波,同時(shí)實(shí)現(xiàn)了一個(gè)單線(xiàn)協(xié)議,直接可以和高檔計(jì)算機(jī)進(jìn)行通訊,無(wú)須設(shè)計(jì)與單片機(jī)的接口電路。
MSP430F2013是一個(gè)低功耗的器件,當(dāng)運(yùn)行在1MHz的時(shí)鐘條件下,系統(tǒng)的工作電流為220μA,而待命模式的工作電流僅為0.5μA,保持RAM的節(jié)電模式的工作電流更是只有0.1μA,這樣的低功耗完全可以利用電池供電,適合于便攜式的測(cè)量。
本系統(tǒng)利用MSP430F2013進(jìn)行智能數(shù)據(jù)采集,從前端傳感器采集來(lái)的數(shù)據(jù)經(jīng)過(guò)程控增益放大器進(jìn)行放大,隨后進(jìn)入模數(shù)轉(zhuǎn)換器進(jìn)行模數(shù)轉(zhuǎn)換,轉(zhuǎn)換完成后以異步串行的方式輸出。圖1是整個(gè)系統(tǒng)的原理圖。
圖1系統(tǒng)原理圖
為簡(jiǎn)化系統(tǒng),同時(shí)避免外部晶振對(duì)系統(tǒng)的影響,系統(tǒng)采用內(nèi)部DCO作為時(shí)鐘,系統(tǒng)利用差分傳輸數(shù)據(jù),無(wú)需進(jìn)行數(shù)據(jù)的隔離。本應(yīng)用中配置傳輸速率為9600b/s,可以用串口設(shè)定匹配的波特率進(jìn)行接收。
無(wú)論系統(tǒng)采用內(nèi)部參考電壓還是外部參考電壓,輸入電壓都有相應(yīng)的范圍,所以前端模擬量的輸入要用穩(wěn)壓管進(jìn)行限幅。
系統(tǒng)可以根據(jù)外界信號(hào)的大小調(diào)節(jié)轉(zhuǎn)換的精度,只需拉高P2.6同時(shí)調(diào)節(jié)外部輸入的模擬量為所測(cè)量的最大值,這時(shí)系統(tǒng)將自動(dòng)調(diào)整PGA(程控增益放大器)。
由于采用半雙工的差分傳輸,系統(tǒng)很容易進(jìn)行擴(kuò)展,系統(tǒng)可以利用多個(gè)傳感器組成一個(gè)傳感器網(wǎng)絡(luò),通過(guò)總線(xiàn)控制傳感器采集數(shù)據(jù)。
系統(tǒng)軟件
系統(tǒng)的軟件流程圖如圖2所示。
圖2系統(tǒng)軟件流程圖
[page]
初始化
初始化部分主要完成以下功能。
負(fù)責(zé)系統(tǒng)時(shí)鐘的初始化,使系統(tǒng)工作頻率為DCO指定的標(biāo)準(zhǔn)8MHz時(shí)鐘。
配置系統(tǒng)的端口,由于芯片引腳功能復(fù)用,這一過(guò)程就顯得尤為重要。通過(guò)設(shè)定SD16AE和SD16INCTL0,使得P1.0和P1.1的工作狀態(tài)分別為A0+、A0-。設(shè)定P2.6、P2.7為通用IO口,其中P2.6用作調(diào)整PGA的控制信號(hào),P2.7用作數(shù)據(jù)傳輸?shù)耐ǖ馈?br />
初始化系統(tǒng)的AD轉(zhuǎn)換器,采用系統(tǒng)內(nèi)部的參考電壓,由于輸入頻率最多只能為1.1MHz,故將系統(tǒng)主頻率8分頻輸入。MSP430F2013中ADC沒(méi)有輸入緩存,在緩存模式選擇中關(guān)閉緩存。系統(tǒng)用來(lái)測(cè)量連續(xù)變化的物理量,設(shè)定系統(tǒng)為連續(xù)轉(zhuǎn)換模式。
測(cè)量
測(cè)量時(shí)打開(kāi)中斷,當(dāng)有測(cè)量結(jié)果產(chǎn)生時(shí),產(chǎn)生中斷,中斷標(biāo)志位置位,測(cè)量結(jié)果存放在轉(zhuǎn)換結(jié)果寄存器中,當(dāng)從轉(zhuǎn)換結(jié)果寄存器中讀出測(cè)量結(jié)果后,中斷標(biāo)志位自動(dòng)復(fù)位。所以讀取轉(zhuǎn)換結(jié)果時(shí)只需查詢(xún)中斷標(biāo)志位即可。
測(cè)量結(jié)果濾波采用中位值平均濾波法,每個(gè)測(cè)量值采樣10次,去除最大值和最小值,其余8個(gè)值取算術(shù)平均值。
這種算法能夠有效地克服因偶然因素引起的波動(dòng)干擾,尤其適用于溫度、液位等變化緩慢的物理量。
測(cè)量時(shí)使用內(nèi)部參考電壓,測(cè)量信號(hào)的電壓輸入范圍為0~500mV,當(dāng)輸入信號(hào)滿(mǎn)量程輸入,模數(shù)轉(zhuǎn)換輸出的最高位不為1時(shí),可進(jìn)行信號(hào)放大,最大放大倍數(shù)可達(dá)32。當(dāng)輸入信號(hào)的放大倍數(shù)為N時(shí),輸入信號(hào)的范圍會(huì)相應(yīng)地縮小為原來(lái)的1/N。例如,當(dāng)選擇PGA的放大倍數(shù)為2倍時(shí),測(cè)量信號(hào)的電壓輸入范圍為0~250mV。
整個(gè)測(cè)量過(guò)程用偽代碼表示如下。
intmeasure(void)
{
inti;
if(SET==1)
{
調(diào)整增益;
}
For(i=0;i<10;i++)
{
等待轉(zhuǎn)換結(jié)果產(chǎn)生;
讀取并保存轉(zhuǎn)換結(jié)果;
}
累加轉(zhuǎn)換結(jié)果;
查找最大值與最小值;
中位值平均濾波;
返回測(cè)量結(jié)果;
}
數(shù)據(jù)傳輸
數(shù)據(jù)發(fā)送按幀發(fā)送,幀結(jié)構(gòu)如圖3所示。
圖3數(shù)據(jù)幀結(jié)構(gòu)圖
每幀數(shù)據(jù)包括同步碼,AD轉(zhuǎn)換結(jié)果和檢驗(yàn)碼,幀的同步可以采用特定的同步碼或者間隙同步,這里采用第二種方法。在數(shù)據(jù)幀發(fā)送時(shí),首先拉高數(shù)據(jù)發(fā)送線(xiàn),拉高的時(shí)間為發(fā)送16個(gè)數(shù)據(jù)位的時(shí)間,幀頭高電平的間隙用作數(shù)據(jù)幀的同步。
奇偶校驗(yàn)碼作為一種檢錯(cuò)碼雖然簡(jiǎn)單,但是漏檢率太高。在計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)通信中用得最廣泛的檢錯(cuò)碼,是一種漏檢率低得多也便于實(shí)現(xiàn)的循環(huán)冗余碼CRC。CRC生成多項(xiàng)式階數(shù)越高,誤判的概率越小。本文采用CCITT-16,其生成多項(xiàng)式為g(x)=x16+x15+x5+1。實(shí)現(xiàn)CRC的方法一般有兩種:直接計(jì)算和查表。由于查表法至少需要1kb的空間用來(lái)存儲(chǔ)表值,所以這里采用直接計(jì)算的方法。
數(shù)據(jù)傳輸時(shí)使用單線(xiàn)串行輸出,用口線(xiàn)模擬串行發(fā)送,發(fā)送字節(jié)時(shí)在口線(xiàn)上依次發(fā)送如圖4所示數(shù)據(jù)(數(shù)據(jù)為0時(shí)拉低口線(xiàn)電平,數(shù)據(jù)為1時(shí)拉高口線(xiàn)電平),位持續(xù)時(shí)間根據(jù)波特率計(jì)算,本應(yīng)用中設(shè)定波特率為9600b/s。當(dāng)沒(méi)有數(shù)據(jù)發(fā)送時(shí),輸出口線(xiàn)上維持高電平。
圖4發(fā)送字節(jié)的順序示意圖
數(shù)據(jù)發(fā)送最后通過(guò)光耦隔離,使得現(xiàn)場(chǎng)和數(shù)據(jù)的輸出隔離,同時(shí)可以根據(jù)后級(jí)系統(tǒng)輸入的需要簡(jiǎn)單地更改電路。
經(jīng)過(guò)實(shí)際應(yīng)用,單片MSP430F2013可實(shí)現(xiàn)小信號(hào)傳感器輸出電平測(cè)量,轉(zhuǎn)換時(shí)間小于1ms。并可實(shí)現(xiàn)低功耗測(cè)量,整機(jī)功耗不超過(guò)6mW。該系統(tǒng)特別適合于實(shí)現(xiàn)了一個(gè)智能傳感器,當(dāng)輸入信號(hào)滿(mǎn)輻度大于40mV時(shí)可以保證16位A/D轉(zhuǎn)換分辨率。由于采用半雙工的差分傳輸,可以方便地實(shí)現(xiàn)傳感器的組網(wǎng)。