基于FPGA的溫度控制器設(shè)計
摘要 介紹了一種基于FPGA的溫度控制系統(tǒng)設(shè)計??删幊唐骷﨔PGA和硬件描述語言VHDL的出現(xiàn)使得數(shù)字電路的設(shè)計周期縮短、難度減小。系統(tǒng)采用FPGA作為核心控制器件進(jìn)行編程,設(shè)計采用模塊化思路分別實(shí)現(xiàn)溫度檢測、鍵輸入、溫度顯示和控制模塊,再加以整合實(shí)現(xiàn)整個系統(tǒng),達(dá)到了溫度控制的目的。
關(guān)鍵詞 溫度控制;FPGA;VHDL
隨著人們生活水平的不斷提高,溫度控制系統(tǒng)被廣泛應(yīng)用。對于溫度控制器,可以通過繼電器、PLC、單片機(jī)以及專用工控機(jī)等方法實(shí)現(xiàn),繼電器具有零電壓導(dǎo)通、零電流關(guān)斷、噪音小、耐腐蝕、抗干擾、壽命長、體積小,以微小的控制信號直接驅(qū)動大電流負(fù)載等優(yōu)點(diǎn)。但也存在通態(tài)壓降,需要散熱措施,有輸出漏電流,交直流不能通用,觸點(diǎn)組數(shù)少、成本高等缺點(diǎn)。PLC主要應(yīng)用于電力工業(yè)控制領(lǐng)域,或整條流水線的控制;相對單片機(jī)的功耗大,但性能較穩(wěn)定;單片機(jī)適用實(shí)時工業(yè)控制,相對微機(jī)價格較低,可編程性和可擴(kuò)展性較強(qiáng);專用工控機(jī)配置硬盤容量小、數(shù)據(jù)安全性低且存儲選擇性小。
由于體積、成本、操作等因素的限制,對于這些控制方法功能修改和調(diào)試都需要硬件電路的支持,在一定程度上增加了功能修改及系統(tǒng)調(diào)試的困難。
電子技術(shù)的發(fā)展,F(xiàn)PGA(Field Programmable GateArray)可編程技術(shù)的出現(xiàn)給現(xiàn)代工業(yè)控制的測控領(lǐng)域帶來了一次新的“技術(shù)革命”,它具有數(shù)百萬的邏輯門,可用于實(shí)現(xiàn)復(fù)雜的功能。
FPGA作為溫度控制器的主控部分可以使系統(tǒng)的器件數(shù)目減少,具有設(shè)計靈活、現(xiàn)場可編程、調(diào)試簡單和體積小等特點(diǎn),具有更高的性價比。
1 溫度采集器的原理
實(shí)現(xiàn)溫度采集有多種方法,例如用傳統(tǒng)的二位模擬控制方法選用模擬電路,用電位器設(shè)定固定值,經(jīng)采樣放大的信號將反饋的溫度值與給定的溫度值比較后,根據(jù)比較結(jié)果控制當(dāng)前溫度顯示,以確定加熱或者不加熱。其特點(diǎn)是電路簡單、易于實(shí)現(xiàn)。但是系統(tǒng)所得結(jié)果的精度不高且調(diào)節(jié)動作頻繁、系統(tǒng)不穩(wěn)定,受環(huán)統(tǒng)的控制及對溫度的顯示,人機(jī)交換性能差。而且選用模擬電路將反饋的溫度值與給定的溫度值比較決定是否加熱,從輸入采樣到輸出控制的各種誤差產(chǎn)生因素較多,精度難以達(dá)到要求。另一種方法是采用EDA對系統(tǒng)進(jìn)行智能化控制,采用FPGA芯片為核心控制器,使用溫度傳感器ADS90采集溫度變化信號,并通過FPGA芯片處理后去控制溫度使其達(dá)到穩(wěn)定。該方法具有編程靈活、控制簡單的優(yōu)點(diǎn),使系統(tǒng)能簡單實(shí)現(xiàn)溫度的控制及顯示。文中采用FPGA實(shí)現(xiàn)溫度采集,其結(jié)構(gòu)圖如圖1所示,F(xiàn)PGA具有運(yùn)行速度快,內(nèi)部集成鎖相環(huán)且能將外部晶振倍頻到更高頻率,其管腳多,易實(shí)現(xiàn)大規(guī)模系統(tǒng),F(xiàn)PGA內(nèi)部程序可并行運(yùn)行,有處理更復(fù)雜功能的能力。
溫度傳感器模塊采用溫度傳感器ADS90。ADS90具有體積小、質(zhì)量輕、線性度好、性能穩(wěn)定的優(yōu)點(diǎn)。其測量范圍在-50~+150℃,滿刻度范圍誤差為±0.01℃,其性能可滿足此系統(tǒng)的設(shè)計要求。另外ADS90為溫度/電流傳感器,對于提高系統(tǒng)抗干擾能力有較大幫助。
加熱控制部分采用繼電器作為控制,使用繼電器易實(shí)現(xiàn)對電路的控制,在正常條件下,工作可靠。繼電器無需外加電耦,自身即可實(shí)現(xiàn)電氣隔離。該類型電路無法精確實(shí)現(xiàn)電熱絲功率控制,電熱絲只能工作在最大功率或零功率,對控制精度將造成影響。但可以多路加熱絲功率控制,由FPGA芯片對溫差的處理實(shí)現(xiàn)分級功率控制,提高系統(tǒng)動態(tài)性能。
采用兩位LED七段數(shù)碼管分別顯示十位、個位,數(shù)碼管具有低能耗、低損耗、低壓、壽命長、耐老化、對外界環(huán)境要求低等優(yōu)點(diǎn),另外數(shù)碼管采用BED編碼顯示數(shù)字,編程容易,資源占用少。
2 系統(tǒng)硬件設(shè)計
該硬件系統(tǒng)中包含的功能模塊有FPGA芯片、溫度傳感器、電源、ADC0809、七段數(shù)碼管、繼電器和加熱器。
2.1 溫度傳感器
溫度傳感器分為熱電阻溫度傳感器、熱電偶溫度傳感器、輻射溫度計和光纖溫度傳感器等。在設(shè)計中采用熱電偶溫度傳感器ADS90,其功能單一、測溫誤差小、價格低、響應(yīng)速度快、傳輸距離遠(yuǎn)、體積小、微功耗,適合遠(yuǎn)距離測溫、控溫,不需要進(jìn)行非線性校準(zhǔn)。
AD590溫度傳感器的感測能力是溫度每升高1 K就增加1 μA的電流,該電流流入10 kΩ電阻后,將產(chǎn)生0.01 K(0.01 V)的電壓。而0℃(273 K)時,數(shù)尺電壓值時273μA,經(jīng)過I\V轉(zhuǎn)換后,將產(chǎn)生2.73 V的電壓。如果測到的電壓是Xvs時,則可由(X-273)\0.01得到要測的溫度。溫度傳感器ADS90的輸出經(jīng)過放大器后,將電壓引入ADC0809的Vin(+)的管腳。
2.2 A/D轉(zhuǎn)換器
ADC0809是CMOS的8位模/數(shù)轉(zhuǎn)換器,采用逐次逼近原理進(jìn)行A/D轉(zhuǎn)換,芯片內(nèi)有模擬多路轉(zhuǎn)換開關(guān)和A/D轉(zhuǎn)換兩大部分,可對8路0~5 V的輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換。具體控制狀態(tài)如下:
當(dāng)CS和WR同時為高電平時,ADC0809開始轉(zhuǎn)換,當(dāng)轉(zhuǎn)換完成后,在INT腳輸出高電平,等待讀數(shù)據(jù);
當(dāng)CS和RD同時為高電平時,通過數(shù)據(jù)總線D[7…0]從ADC0809讀出數(shù)據(jù)。
當(dāng)CS=1、WR=1、RD=0時,由控制器發(fā)出的信號要求ADC0809開始進(jìn)行模/數(shù)信號的轉(zhuǎn)換。
當(dāng)CS=0、WR=0、RD=0時,ADC0809進(jìn)行轉(zhuǎn)換動作,轉(zhuǎn)換完畢后INT將低電位升至高電位。
當(dāng)CS=1、WR=0、RD=1時,由控制器發(fā)出信號以讀取ADC0809的轉(zhuǎn)換資料。
當(dāng)CS=0、WR=0、RD=0時,由控制器讀取數(shù)據(jù)總線上的數(shù)字轉(zhuǎn)換資料。
2.3 繼電器
繼電器是一種電子控制器件,它具有控制系統(tǒng)和被控制系統(tǒng),通常用于自動控制電路中,即用較小的電流去控制較大電流的一種“自動開關(guān)”。在電路中起著自動調(diào)節(jié)、安全保護(hù)、轉(zhuǎn)換電路等作用。
該設(shè)計中采用電磁式繼電器,該種繼電器一般由鐵芯、線圈、銜鐵、觸點(diǎn)簧片組成,給線圈加一合適電壓,則有電流流過線圈產(chǎn)生電磁效應(yīng),銜鐵在電磁力的作用下克服彈簧的拉力,從而使銜鐵的動觸點(diǎn)和靜觸點(diǎn)復(fù)合。當(dāng)線圈斷電后,拉力消失,則動觸點(diǎn)和靜觸點(diǎn)分離。
3 系統(tǒng)工作流程
系統(tǒng)的工作流程圖,如圖5所示。
4 功能仿真
4.1 數(shù)據(jù)采集模塊
在系統(tǒng)中數(shù)據(jù)采集模塊的核心是AD0809,以下是對實(shí)現(xiàn)AD0809的電路進(jìn)行仿真驗(yàn)證。
4.2 控制模塊
控制模塊主要實(shí)現(xiàn)的功能是溫度調(diào)節(jié)控制模塊和加熱控制模塊,以下對其分別進(jìn)行仿真驗(yàn)證。
4.2.1 溫度調(diào)節(jié)控制模塊
由圖8可知,當(dāng)輸入a、b時得出count的值,并且可以得到指示燈Y的狀態(tài)。
4.2.2 加熱控制模塊
加熱控制模塊管角圖以及時序仿真如圖9,圖10所示。
5 結(jié)束語
以硬件描述語言VHDL在可編程邏輯器件CPLD/FPGA中的應(yīng)用為基礎(chǔ),進(jìn)行了溫度控制器的設(shè)計。選擇設(shè)計一個簡易的水溫控制系統(tǒng),采用FPGA進(jìn)行控制的水溫自動控制電路,使系統(tǒng)能簡單地實(shí)現(xiàn)溫度的控制及顯示,并將EDA的軟硬件資源、友好的人機(jī)界面和AFPGA優(yōu)秀的實(shí)時控制功能、靈活的編程能力有機(jī)地結(jié)合起來,并且通過軟件編程實(shí)現(xiàn)各種控制算法,使系統(tǒng)具有控制精度高的特點(diǎn),實(shí)現(xiàn)對水溫的自動控制,具有重要意義。
在仿真實(shí)踐中遇到了不少問題,雖然能夠在程序流程上得到把握,但在處理細(xì)節(jié)上時還是不能做到認(rèn)真細(xì)致,尤其是針對VHDL語法比較嚴(yán)格的語言,稍不注意就可能帶來令難以調(diào)試的錯誤,因此調(diào)試程序耗時較長。