基于DSP與數(shù)字溫度傳感器的溫度控制系統(tǒng)
2 溫度測(cè)量
要進(jìn)行溫度控制,首先要測(cè)量所控制目標(biāo)的溫度值,在本系統(tǒng)中,具體使用數(shù)字溫度傳感器DSl8B20與DSP結(jié)合,并利用CCS編寫程序,本系統(tǒng)開(kāi)發(fā)平臺(tái)為CCS 2.2,前期安裝及芯片設(shè)置在此省略,程序流程如圖4所示。
DSl8B20的控制包括三種時(shí)序:復(fù)位、寫時(shí)序、讀時(shí)序。
復(fù)位:主機(jī)總線在t0時(shí)刻發(fā)送一個(gè)復(fù)位脈沖(最短為480μs的低電平信號(hào)),接著在t1時(shí)刻釋放總線并進(jìn)入接收狀態(tài);DS1820在檢測(cè)到總線的上升沿之后等待15~60μs,接著在t2時(shí)刻發(fā)出存在脈沖(低電平持續(xù)60~240μs)。
寫時(shí)序:對(duì)于DSl8B20的寫時(shí)序分為寫O時(shí)序和寫1時(shí)序兩個(gè)過(guò)程。寫O時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),總線要被拉低至少60 μs,保證DSl8B20能夠在15~45μs之間正確地采樣I/O總線上的“O”電平,當(dāng)要寫1時(shí)序時(shí),單總線被拉低之后,在15μs之內(nèi)就得釋放單總線。寫數(shù)據(jù)持續(xù)時(shí)間應(yīng)大于60μs且小于120μs,兩次寫操作時(shí)間間隔要大于1μs。
讀時(shí)序:對(duì)于DSl8B20的讀時(shí)序同樣分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。對(duì)于DSl8B20的讀時(shí)序是從DSP把單總線拉低之后,在15 s之內(nèi)就得釋放單總線,以便讓DSl8B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DSl8B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60μs才能完成。
需要注意的是,在程序編寫時(shí)不管是復(fù)位,還是讀寫,都要注意配置GPIOA0端口的狀態(tài)(輸入或輸出),同時(shí)時(shí)序非常重要,本文中的延時(shí)都是經(jīng)過(guò)多次測(cè)試后總結(jié)出來(lái)的,根據(jù)DSP芯片的晶振不同,延時(shí)程序都會(huì)改變,否則DSl8B20不會(huì)正常工作。
3 溫度控制
3.1 脈寬調(diào)制PWM輸出
TMS320F2812的事件管理模塊總共能輸出16路PWM信號(hào),文中僅需要輸出一路占空比可調(diào)的PWM信號(hào),并設(shè)計(jì)從PWMl引腳輸出該方波信號(hào)。文中選用通用定時(shí)器1(T1)作為時(shí)基;全比較單元1保存調(diào)制值;計(jì)數(shù)方式采用連續(xù)增計(jì)數(shù)模式。PWM占空比值與T1的三角波數(shù)據(jù)比較,輸出PWM信號(hào)控制半導(dǎo)體制冷片工作。各寄存器設(shè)置如下(高速外設(shè)時(shí)鐘為22.5 MHz):
文中設(shè)計(jì)的PWM周期為 1.825 ms,TMS320F2812的計(jì)數(shù)器記數(shù)范圍為0~5DC。因此當(dāng)系統(tǒng)裝入CMPRl寄存器的值為0或5DCH時(shí),輸出恒為高電平或低電平?,F(xiàn)以向CMPRl寫入1 500為例,PWMl引腳的輸出周期為1.825 ms的方波。
3.2 溫度控制軟件設(shè)計(jì)
根據(jù)前面敘述,用DSl8B20讀取溫度采樣值,再通過(guò)參數(shù)自整定的Fuzzy-PID算法對(duì)數(shù)據(jù)進(jìn)行處理:根據(jù)E和Ec的狀況,由模糊控制規(guī)律再通過(guò)模糊表推導(dǎo)出△KP,KI,KD,根據(jù)式(1)計(jì)算出KP,KI,KD的大小,再計(jì)算出U的初值和△U,由式(2)實(shí)時(shí)計(jì)算控制量U。通過(guò)參數(shù)轉(zhuǎn)換,將U轉(zhuǎn)換為PWM參數(shù),修改EvaRegs.CMPRl的數(shù)值,改變PWM的占空比,從而控制TEC的制冷/制熱功率。
評(píng)論