摘 要:傳統的溫度控制系統是以熱敏電阻為溫度傳感器件,輔以風冷或水冷來達到目的的,存在體積大,噪音大且精度有限的缺點。介紹了利用數字溫度傳感器(DS18B20)與DSP芯片(TMS320F2812)組成的溫度測量系統,結合模糊PID算法(Fuzzy-PID),利用DSP的脈寬調制控制通過半導體制冷器的電流大小,達到溫度控制的效果,體積小且精度達到0.1 ℃。給出DSP與DS18B20的接線圖,并且介紹了利用CCS(代碼編輯工作室)進行軟件開發。該系統已經運用在LD溫度控制方面,取得了很好的效果。
關鍵詞:DSP; 溫度傳感器; 溫度控制; 模糊PID; 脈寬調制
中圖分類號:TP23 文獻標識碼:A
文章編號:1004-373X(2010)09-0129-03
System of Temperature Control Based on DSP and Digital Temperature Sensor
XU Xing-jian1, YUAN Zi-jun1, ZHAO Yong-li2, GAO Feng1
(1. Hefei University of Technology, Hefei 230009, China; 2. Shanghai University of Engineering Science, Shanghai 201620, China)
Abstract: Traditional temperature control system took thermal resistance as the temperature sensor, combined with air-cooled or water to achieve the purpose, size large, noisy and the accuracy is limited. The temperature measurement system composed of digital temperature sensor(DS18B20) and the DSP(TMS320F2812), the DSP pulse-width modulation is used to control the current of the TEC combined with fuzzy PID algorithm(Fuzzy-PID), to achieve the effect of temperature control, small size and 0.1 accuracy. The wiring diagram of DSP and DS18B20, the use of CCS(code editing studio) for software development are introduced. The system has been used in the LD temperature control, and has gained very good results.
Keywords: DSP; temperature sensor; temperature control; fuzzy-PID; pulse width modulation
0 引 言
20世紀60年代以來,數字信號處理器(Digital Signal Processing,DSP)伴隨著計算機和通信技術得到飛速發展,應用領域也越來越廣泛。在溫度控制方面,尤其是固體激光器的溫度控制,受其工作環境和條件的影響,溫度的精度要求比較嚴格,之前國內外關于溫度控制基本上都采用溫度敏感電阻來測量溫度,然后用風冷或者水冷方式來達到溫度控制效果,精度不夠且體積大。本文基于DSP芯片TMS320F2812與數字溫度傳感器DS18B20設計出一個溫度測量系統,根據測量所得的溫度與設定的參量,并利用模糊PID算法計算出控制量,利用該控制量調節由DSP事件管理器產生PWM波的占空比,并作用于半導體制冷器,以達到溫度控制效果,實現控制精度高,體積小的溫度控制系統[1]。
1 系統硬件組成
1.1 DS18B20功能結構與使用
DS18B20是DALLAS公司生產的一線式數字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55~+125 ℃;可編程為9~12位A/D轉換精度,測溫分辨率可達0.062 5 ℃;CPU只需一根埠線就能與諸多DS18B20通信,占用微處理器的端口較少,可節省大量的引線和邏輯電路。以上特點使DS18B20非常適合用于遠距離多點溫度檢測系統中。
DS18B20的管腳排列如圖1所示。DQ為數字信號輸人/輸出端;GND為接地;VDD為外接供電電源輸人端(在寄生電源接線方式時接地)。
DS18B20中的溫度傳感器可完成對溫度的測量,用16位符號擴展的二進制補碼讀數形式提供[2],以0.062 5 ℃/LSB形式表達,其中S為符號位。例如+125 ℃的數字輸出為07DOH, +25.062 5 ℃的數字輸出為0191H, -25.062 5 ℃ 的數字輸出為FF6FH,-55 ℃的數字輸出為FC90H。
圖1 DS18B20的管腳排列
1.2 DSP介紹
這里所用DSP為TMS320F2812,它是美國TI公司新推出的低價位、高性能的16位定點DSP,是專為控制應用系統而設計的[3],其主頻可達150 MHz,本系統中所用晶振為45 MHz,片內集成了外圍設備接口,主要起控制和計算作用。
1.3 半導體制冷器簡介
半導體制冷器是根據帕爾貼效應制成的,由兩種不同金屬組成一對熱電偶,當熱電偶邁入直流電流后因直流電通入的方向不同,將在熱電偶結點處產生吸熱和放熱現象。制冷器結構如圖2所示[4]。
把一個N型和P型半導體的粒子用金屬連接片焊接成一個電偶對。當直流電流從N極流向P極時,上端產生吸熱現象,此端稱冷端,下端產生放熱現象,此端稱熱端,如果電流方向反過來,則冷熱端相互轉換。
圖2 半導體制冷原理
1.4 硬件連接
DS18B20與DSP連接主要有兩種方式:寄生電源方式和外部供電方式。本文采用外部供電方式,其中18B20的DQ口與F2812的GPIOA0口連接,具體連接如圖3所示。
圖3 DS18B20與DSP連接圖
2 溫度測量
要進行溫度控制,首先要測量所控制目標的溫度值,在本系統中,具體使用數字溫度傳感器DS18B20與DSP結合,并利用CCS編寫程序,本系統開發平臺為CCS 2.2,前期安裝及芯片設置在此省略[5-6],程序流程如圖4所示。
圖4 DS18B20程序流程
DS18B20的控制包括三種時序:復位、寫時序、讀時序[7]。
復位:主機總線在t0時刻發送一個復位脈沖(最短為480 μs的低電平信號),接著在t1時刻釋放總線并進入接收狀態;DSl820在檢測到總線的上升沿之后等待15~60 μs,接著在t2時刻發出存在脈沖(低電平持續60~240 μs)。
寫時序:對于DS18B20的寫時序分為寫0時序和寫1時序兩個過程。寫0時序和寫1時序的要求不同,當要寫0時序時,總線要被拉低至少60 μs,保證DS18B20能夠在15~45 μs之間正確地采樣I/O總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15 μs之內就得釋放單總線。寫數據持續時間應大于60 μs且小于120 μs,兩次寫操作時間間隔要大于1 μs。
讀時序:對于DS18B20的讀時序同樣分為讀0時序和讀1時序兩個過程。對于DS18B20的讀時序是從DSP把單總線拉低之后,在15 s之內就得釋放單總線,以便讓DS18B20把數據傳輸到單總線上。DS18B20在完成一個讀時序過程,至少需要60 μs才能完成。
需要注意的是,在程序編寫時不管是復位,還是讀寫,都要注意配置GPIOA0端口的狀態(輸入或輸出),同時時序非常重要,本文中的延時都是經過多次測試后總結出來的,根據DSP芯片的晶振不同,延時程序都會改變,否則DS18B20不會正常工作。
3 溫度控制
3.1 脈寬調制PWM輸出
TMS320F2812的事件管理模塊總共能輸出16路PWM信號,文中僅需要輸出一路占空比可調的PWM信號,并設計從PWM1引腳輸出該方波信號。文中選用通用定時器1(T1) 作為時基;全比較單元1保存調制值;計數方式采用連續增計數模式。PWM占空比值與T1的三角波數據比較,輸出PWM信號控制半導體制冷片工作。各寄存器設置如下(高速外設時鐘為22.5 MHz)[8-9]:
EvaRegs.ACTR.all=0x0006; //通過對比較方式控制寄存器的配置
EvaRegs.T1PR=5000; //定時器1周期值0.365 μs*N
EvaRegs.T1CMPR=2500; //定時器1比較值
EvaRegs.T1CNT=0; //定時器1初值設為0
EvaRegs.T1CON.all=0x144E; //連續增模式,TRS系數45M/2/16,T1使能
EvaRegs.CMPR1=1500; //占空比
文中設計的PWM周期為1.825 ms,TMS320F2812的計數器記數范圍為0~5DC。因此當系統裝入CMPR1寄存器的值為0或5DCH時,輸出恒為高電平或低電平。現以向CMPR1寫入1 500為例,PWM1引腳的輸出周期為1.825 ms的方波。
3.2 溫度控制軟件設計
根據前面敘述,用DS18B20讀取溫度采樣值,再通過參數自整定的Fuzzy-PID算法對數據進行處理[10]:根據E和EC的狀況,由模糊控制規律再通過模糊表推導出ΔKP,KI,KD,根據式(1)計算出KP,KI,KD的大小,再計算出U的初值和ΔU,由式(2)實時計算控制量U。通過參數轉換,將U轉換為PWM參數,修改EvaRegs.CMPR1的數值,改變PWM的占空比,從而控制TEC的制冷/制熱功率。
KP=KP0+f1(E, EC)
KI=KI0+f2(E,EC)
KD=KD0+f3(E, EC)
U(k)=U(k-1)+ΔU(k-1)
(1)
ΔU(k-1)=KP[E(k)-E(k-1)]+KIE(k)+
KD[E(k)-2E(k-1)+E(k-2)]
(2)
程序流程圖如圖5所示[10]。
圖5 溫度控制軟件流程
3.3 實驗結果
完成以上程序編寫后,首先利用仿真器進行溫度測量模擬,在標準溫度計所得室溫為31.2 ℃時,在CCS軟件中利用快速觀測窗口檢測到的溫度值為31.187 5 ℃。通過實驗證明,在外界溫度為31 ℃,采用默認設置(穩定溫度為25 ℃)時,該溫度控制系統能使被控物體的溫度穩定在25 ℃,溫度穩定時間小于100 s,精度可達到0.1 ℃以下,達到了工業控制要求。
4 結 語
利用DSP的高速處理能力,結合DS18B20精準的溫度讀取能力,以及利用CCS開發出溫度控制系統。該溫度控制系統中應用了Fuzzy-PID算法。設計目標是:在同樣的控制精度條件下,使系統的過渡時間及超調量盡可能減小,以改善控制效果。采用復合控制,使系統能有效抑制純滯后的影響,當參數變化較大以及有干擾時,仍能取得較好的控制效果。
參考文獻
[1]鄒文棟,葉欽,謝海鶴,等.基于TMS320F2812的半導體激光器溫度控制[J].紅外與激光工程,2008,37(4):642-646.
[2]馬云峰.數字溫度傳感器DS18B20的原理與應用[J].世界電子元器件,2002(1):47-48.
[3]蘇奎峰,呂強.TMS320F2812原理與開發[M].北京:電子工業出版社,2006.
[4]鄭永明,方方,徐建一,等.半導體致冷原理及其應用系統設計研究[J].中國測試技術,2006,32(6):49-51.
[5]Texas Instruments Incorporated. TMS320C2812 digital signal processors data manual(Rev.C)[M]. US: Texas Instruments, 2004.
[6]Texas Instruments Incorporated. TMS320C28x DSP CPU and instruction set reference guide(Rev.C)[M]. US: Texas Instruments, 2004.
[7]崔瑋,徐根林.DSP和DS18B20的溫度測量系統[J].微計算機信息,2007,23(14):166-168.
[8]萬山明.TMS320F281XDSP原理及應用實例[M].北京:北京航空航天大學出版社,2007.
[9]Texas Instruments Incorporated. TMS320F281x event manager(EV) reference guide(Rev.C)[M]. US: Texas Instruments, 2004.
[10]杜強,鄒文棟,婁愛珍,等.半導體激光器溫度的Fuzzy-PID控制[J].南昌航空工業學院學報:自然科學版,2006,20(1):4-7.