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