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

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的慣導系統(tǒng)溫控電路接口設計

          基于FPGA的慣導系統(tǒng)溫控電路接口設計

          作者: 時間:2012-09-11 來源:網絡 收藏

          一、DSP 寫信號同步模塊

          DSP 的數據寫入在寫信號控制下完成。由于DSP 和 采用不同的時鐘源,所以DSP產生的寫信號無法和 的主時鐘同步。這樣就會導致寫數據錯誤。該模塊用于將DSP 寫信號與 的主時鐘同步。

          二、中斷生成模塊

          由于本方案中,溫度值每秒更新一次。在溫度值更新后,通過中斷信號通知DSP 讀取溫度值。該模塊用于生成周期為1 秒的中斷脈沖。

          三、尋址模塊

          該模塊對FPGA 片內資源進行編址,由DSP 的地址總線控制尋址。準確讀寫所需的數據。

          (4)總線控制模塊

          DSP 和FPGA 之間的數據總線是雙向總線,總線控制模塊用于控制總線的數據流向。當DSP 從FPGA 中讀取溫度值時,總線控制模塊將溫度存儲模塊和數據總線相連,輸出數據。當DSP 向FPGA 中寫數據時,總線控制模塊將數據總線和雙口RAM 模塊相連,輸入數據。

          (5)雙口RAM 模塊

          該模塊主要實現以下三個功能:當DSP 寫數據時,將數據存儲于內部存儲器中;當數據存儲完畢后,將其中的控制量發(fā)送給DAC 控制模塊;與串口發(fā)送模塊通信,將所有數據依次串行輸出。

          (6) 232 接口模塊

          該模塊用于實現串口數據輸出,它包含2 個子模塊:

          一、串口波特率模塊

          串口通信協議要求數據收發(fā)雙方有相同的波特率。該模塊用于設定串口通信波特率。

          二、串口發(fā)送模塊

          雙口RAM 模塊將數據存儲完畢后,將給串口發(fā)送模塊一個標志信號。串口發(fā)送模塊接到此信號后,依次將雙口RAM 模塊中存儲的數據串行輸出。

          (7)DAC 接口模塊

          該模塊包含2 個子模塊:

          一、DAC 時鐘模塊

          DAC 需要特定頻率范圍的時鐘來驅動。該模塊用于生成驅動DAC 的時鐘信號。

          二、DAC 控制模塊

          該模塊用于生成DAC 控制信號。它的基本原理是將雙口RAM 模塊輸出的7 路控制量存儲在內部存儲器,然后根據DAC 的接口協議生成CLK,DATA,LOAD 和LDAC 等控制信號,這些信號將驅動DAC 的工作,將數字控制量轉換成模擬電壓值。


          圖4 溫度控制電路

          6 結束語

          FPGA 需要綜合考慮硬件連接,工作流程,接口協議和邏輯模塊等多方面因素,是一項工程。本文分別從以上幾方面介紹了基于FPGA 的光纖陀螺慣導,該設計目前已應用于實際中。經過驗證,接口滿足系統(tǒng)要求,工作狀態(tài)良好。本文所述的FPGA 方案是可靠,穩(wěn)定和高效的。可為其他相關應用提供有益的借鑒。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(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); })();