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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于FPGA的數(shù)字量變換器測試系統(tǒng)設(shè)計

          基于FPGA的數(shù)字量變換器測試系統(tǒng)設(shè)計

          作者: 時間:2013-06-06 來源:網(wǎng)絡(luò) 收藏

          0 引言

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

          在飛行器發(fā)射試驗中,常用遙測系統(tǒng)獲取其內(nèi)部各系統(tǒng)的工作狀態(tài)參數(shù)和環(huán)境數(shù)據(jù),為評定飛行器的性能及故障分析提供依據(jù)。數(shù)字量變換器作為遙測系統(tǒng)彈上的重要設(shè)備,它的主要功能是接收彈上的各種飛行參數(shù)。變換器性能的優(yōu)劣將直接影響遙測結(jié)果,對飛行器研制和試驗過程中試驗數(shù)據(jù)的測試產(chǎn)生很大影響,將關(guān)系到飛行器試驗的成敗和以后飛行器性能的改進(jìn)和提高。在飛行器的研制過程中,多次試驗和考核是非常重要的。對數(shù)字量變換器做出準(zhǔn)確、客觀、可靠地評價是其生產(chǎn)過程中的關(guān)鍵環(huán)節(jié),而這一環(huán)節(jié)只能由變換器測試系統(tǒng)來完成??删幊踢壿嬈骷?FPGA)以其高速、可重構(gòu)、設(shè)計靈活、開發(fā)費用低、I/O引腳和內(nèi)部資源豐富的等優(yōu)點,在近代測試系統(tǒng)中贏得了越來越廣泛的應(yīng)用。本文以FPGA為邏輯中心設(shè)計的測試系統(tǒng),主要是對數(shù)字量變換器進(jìn)行單元測試,在其實際研制和調(diào)試過程中發(fā)揮了關(guān)鍵的作用。

          1 系統(tǒng)總體設(shè)計

          1.1 技術(shù)指標(biāo)

          (1)測試系統(tǒng)能夠在工作前對系統(tǒng)本身的各部分電路和通信接口進(jìn)行檢測,進(jìn)而確定測試系統(tǒng)是否能正常工作。

          (2)能夠為數(shù)字量變換器提供25V、28V、31V三檔工作電壓,電流驅(qū)動能力大于等于1A.

          (3)能夠模擬彈上設(shè)備產(chǎn)生幅度為8~10V的字信號及相應(yīng)的移位脈沖信號;產(chǎn)生128路28V指令信號;產(chǎn)生所需的勤務(wù)信號(包括幀同步信號和碼同步信號);能夠接收經(jīng)變換器變換回傳的字長為32位、幅度為5V的字?jǐn)?shù)碼和指令數(shù)碼信號,并在上位機上顯示。

          1.2 系統(tǒng)結(jié)構(gòu)和工作原理

          系統(tǒng)設(shè)計時,采用模塊化設(shè)計的思想,按照技術(shù)指標(biāo)設(shè)計各個功能模塊,通過各模塊之間的協(xié)調(diào)配合完成系統(tǒng)的測試任務(wù)。系統(tǒng)的整體結(jié)構(gòu)框圖如圖1所示,整個系統(tǒng)由、USB芯片F(xiàn)T245、兩片F(xiàn)PGA、輸出電源電壓模塊、計算機字信號發(fā)送模塊、勤務(wù)信號發(fā)送模塊、計算機字?jǐn)?shù)碼與指令數(shù)碼接收模塊和指令信號發(fā)送模塊組成。模塊化設(shè)計能夠使在進(jìn)行系統(tǒng)調(diào)試和硬件編程時,簡單、快速的定位并解決問題。

          測試系統(tǒng)通過USB芯片F(xiàn)T245實現(xiàn)硬件電路和上位機的通信,包括上位機給FPGA 控制命令的下發(fā)與數(shù)據(jù)的上傳。

          硬件電路選用XILINX公司的XC3S200-208和XC2S100-208兩片F(xiàn)PGA 作為系統(tǒng)的邏輯控制中心,其中XC3S200-208作為主控芯片,主要實現(xiàn)對上位機的命令接收和判斷,進(jìn)而產(chǎn)生和發(fā)送計算機字信號,接收計算機字?jǐn)?shù)碼和指令數(shù)碼并編幀、上傳數(shù)據(jù)至上位機;XC2S100-208作為從控制芯片,完成128路指令信號的發(fā)送;兩片F(xiàn)PGA 之間采用串行通信的方式發(fā)送控制命令來實現(xiàn)通訊。另外,通過上位機軟件可以實現(xiàn)向系統(tǒng)發(fā)送復(fù)位或停止命令,這樣能夠減少硬件的功耗并提高測試系統(tǒng)的工作效率。

          2 系統(tǒng)各模塊功能實現(xiàn)

          2.1 USB接口模塊實現(xiàn)

          USB具有成本低、通用性好、連接簡單、支持熱拔插等特點,而從系統(tǒng)實際的速率傳輸要求出發(fā),設(shè)計采用通用USB接口芯片F(xiàn)T245BM 實現(xiàn)與上位機的通信。FT245BM 主要的功能是在內(nèi)部邏輯的作用下實現(xiàn)數(shù)據(jù)串/并雙向轉(zhuǎn)換,它的最大傳輸速率可以達(dá)到1M/s.FT245BM 免去了復(fù)雜的固件編程及驅(qū)動程序的編寫,能夠簡化USB的接口設(shè)計,為系統(tǒng)節(jié)省設(shè)計時間。

          FT245BM 具體電路設(shè)計如圖2所示。

          FT245BM 的8位數(shù)據(jù)線D7~D0、讀信號RD、寫信號WR、發(fā)送使能TXE、接收數(shù)據(jù)完畢信號RXF與FPGA連接,來完成兩者的通信。計算機通過應(yīng)用程序、動態(tài)鏈接庫的有效配合將控制命令信號發(fā)送到FT245BM,FPGA利用與之相連的I/O口接收下發(fā)的控制命令或是發(fā)送上傳的測試數(shù)據(jù)。

          2.2 輸出電源電壓控制模塊實現(xiàn)

          由于需要為被測數(shù)字量變換器提供3檔工作電壓25V、28V、31V,在電源模塊輸出端連接三種不同阻值的電阻,就可以實現(xiàn)3種電壓的切換,實現(xiàn)控制的電路如圖3所示。

          圖中VCON+,VCON-為電源模塊的輸入電壓,R25、R26、R27三組電位器用來調(diào)節(jié)電阻。25VCON、31VCON分別與FPGA的I/O相連,是FPGA給出的控制信號,電路中三極管的作用是利用其電流放大來增加信號的驅(qū)動能力。通過FPGA對控制命令的判斷來實現(xiàn)3檔電壓的控制。此外,系統(tǒng)的默認(rèn)及復(fù)位的輸出電壓為28V.

          2.3 計算機字信號發(fā)送模塊實現(xiàn)

          由于要求計算機字和移位脈沖的幅值都為8~10V,所以電路中采用運算放大器電路對FPGA輸出的信號進(jìn)行放大來獲取所需幅值的信號。計算機字信號發(fā)送電路如圖4所示。

          為了滿足輸出信號的精度和電流驅(qū)動能力的要求,本模塊中采用AD公司的運放AD811來設(shè)計電路。此運算放大器是高速運放,采用雙電源供電,2500V/us是其最高轉(zhuǎn)換速率,具有較低的電流、電亞噪聲。設(shè)計中采用同相放大電壓串聯(lián)型負(fù)反饋電路,輸出電壓穩(wěn)定并且反饋效果好。電路中R83的接地是為了盡量減小由于偏置電流引起的電壓失調(diào),其阻值等于R22和R60的并聯(lián)阻值,為R22//R60=666Ω。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 直流 計算機 控制

          評論


          相關(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); })();