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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于FPGA的智能溫度采集控制器

          基于FPGA的智能溫度采集控制器

          作者: 時間:2010-01-11 來源:網(wǎng)絡(luò) 收藏

          控制器邏輯功能模塊。實現(xiàn)的控制器處于PC端上位機(jī)與溫度傳感器DS18B2O中間。的主要設(shè)計任務(wù)便是接收從串口得來的PC端上位機(jī)命令,通過內(nèi)部狀態(tài)機(jī)邏輯的判斷和控制,通過Data Path將命令傳達(dá)至溫度傳感器DS18B20,并將命令的執(zhí)行結(jié)果返回給上位機(jī)。主要實現(xiàn)1-wire收發(fā)器和RS232收發(fā)器,對兩邊起溝通作用。整個硬件模塊大致分成三層(圖3),第一層為RS232串行通信模塊和時鐘分頻模塊fenpin,第二層為主控模塊 Control Block,第三層為 Data Path部分:讀/寫模塊bytebit。


          圖3、智能溫度控制器系統(tǒng)模塊層次結(jié)構(gòu)圖

          l)RS232串行通信模塊。負(fù)責(zé)外部上位機(jī)串行bit與主控模塊Control Block并行byte間的數(shù)據(jù)傳輸。RS232串行通信速率采用 115200 bit/S。Uartrec從上位機(jī)接受一個字節(jié)com命令發(fā)給主控模塊Control Block,同時Uarttran從主控模塊Control Block接收一個字節(jié)result回應(yīng)發(fā)給上位機(jī)。

          2)分頻模塊fenpin。由50 MHZ內(nèi)部晶振產(chǎn)生與DS18B20同步的1 MHZ時鐘。

          3)主控模塊 Control Block。負(fù)責(zé)狀態(tài)轉(zhuǎn)化控制,實現(xiàn) Data Path和RS232收發(fā)器的溝通。通過內(nèi)部FSM邏輯的判斷和控制,將命令傳達(dá)至傳感器,并將命令的執(zhí)行結(jié)果返回給上位機(jī)。由兩個延時子模塊組成。初始化模塊init,負(fù)責(zé)初始化總線上所有DS18B20,并在初始化成功后報告主控模塊初始化狀態(tài)。若初始化失敗,將繼續(xù)初始化。若超過設(shè)定初始化時間仍不能成功初始化,將停止初始化并報警。溫度轉(zhuǎn)化等待模塊Convert,負(fù)責(zé)在讀/寫模塊bytebit向DS18B20發(fā)出convert命令后延時800 ms再報告主控模塊轉(zhuǎn)化完畢。根據(jù)DS18B20用戶手冊,溫度轉(zhuǎn)化最多用750 ms。所以采用800 ms的保守估算。

          4)Data Path。由讀/寫模塊bytebit構(gòu)成,負(fù)責(zé)主控模塊Control Block和DS18B20之間的數(shù)據(jù)通信。由主控模塊Control Block的r_w信號決定是發(fā)WRITE TIME SLOTS還是發(fā)READ TIME SLOTS。

          4結(jié)束語

          本文作者的主要創(chuàng)新點:分析并設(shè)計了一個基于FPGA的智能溫度測控系統(tǒng)。本系統(tǒng)已經(jīng)廣泛地應(yīng)用到各種相關(guān)的實際系統(tǒng)。本項目已經(jīng)產(chǎn)生經(jīng)濟(jì)效益越230萬元。


          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: 一線總線 異步通訊 FPGA MSCOMM

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();