<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的溫度控制器設計

          基于FPGA的溫度控制器設計

          作者: 時間:2013-05-15 來源:網(wǎng)絡 收藏

          摘要 介紹了一種基于的溫度控制系統(tǒng)設計??删幊唐骷?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/FPGA">FPGA和硬件描述語言VHDL的出現(xiàn)使得數(shù)字電路的設計周期縮短、難度減小。系統(tǒng)采用作為核心控制器件進行編程,設計采用模塊化思路分別實現(xiàn)溫度檢測、鍵輸入、溫度顯示和控制模塊,再加以整合實現(xiàn)整個系統(tǒng),達到了溫度控制的目的。
          關鍵詞 溫度控制;FPGA;VHDL

          隨著人們生活水平的不斷提高,溫度控制系統(tǒng)被廣泛應用。對于,可以通過繼電器、PLC、單片機以及專用工控機等方法實現(xiàn),繼電器具有零電壓導通、零電流關斷、噪音小、耐腐蝕、抗干擾、壽命長、體積小,以微小的控制信號直接驅動大電流負載等優(yōu)點。但也存在通態(tài)壓降,需要散熱措施,有輸出漏電流,交直流不能通用,觸點組數(shù)少、成本高等缺點。PLC主要應用于電力工業(yè)控制領域,或整條流水線的控制;相對單片機的功耗大,但性能較穩(wěn)定;單片機適用實時工業(yè)控制,相對微機價格較低,可編程性和可擴展性較強;專用工控機配置硬盤容量小、數(shù)據(jù)安全性低且存儲選擇性小。
          由于體積、成本、操作等因素的限制,對于這些控制方法功能修改和調試都需要硬件電路的支持,在一定程度上增加了功能修改及系統(tǒng)調試的困難。
          電子技術的發(fā)展,F(xiàn)PGA(Field Programmable GateArray)可編程技術的出現(xiàn)給現(xiàn)代工業(yè)控制的測控領域帶來了一次新的“技術革命”,它具有數(shù)百萬的邏輯門,可用于實現(xiàn)復雜的功能。
          FPGA作為的主控部分可以使系統(tǒng)的器件數(shù)目減少,具有設計靈活、現(xiàn)場可編程、調試簡單和體積小等特點,具有更高的性價比。

          1 溫度采集器的原理
          實現(xiàn)溫度采集有多種方法,例如用傳統(tǒng)的二位模擬控制方法選用模擬電路,用電位器設定固定值,經(jīng)采樣放大的信號將反饋的溫度值與給定的溫度值比較后,根據(jù)比較結果控制當前溫度顯示,以確定加熱或者不加熱。其特點是電路簡單、易于實現(xiàn)。但是系統(tǒng)所得結果的精度不高且調節(jié)動作頻繁、系統(tǒng)不穩(wěn)定,受環(huán)統(tǒng)的控制及對溫度的顯示,人機交換性能差。而且選用模擬電路將反饋的溫度值與給定的溫度值比較決定是否加熱,從輸入采樣到輸出控制的各種誤差產(chǎn)生因素較多,精度難以達到要求。另一種方法是采用EDA對系統(tǒng)進行智能化控制,采用FPGA芯片為核心控制器,使用溫度傳感器ADS90采集溫度變化信號,并通過FPGA芯片處理后去控制溫度使其達到穩(wěn)定。該方法具有編程靈活、控制簡單的優(yōu)點,使系統(tǒng)能簡單實現(xiàn)溫度的控制及顯示。文中采用FPGA實現(xiàn)溫度采集,其結構圖如圖1所示,F(xiàn)PGA具有運行速度快,內(nèi)部集成鎖相環(huán)且能將外部晶振倍頻到更高頻率,其管腳多,易實現(xiàn)大規(guī)模系統(tǒng),F(xiàn)PGA內(nèi)部程序可并行運行,有處理更復雜功能的能力。

          本文引用地址:http://www.ex-cimer.com/article/189606.htm

          a.JPG


          溫度傳感器模塊采用溫度傳感器ADS90。ADS90具有體積小、質量輕、線性度好、性能穩(wěn)定的優(yōu)點。其測量范圍在-50~+150℃,滿刻度范圍誤差為±0.01℃,其性能可滿足此系統(tǒng)的設計要求。另外ADS90為溫度/電流傳感器,對于提高系統(tǒng)抗干擾能力有較大幫助。
          加熱控制部分采用繼電器作為控制,使用繼電器易實現(xiàn)對電路的控制,在正常條件下,工作可靠。繼電器無需外加電耦,自身即可實現(xiàn)電氣隔離。該類型電路無法精確實現(xiàn)電熱絲功率控制,電熱絲只能工作在最大功率或零功率,對控制精度將造成影響。但可以多路加熱絲功率控制,由FPGA芯片對溫差的處理實現(xiàn)分級功率控制,提高系統(tǒng)動態(tài)性能。
          采用兩位LED七段數(shù)碼管分別顯示十位、個位,數(shù)碼管具有低能耗、低損耗、低壓、壽命長、耐老化、對外界環(huán)境要求低等優(yōu)點,另外數(shù)碼管采用BED編碼顯示數(shù)字,編程容易,資源占用少。

          2 系統(tǒng)硬件設計
          該硬件系統(tǒng)中包含的功能模塊有FPGA芯片、溫度傳感器、電源、ADC0809、七段數(shù)碼管、繼電器和加熱器。
          2.1 溫度傳感器
          溫度傳感器分為熱電阻溫度傳感器、熱電偶溫度傳感器、輻射溫度計和光纖溫度傳感器等。在設計中采用熱電偶溫度傳感器ADS90,其功能單一、測溫誤差小、價格低、響應速度快、傳輸距離遠、體積小、微功耗,適合遠距離測溫、控溫,不需要進行非線性校準。

          b.JPG


          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轉換后,將產(chǎn)生2.73 V的電壓。如果測到的電壓是Xvs時,則可由(X-273)\0.01得到要測的溫度。溫度傳感器ADS90的輸出經(jīng)過放大器后,將電壓引入ADC0809的Vin(+)的管腳。
          2.2 A/D轉換器
          ADC0809是CMOS的8位模/數(shù)轉換器,采用逐次逼近原理進行A/D轉換,芯片內(nèi)有模擬多路轉換開關和A/D轉換兩大部分,可對8路0~5 V的輸入模擬電壓信號分時進行轉換。具體控制狀態(tài)如下:
          當CS和WR同時為高電平時,ADC0809開始轉換,當轉換完成后,在INT腳輸出高電平,等待讀數(shù)據(jù);
          當CS和RD同時為高電平時,通過數(shù)據(jù)總線D[7…0]從ADC0809讀出數(shù)據(jù)。
          當CS=1、WR=1、RD=0時,由控制器發(fā)出的信號要求ADC0809開始進行模/數(shù)信號的轉換。
          當CS=0、WR=0、RD=0時,ADC0809進行轉換動作,轉換完畢后INT將低電位升至高電位。
          當CS=1、WR=0、RD=1時,由控制器發(fā)出信號以讀取ADC0809的轉換資料。
          當CS=0、WR=0、RD=0時,由控制器讀取數(shù)據(jù)總線上的數(shù)字轉換資料。

          fpga相關文章:fpga是什么


          電流變送器相關文章:電流變送器原理
          電流傳感器相關文章:電流傳感器原理
          晶振相關文章:晶振原理
          鎖相環(huán)相關文章:鎖相環(huán)原理
          溫濕度控制器相關文章:溫濕度控制器原理
          熱電偶相關文章:熱電偶原理

          上一頁 1 2 3 下一頁

          關鍵詞: FPGA 溫度控制器

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();