MSC1212在絕熱材料導(dǎo)熱系數(shù)測定系統(tǒng)中的應(yīng)用
1 引言
隨著社會的發(fā)展,人們環(huán)保意識的增強,對建筑材料的要求越來越高,導(dǎo)熱系數(shù)作為衡量建筑材料保溫性能的重要指標一直為人們所重視,因而開發(fā)設(shè)計出高精度絕熱材料導(dǎo)熱系數(shù)測量儀器十分必要。絕熱材料導(dǎo)熱系數(shù)測量基于一維穩(wěn)態(tài)傳熱原理,測出試件冷熱面的平均溫度(tc、th)和穩(wěn)態(tài)加熱功率(p),由下式即可計算出導(dǎo)熱系數(shù):λ=pd/a(th-tc),其中d為試件厚度,a為試件對應(yīng)主加熱器部分的橫截面積。整個測量系統(tǒng)主要由爐體和溫度、功率測控系統(tǒng)兩部分組成,爐體按國家標準的要求加工制造,大同小異,而溫度、功率測控系統(tǒng)則隨著電子技術(shù)的發(fā)展不斷更新。
本文引用地址:http://www.ex-cimer.com/article/21164.htm溫度、功率測控系統(tǒng)的特點是要測量和控制多路溫度信號,判斷到達設(shè)定的狀態(tài)后再進行計算。常見的設(shè)計方案是:用熱電偶或鉑電阻作溫度傳感器,輸出的模擬電信號經(jīng)過模擬放大和濾波,進入高精度模/數(shù)轉(zhuǎn)換器(adc),再經(jīng)過單片機的判斷、計算,控制加熱電爐絲的功率,求出穩(wěn)態(tài)導(dǎo)熱情況下導(dǎo)熱系數(shù)、熱阻等材料熱特性參數(shù)值。這種方案較過去的模擬式測量系統(tǒng)已經(jīng)很先進,但是仍存在精度不夠高、可靠性不夠好的缺點。筆者新近開發(fā)的絕熱材料導(dǎo)熱系數(shù)測定儀采用ti公司新近推出的具有增強型8051內(nèi)核的低功耗單片機msc1212,其內(nèi)部集成了8通道高精度24位δ-σ adc和4通道16位dac,在保證測量精度的同時又大大簡化了外部電路,可靠性好。
msc1212的內(nèi)部結(jié)構(gòu)圖如圖1所示。msc1212工作電壓2.7 v~5.25v,微控制器核是經(jīng)過優(yōu)化的8051內(nèi)核,在給定時鐘源的情況下,它的執(zhí)行速度比標準的8051內(nèi)核快三倍,從而使得器件可以在更低的外部時鐘頻率下工作,在功耗比標準的8051低的情況下,仍可達到相同的性能。同時,其片內(nèi)外設(shè)十分豐富,包括32位累加器、1個帶有fifo的spi串口、2個全雙工的uart、32個數(shù)字輸入輸出端、看門狗定時器、低電壓檢測、片內(nèi)上電復(fù)位、16位pwm、3個定時器/計數(shù)器、21個中斷源。
msc1212集成了32kb的flash存儲器以及1.2kb的sram,其flash編程模式有串行和并行模式兩種,在上電復(fù)位期間通過ale和psen信號的狀態(tài)來選擇。psen=0,ale=1時是串行編程模式。psen=1,ale=0時為并行編程模式。假如兩者都為1,則工作在用戶模式。兩者都為0是保留模式,沒有定義。msc1212是帶isp開發(fā)功能的單片機系統(tǒng),與8051的指令集完全兼容,可以用已有的8051開發(fā)工具來開發(fā)msc1212的軟件。主要的開發(fā)環(huán)境是匯編語言和c語言。
2 msc1212模擬接口介紹
msc1212的內(nèi)部集成的模擬接口是它優(yōu)于其他單片機的特征之一,在絕熱材料導(dǎo)熱系數(shù)測定儀中擔(dān)當了重要角色,有必要先加以詳細介紹。
2.1 adc結(jié)構(gòu)介紹
msc1212的adc是δ-σ型,由多路開關(guān)(mux)、溫度檢測器、緩沖器、可編程增益放大器(pga)、調(diào)制器、數(shù)字濾波器、電壓參考組成,有8個通道,10hz數(shù)據(jù)輸出率時有效分辨率可達24位。
一般adc都定義成對的輸入端,不可隨意改變,而 msc1212的adc輸入端可以由用戶通過設(shè)置admux寄存器來定義,可以把8個通道的任何2個分別作為同相端和反相端,這種軟件設(shè)置使應(yīng)用變得十分靈活,某個通道可以在一次測量中用作同相輸入端,下一次測量中卻用作反相輸入端。例如admux=0x01,則定義ain0為同相輸入端,ain1為反相輸入端。
當admux所有位置1時,將選中溫度檢測器工作,返回芯片溫度值,所以也可以把溫度檢測器看作adc輸入的第9個通道。
緩沖器使能與否通過寄存器adcon0(buf位置1使能)控制,當緩沖器使能時輸入阻抗是10gω,輸入電壓范圍變小,電流升高,沒有緩沖器時msc1212的輸入阻抗是5mω/pga。一般都要使能緩沖器,除非某一模擬輸入端電壓大于avdd-1.5v。
通過改變寄存器adcon0的低三位,可編程增益放大器(pga)的增益可被設(shè)置為1、2、4、8、16、32、64和128。使用pga可以提高adc的有效分辨率。例如,當pga為1且采用5v量程時,adc能分辨到1uv。pga為128且采用40mv量程時,分辨到75nv。通過設(shè)置寄存器odac,pga的模擬輸入可以通過高達其全量程一半的輸入來補償(即,若輸入電壓范圍是5v,則補償范圍是±2.5v),其中msb是符號位,七個lsb提供補償?shù)拇笮?。這種補償并不影響adc的噪聲特性和動態(tài)范圍。
調(diào)制器是一個單環(huán)2階δ-σ系統(tǒng),其模擬信號采樣率(fmod)由下式確定:fmod=fosc/(aclk+1)/64,寄存器aclk由用戶設(shè)置,若晶振頻率fosc=11.0592mhz,aclk=8,則采樣率fmod=19200hz。知曉δ-σadc原理的人都知道,這一采樣率并不是數(shù)字信號輸出率,數(shù)字信號輸出率(fdata)等于模擬信號采樣率(fmod)除以抽取因子(decimation),抽取因子由用戶在寄存器adcon2和adcon3中定義,adcon2為低8位,adcon3為高3位。抽取因子越大,噪聲抑制能力越強。
調(diào)制器輸出經(jīng)過數(shù)字濾波器就成為所需要的數(shù)字信號,msc1212配置了三種數(shù)字濾波器:快速建立型、sinc2型、sinc3型,在通道同步變化的情況下,濾波器建立時間依次為1個、2個、3個轉(zhuǎn)換周期;sinc型濾波器在整數(shù)倍fdata頻率處有很好的陷波特性,快速建立型濾波器陷波特性不佳。自動模式在輸入通道或pga改變時將sinc濾波器配置成最佳,剛轉(zhuǎn)換為一個新的輸入通道時,自動模式選擇需要4個轉(zhuǎn)換周期的建立時間,前2個周期用快速建立型濾波器,且第一個周期轉(zhuǎn)換結(jié)果丟棄不要,后兩個周期依次用sinc2型、sinc3型濾波器,之后一直用sinc3型濾波器,直到通道再次改變,這種方式充分利用了快速建立型濾波器的快速響應(yīng)特性和sinc3型濾波器良好的噪聲抑制特性。
多通道采樣通道突然變化時,輸出要稍作延遲才能正確反應(yīng)新通道輸入值,延遲時間依賴于使用的濾波器。由于通道轉(zhuǎn)換通常不與數(shù)據(jù)輸出間隙同步,所以還額外需要一個整周期才能準確采樣。事實上這種不確定性導(dǎo)致獲得理想分辨率要多花費一個轉(zhuǎn)換周期,即輸入通道突然變化時必須丟棄前1、2或3個轉(zhuǎn)換周期的結(jié)果。自動模式可以降低必須丟失的數(shù)據(jù)數(shù)目,但是也會降低分辨率。
當多通道采樣時必須考慮建立時間以確定總的數(shù)據(jù)通過率,例如,數(shù)據(jù)輸出率(fdata)為20hz,濾波器采用sinc3型,采樣5個通道,那么每個通道的結(jié)果輸出率(fch)為20/4/5=1hz。事實上,最佳配置的評估是一種公平交易,不可能面面俱到。首要標準之一是確定轉(zhuǎn)換結(jié)果的有效位數(shù)目(enob)。如果需要enob=18位,用三種濾波器皆可實現(xiàn),對應(yīng)快速建立型、sinc2型、sinc3型,抽取因子分別為1800、500、200。假定調(diào)制器時鐘頻率(或模擬信號采樣率)是15625hz,對應(yīng)數(shù)據(jù)輸出率(fdata)分別為8.68、31.25、78.125 hz,單通道的結(jié)果輸出率(fch)分別為4.34(8.68/2)、10.41(31.25/3)、19.53(78.125/4)hz,通道同步轉(zhuǎn)換時通道率分別為8.68(8.68/1)、15.625(31.25/2)、26.04(78.125/3)hz。由此可見,這些"率"的大小基于一個合理的調(diào)制器時鐘速度。在許多應(yīng)用中,可以將數(shù)據(jù)通過率提高到上述數(shù)據(jù)的10倍。
msc1212或整個系統(tǒng)的失調(diào)和增益誤差可以通過校準來減少。校準可以通過寄存器adcon1相應(yīng)位來控制,每一個校準過程需要7個tdata來完成,因此總共需要14個tdata來完成失調(diào)和增益校準。系統(tǒng)校準要求適當?shù)男盘柤拥捷斎攵?,具體地,系統(tǒng)失調(diào)校準需要"零"差分輸入信號以估計待消除的失調(diào),系統(tǒng)增益校準則需要正的滿量程輸入信號以產(chǎn)生一個消除系統(tǒng)中增益誤差的值。上電后或者溫度、緩沖器、pga中任何一個發(fā)生變化時都將執(zhí)行校準。使用自動模式或者sinc3型濾波器有利于校準。校準將消除odac的影響,因此,對odac寄存器的改變必須在校準之后進行。校準完成之后,adc的中斷位置為1,說明校準完成,數(shù)據(jù)有效。
msc1212的電壓參考可以是內(nèi)部(上電后默認)的或外部的。電壓參考是通過寄存器adcon0(evref位)來選擇的,內(nèi)部電壓參考可以是1.25v或2.5v(avdd=4.5v~5.25v),由寄存器adcon0的vrefh位來定義。假如不使用內(nèi)部電壓參考,應(yīng)將其關(guān)閉以降低功耗和噪聲。refout引腳與agnd之間應(yīng)接0.1uf的電容。外部電壓參考是差分的,通過引腳ref in+和ref in-之間的電壓差體現(xiàn)出來,任一引腳的絕對電壓可以在agnd到avdd之間變化,然而差分電壓不能超過2.6v。
adc轉(zhuǎn)換結(jié)果保存在adresl/ adresm/ adresh寄存器中。msc1212內(nèi)部還有4個求和/移位寄存器sumr0~3和1個求和/移位控制寄存器sscon,可以對adc轉(zhuǎn)換結(jié)果進行累加平均從而進一步降低噪聲提高分辨率。
2.2 dac結(jié)構(gòu)介紹
msc1210的16位dac是t型電阻網(wǎng)絡(luò)型dac,其內(nèi)部結(jié)構(gòu)框圖如圖2所示。輸入dac寄存器的值(d,取0~65535)與輸出模擬量(vdac)的關(guān)系為:vdac=vref*d/65536,其中vref是dac電壓參考,可以選擇內(nèi)部refout/refin+電壓或電源電壓avdd,vref與avdd共同制約vdac(idac)輸入代碼的范圍,其關(guān)系如表1所示。dac的軌-軌輸出型緩沖放大器可以輸出agnd~avdd的電壓,可以驅(qū)動2kω//1000pf的負載。加以外部電路,dac也可輸出±vref的電壓,例如圖3所示電路,vo=vref(d/32768-1)。
2.3 多通道數(shù)據(jù)采集程序示例
// 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 testnn");
printf("nsingle-ended 0v to 5v inputs, aincom=2.5vnn");
printf("chan. dec. rate hex value voltagen");
/* setup adc */
admux = 0x08; //(ain+ = ain0), (ain- = aincom)
aclk = 9; // aclk = 11,0592,000/10 = 1,105,920 hz
// modclock = 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的單片機溫度測控系統(tǒng)設(shè)計
基于msc1212的單片機溫度測控系統(tǒng)硬件框圖如圖2所示。整個系統(tǒng)可分為溫度測量、溫度控制、人機對話、與主機通信等部分。串口通訊可以把測量數(shù)據(jù)存儲在主機上,供日后參考,還可以給出導(dǎo)熱系數(shù)隨溫度變化的函數(shù)曲線或者分析非穩(wěn)態(tài)傳熱情況下的熱特性。異常報警、液晶顯示、按鍵、打印電路保證了人機對話界面的友好,體現(xiàn)了系統(tǒng)的智能性。
3.1 溫度測量
msc1212內(nèi)部集成了8通道24位高精度δ-σ adc,雖然δ-σ adc的數(shù)據(jù)率很低,但是溫度是緩變信號,用δ-σ adc完全可以滿足要求。本系統(tǒng)所測溫度范圍為-30℃~150℃,用熱電偶測量,要求最大測溫誤差不得超過0.1℃(對應(yīng)大約0.004mv),而msc1212的adc輸入范圍為0v~5v(參考電壓選擇2.5v時),在10hz數(shù)據(jù)率時可達22位有效輸出,充分滿足測量要求,不必加任何模擬放大電路,只要加一個緩沖器就可以了。熱電偶冷端溫度即環(huán)境溫度由數(shù)字式溫度傳感器測量供熱電偶冷端補償和環(huán)境溫度記錄與顯示。
3.2 溫度控制
msc1212實時測得冷熱板溫度并與用戶設(shè)定的溫度比較,結(jié)合pid控制和模糊控制算法,通過程序控制各路dac輸出一定的電壓信號(0-5v),分別控制主副加熱器電源電壓(0-48v連續(xù)輸出)、半導(dǎo)體制冷器電源電流(0-25a連續(xù)輸出),電路十分簡單,功率控制的速度和精度同時得到提高。
3.3 軟件設(shè)計
本系統(tǒng)所要實現(xiàn)的功能是實時采集各路溫度信號和主加熱器電爐絲的電壓電流信號,按照算法要求進行功率控制,監(jiān)控溫度傳感器、主副加熱器、半導(dǎo)體制冷器保護水浴等正常工作,人機對話以及與主機通訊等。系統(tǒng)軟件采用模塊化編程結(jié)構(gòu),由主程序和參數(shù)設(shè)定、系統(tǒng)標定、異常報警、數(shù)據(jù)處理、串口通訊、鍵盤、顯示、打印等子程序組成。系統(tǒng)功能框圖如圖5所示。
4 結(jié)束語
綜上所述,msc1212單片機具有豐富的片內(nèi)資源,尤其是內(nèi)置高精度adc、dac,使之在本絕熱材料導(dǎo)熱系數(shù)測定儀中的應(yīng)用不但提高了測量精度,而且大大簡化了硬件電路,可以推廣應(yīng)用于其他測控系統(tǒng)中。
半導(dǎo)體制冷相關(guān)文章:半導(dǎo)體制冷原理
評論