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