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