《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于STC系列單片機(jī)的智能溫度控制器設(shè)計(jì)
基于STC系列單片機(jī)的智能溫度控制器設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2013年第5期
唐洪富1, 張興波2
1. 華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083; 2. 北京國(guó)際系統(tǒng)控制有限公司,北京 100083
摘要: 介紹了一種基于單片機(jī)STC12C5204AD的智能溫度控制系統(tǒng),講述了測(cè)溫芯片MAX6675的開(kāi)發(fā)使用,重點(diǎn)闡明了在應(yīng)用編程(IAP)功能在參數(shù)修改保存中的應(yīng)用和通信模塊的設(shè)計(jì)使用。用戶可以根據(jù)不同的應(yīng)用環(huán)境靈活配置參數(shù),遠(yuǎn)程操作方便,成本低,可靠性穩(wěn)定性強(qiáng)。
中圖分類號(hào): TP23
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)05-0086-03
Design of intelligent temperature controller based on STC series microcontrollers
Tang Hongfu1, Zhang Xingbo2
1. National Computer System Engineering Research Institute of China, Beijing 100083, China; 2. Beijing Systems Control International, Inc., Beijing 100083, China
Abstract: An intelligent temperature control system based on single chip microcomputer STC12C5204AD was introduced. The paper described the development of the temperature measurement chip MAX6675,and illustrated the use of IAP(In Application Program) function and the communication module. The configuration parameters are flexible depended on the application environment, convenient remote operation, low cost, reliability and stability.
Key words : STC microcontroller; MAX6675; RS485; IAP

    溫度控制器已廣泛應(yīng)用于冶金、紡織、化工、醫(yī)療等工業(yè)控制的諸多領(lǐng)域,是一種最常用的自動(dòng)化儀表。但是大都存在著無(wú)法與控制系統(tǒng)通信,或者無(wú)法自動(dòng)保存用戶設(shè)定的數(shù)據(jù)等功能單一的問(wèn)題。

    本文介紹的具有與上位機(jī)通信功能的智能溫度控制器,它以單片機(jī)STC12C5204AD[1]為核心,采用A/D轉(zhuǎn)換技術(shù)和RS485通信接口芯片MAX487,具有可靠性好、抗干擾性能強(qiáng)、可實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)控制等優(yōu)點(diǎn),具有0 ℃~1 024 ℃范圍的溫度測(cè)量和自動(dòng)控制。同時(shí),實(shí)現(xiàn)了在應(yīng)用中編程,即自主完成內(nèi)部Flash的擦寫(xiě),降低了外擴(kuò)存儲(chǔ)器帶來(lái)的成本。
1 溫度控制器的設(shè)計(jì)原理
    溫度控制器的系統(tǒng)結(jié)構(gòu)如圖1所示。傳感器采用應(yīng)用較廣的K型熱電偶,測(cè)量電路選用芯片MAX6675。MAX6675將熱電偶輸出的毫伏信號(hào)直接轉(zhuǎn)換成數(shù)字信號(hào)送給單片機(jī)STC12C5204AD,單片機(jī)控制LED數(shù)碼管顯示相關(guān)的信息,冷端溫度補(bǔ)償問(wèn)題由MAX6675自行解決。溫度控制器通過(guò)串行口與上位機(jī)通信,發(fā)送測(cè)量數(shù)據(jù),接收溫度設(shè)定值,并將溫度測(cè)量值與設(shè)定值比較,送出控制信號(hào)驅(qū)動(dòng)光耦,以控制繼電器的吸合與斷開(kāi)。

2 系統(tǒng)硬件設(shè)計(jì)
2.1 通信電路

    RS485串行總線接口采用平衡發(fā)送和差分接收的方式進(jìn)行數(shù)據(jù)通信,較RS232提高了抗共模干擾能力和傳輸距離。RS485總線可用于多個(gè)帶有RS485接口設(shè)備的互連,以實(shí)現(xiàn)數(shù)據(jù)高速遠(yuǎn)距離傳送,其連線十分方便?;谛酒琈AX487的通信接口電路如圖2所示。

2.2 溫度采集電路
    傳感器K型熱電偶的測(cè)量電路選用芯片MAX6675[2],如圖3所示。MAX6675不僅可以將熱電偶輸出的毫伏信號(hào)直接轉(zhuǎn)換成數(shù)字信號(hào),而且可以自行解決冷端溫度補(bǔ)償問(wèn)題。圖中,P+和P-分別接熱電偶的正極和負(fù)極;SO、CS、SCK三條信號(hào)線與單片機(jī)的GPIO連接,實(shí)現(xiàn)串行數(shù)據(jù)傳輸。

