最近幾年,FPGA以其應用的靈活方便蓬勃發展,在通信、航空航天、醫療設備、消費類電子產品等領域一展身手。使用FPGA控制CF的技術到目前為止還沒有成熟,本文從硬件和軟件角度出發,介紹了FPGA與CF卡的接口設計、給出了用雙RAM訪問CF卡的編程,并且利用FPGA作為FIFO對AD采集的數據進行緩沖,然后存儲到大容量的CF卡中。
1 系統方案設計
數據存儲和采集系統主要由三部分組成,CF卡的存儲、FPGA的數據雙緩沖器、狀態寄存器和A/D轉換器組成。
1)CF卡數據存儲,其作用是將AD采集到的數據進行存儲,當數據容量存儲滿時,發送滿信息。FPGA得到滿信息后,停止對數據的采集并提示用戶更換CF卡。
2)FPGA主要利用內部的SRAM提供數據輸出/輸入的雙緩沖作用,采用雙緩沖的原因是防止數據的溢出和保證數據傳輸的連續性。當接收到滿信息時,停止AD采集,并做出提示。
3)A/D轉換器的作用,是將所要采集的模擬量轉換成數字量;通過濾波和放大后,由FPGA接收、緩沖、存儲至CF卡。高速AD轉換器采用的是轉換速率為20MHz的MAX1425。
系統工作過程為:系統通過外部一個按鍵的低電平給數據采集系統一個采樣開始控制命令,FPGA根據該命令向AD轉換器發出相應控制信號;由于ADC采樣率為20MHz,為和CF卡存儲速度相匹配,在FPGA內部生成一個FIFO緩存器。AD轉換器在FPGA的ADC接口控制電路控制下,把模擬信號轉換成數字信號,并將采樣數據存入FPGA內部FIFO緩存。同時FPGA的查詢CF卡是否有容量,如果CF卡未滿,那么由FPGA的CF卡接口控制邏輯將采樣結果從FPGA內部FIFO緩存送入CF卡中。當CF卡的容量達到一定程度后,FPGA發出滿信息,向AD狀態機發送停止采集的命令,并提示用戶已滿。由于把FPGA設置為特定的自動模式,因此FPGA控制AD采集以及把數據送往CF卡間的所有操作不需要外部干預,從而保證足夠的數據傳輸速率。采樣過程中FPGA的CF卡接口控制邏輯依次取走批量數據。在進行CF卡的數據存儲時AD仍然持續轉換,FPGA內部FIFO也被持續寫入轉換結果。
2硬件設計
系統的硬件由模數轉換接口電路、數據存儲與傳輸控制電路和接口電路構成。
2.1模數轉換電路設計
模數轉換接口電路是整個系統的重要組成部分,它由低通濾波器、多路選擇開關和AD轉換器構成,如圖2所示。在系統中起這個作用的核心器件是AD轉換芯片MAX1425。
模擬輸入信號分別經過由運放THS4052構成的抗混疊低通濾波器去除高頻成分,防止信號產生“混疊現象”。模數轉換器MAX4125將模擬信號轉換為數字信號。MAX4125的控制信號由FPGA板提供,MAX4125在控制信號的作用下,以適當的時序完成轉換工作。
2.2數據采集與傳輸控制電路
數據采集與傳輸控制電路的開發工作主要集中在FPGA上。FPGA負責在CF卡與ADC芯片之間的緩沖與控制。一邊與ADC接口,另一邊與CF卡接口,產生數據采集、AD轉換、FIFO所需的全部控制信號。實現對傳輸數據的緩存、讀/寫控制、時鐘、輸出使能以及對ADC的控制等功能。
2_2.1 FPGA內部總體設計
FPGA設計內部結構簡圖如圖3所示,由FIFO、CF卡控制狀態機、ADC接口控制狀態機三部分構成。圖中由右向左的寬箭頭表示數據流,Fd[15:0]是與CF卡連接的數據總線。單線箭頭表示輸入輸出及FPGA內部各個模塊間的控制信號線。
從數據流向看,數據在ADC接口控制狀態機的協調下通過ADC接口送入FPGA的FIFO中,經過FIFO的緩沖后,在CF卡控制狀態機的協調下,數據傳輸到FPGA外的CF卡;當CF卡存儲滿時,FPGA通過ADC狀態機停止AD的采集,并提示用戶更換CF卡。
2.2.2數據雙緩存器FIFO
FIFO主要由三部分組成:FIFO主體、FIFO讀模塊、FIFO寫模塊。FIFO主體部分利用FPGA內部的RAM,通過coregenerator來生成所使用的FIFO。FIFO讀模塊、FIFO寫模塊主要接收外界給出的讀寫開始與停止脈沖信號,轉換為讀寫請求信號,給到fifo主體中,同時讀寫模塊會處理接口兩邊的時鐘信號,分別反向后再作為fifo的讀寫時鐘使用,具體結構見圖4、5。
評論
查看更多