
其中,高4位決定差分正端輸入通道,而低4位決定負端輸入通道。
3.3 放大器
通常情況下檢測到的信號很微弱,需要進行放大。而MSC1201內置可編程增益放大器(PGA)的增益可以設為1、2、4、8、32、64、128。通過使用PGA可以提高ADC的有效分辨率。例如在信號電壓范圍為±2.5V時,若PGA增益設為1,則ADC最小分辨率為1.5μV;當PGA增益設為128、信號電壓范圍為±19mV時,ADC的分辨率為75nV,改變PGA增益會使放大器輸入阻抗變化,但通常放大器的輸入阻抗很高,一般不會對輸入信號產生影響。放大器的放大倍數(shù)由寄存器ADCON0的低3位確定。
3.4 信號調理
在溫度檢測中,輸入環(huán)節(jié)會不可避免的引入某些誤差,使輸入信號產生不同程度的畸變。為了消除這些誤差對系統(tǒng)的影響,需要對輸入信號進行調理。
3.4.1 ADC補償
通過使用寄存器ODAC,PGA的模擬輸出可以獲得最高能夠達到測量電壓范圍一半的偏移補償。寄存器ODAC是8位,最高位為符號位,表示補償?shù)恼?其余7位表示補償?shù)拇笮。由于ODAC引入的只是對PGA的模擬補償,因此并不影響ADC的測量范圍。
3.4.2 ADC校準
基于MSC1201/02的數(shù)據(jù)采集系統(tǒng)的偏移和增益誤差可以通過校準來減小。寄存器ADCON1的CAL2:CAL0可控制校準。每次校準需要7個Tdata(數(shù)據(jù)采集時間)周期來完成。
完成校準必須在輸入端施加信號,再由器件計算出偏移量以補償系統(tǒng)偏差。在進行系統(tǒng)偏移校正時,需要輸入0V或很小的電壓信號,并讀取輸出結果,如果結果為正,說明轉換中存在正偏移誤差,應在結果中減去該偏移量。反之,如果結果為負,就要加上該偏移量。
系統(tǒng)增益校準需要輸出滿量程信號,并測量輸出結果來實現(xiàn)增益校準。增益校準實際上就是調整放大器的輸出信號斜率以補償實際輸出與理想輸出的誤差。
系統(tǒng)上電后就要進行校準,而在電源電壓、參考電壓或PGA增益發(fā)生變化時要重新進行校準。當校準完成時,ADC的中斷標志位變?yōu)楦唠娖?在程序中可通過檢查該位來判斷校準是否完成,若校準完成,此時輸入數(shù)據(jù)才有效。
3.5 A/D轉換
在A/D轉換中的調制器是二階系統(tǒng),調制器工作頻率為fMOD,該頻率與fACLK有關,而fACLK可以在模擬時鐘寄存器(ACLK)中設置,其關系式如下:
fMOD=fCLK/[(ACLK+1)64]=fACLK/64 (3)
整個A/D轉換的數(shù)據(jù)輸出率為:
fDATA=fMOD/數(shù)據(jù)抽取率 (4)
數(shù)據(jù)抽取率從A/D轉換結果中取得數(shù)據(jù)的比率,如抽取率為10中取1,其含義就是調制器最近輸出的10個數(shù)據(jù)進行處理(如取平均值),其結果就作為本次A/D轉換的結果。這里的處理工作是由數(shù)字濾波器完成的。
A/D轉換在缺省條件下使用內部2.5V作為參考電壓,此時AGND引腳必須連接REFIN-引腳。而REFOUT/REFIN+引腳應該通過1只0.1μF的電容器接地,同時電容器應盡量靠近引腳,MSC1201也可以使用外部參考電壓,需要通過ADC控制寄存器ADCON0來進行選擇。
3.6 數(shù)字濾波
數(shù)字濾波可以使用快速設置濾波器、Sinc2或Sinc3濾波器。
為了使系統(tǒng)的A/D轉換具有低噪聲、響應快速的優(yōu)點,筆者按以下策略來選擇濾波通道:當數(shù)據(jù)輸入通道改變時,系統(tǒng)將在接下來的2次轉換中使用快速設定濾波器,而其中第一次的轉換結果又將舍棄。緊接著依次使用Sinc2或Sinc3濾波器以改善噪聲性能。
3.7 CPU
MSC1201內置的FLASH具有100萬次的讀寫次數(shù),數(shù)據(jù)可以保存100年,可以自由地在FLASH中劃分數(shù)據(jù)存儲區(qū)和程序存儲區(qū)。MSC1201擁有自舉ROM,256字節(jié)RAM、128字節(jié)特殊功能寄存器,具有4組bank工作寄存器,當前程序只使用一組bank寄存器。通過改變當前bank寄存器可以快速切換程序上下文環(huán)境。這些設計極大方便了系統(tǒng)的設計。
由于MSC1201系列處理器使用更高效的15型處理器核心,所以在使用相同外部時鐘的情況下它的指令執(zhí)行速度比標準51型處理器快1.5-3倍,在使用相同的代碼和外部時鐘的情況下該處理器的吞吐量比標準51型處理器高2.5倍。
因此,工作于33MHz的MSC1201處理器運行能力等于工作于82.5MHz的8051核,這將有助于設計者降低處理器的運行頻率,降低系統(tǒng)功耗并減小系統(tǒng)噪聲。
3.8 顯示模塊
作為系統(tǒng)輸出,采用2個SR120281型4位7段式LED模塊顯示檢測到的溫度和定時剩余時間。該模塊含4個數(shù)碼管,采用共陰極連接。模塊中4位數(shù)碼管的陽極引腳并聯(lián),通過陰極選擇需要點亮的數(shù)碼管。LED的陽極驅動采用MOTOROLA公司的MC14495型譯碼驅動器來完成,利用bic-8718型驅動電路產生4位數(shù)碼管的位選擇信號。每次點亮1位數(shù)碼管,通過選擇適當?shù)倪x通順序,利用人的視覺殘留即可得到1次顯示中4位數(shù)碼管同時點亮的效果。
4 溫度控制系統(tǒng)的軟件設計
系統(tǒng)軟件的復雜度與其所要完成的任務密切相關。本系統(tǒng)主要用于小型恒溫箱的溫度控制,需要控制的對象有加熱裝置的開關、風機的開關和帶動托盤旋轉的步進電機等。使用者通過按鍵設定恒溫箱的工作溫度和工作時間,定時到時,加熱器關閉并告警。還有一些顯示控制及對小鍵盤輸入的響應處理。其程序包含以下幾部分:鍵盤掃描子程序、溫度信號采集子程序、顯示控制子程序、電機控制子程序、繼電器控制子程序和通信子程序。圖5所示是系統(tǒng)的軟件流程。
5 PC與溫度控制系統(tǒng)的通信
對于一種溫度采集與控制系統(tǒng),實驗完畢后可能要使用實驗數(shù)據(jù),當需要對現(xiàn)場數(shù)據(jù)進行更加復雜的數(shù)學分析運算和對數(shù)據(jù)進行海量存儲時,與PC主機的通信非常重要。筆者利用MAX232電路實現(xiàn)系統(tǒng)與PC主機的串行通信,并設計了上位機軟件。PC主機每隔30s與下位機通信一次以獲得溫度數(shù)據(jù),并將這些數(shù)據(jù)存入ACCESS數(shù)據(jù)庫中,便于日后查詢。

利用VC完成上位機軟件,在VC中通過使用MSComm控件來完成串口通信,在接收到數(shù)據(jù)后通過DAO方法訪問數(shù)據(jù)庫實現(xiàn)對數(shù)據(jù)的存儲、查找、排序等操作。由于篇幅限制,具體過程恕不贅述。
6 結束語
基于MSC1201型微處理器的溫度數(shù)據(jù)采集與控制系統(tǒng)采用了新型處理器,在應用中節(jié)省了大量的硬件設計工作,縮短了設計周期,以較小的成本完成了多點溫度數(shù)據(jù)的實時采集與控制。
[1]