3 系統(tǒng)軟件設(shè)計(jì)
3.1 溫度讀取

    測(cè)量環(huán)節(jié)的軟件的重點(diǎn)是MAX6675測(cè)溫?cái)?shù)據(jù)的讀取。MAX6675與單片機(jī)通過(guò)3線串口進(jìn)行通信。當(dāng)CS引腳由高電平變?yōu)榈碗娖綍r(shí),MAX6675停止任何信號(hào)的轉(zhuǎn)換并在時(shí)鐘SCK的作用下向外輸出已轉(zhuǎn)換的數(shù)據(jù);當(dāng)CS從低電平變回到高電平時(shí),MAX6675將進(jìn)行新一輪轉(zhuǎn)換。一個(gè)完整的數(shù)據(jù)讀取需要16個(gè)時(shí)鐘周期,數(shù)據(jù)的讀取在SCK的下降沿進(jìn)行。
    MAX6675的輸出數(shù)據(jù)為16位,如圖4所示。輸出時(shí)高位在前,D15為無(wú)用位;D14~D3對(duì)應(yīng)于熱電偶模擬輸出電壓的數(shù)字量;D2用于檢測(cè)熱電偶是否斷線(D2為1表明熱電偶斷線);D1為MAX6675標(biāo)識(shí)符;D0為三態(tài)。

3.2 通信模塊設(shè)計(jì)
3.2.1 通信規(guī)約的設(shè)計(jì)[3]

    每個(gè)溫度控制器都必須通過(guò)按鍵設(shè)定一個(gè)地址,地址的最大值為255。溫度控制器采用RS485的接口標(biāo)準(zhǔn)與上位機(jī)進(jìn)行通信。通信采用異步通信方式,1位起始位,8位數(shù)據(jù)位,1位停止位。通信速率(波特率)設(shè)定為1 200 b/s。上位機(jī)與溫度控制器采用主從查詢方式進(jìn)行數(shù)據(jù)交互。
    在規(guī)約中定義以下報(bào)文:(1)上位機(jī)查詢溫度控制器的測(cè)量值報(bào)文A1和溫度控制器的數(shù)據(jù)應(yīng)答報(bào)文R1;(2)上位機(jī)設(shè)定溫度控制器工作參數(shù)報(bào)文A2和溫度控制器的參數(shù)確認(rèn)報(bào)文R2; (3)上位機(jī)復(fù)位溫度控制器報(bào)文A3及溫度控制器的復(fù)位確認(rèn)報(bào)文R3; (4)上位機(jī)查詢溫度控制器工作狀態(tài)報(bào)文A4及溫度控制器的狀態(tài)報(bào)告報(bào)文R4;(5)溫度控制器向上位機(jī)發(fā)送的接收出錯(cuò)報(bào)文R5。
3.2.2 通信模塊軟件設(shè)計(jì)
    溫度控制器的通訊模塊初始化包括定時(shí)器的初始化和中斷寄存器的初始化。
  溫度控制器的數(shù)據(jù)發(fā)送采用中斷方式。 每次發(fā)送8 bit,即一個(gè)字節(jié),每發(fā)送完一個(gè)字節(jié),中斷標(biāo)志位TI將置位,進(jìn)入發(fā)送中斷服務(wù)程序。在發(fā)送中斷服務(wù)程序中,先將發(fā)送中斷標(biāo)志位TI清0,然后發(fā)送相應(yīng)的一個(gè)字節(jié)的數(shù)據(jù)。
    溫度控制器的數(shù)據(jù)接收采用中斷方式。當(dāng)上位機(jī)以1 200 b/s的通信速率向溫度控制器傳送數(shù)據(jù)時(shí),單片機(jī)STC12C5204AD的接收緩存寄存器SBUF每次中斷只接收8 bit,即一個(gè)字節(jié),每接收完一個(gè)字節(jié)后,接收中斷標(biāo)志RI將置位,在下一個(gè)機(jī)器周期,CPU查詢到此標(biāo)志為1時(shí),就會(huì)產(chǎn)生接收中斷,進(jìn)入接收中斷服務(wù)程序。在接收中斷服務(wù)程序中,首先判斷接收的數(shù)據(jù)是否符合報(bào)文A1、A2、A3或者A4的規(guī)范。若不符合,則舍棄;若符合,則將其放入事先定義的數(shù)組中。在主程序中,計(jì)算CRC校驗(yàn)是否正確。如果正確, 則根據(jù)報(bào)文的不同類型回答R1、R2、R3或者R4;如果不正確,則回答R5。如圖5所示。


