基于FPGA的可調(diào)信號(hào)源設(shè)計(jì)
現(xiàn)場(chǎng)可編程邏輯陣列器件(FPGA)具有編程方便、高集成度、高可靠性等優(yōu)點(diǎn)。為了滿足科研和實(shí)際測(cè)試要求,本文設(shè)計(jì)了一種以FPGA、高速D/A為核心,能產(chǎn)生多路頻率可調(diào)信號(hào)的信號(hào)源系統(tǒng)。該系統(tǒng)中波形數(shù)據(jù)、控制命令字由上位機(jī)發(fā)出,通過FPGA控制在數(shù)據(jù)存儲(chǔ)器中存儲(chǔ)波形數(shù)據(jù),并將波形數(shù)據(jù)讀出送入DAC進(jìn)行數(shù)模轉(zhuǎn)換后得到相應(yīng)的模擬信號(hào)波形及開關(guān)量的控制。利用上述方法設(shè)計(jì)的信號(hào)源,信號(hào)產(chǎn)生靈活、功能擴(kuò)展方便、信號(hào)參數(shù)可調(diào),實(shí)現(xiàn)了硬件電路的軟件化設(shè)計(jì),具有特殊的現(xiàn)實(shí)意義和廣泛的應(yīng)用前景[1]。
1 系統(tǒng)設(shè)計(jì)
本信號(hào)源系統(tǒng)主要由數(shù)據(jù)輸出(上位機(jī)軟件)、USB數(shù)據(jù)傳輸接口、數(shù)據(jù)緩沖與存儲(chǔ)(FIFO和SRAM)、控制部分(FPGA) 、數(shù)據(jù)的轉(zhuǎn)換及調(diào)理(DAC、跟隨器)及開關(guān)量的輸出等6個(gè)模塊組成。
系統(tǒng)總體設(shè)計(jì)框圖如圖1所示,其具體工作流程為:PC機(jī)發(fā)送數(shù)據(jù)至USB單片機(jī)端點(diǎn)FIFO,當(dāng)數(shù)據(jù)大小達(dá)到512 B時(shí),數(shù)據(jù)自動(dòng)打包后送入外部緩沖FIFO。FIFO是一種先進(jìn)先出的數(shù)據(jù)緩存器,它與普通存儲(chǔ)器的區(qū)別在于沒有外部讀寫地址線,靠空/滿標(biāo)志的產(chǎn)生來控制數(shù)據(jù)的寫入與讀出。在FPGA控制模塊中,當(dāng)FPGA接收到FIFO半滿信號(hào)后,由FPGA控制將波形,數(shù)據(jù)存于SRAM中。然后FPGA控制波形數(shù)據(jù)從SRAM中取出后送D/A進(jìn)行轉(zhuǎn)換,經(jīng)數(shù)模轉(zhuǎn)換和調(diào)理電路后即得所需波形,或直接由FPGA將數(shù)據(jù)發(fā)送到繼電器來控制外部供電系統(tǒng)的開斷。本文引用地址:http://m.butianyuan.cn/article/188221.htm
2 模塊設(shè)計(jì)
2.1 USB傳輸部分
USB 接口即“通用串行總線接口”,是應(yīng)用于計(jì)算機(jī)領(lǐng)域的新型接口之一,它使得外圍設(shè)備與計(jì)算機(jī)的連接更加高效、便利。USB 接口不僅具有傳輸速率快、即插即用、支持熱插拔等特點(diǎn),而且易于擴(kuò)展,可以有效地解決計(jì)算機(jī)外圍接口不足的問題。隨著在工程實(shí)際中對(duì)數(shù)據(jù)傳輸?shù)乃俾室笤絹碓礁?,傳統(tǒng)的串口、并口傳輸已經(jīng)不能滿足數(shù)據(jù)傳輸速率的要求,而USB2.0 接口最高可達(dá)480 Mb/s 的高速傳輸速率,使得計(jì)算機(jī)和外圍設(shè)備之間的高速數(shù)據(jù)傳輸成為可能。同時(shí),USB 接口設(shè)備的普及也促使其成為數(shù)據(jù)高速傳輸中設(shè)備連接的首選接口。
本設(shè)計(jì)考慮了兩種USB2.0通信接口設(shè)計(jì)模式:(1) 基于USB 單片機(jī)的接口設(shè)計(jì)。例如以Cypress 公司開發(fā)的CY7C68013 單片機(jī)為控制核心而設(shè)計(jì)的USB 通訊接口;(2)基于協(xié)議轉(zhuǎn)換芯片的接口設(shè)計(jì),例如以FTDI 公司推出的FT245BM 協(xié)議接口芯片為控制核心的USB 通信接口。
(1)USB-單片機(jī)
CY7C68013單片機(jī)[2]的GPIF接口有16位數(shù)據(jù)線、6個(gè)RDY信號(hào)和6個(gè)CTL信號(hào)。RDY信號(hào)用于對(duì)輸入的信號(hào)進(jìn)行判斷, CTL用于輸出對(duì)外部器件的控制命令,16位數(shù)據(jù)線用于單片機(jī)與外部器件進(jìn)行數(shù)據(jù)交換和傳輸。該芯片集成了51單片機(jī)內(nèi)核、USB2.0收發(fā)器、串行接口引擎(SIE)、4 KB FIFO存儲(chǔ)器以及通用可編程接口等模塊,這些模塊保證了CY7C68013與DSP、ATA等外圍器件實(shí)現(xiàn)無縫、高速的數(shù)據(jù)傳輸。
(2)USB-FIFO
FT245BM是由FTDI公司推出的USB協(xié)議芯片。FT245BM內(nèi)含2個(gè)FIFO數(shù)據(jù)緩沖區(qū)。一個(gè)是128 B的接收緩沖區(qū),另一個(gè)是384 B的發(fā)送緩沖區(qū)。它們用作USB數(shù)據(jù)與并行I/O口數(shù)據(jù)的交換緩沖區(qū)。FIFO是實(shí)現(xiàn)與外界(微控制器、FPGA或其他器件)數(shù)據(jù)互換的接口,它主要通過8根數(shù)據(jù)線DO~D7、讀寫控制線RD和WR以及FIFO發(fā)送緩沖區(qū)空標(biāo)志TXE和FIFO接收緩沖區(qū)非空標(biāo)志RXF來完成數(shù)據(jù)的交互。FT245BM與FPGA之間的邏輯連接圖如圖2所示。
評(píng)論