新聞中心

        EEPW首頁 > 物聯網與傳感器 > 設計應用 > 基于MSC1201微處理器的溫度控制系統的實現

        基于MSC1201微處理器的溫度控制系統的實現

        ——
        作者:徐平江 龐娜 (西安電子科技大學,陜西 西安 710071) 時間:2007-01-26 來源:《國外電子元器件》 收藏

        1 引言

        隨著現代控制技術的發展,在工業控制領域需要對現場數據進行實時采集,在一些重要場合對數據采集的要求更高,例如在電廠、鋼鐵廠、化工領域的生產中都需要對大量數據進行現場采集,而溫度采集又是其中極為重要的部分,因此,需要一種高精度、低成本的數據采集與控制系統。

        為了方便地實現溫度采集與控制系統,筆者選用msc1201作為系統的mcu。msc1201是的德州儀器(ti)新推出的一款低噪聲、低成本數據采集微處理器,它具有的增強型8051內核,執行速度比標準8051內核快3倍,而功耗卻更低,msc1201中的adc的防噪性能為75nv,比市場上大多數獨立式adc都好,此外,msc1201的adc還可在功耗僅為3mv時達到1ks/s的采樣速率,因此,搭配合適的信號拾取元件就能組成一種性能優異的數據采集控制系統。

        比值設計的恒溫箱溫度控制系統的結構框圖如圖1所示。該恒溫箱主要用于電子設備的高溫實驗。通過小鍵盤設定實驗溫度和時間,達到定時后并能發出警告,箱體打開后啟動風扇散熱,為了使溫度控制更加準確,在箱體內采用多點測溫,同時為了保證電子設備的均勻受熱,設計中采用步進電機帶動托盤使待測物在箱內轉動,并在定時結束時停止轉動。在恒溫箱工業時,箱內溫度通過數碼管顯示。定時剩余時間也通過數碼管顯示。

        本文引用地址:http://www.104case.com/article/21029.htm

        2 msc1201型微處理器

        本設計采用ti的msc1201型微處理器作為主處理器,msc1201的封裝形式為qfn-36,在3v供電時功耗為3mw。具有工業級的工業溫度范圍即-40℃-+125℃。

        模擬特性包括數據采集精度達到24位無損采集,工業頻率為10hz時有效分辨達到22位;片內可編程增益控制,最高可將信號放大128倍;工作噪聲為75nv,片內提供精確的參考電壓,具有偏差校正功能,片上溫度傳感器可以快速方便地組成檢測系統,極小的偏差漂移(0.02ppm/℃),放大漂移(0.5ppm/℃)使得系統具有較強的溫度適應能力。

        數字功能包括具有與8051兼容的增強型處理器內核;擁有1kb自舉rom、256字節數據sram、4kb閃存具有安全保護措施;存儲器讀/寫循環可達100萬次,保存100年。

        外部特征包括有16個通用i/o引腳、1個32位累加器、2個16位定時/計數器、可編程看門狗定時器、全雙工usart、spi、i2c接口;空閑狀態下消耗電流小于200μa,停止狀態下電流小于100na;中斷源多達20個,可以滿足一般工業現場的控制要求。msc201的結構框圖如圖2所示。

        3 溫度采集系統的硬件組成
        通常,為了組成一種溫度控制系統,采用如圖3所示的模塊化設計。
        由圖3可見,從傳感器到cpu還有許多環節需要系統設計者來設計。但是采用msc1201型微處理器后許多環節就可以省略。如圖中虛線包含的部分,處理器自身已經包含這些中間處理過程,只要設置相關寄存器就可以調整它們的參數。

        3.1 溫度傳感器

        在許多溫度采集系統中用熱敏電阻器作為測溫器件,然后通過查表或附加電路得到輸出電壓與溫度的關系,查表需要一段存儲空間來保存表格數據且會增加代碼長度,因此使用熱敏電阻器的成本較高。另一方面,由于熱敏電阻器輸出的非線性使其高溫段和低溫段的測量誤差變化較大,而在多點測量時對每一種器件都要單獨調零,因而在應用時有許多局限。

        在筆者設計的溫度檢測系統中,采用adi公司的ad590型溫度傳感器作為溫度測量元件,ad590是電流型傳感器,當電源電壓為4v-30v使流經器件的電流隨溫度的變化而變化。其溫度變化規律為1μa/k,表示以k氏溫度衡量溫度,溫度變化1℃電流變化1μa,這種線性變化的規律給應用帶來很大方便,應用ad590時電源電壓的變化也會影響電流輸出,但電源電壓高時影響會小一些,因此電源電壓適當調高,圖4示出ad590與msc1201的連接,其中,
        vout=i/(t)×r=273.2nv×(r1+vr1)+t×(r1+vr1) (1)
        從(1)式可以看出,ad590輸出電壓與溫度的關系,如果選擇(r1+vr1)=10kω,那么可得下式:
        v(t)=i(t)×(r1+vr1)=2.732v+t×(r1+vr1) (2)
        圖4中r1與vr1串聯,通過調節vr1的阻值來獲得10kω的電阻值。沒有直接使用10kω的電阻器是為了提高系統測量精度。


        由于溫度檢測的后級接收差分信號輸入,因此只需要在差分輸入的負端引入2.732v參考電壓即可得到隨攝氏溫度線性變化的輸出電壓。如圖4所示,調節vr3阻值使在ain1、ain3引腳上具有2.732v電壓即可生成隨攝氏溫度線性變化的輸入信號。若設計的后級是單端輸入,則只需在校正單元減去2.732v即可。

        3.2 多路選擇開關

        輸入多路選擇開關屬于msc1201的內置功能模塊,可以接收差分輸入。如圖2所示,如果ain0選作差分輸入的正端輸入,則其他任意通道可以作為差分信號的負端輸入,并可通過交換差分輸入的正負端來消除誤差,在本系統中選用ain0輸入ad590的輸出電壓v(t),將2.732v作為差分信號負端輸入到ain1,msc1201可以自動檢測這些信號輸入引腳是否開路或短路。

        另外,該電路還可以檢測自身溫度,當輸入多路選擇開關的配置寄存器全部設為1時,電路內的測溫二極管就連接到adc的輸入端,此時其余輸入通道開路,這有利于器件自身的保護,當芯片溫度過高時,可以通過強制電路進入空閑模式使系統降溫。

        通道可以通過寄存器admux來選擇,如下所示:

        其中,高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增益會使放大器輸入阻抗變化,但通常放大器的輸入阻抗很高,一般不會對輸入信號產生影響。放大器的放大倍數由寄存器adcon0的低3位確定。

        3.4 信號調理

        在溫度檢測中,輸入環節會不可避免的引入某些誤差,使輸入信號產生不同程度的畸變。為了消除這些誤差對系統的影響,需要對輸入信號進行調理。

        3.4.1 adc補償

        通過使用寄存器odac,pga的模擬輸出可以獲得最高能夠達到測量電壓范圍一半的偏移補償。寄存器odac是8位,最高位為符號位,表示補償的正負,其余7位表示補償的大小。由于odac引入的只是對pga的模擬補償,因此并不影響adc的測量范圍。

        3.4.2 adc校準

        基于msc1201/02的數據采集系統的偏移和增益誤差可以通過校準來減小。寄存器adcon1的cal2:cal0可控制校準。每次校準需要7個tdata(數據采集時間)周期來完成。

        完成校準必須在輸入端施加信號,再由器件計算出偏移量以補償系統偏差。在進行系統偏移校正時,需要輸入0v或很小的電壓信號,并讀取輸出結果,如果結果為正,說明轉換中存在正偏移誤差,應在結果中減去該偏移量。反之,如果結果為負,就要加上該偏移量。

        系統增益校準需要輸出滿量程信號,并測量輸出結果來實現增益校準。增益校準實際上就是調整放大器的輸出信號斜率以補償實際輸出與理想輸出的誤差。
        系統上電后就要進行校準,而在電源電壓、參考電壓或pga增益發生變化時要重新進行校準。當校準完成時,adc的中斷標志位變為高電平,在程序中可通過檢查該位來判斷校準是否完成,若校準完成,此時輸入數據才有效。

        3.5 a/d轉換

        在a/d轉換中的調制器是二階系統,調制器工作頻率為fmod,該頻率與faclk有關,而faclk可以在模擬時鐘寄存器(aclk)中設置,其關系式如下:

        fmod=fclk/[(aclk+1)64]=faclk/64 (3)
        整個a/d轉換的數據輸出率為:
        fdata=fmod/數據抽取率 (4)
        數據抽取率從a/d轉換結果中取得數據的比率,如抽取率為10中取1,其含義就是調制器最近輸出的10個數據進行處理(如取平均值),其結果就作為本次a/d轉換的結果。這里的處理工作是由數字濾波器完成的。

        a/d轉換在缺省條件下使用內部2.5v作為參考電壓,此時agnd引腳必須連接refin-引腳。而refout/refin+引腳應該通過1只0.1μf的電容器接地,同時電容器應盡量靠近引腳,msc1201也可以使用外部參考電壓,需要通過adc控制寄存器adcon0來進行選擇。

        3.6 數字濾波

        數字濾波可以使用快速設置濾波器、sinc2或sinc3濾波器。
        為了使系統的a/d轉換具有低噪聲、響應快速的優點,筆者按以下策略來選擇濾波通道:當數據輸入通道改變時,系統將在接下來的2次轉換中使用快速設定濾波器,而其中第一次的轉換結果又將舍棄。緊接著依次使用sinc2或sinc3濾波器以改善噪聲性能。

        3.7 cpu

        msc1201內置的flash具有100萬次的讀寫次數,數據可以保存100年,可以自由地在flash中劃分數據存儲區和程序存儲區。msc1201擁有自舉rom,256字節ram、128字節特殊功能寄存器,具有4組bank工作寄存器,當前程序只使用一組bank寄存器。通過改變當前bank寄存器可以快速切換程序上下文環境。這些設計極大方便了系統的設計。

        由于msc1201系列處理器使用更高效的15型處理器核心,所以在使用相同外部時鐘的情況下它的指令執行速度比標準51型處理器快1.5-3倍,在使用相同的代碼和外部時鐘的情況下該處理器的吞吐量比標準51型處理器高2.5倍。
        因此,工作于33mhz的msc1201處理器運行能力等于工作于82.5mhz的8051核,這將有助于設計者降低處理器的運行頻率,降低系統功耗并減小系統噪聲。

        3.8 顯示模塊

        作為系統輸出,采用2個sr120281型4位7段式led模塊顯示檢測到的溫度和定時剩余時間。該模塊含4個數碼管,采用共陰極連接。模塊中4位數碼管的陽極引腳并聯,通過陰極選擇需要點亮的數碼管。led的陽極驅動采用motorola公司的mc14495型譯碼驅動器來完成,利用bic-8718型驅動電路產生4位數碼管的位選擇信號。每次點亮1位數碼管,通過選擇適當的選通順序,利用人的視覺殘留即可得到1次顯示中4位數碼管同時點亮的效果。

        4 溫度控制系統的軟件設計

        系統軟件的復雜度與其所要完成的任務密切相關。本系統主要用于小型恒溫箱的溫度控制,需要控制的對象有加熱裝置的開關、風機的開關和帶動托盤旋轉的步進電機等。使用者通過按鍵設定恒溫箱的工作溫度和工作時間,定時到時,加熱器關閉并告警。還有一些顯示控制及對小鍵盤輸入的響應處理。其程序包含以下幾部分:鍵盤掃描子程序、溫度信號采集子程序、顯示控制子程序、電機控制子程序、繼電器控制子程序和通信子程序。圖5所示是系統的軟件流程。

        5 pc與溫度控制系統的通信

        對于一種溫度采集與控制系統,實驗完畢后可能要使用實驗數據,當需要對現場數據進行更加復雜的數學分析運算和對數據進行海量存儲時,與pc主機的通信非常重要。筆者利用max232電路實現系統與pc主機的串行通信,并設計了上位機軟件。pc主機每隔30s與下位機通信一次以獲得溫度數據,并將這些數據存入access數據庫中,便于日后查詢。


        利用vc完成上位機軟件,在vc中通過使用mscomm控件來完成串口通信,在接收到數據后通過dao方法訪問數據庫實現對數據的存儲、查找、排序等操作。由于篇幅限制,具體過程恕不贅述。

        6 結束語

        基于msc1201型微處理器的溫度數據采集與控制系統采用了新型處理器,在應用中節省了大量的硬件設計工作,縮短了設計周期,以較小的成本完成了多點溫度數據的實時采集與控制。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宣化县| 伊宁市| 云龙县| 辽阳县| 兴安盟| 丽江市| 无为县| 年辖:市辖区| 思南县| 河东区| 宣化县| 阿鲁科尔沁旗| 香格里拉县| 牡丹江市| 大余县| 尉氏县| 峡江县| 闻喜县| 峨山| 红河县| 醴陵市| 洮南市| 承德市| 工布江达县| 剑阁县| 长垣县| 财经| 东平县| 德令哈市| 来凤县| 玛曲县| 泰兴市| 石阡县| 府谷县| 卫辉市| 滕州市| 比如县| 荔波县| 墨江| 福贡县| 仁怀市|