摘要:利用可編程邏輯器件搭建了一個可編程的數據采集平臺。
關鍵詞:FPGA PCI接口 高速數據采集 數字濾波
中圖分類號:TP274.2 文獻標識碼:B 文章編號:1002-2422(2008)03-0087-02
1 系統硬件設計
1.1系統模擬部分電路設計
模擬部分的總體設計框圖見圖1。

模擬部分整體的設計上盡量實現高精度和通用易用性,如32路單端輸入或者16路雙端輸入,程控增益1-10倍儀用放大器,可以選擇屏蔽線電平為地或者測量端共模電平。這樣便能適合大多數的測量場合。為了使用方便,全卡的控制全部為程控,不設跳線、開關。模擬信號輸出后通過鎖存器和緩沖器件轉到FPGA上。
AD9240的輸入級有很大的靈活性,因而很容易與圖像處理、通訊、醫療和其它數據采集系統接口。對于各種不同輸入距離,差動輸入結構允許組成單端的或差動的輸入接口。它的取樣保持放大器(SHA)完全適合于多路系統。系統能連續打開滿量程信號電壓通路,就如同工作在Nyquist頻率之上的單個取樣通路輸入級一樣。因為差動輸入模式下的SHA即使在額定的Nyquist頻率(5MHz)之外仍具有良好的動態性能。
1.2系統數字電路設計
數字部分要完成的任務,包括數字量的輸入輸出、PCI接口、模擬部分接口、存儲系統。嵌入在FPGA里的其他Core屬于固件,這里只討論硬件的設計。整體框圖如圖2。

因為模擬量的采集時會摻雜數字量的輸入輸出,所以現在的模擬數據采集卡往往會加上一些數字量的輸入輸出功能,使兩種數據采集公用一套下面的接口,達到節省成本的目的。當然這種數字量的輸入輸出很簡單,一般不帶隔離的功能a采集卡的設計上加上了數字量的輸入輸出,兩者都掛在存儲系統的32位數據總線上,接口部分是用鎖存器和三態門完成的。
考慮到設計的要求:支持PCI電平,支持多種類型的Core,綜合成本考慮,選擇了ALTER公司的EP1C120240。該器件有12060個LE(邏輯單元),52個M4KRAM,2個鎖相環,支持多種電平包括特殊的PCI反射波驅動電平,支持嵌入多種類型的Core包括ALTERA的NIOSII 32位嵌入式處理器,提供了足夠的加。FPGA的配置采用AS主動串行配置方式,由一個外置串行配置芯片完成FPGA的上電配置。配置芯片編程由ALTERA BYTEBLASTER電纜下載。
系統存儲器的功能主要是高速數據采集過程中的緩存,FPGA中嵌入的NIOS II處理器的系統內存和用來存儲系統信息、模擬部分線性化表等內容。存儲器件上包括SDRAM和FLASH。考慮模擬信號的采集緩沖和FPGA內部嵌入的32位處理器會用到較大的存儲空間,設計了64MB的SDRAM和2MB的FLASH存儲器。兩種存儲器掛在同一條數據總線和地址總線上。其中SDRAM的運行頻率為133MHz,帶寬為532MDS,足夠內部處理器和緩沖使用。
1.3系統的電源和抗干擾設計
模擬部分外圍接口要考慮接口的密度和易用性選用合適的接插件,在外圍設計時要按照不同類型的傳感器為內部放大器的偏置電流提供回路。模擬部分的抗干擾設計上,外部為傳輸線的屏蔽層加了信號共模電壓的跟隨,實踐證明這樣比屏蔽層接地提高了傳輸線的輻射干擾和分布電容。板卡內部采用模擬和數字部分在布局、接口、電源上完全分離,并采用較好的濾波器件消除傳導干擾和輻射干擾。
由于在電源的設計上,考慮到數字部分要和模擬部分完全分離,因此要把系統內部用到的8種電源和地分開設計。特別注意的是基準電源的設計,考慮到基準電壓源的精度問題,這里沒有使用ADC內部提供的基準源,而另外設計了一個高精度的電壓基準源。
2 PCI接口
根據用戶設備的性質不同,PCI設備分為MASTER和TARGET,PCI接口類型也就分為MASTER和TARGET兩種接口。概括地說,PCI接口主要包括PCI標準配置寄存器(64字節)、PCI總線邏輯接口、狀態轉換和數據緩沖區等。一些可編程邏輯芯片制造商提供了PCI局部總線接口IP核,例如Altera公司的MegaCore。這些IP核經過了嚴格的測試,可以為用戶直接使用。用戶通過組合小同功能的IP核,可以方便快捷地實現大型系統。
對于PCI設備控制器來說,為了實現PCI接口的基本功能,要有以下幾個部分:PCI接口邏輯部分,PCI設備狀態機部分,配置空間部分和數據緩沖部分。如圖3所示,給出了PCI接口設計的基本框架圖,實現數據傳輸。

3 嵌入式32位CPU
NIOS II系列嵌入式處理器是Altera推出的第二代軟核嵌入式處理器解決方案。NIOS II處理器內核是一個32位的RISC處理器,具有共享的通用指令集結構,專門針對Altera的主流FPGA系列進行了優化。
NIOS II嵌入式處理器專為單芯片可編程系統設計而優化,是一種面向用戶、可以靈活定制的通用RISC嵌入式CPU。采用Avalon總線結構通信接口,帶有增強的內存、調試和軟件功能。NIOS II的硬件開發后,開發環境SOPCBuilder可自動生成與自定義的NIOS II CPU和外設系統、存儲器、外設地址映射等相應的軟件開發包SDK,在生成的SDK基礎上,進入軟件開發流程。可采用匯編或C、C++等進行程序優化開發。
4 驅動程序設計
在設計驅動程序之前,要對欲控制的硬件設備進行細致地分析,更需要詳細了解硬件設備的特性。硬件設備的特性會對驅動程序設計產生重大的影響。
PCI驅動程序主要組成:設備初始化、端口操作。
5 板卡的設計
在數據采集卡PCB的設計時,考慮了插卡的高頻性能、電源去藕與干擾的抑制、接地方式的選擇等因素。做數據采集卡時,選擇制作4層的PCB板。原因有三:其一,在數據采集卡中,經常使用封裝形式為PQFP等需要高密度走線的芯片;其二,便于電源線、地線的布線。4層PCB中有一層電源線、一層地線、兩層信號線,當遇到跟電源、地相連時,直接打過孔和內部的電源層、地線層相連就可以了;其三,可以較好地克服兩層PCB板中的地噪聲干擾問題。