基于FPGA和AD768的高精度信號卡設計
摘要:遙測匹配裝置的自檢與測試是系統(tǒng)設計中不可缺少的一項功能,而信號卡是匹配裝置自動測試系統(tǒng)的重要組成部分。本文介紹了一種高精度信號卡的設計,它采用Xilinx公司的可編程邏輯器件XCF2S50E及AD768來實現(xiàn)。采用FPGA簡化了電路設計,提高了系統(tǒng)的設計靈活性;采用16位的D/A變換器AD768則提高了信號卡的精度。
關鍵詞:高精度;信號卡;FPGA;AD768
1 引言
在導彈型號的研制過程中,匹配裝置是用于遙測系統(tǒng)中信號變換的關鍵部件,是彈上所有關鍵部件的信息送到遙測設備的咽喉。匹配裝置的精度和可靠性是影響遙測結果的重要因素。本課題是為遙測匹配裝置自動測試系統(tǒng)提供高精度的信號,用于檢驗匹配裝置自動測試系統(tǒng)的工作情況。從這個意義上來說,小型化、通用化信號卡的設計和實現(xiàn)是測試平臺的必然要求。因此,必須采用先進的設計方法和大規(guī)??删幊踢壿嬈骷右詫崿F(xiàn)才能適應這種發(fā)展趨勢,CPLD/FPGA等大規(guī)??删幊踢壿嬈骷陌l(fā)展和VHDL硬件描述語言的成熟為此奠定了良好的軟硬件基礎。為了提高信號卡的精度,D/A的選擇至關重要,選用Analog Device公司的16位D/A轉換器AD768完全滿足精度的設計要求。
本文著重介紹了一種基于FPGA和AD768,用VHDL硬件描述語言設計實現(xiàn)高精度信號卡的方案,理論和實驗證明,該方案切實可行。
2 信號卡的方案設計
2.1 功能介紹
該信號卡輸出為64路-15V~+15V 的可調電壓。信號的調節(jié)精度不低于0.1%。每路信號的驅動電流不小于5mA,不大于20mA。另外根據(jù)需要,也可以在-15V~+15V范圍內通過調整硬件任意選擇極限輸出范圍,電壓范圍越小,絕對誤差電壓也相對越小。
2.2 信號卡原理框圖
該信號卡由FPGA主控單元、單片機、電源模塊、大容量存儲器、DAC、后繼調理電路及輸出接口等部分組成。其中,波形數(shù)據(jù)由上位機通過軟件編程產(chǎn)生,數(shù)據(jù)經(jīng)主控卡傳送到高速數(shù)字總線上,信號卡由單片機通過總線接口接收后送到FPGA,由FPGA送到大容量存儲器存儲。FPGA中心控制邏輯負責各種控制信號的產(chǎn)生,它控制數(shù)據(jù)從大容量存儲器輸出到DAC轉換,并控制模擬開關的選通,信號經(jīng)模擬開關后再經(jīng)過保持放大電路輸出。信號卡的原理框圖如圖1所示。
圖1 高精度信號卡的原理框圖
電源模塊給各個部分供電(圖中未標箭頭)。繼電器的控制信號由上位機給出,經(jīng)主控卡傳送到數(shù)字總線上,然后經(jīng)單片機和FPGA給繼電器。繼電器控制后繼調理電路的電源供電,以此來控制是否將信號輸出給外部設備。
2.3 提高精度的一些措施
采用16位D/A能達到所要的1%的調節(jié)精度,但是由于信號傳輸中有串擾、噪聲等一系列的干擾,難免會對精度產(chǎn)生影響,有鑒于此,我們在電路中加入以下措施來抑制干擾,提高精度。
1.電路板采用4層板設計,提高整個系統(tǒng)的抗干擾能力
2.模擬地和數(shù)字地分開,在一點處用0歐的電阻連接起來。整個信號源模塊與測試臺其他模塊不共地。
3. 在接口與單片機之間采用光電隔離器進行隔離,抑制干擾。
4.采用獨立電源供電,通過繼電器給放大電路供電,保證電源電壓不受干擾。
5.后續(xù)調理電路采用外部頻率補償法,降低環(huán)路增益,提高了信號的穩(wěn)定性。
經(jīng)驗證,以上措施很好地抑制了系統(tǒng)地干擾,對提高系統(tǒng)地調節(jié)精度起到了很大的作用。
3 DAC單元電路設計
AD768是16位的高速模數(shù)轉換器,轉換速率高達30MSPS,根據(jù)要求,輸出的模擬信號電壓范圍要求在-15V~+15V之間,轉換電路采用AD811與AD824的組合,如圖2所示。
圖2 DAC信號轉換電路
圖2中,IOUTA為AD768的電流輸出,數(shù)字輸入全為1時滿幅;REFOUT為AD768的參考輸出電壓,值為2.5V。AD768有兩個互補的電流輸出端IOUTA和IOUTB,它們具有相同的動態(tài)性能??梢耘渲贸蓡味嘶虿罘謨煞N工作模式。IOUTA和IOUTB可通過一個負載電阻R1轉換成互補的單端電壓輸出VOUTA和VOUTB。而使差分電壓存在于VOUTA和VOUTB之間,同時通過一個差分放大器來將差分信號轉換成單端電壓。本設計采用AD768的差分模式。通過設置IBipolar的值為最大反饋電流IFB的一半,使得輸出電壓的邊界值對稱。當參考輸出電壓REFOUT端接地時,AD768處于電流輸出模式,輸出電流IOUTA與參考電流IREFIN的關系式為:
IOUTA=(DACCODE/65536)(IREFIN4) (1)
式(1)中,DACCODE是16位數(shù)字輸入碼,在0~65535間變化。IREFIN的值為5mA。因此輸出電流IOUTA最大不會超過20mA,能滿足要求的驅動電流的要求。輸出電流經(jīng)過運算差分放大器AD811緩沖放大后,輸出電壓范圍在-2.5V~+2.5V,再經(jīng)過放大增益為6的放大電路,輸出電壓VOUT將在-15V~+15V之間,能夠滿足規(guī)定的要求。
4 FPGA內部邏輯控制
VHDL語言是一種硬件描述語言,描述能力極強,可覆蓋邏輯設計的諸多領域和層次,并支持眾多的硬件模型。與其它HDL語言相比有:設計技術齊全,方法靈活,支持廣泛;系統(tǒng)硬件描述能力強;可以與工藝無關地進行編程;語言標準、規(guī)范,易于共享和復用;縮短設計周期,減少投資風險等優(yōu)點。本設計的FPGA內部邏輯全部采用VHDL語言來編寫。
4.1 FPGA內部原理圖
圖4 FPGA邏輯內部原理圖
圖4是由VHDL語言實現(xiàn)的信號卡FPGA內部原理圖,F(xiàn)PGA在系統(tǒng)時鐘信號(FOSC)的驅動下,判斷上位機給出的控制信號,接收上位機發(fā)出的波形數(shù)據(jù),然后輸出各種控制信號,并將數(shù)據(jù)送到存儲器中。另外,F(xiàn)PGA還給出指示燈的控制信號,通過指示燈指示其工作狀態(tài),方便了設備工作狀態(tài)的判斷及調試。
4.2 數(shù)據(jù)的二次編碼
由于單片機與FPGA之間的數(shù)據(jù)傳輸是8位的,而我們用的D/A是16位的,因此產(chǎn)生的16位數(shù)據(jù)如在單片機與FPGA間傳輸是問題所在,為此,我們將計算機生成的16位數(shù)據(jù)分成3個8位的數(shù)據(jù),用每個數(shù)據(jù)的高二位即DATA7和DATA6的組合來表示數(shù)據(jù)是高位、中位還是低位。單片機傳給FPGA的8位的數(shù)據(jù),F(xiàn)PGA要把它們還原成原來16位的數(shù)據(jù),這就是數(shù)據(jù)的二次編碼。數(shù)據(jù)的二次編碼是整個程序的重點所在。圖5是二次編碼的流程圖。
圖5 數(shù)據(jù)二次編碼流程
在總線寫(即wr有效)的過程中,F(xiàn)PGA要判斷收到單片機的數(shù)據(jù)是高位、中位還是低位,程序中, busdata(7 downto 6) = "00"表示接受到的數(shù)據(jù)是低位;busdata(7 downto 6) = "01"表示接受到的數(shù)據(jù)是中位;busdata(7 downto 6) = "10"表示接受到的數(shù)據(jù)是高位。FPGA將3個8位(實際是6位)的數(shù)據(jù)整合,寫入到存儲器及D/A轉換器收到的數(shù)據(jù)就是轉換以后的dataout[15 … 0]。
5 結論
信號卡的輸出結果如圖6所示,由圖可見,波形穩(wěn)定,失真度極低,較好地達到了設計的要求。
圖6 信號卡輸出波形
因此,采用可編程邏輯器件FPGA和16位D/A轉換器AD768來進行設計的方案切實可行,本信號卡具有結構簡單,性能穩(wěn)定,有效性、可靠性高,此外還有便于修改和優(yōu)化等優(yōu)點,縮短了開發(fā)設計的周期。
參考文獻:
[1] 朱衛(wèi)華,黃鄉(xiāng)佩等. 基于FPGA的高精度數(shù)字移相低頻正弦波發(fā)生器設計. 微計算機信息. 2005,21(7):106~107。
[2] 任勇峰,莊新敏. VHDL與硬件實現(xiàn)速成. 國防工業(yè)出版社. 2005年7月。
[3] 宋濤,師奕兵等. 一種高速D/A卡的硬件電路及驅動程序設計. 中國測試技術. 2005,31(5):100~102。
[4] 宋躍,胡升平. 低頻高精度DDS脈沖信號生成研究與FPGA實現(xiàn). 微電子學與計算機. 2006,23(7):178~181。
評論