1 引言
隨著社會的發展,人們環保意識的增強,對建筑材料的要求越來越高,導熱系數作為衡量建筑材料保溫性能的重要指標一直為人們所重視,因而開發設計出高精度絕熱材料導熱系數測量儀器十分必要。絕熱材料導熱系數測量基于一維穩態傳熱原理,測出試件冷熱面的平均溫度(TC、TH)和穩態加熱功率(P),由下式即可計算出導熱系數:λ=Pd/A(TH-TC),其中d為試件厚度,A為試件對應主加熱器部分的橫截面積。整個測量系統主要由爐體和溫度、功率測控系統兩部分組成,爐體按國家標準的要求加工制造,大同小異,而溫度、功率測控系統則隨著電子技術的發展不斷更新。
溫度、功率測控系統的特點是要測量和控制多路溫度信號,判斷到達設定的狀態后再進行計算。常見的設計方案是:用熱電偶或鉑電阻作溫度傳感器,輸出的模擬電信號經過模擬放大和濾波,進入高精度模/數轉換器(ADC),再經過單片機的判斷、計算,控制加熱電爐絲的功率,求出穩態導熱情況下導熱系數、熱阻等材料熱特性參數值。這種方案較過去的模擬式測量系統已經很先進,但是仍存在精度不夠高、可靠性不夠好的缺點。新近開發的絕熱材料導熱系數測定儀采用TI公司新近推出的具有增強型8051內核的低功耗單片機MSC1212,其內部集成了8通道高精度24位Δ-Σ ADC和4通道16位DAC,在保證測量精度的同時又大大簡化了外部電路,可靠性好。
MSC1212的內部結構圖如圖1所示。MSC1212工作電壓2.7 V~5.25V,微控制器核是經過優化的8051內核,在給定時鐘源的情況下,它的執行速度比標準的8051內核快三倍,從而使得器件可以在更低的外部時鐘頻率下工作,在功耗比標準的8051低的情況下,仍可達到相同的性能。同時,其片內外設十分豐富,包括32位累加器、1個帶有FIFO的SPI串口、2 個全雙工的UART、32個數字輸入輸出端、看門狗定時器、低電壓檢測、片內上電復位、16位PWM、3個定時器/計數器、21個中斷源。
MSC1212集成了32kB的FLASH存儲器以及1.2kB的SRAM,其FLASH編程模式有串行和并行模式兩種,在上電復位期間通過ALE和 PSEN信號的狀態來選擇。PSEN=0,ALE=1時是串行編程模式。PSEN=1,ALE=0時為并行編程模式。假如兩者都為1,則工作在用戶模式。兩者都為0是保留模式,沒有定義。MSC1212是帶ISP開發功能的單片機系統,與8051的指令集完全兼容,可以用已有的8051開發工具來開發 MSC1212的軟件。主要的開發環境是匯編語言和C語言。
2 MSC1212模擬接口介紹
MSC1212的內部集成的模擬接口是它優于其他單片機的特征之一,在絕熱材料導熱系數測定儀中擔當了重要角色,有必要先加以詳細介紹。
2.1 ADC結構介紹
MSC1212的ADC是Δ-Σ型,由多路開關(MUX)、溫度檢測器、緩沖器、可編程增益放大器(PGA)、調制器、數字濾波器、電壓參考組成,有8個通道,10Hz數據輸出率時有效分辨率可達24位。
一般ADC都定義成對的輸入端,不可隨意改變,而 MSC1212的ADC輸入端可以由用戶通過設置ADMUX寄存器來定義,可以把8個通道的任何2個分別作為同相端和反相端,這種軟件設置使應用變得十分靈活,某個通道可以在一次測量中用作同相輸入端,下一次測量中卻用作反相輸入端。例如ADMUX=0x01,則定義AIN0為同相輸入端,AIN1為反相輸入端。
當ADMUX所有位置1時,將選中溫度檢測器工作,返回芯片溫度值,所以也可以把溫度檢測器看作ADC輸入的第9個通道。
緩沖器使能與否通過寄存器ADCON0(BUF位置1使能)控制,當緩沖器使能時輸入阻抗是10GΩ,輸入電壓范圍變小,電流升高,沒有緩沖器時 MSC1212的輸入阻抗是5MΩ/PGA。一般都要使能緩沖器,除非某一模擬輸入端電壓大于AVDD-1.5V。
通過改變寄存器ADCON0的低三位,可編程增益放大器(PGA)的增益可被設置為1、2、4、8、16、32、64和128。使用PGA可以提高ADC 的有效分辨率。例如,當PGA為1且采用5V量程時,ADC能分辨到1uV。PGA為128且采用40mV量程時,分辨到75nV。通過設置寄存器 ODAC,PGA的模擬輸入可以通過高達其全量程一半的輸入來補償(即,若輸入電壓范圍是5V,則補償范圍是±2.5V),其中MSB是符號位,七個 LSB提供補償的大小。這種補償并不影響ADC的噪聲特性和動態范圍。
調制器是一個單環2階Δ-Σ系統,其模擬信號采樣率(fMOD)由下式確定:fMOD=fOSC/(ACLK+1)/64,寄存器ACLK由用戶設置,若晶振頻率fOSC=11.0592MHz,ACLK=8,則采樣率fMOD=19200Hz。知曉Δ-ΣADC原理的人都知道,這一采樣率并不是數字信號輸出率,數字信號輸出率(fDATA)等于模擬信號采樣率(fMOD)除以抽取因子(Decimation),抽取因子由用戶在寄存器ADCON2和 ADCON3中定義,ADCON2為低8位,ADCON3為高3位。抽取因子越大,噪聲抑制能力越強。
調制器輸出經過數字濾波器就成為所需要的數字信號,MSC1212配置了三種數字濾波器:快速建立型、sinc2型、sinc3型,在通道同步變化的情況下,濾波器建立時間依次為1個、2個、3個轉換周期;sinc型濾波器在整數倍fDATA頻率處有很好的陷波特性,快速建立型濾波器陷波特性不佳。自動模式在輸入通道或PGA改變時將sinc濾波器配置成最佳,剛轉換為一個新的輸入通道時,自動模式選擇需要4個轉換周期的建立時間,前2個周期用快速建立型濾波器,且第一個周期轉換結果丟棄不要,后兩個周期依次用sinc2型、sinc3型濾波器,之后一直用sinc3型濾波器,直到通道再次改變,這種方式充分利用了快速建立型濾波器的快速響應特性和sinc3型濾波器良好的噪聲抑制特性。
多通道采樣通道突然變化時,輸出要稍作延遲才能正確反應新通道輸入值,延遲時間依賴于使用的濾波器。由于通道轉換通常不與數據輸出間隙同步,所以還額外需要一個整周期才能準確采樣。事實上這種不確定性導致獲得理想分辨率要多花費一個轉換周期,即輸入通道突然變化時必須丟棄前1、2或3個轉換周期的結果。自動模式可以降低必須丟失的數據數目,但是也會降低分辨率。
當多通道采樣時必須考慮建立時間以確定總的數據通過率,例如,數據輸出率(fDATA)為20Hz,濾波器采用sinc3型,采樣5個通道,那么每個通道的結果輸出率(fCH)為20/4/5=1Hz。事實上,最佳配置的評估是一種公平交易,不可能面面俱到。首要標準之一是確定轉換結果的有效位數目(ENOB)。如果需要ENOB=18位,用三種濾波器皆可實現,對應快速建立型、sinc2型、sinc3型,抽取因子分別為1800、500、 200。假定調制器時鐘頻率(或模擬信號采樣率)是15625Hz,對應數據輸出率(fDATA)分別為8.68、31.25、78.125 Hz,單通道的結果輸出率(fCH)分別為4.34(8.68/2)、10.41(31.25/3)、19.53(78.125/4)Hz,通道同步轉換時通道率分別為8.68(8.68/1)、15.625(31.25/2)、26.04(78.125/3)Hz。由此可見,這些“率”的大小基于一個合理的調制器時鐘速度。在許多應用中,可以將數據通過率提高到上述數據的10倍。
MSC1212或整個系統的失調和增益誤差可以通過校準來減少。校準可以通過寄存器ADCON1相應位來控制,每一個校準過程需要7個tDATA來完成,因此總共需要14個tDATA來完成失調和增益校準。系統校準要求適當的信號加到輸入端,具體地,系統失調校準需要“零”差分輸入信號以估計待消除的失調,系統增益校準則需要正的滿量程輸入信號以產生一個消除系統中增益誤差的值。上電后或者溫度、緩沖器、PGA中任何一個發生變化時都將執行校準。使用自動模式或者sinc3型濾波器有利于校準。校準將消除ODAC的影響,因此,對ODAC寄存器的改變必須在校準之后進行。校準完成之后,ADC的中斷位置為1,說明校準完成,數據有效。
MSC1212的電壓參考可以是內部(上電后默認)的或外部的。電壓參考是通過寄存器ADCON0(EVREF位)來選擇的,內部電壓參考可以是 1.25V或2.5V(AVDD=4.5V~5.25V),由寄存器ADCON0的VREFH位來定義。假如不使用內部電壓參考,應將其關閉以降低功耗和噪聲。REFOUT引腳與AGND之間應接0.1uF的電容。外部電壓參考是差分的,通過引腳REF IN+和REF IN-之間的電壓差體現出來,任一引腳的絕對電壓可以在AGND到AVDD之間變化,然而差分電壓不能超過2.6V。
ADC轉換結果保存在ADRESL/ ADRESM/ ADRESH寄存器中。MSC1212內部還有4個求和/移位寄存器SUMR0~3和1個求和/移位控制寄存器SSCON,可以對ADC轉換結果進行累加平均從而進一步降低噪聲提高分辨率。
2.2 DAC結構介紹
MSC1210的16位DAC是T型電阻網絡型DAC,其內部結構框圖如圖2所示。輸入DAC寄存器的值(D,取0~65535)與輸出模擬量(VDAC)的關系為:VDAC=VREF*D/65536,其中VREF是DAC電壓參考,可以選擇內部REFOUT/REFIN+電壓或電源電壓 AVDD,VREF與AVDD共同制約VDAC(IDAC)輸入代碼的范圍,其關系如表1所示。DAC的軌-軌輸出型緩沖放大器可以輸出 AGND~AVDD的電壓,可以驅動2kΩ//1000pF的負載。加以外部電路,DAC也可輸出±VREF的電壓,例如圖3所示電路,VO=VREF(D/32768-1)。
2.3 多通道數據采集程序示例
// A/D Conversion for 8 single ended channels,0-5V on inputs AIN0 to AIN7,AINCOM = 2.5V
#include
#include
#include
#define LSB 298.0232e-9
extern unsigned long positive(void); //return the 3 byte adres to R4567 (MSB“LSB)
void main(void)
{ unsigned long int xdata result, dummy;
unsigned char k, pga, chan;
unsigned int decimation;
float voltage;
CKCON = 0; // 0 MOVX cycle stretch
PDCON = 0x14; // turn on ADC-Vref, SPI and Systimers
printf(”\nMSC1210 ADC Conversion Test\n\n“);
printf(”\nSingle-Ended 0V to 5V inputs, AINCOM=2.5V\n\n“);
printf(”Chan. Dec. rate Hex Value Voltage\n“);
/* Setup ADC */
ADMUX = 0x08; //(AIN+ = AIN0), (AIN- = AINCOM)
ACLK = 9; // ACLK = 11,0592,000/10 = 1,105,920 Hz
// m
odclock = 1,105,920/64 = 17,280 Hz
pga = 0;
ADCON0 = 0x38 | pga; // Vref On, Vref=2.5V, Buff on, BOD off, pga=1
decimation = 1728; // 10 Hz
ADCON2 = decimation & 0xFF; // LSB of decimation
ADCON3 =(decimation>>8) & 0x07; // MSB of decimation
ADCON1 = 0x01; // bipolar, auto, self calibration (offset, gain)
for (chan=0; chan<8 ; chan++) // Channels Loop
{ ADMUX = (char)(chan<<4) | 8; // AINP = chan, AINN = AINCOM
for (k=0; k<4; k++) // Wait for Four conversions for filter to settle after calibration
{ while (!(AIE & 0x20)); // Wait for data ready
dummy = positive(); // Dummy read to clear ADCIRQ
}
while (!(AIE & 0x20)) {} // Wait for next result
result = positive();
printf (”\n%3bd %7d %5dHz “, chan,decimation,17280/decimation);
voltage = result * LSB;
printf (”%12lx %f “, result,voltage);
} Channels Loop
printf(”\n FINISHED \n-----------\n“);
while(1) ;
} //main
3 基于MSC1212的單片機溫度測控系統設計
基于MSC1212的單片機溫度測控系統硬件框圖如圖2所示。整個系統可分為溫度測量、溫度控制、人機對話、與主機通信等部分。串口通訊可以把測量數據存儲在主機上,供日后參考,還可以給出導熱系數隨溫度變化的函數曲線或者分析非穩態傳熱情況下的熱特性。異常報警、液晶顯示、按鍵、打印電路保證了人機對話界面的友好,體現了系統的智能性。
3.1 溫度測量
MSC1212內部集成了8通道24位高精度Δ-Σ ADC,雖然Δ-Σ ADC的數據率很低,但是溫度是緩變信號,用Δ-Σ ADC完全可以滿足要求。本系統所測溫度范圍為-30℃~150℃,用熱電偶測量,要求最大測溫誤差不得超過0.1℃(對應大約0.004mV),而 MSC1212的ADC輸入范圍為0V~5V(參考電壓選擇2.5V時),在10Hz數據率時可達22位有效輸出,充分滿足測量要求,不必加任何模擬放大電路,只要加一個緩沖器就可以了。熱電偶冷端溫度即環境溫度由數字式溫度傳感器測量供熱電偶冷端補償和環境溫度記錄與顯示。
3.2 溫度控制
MSC1212實時測得冷熱板溫度并與用戶設定的溫度比較,結合PID控制和模糊控制算法,通過程序控制各路DAC輸出一定的電壓信號(0-5V),分別控制主副加熱器電源電壓(0-48V連續輸出)、半導體制冷器電源電流(0-25A連續輸出),電路十分簡單,功率控制的速度和精度同時得到提高。
3.3 軟件設計
本系統所要實現的功能是實時采集各路溫度信號和主加熱器電爐絲的電壓電流信號,按照算法要求進行功率控制,監控溫度傳感器、主副加熱器、半導體制冷器保護水浴等正常工作,人機對話以及與主機通訊等。系統軟件采用模塊化編程結構,由主程序和參數設定、系統標定、異常報警、數據處理、串口通訊、鍵盤、顯示、打印等子程序組成。系統功能框圖如圖5所示。
4 結束語
綜上所述,MSC1212單片機具有豐富的片內資源,尤其是內置高精度ADC、DAC,使之在本絕熱材料導熱系數測定儀中的應用不但提高了測量精度,而且大大簡化了硬件電路,可以推廣應用于其他測控系統中。
責任編輯:gt
-
單片機
+關注
關注
6039文章
44583瀏覽量
636494 -
溫度傳感器
+關注
關注
48文章
2951瀏覽量
156194 -
adc
+關注
關注
98文章
6514瀏覽量
545044
發布評論請先 登錄
相關推薦
評論