|
數據采集是自動測試系統的主要功能之一,而在一些應用領域,比如超聲、醫療電子中,信號的頻率范圍不同會要求采樣率的不同。有時,為了配合信號處理算法,甚至要求采樣率在一定范圍內隨意設定。而且,這些應用通常要求多個通道并行采集,甚至是差分單端方式可選擇的輸入。針對這些要求,我們提出了一種最多可達12通道的同步并行多通道數據采集方案。該方案能實現的最高采樣率為10MS/s,存儲深度2×32M×16bit(2個SDRAM),垂直分辨率14bit,可編程增益為1、2、5、10、100五個等級。 一、設計方案的確定 硬件電路主要包括信號調理電路、信號輸入方式選擇電路、程控增益電路、A/D轉換、數據存儲、觸發控制以及PCI接口幾個部分。8個通道輸入的模擬信號經信號調理電路調理后,進行單端變差分的轉換(前端也可以是直接輸入的8路差分信號),由多路開關選擇輸入方式后,再通過兩級可選擇增益放大器進行增益控制,最后進入ADC轉換成相應的數字信號。而邏輯控制單元在接收到采集命令后,會根據相應的觸發方式啟動ADC進行采樣,再將采樣得到的數據通過FPGA內部串并轉換邏輯和數據輸出仲裁邏輯存儲到SDRAM中準備上傳。本設計的采集極限指標是8個通道同時同步采集,最大采樣速率是單通道10MS/s,連續采樣存儲時間最大可以達到3.2s。上位機通過32位的數據總線采用查詢、中斷或者DMA方式將采集的數據讀取到內存中進行后期的數據處理和分析。系統的基本結構如圖1所示。 圖1 系統原理框圖 二、信號調理電路設計 在本設計中,信號調理電路包括輸入方式選擇電路和增益選擇電路。此部分中,高輸入阻抗、低輸出阻抗的普通運算放大器構成的電壓跟隨器會對前后電路進行隔離,避免后級多路開關的導通阻抗影響前級電路。輸入端加兩個二極管,提供±15V的鉗位電壓,形成過壓保護。多路開關選擇DG409,它是4通道差分多路開關,具有較低的導通阻抗和低功耗和低泄漏電流。信號的輸入方式有四種:0輸入、單端正極輸入、單端負極輸入和差分輸入,通過DG409正好可以選擇這四種輸入方式,電路如圖2所示。 圖2 信號輸入方式選擇電路 選擇一種輸入方式后,經過兩級可編程增益儀表放大器AD8250,可以實現增益值可選1、2、5、10、100五個等級。AD8250有兩個增益控制端A0、A1,寫這個兩個位,能選擇增益值,并通過W/R鎖存狀態值,從而保證該增益的穩定。本設計通過在FPGA內部設計串行傳輸邏輯,將數據寫入CPLD,然后控制選擇信號的輸入方式和寫AD8250增益控制位。增益選擇電路如圖3所示。 圖3 增益選擇電路 三、數據采集與控制電路設計 A/D轉換器是數據采集系統的核心,對A/D器件的選擇往往影響到整個系統的性能指標。為了實現8通道并行同步采樣可以采用兩種方案。一是采用8個獨立的A/D轉換器,這樣不僅成本比較高,而且難以實現8通道同步采樣,繪制PCB板的時候也有很大的困難。第二種方式就是本設計的方法,采用一個AD9252來滿足最多8個通道的并行同步采樣要求。本設計通過NIOSII軟核處理器向AD9252發送控制字,以實現8通道并行同步采樣。首先,輸出14bit的LVDS信號到FPGA,經由串并轉換邏輯輸出14bit并行數據,再通過仲裁邏輯實現不同通道數據存儲位置的不同,最后通過兩片SDRAM的乒乓操作實現連續數據采集和傳輸。 本設計數字控制部分由FPGA和外擴的CPLD共同合作完成。由于設計需要大量的引腳資源,而FPGA的引腳資源有限,所以在FPGA外部通過SPI總線接口外接一片CPLD,從而控制8個通道的輸入方式選擇和增益選擇。FPGA內部嵌入一個NIOSII軟核,負責數據采集、數據傳輸和輸入方式以及增益的選擇控制。下面詳細分析一下這三個數字控制電路的實現方法。 1、信號輸入方式和增益選擇控制邏輯的實現 FPGA和CPLD之間通過串行總線通信。通過在FPGA內部構建一個8bit地址總線,8bit數據線的RAM塊,用來存儲輸入方式和增益選擇控制數據。8bit地址線的前三位用來控制通道號,后五位控制所在通道的20種選擇狀態(4種輸入方式,5種增益選擇)。8bit數據的前兩位是輸入方式的選擇碼,后六位是增益選擇碼。在FPGA內構建一個地址計數器來進行通道的選擇數據提取,該計數器的時鐘頻率是SPI控制器時鐘的32倍。 在CPLD中構建一個48bit的串并轉換邏輯,把輸入方式選擇碼和增益選擇碼送到相應的引腳,從而實現信號輸入方式和增益選擇控制邏輯的實現。 2、數據采集和傳輸控制邏輯的實現 本設計在FPGA內部設計邏輯如下: ● 讀取ADC串行LVDS數據流,然后通過串并轉換邏輯把串行數據流變成并行數據流; ● 內部設計SDRAM的控制邏輯,實現數據的存儲,通過內部的仲裁邏輯實現不同通道的數據存儲按照一定的時序存儲在SDRAM中; ● 判斷第一個SDRAM已經滿后,通過片選切換邏輯把數據存儲在第二個存儲器中,同時通過DMA方式把數據傳輸到上位機。 圖4 控制邏輯框圖 3、PCI接口電路設計 本設計采用PCI總線作為數據總線連接采集模塊和上位機進行通信,用以實現數據的分析處理和歷史顯示等功能。 由于設計中的采集模塊需要工作在連續采集系統中,所以當存儲器存滿之后,需要快速輸出通道將數據通過PCI接口傳輸出去。本設計采用DMA的方式傳輸數據,這樣做既可以不占用CPU資源,又能實現快速的數據傳輸。我們選用了使用比較穩定的專用PCI接口芯片PCI9054作為總線控制器和上位機通信。該芯片符合PCI2.2總線規范,支持低成本從屬適配器PCI時鐘為0~33MHz,理論的數據傳輸速率可達132Mb/s,實際速率為60Mb/s。 圖5 PCI接口電路 本設計中,PCI9054被配置為從模式,用FPGA作為主控制器實現數據的傳輸控制。PCI9054有三種總線操作模式:M模式、C模式和J模式。M模式主要是配合MPC850/MPC860處理器使用的,主要用在電信領域。J模式用來滿足接口設計比較復雜的情況,C模式主要為通用模式。本設計采用C模式,接口電路如圖5所示。 FPGA按照PCI9054的讀寫時序設計讀寫控制邏輯,接收上位機傳來的命令,對電路進行相應的設置后,啟動ADC采集數據,然后將采集到的數據送到SDRAM中;當一個SDRAM滿后產生一次中斷,將已經滿SDRAM的地址線映射到PCI9054的本地數據線上,同時通過本地主控方式配置PCI9054的DMA控制器,通過DMA方式將SDRAM中準備好的數據上傳。本設計使用了14位的本地數據總線和24位地址總線進行數據傳送和地址譯碼控制。 四、結語 通過充分考慮設計中可能出現的各種影響信號質量的因素,設計了過壓保護電路。通過選用合適的元件減少了電路板設計復雜程度,以及成本的最優化。經過實際測試,模塊很好地達到了本文所提及的技術指標,具有很高的實用性。 |