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