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