摘 要:針對航天檢測設備中信號源單一、不可調等缺點,提出并實現了一種以title="FPGA" target="_blank">FPGA 、title="高速D/A">高速D/A、繼電器AQY210為核心,結構簡單,控制靈活,信號質量高的多功能信號源生成系統。該系統可提供各種頻率、幅值、偏置等參數可調的模擬信號,成功應用于工業控制開關量輸出性能檢測。同時,上位機與硬件通信的接口使用了USB-單片機(CY7C68013)和USB-FIFO(FT245)兩種方案,并進行實際對比,提出其適用條件和范圍。
關鍵詞:FPGA;高速D/A;AQY210;信號源;USB
傳統產品級信號源往往只能產生單一信號,滿足不了科研和實際檢測的需要。尤其在復雜的航天環境實驗中,需要信號源能產生不同種類和參數可調的信號,作為系統自檢時的信號輸入,以此檢測目標設備的工作狀態和各項性能指標,為目標設備正常工作提供依據。
現場可編程邏輯陣列器件(FPGA)具有編程方便、高集成度、高可靠性等優點。為了滿足科研和實際測試要求,本文設計了一種以FPGA、高速D/A為核心,能產生多路頻率可調信號的信號源系統。該系統中波形數據、控制命令字由上位機發出,通過FPGA控制在數據存儲器中存儲波形數據,并將波形數據讀出送入DAC進行數模轉換后得到相應的模擬信號波形及開關量的控制。利用上述方法設計的信號源,信號產生靈活、功能擴展方便、信號參數可調,實現了硬件電路的軟件化設計,具有特殊的現實意義和廣泛的應用前景[1]。
1 系統設計
本信號源系統主要由數據輸出(上位機軟件)、USB數據傳輸接口、數據緩沖與存儲(FIFO和SRAM)、控制部分(FPGA) 、數據的轉換及調理(DAC、跟隨器)及開關量的輸出等6個模塊組成。
系統總體設計框圖如圖1所示,其具體工作流程為:PC機發送數據至USB單片機端點FIFO,當數據大小達到512 B時,數據自動打包后送入外部緩沖FIFO。FIFO是一種先進先出的數據緩存器,它與普通存儲器的區別在于沒有外部讀寫地址線,靠空/滿標志的產生來控制數據的寫入與讀出。在FPGA控制模塊中,當FPGA接收到FIFO半滿信號后,由FPGA控制將波形,數據存于SRAM中。然后FPGA控制波形數據從SRAM中取出后送D/A進行轉換,經數模轉換和調理電路后即得所需波形,或直接由FPGA將數據發送到繼電器來控制外部供電系統的開斷。
2 模塊設計
2.1 USB傳輸部分
USB 接口即“通用串行總線接口”,是應用于計算機領域的新型接口之一,它使得外圍設備與計算機的連接更加高效、便利。USB 接口不僅具有傳輸速率快、即插即用、支持熱插拔等特點,而且易于擴展,可以有效地解決計算機外圍接口不足的問題。隨著在工程實際中對數據傳輸的速率要求越來越高,傳統的串口、并口傳輸已經不能滿足數據傳輸速率的要求,而USB2.0 接口最高可達480 Mb/s 的高速傳輸速率,使得計算機和外圍設備之間的高速數據傳輸成為可能。同時,USB 接口設備的普及也促使其成為數據高速傳輸中設備連接的首選接口。
本設計考慮了兩種USB2.0通信接口設計模式:(1) 基于USB 單片機的接口設計。例如以Cypress 公司開發的CY7C68013 單片機為控制核心而設計的USB 通訊接口;(2)基于協議轉換芯片的接口設計,例如以FTDI 公司推出的FT245BM 協議接口芯片為控制核心的USB 通信接口。
(1)USB-單片機
CY7C68013單片機[2]的GPIF接口有16位數據線、6個RDY信號和6個CTL信號。RDY信號用于對輸入的信號進行判斷, CTL用于輸出對外部器件的控制命令,16位數據線用于單片機與外部器件進行數據交換和傳輸。該芯片集成了51單片機內核、USB2.0收發器、串行接口引擎(SIE)、4 KB FIFO存儲器以及通用可編程接口等模塊,這些模塊保證了CY7C68013與DSP、ATA等外圍器件實現無縫、高速的數據傳輸。
(2)USB-FIFO
FT245BM是由FTDI公司推出的USB協議芯片。FT245BM內含2個FIFO數據緩沖區。一個是128 B的接收緩沖區,另一個是384 B的發送緩沖區。它們用作USB數據與并行I/O口數據的交換緩沖區。FIFO是實現與外界(微控制器、FPGA或其他器件)數據互換的接口,它主要通過8根數據線DO~D7、讀寫控制線RD和WR以及FIFO發送緩沖區空標志TXE和FIFO接收緩沖區非空標志RXF來完成數據的交互。FT245BM與FPGA之間的邏輯連接圖如圖2所示。
通過USB-單片機和USB-FIFO兩種傳輸方式的對比來看,FT245BM USB接口協議芯片具有設計簡單、使用簡便的特點。但是,由于受其芯片內部FIFO空間所限,導致傳輸速率有限,最高只能達到1 MB/s左右;同時由于波形數據和控制命令字都是通過DATA(7:0) 8個端口進行輸入或輸出,所以在傳輸時是分時復用的,不僅在上位機和底層硬件通信時帶來很大的不便,而且降低了信號源的頻率,遠遠小于1 MB/s[3]。
CY7C68013單片機具有傳輸速率快、程序設計靈活性強、傳輸速率高等特點。它支持12 Mb/s的全速速率和480 Mb/s高速傳輸速率,并且用戶可以根據實際情況來編寫和修改數據傳輸的程序模塊,但是其程序的設計相對FT245BM來說比較復雜,需要用戶根據實際需求來開發相關的動態鏈接庫和應用程序,以完成對數據傳輸的控制。
兩種基于USB的設計方法各有優缺點,根據實際實驗設計的需要,在傳輸速率不高、接口設計比較簡單的情況下,可以考慮使用FT245BM USB接口協議芯片。而對于傳輸速率要求較高,接口設計比較復雜,同時要求根據實際需求來設計數據傳輸模塊的場合,可以考慮使用CY7C68013 USB單片機。本設計在前期試驗中采用FT245BM,但由于傳輸速度的限制以及控制的實時性,最終采用了CY7C68013 USB單片機設計模式。
2.2 FPGA控制部分
FPGA程序控制流程圖如圖3所示。
FPGA有兩種工作模式:第一種是數據存儲模式,即控制讀取FIFO中的波形數據并存儲到SRAM中。進入這種工作模式后,FPGA判斷FIFO的空信號是否有效;如果FIFO的空信號無效,則FPGA控制FIFO的讀信號有效,從FIFO中讀取波形數據存儲到SRAM中。SRAM的存儲方式采用分塊存取的方式,在數據讀取時可通過分塊掃描的方式均勻讀出各種波形數據,并且通過簡單的修改掃描頻率即可控制波形頻率。第二種是數據轉換模式,即控制讀取SRAM中的波形數據傳送給D/A轉換器,并控制D/A轉換器完成轉換和對繼電器開斷。
2.3 D/A轉化部分和開關電路[4-5]
DAC715是美國TI公司生產的16位高精度數模轉換器,該芯片具有16位數據總線,可在工作電壓為±12 V或±15 V時,實現0 V~10 V的模擬電壓輸出。FPGA主要通過DAC715的輸入工作選通信號WR、寄存器控制信號A0和D/A鎖存控制信號A1 來控制DAC715完成數模轉換。DAC715輸入數據與輸出電壓的對應關系如表1所示。
本設計的開關量采用繼電器AQY210,該繼電器是電流驅動,電路連接圖如圖4所示。
本文所設計的信號源利用USB接口技術,實現了計算機命令字和波形數據的實時下載,使得產生的信號頻率、幅值和偏置靈活可調,可滿足不同的實驗要求,同時對外部供電系統可以靈活控制。事實上,這種控制的靈活性也使其在航天測試上得到了廣泛運用。
參考文獻
[1] 陳亮,張煒.基于FPGA的多功能信號源生成系統設計與實現[J]. 現代電子技術,2009,32(6):34-37.
[2] 林剛勇,馬善農,許邦蓮.CY7C68013在數據傳輸中的應用[J].微計算機信息,2007(29):76-78.
[3] 周功業,陳玉剛.基于USB和GPIF的大規模數據采集系統[J].微型機與應用,2003,22(11):16-18.
[4] 雷霆,李航,曲永志.基于FPGA的可調信號源檢測裝置的設計 [J].自動化信息,2008 (12):41-43.
[5] 王春玲,王杰.可變頻標準信號源的VHDL設計[J].泰山學報,2009(11):79-82.