3.3 IAP保存數(shù)據(jù)
3.3.1 單片機(jī)內(nèi)部EEPROM地址設(shè)計(jì)

    單片機(jī)STC12C5204AD內(nèi)部集成的EEPROM是與程序空間分開(kāi)的,利用ISP/IAP技術(shù)可將內(nèi)部的Data Flash作為EEPROM。EEPROM分為兩個(gè)扇區(qū),每個(gè)扇區(qū)的大小為512 B,第一扇區(qū)地址是0x000~0x1FF,第二扇區(qū)的地址是0x200~0x3FF。
    由上位機(jī)以通信的方式或者由按鍵設(shè)定的參數(shù)地址編排如表1所示。其中,STDL和STDH分別代表設(shè)定溫度下限的低字節(jié)和高字節(jié),STUL和STUH分別代表設(shè)定溫度上限的低字節(jié)和高字節(jié);SFL和SFH分別代表設(shè)定報(bào)警溫度的低字節(jié)和高字節(jié)。

 

 

    擦除整個(gè)扇區(qū)的數(shù)據(jù),首先向IAP_ADDRH和IAP_ADDRL中寫(xiě)入扇區(qū)起始地址的高字節(jié)和低字節(jié),在這里均為0x00;然后將寄存器IAP_CONTR的最高位置1,表示允許IAP操作;向IAP_CMD中寫(xiě)入0x03; 最后向IAP_TRIG中先后發(fā)送0x5A和0xA5,完成扇區(qū)的擦寫(xiě)。
  把表1中的數(shù)據(jù)寫(xiě)入到相應(yīng)地址,首先向IAP_ADDRH和IAP_ADDRL中寫(xiě)入相應(yīng)地址的高字節(jié)和低字節(jié);然后將寄存器IAP_CONTR的最高位置1,表示允許IAP操作;然后向IAP_CMD中寫(xiě)入0x02;最后向IAP_TRIG中先后發(fā)送0x5A和0xA5,完成扇區(qū)的擦寫(xiě)。
4 功能測(cè)試與分析
    溫度控制器上電后,LED數(shù)碼管依次顯示“100”、“110”和“150”,說(shuō)明單片機(jī)將數(shù)據(jù)寫(xiě)入到了Flash中,IAP功能正常。
    溫度控制器顯示的溫度與使用標(biāo)準(zhǔn)的溫度計(jì)測(cè)量的溫度值進(jìn)行比較,誤差小于0.2℃。
     利用PC作為上位機(jī),使用串口助手分別發(fā)送報(bào)文A1、A2、A3和A4,串口助手分別接收到R1、R2、R3和R4,并且能夠遠(yuǎn)程設(shè)定溫度控制器的參數(shù)和遠(yuǎn)程重啟。
    手動(dòng)給熱電偶加熱,當(dāng)熱電偶的溫度值處在不同區(qū)間時(shí),觀察兩個(gè)繼電器的吸合與斷開(kāi)的狀態(tài)。繼電器的狀態(tài)如圖7所示,0代表斷開(kāi),1代表吸合,繼電器正常工作。

    本裝置以通用的單片機(jī)STC12C5204AD為核心,外擴(kuò)測(cè)溫模塊、通信模塊和人機(jī)交互模塊,應(yīng)用于熱電偶測(cè)溫的場(chǎng)合。經(jīng)測(cè)試,該溫度控制器可以實(shí)現(xiàn)對(duì)溫度的自動(dòng)控制,測(cè)溫?cái)?shù)據(jù)精確;實(shí)現(xiàn)了計(jì)算機(jī)網(wǎng)絡(luò)控制,遠(yuǎn)程操作方便;實(shí)現(xiàn)了IAP功能,降低了擴(kuò)展外部存儲(chǔ)器帶來(lái)的成本,具有很強(qiáng)的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2003.
[2] 李平,李亞榮. 基于MAX6675的溫度控制器設(shè)計(jì)[D].大連:大連交通大學(xué),2004.
[3] SARIKAYA B. Analysis and testing of application layer protocols with an application to FTAM[J]. IEEE Transactions on Communications, 1992,40(1):7-11.
[4] 鐘磊. C8051F單片機(jī)的IAP系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2009(3):9-11.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。