三十二通道掃描PCI數(shù)據(jù)采集模塊的設(shè)計方案
引言
數(shù)據(jù)采集模塊是自動測試系統(tǒng)中的主要功能模塊之一,在光譜分析、醫(yī)療成像等領(lǐng)域,通常需要組建多時基、多通道虛擬儀器系統(tǒng),有些領(lǐng)域要求輸入信號頻率并不高,從幾赫茲到幾百赫茲。對于不同頻率范圍的信號,通常要求的采樣率也不同。有時為了配合信號處理算法,甚至要求采樣率可以在一定范圍內(nèi)隨意設(shè)定。這些應(yīng)用通常要求多個通道循環(huán)掃描采集,甚至是差分單端方式可選擇的輸入,對于不同的應(yīng)用還要求增益的可變性。針對這些要求,本文介紹了一種三十二通道掃描數(shù)據(jù)采集模塊的設(shè)計方案。該方案最高采樣率為200KSa/s,存儲深度IM×16bit ,垂直分辨率16bit,增益可編程為1、2、5、10、100五個等級的PCI數(shù)據(jù)采集模塊的設(shè)計與實現(xiàn)。
總體設(shè)計方案的確定
根據(jù)上述系統(tǒng)的技術(shù)指標(biāo),本設(shè)計硬件電路主要包括信號調(diào)理電路、信號輸入方式選擇電路、程控增益電路、A/D轉(zhuǎn)換、數(shù)據(jù)存儲、觸發(fā)控制以及PCI接口幾個部分。三十二個通道的模擬信號經(jīng)過信號調(diào)理電路使信號的帶寬、峰值和偏置電壓等達到ADC的輸入信號要求后,經(jīng)過單端變差分的轉(zhuǎn)換(前端也可以是直接輸入的三十二路差分信號),通過多路開關(guān)選擇輸入的多種方式,再通過兩級可編程增益儀用放大器進行增益的控制,然后進入ADC把模擬信號轉(zhuǎn)換成相應(yīng)的數(shù)字信號。邏輯控制單元在接收到采集命令后,根據(jù)相應(yīng)的觸發(fā)方式啟動ADC進行采樣,采樣得到的數(shù)據(jù)通過FPGA內(nèi)部FIFO直接發(fā)送到上位機處理或者存儲到高速的靜態(tài)RAM中以便歷史顯示。三十二個通道共享RAM最大的采樣速率是200KSa/s,那么連續(xù)采樣存儲時間最大可以達到4s。上位機通過32位的數(shù)據(jù)總線,采用查詢、中斷或者DMA方式將采集的數(shù)據(jù)讀取到內(nèi)存中進行后期的數(shù)據(jù)處理和分析?;窘Y(jié)構(gòu)如圖1所示。
信號調(diào)理電路設(shè)計
本設(shè)計信號調(diào)理電路包括輸入方式選擇電路和增益選擇電路。將經(jīng)過前端模塊調(diào)理電路變成的三十二路差分信號(或者直接從接口輸入的三十二路差分信號)通過低導(dǎo)通阻抗、低泄漏電流、帶過壓保護的多路模擬開關(guān)切換成一路差分通道,再通過普通運放構(gòu)成的電壓跟隨器進行阻抗變換,避免后級的多路開關(guān)的導(dǎo)通阻抗影響前級電路。多路開關(guān)選擇DG408,它是八選一多路開關(guān),具有較低的導(dǎo)通阻抗和低功耗、低泄漏電流。通過八個DG408把三十二通道的差分輸入變換成四通道的差分輸入,再通過一個DG409(4路差分開關(guān)),將輸入信號變成一路差分輸入,然后再經(jīng)過一個DG409選擇信號的輸入方式,通過這樣的電路能實現(xiàn)四種輸入方式:零輸入、單端正極輸入、單端負極輸入和差分輸入,電路如圖2所示。
選擇一種輸入方式后,經(jīng)過兩級可編程增益儀表放大器AD8250,可以實現(xiàn)增益值可選1、2、5、10、100五個等級。AD8250具有較寬工作電壓范圍,可以工作在±5V~±15V;輸入阻抗可以達到G?級別,有效防止了消耗的衰減;單個AD8250有1、2、5、10四個增益選擇,在G=10的時候仍具有最小98dB的高共模抑制比和低增益漂移。AD8250有兩個增益控制端A0、A1,通過寫這兩個位選擇增益值,通過WR可以鎖存狀態(tài)值,從而穩(wěn)定保持在該增益值上。本設(shè)計通過在FPGA內(nèi)部內(nèi)嵌32bit NIOSII軟核處理器,NIOSII通過SPI總線傳送數(shù)據(jù)給CPLD然后控制選擇信號的輸入方式和寫AD8250增益控制位。增益選擇電路如圖3所示。
數(shù)據(jù)采集與控制電路設(shè)計
A/D轉(zhuǎn)換器是數(shù)據(jù)采集系統(tǒng)的核心,對A/D器件的選擇往往影響到整個系統(tǒng)的性能指標(biāo),甚至可能需要重新設(shè)計電路。為了實現(xiàn)三十二通道掃描采樣,本設(shè)計采用多路提取技術(shù),把三十二路差分輸入信號經(jīng)過兩級多路開關(guān)提取出一路差分信號,再通過增益變換電路將差分信號變成單端模擬信號輸入到ADC中進行采樣,通過FPGA控制CPLD定時掃描的方式實現(xiàn)三十二通道輪流采樣。本設(shè)計選擇的A/D轉(zhuǎn)換器是ADI公司的AD7612,它具有-路雙極性的高阻抗輸入,采樣速率為750KSa/s,具有可選擇的并行或者串行的輸出接口,容易與其他器件連接。AD7612內(nèi)部集成了采樣的時鐘電路,具有可選擇的內(nèi)部2.5V參考電壓或者外部用戶自己提供的參考。AD7612有四個差分輸入范圍和三個差分輸入模式,不同的模式對應(yīng)不同的特點。Warp模式具有最快的吞吐率,正常模式具有最快的異步吞吐率,脈沖模式可以實現(xiàn)吞吐率和功耗的線性映射。根據(jù)技術(shù)要求本設(shè)計選用正常模式,采用并行16位數(shù)據(jù)的輸出方式和FPGA直接接口。根據(jù)AD7656的內(nèi)部時序?qū)⒉杉臄?shù)據(jù)并行輸出到數(shù)據(jù)緩沖池和SRAM中。
本設(shè)計數(shù)字控制部分由FPGA和外擴的CPLD共同合作完成。FPGA內(nèi)部嵌入一個NIOSII軟核,負責(zé)數(shù)據(jù)采集、數(shù)據(jù)傳輸和輸入方式以及增益的選擇控制。下面詳細分析這三個數(shù)字控制電路的實現(xiàn)方法。
信號輸入方式和增益選擇控制邏輯的實現(xiàn)
FPGA和CPLD之間通過SPI同步串行總線通信。通過在FPGA內(nèi)部構(gòu)建一個5bit地址總線,5bit數(shù)據(jù)線的RAM塊用來存儲三十二個通道碼。再構(gòu)建一個8bit地址線,8bit數(shù)據(jù)線的RAM塊用來存儲信號的輸入方式和增益值。8bit數(shù)據(jù)的前兩位是輸入方式的選擇碼,后六位是增益選擇碼。在送通道碼之前只送一次輸入方式和增益值碼,直到下一次需要改變的時候再送。在CPLD中構(gòu)建一個二選一的開關(guān)和64bit的串并轉(zhuǎn)換把通道碼或者輸入方式選擇碼和增益選擇碼送到相應(yīng)的引腳。從而實現(xiàn)信號順序掃描和點名掃描以及相應(yīng)的輸入方式和增益選擇控制邏輯的實現(xiàn)。
數(shù)據(jù)采集和傳輸控制邏輯的實現(xiàn)
為了便于控制,本設(shè)計在FPGA內(nèi)部嵌入一個NIOSII軟核處理器,NIOSII處理器通過 Avalon總線與外設(shè)通信,根據(jù)設(shè)計的要求,在NIOSII處理器中定制帶中斷的定時器、DMA控制器、SPI控制器和PIO控制器。由于設(shè)計要求最高采樣率是200KSa/s,而AD7612從啟動采樣到得到穩(wěn)定的數(shù)據(jù)時間是1.5μs ,所以通過設(shè)定定時器最短的時間5μs(200KSa/s任意設(shè)定,可以通過實時設(shè)置定時器的值來完成)來實現(xiàn)。每隔5μs,定時器計數(shù)到0,產(chǎn)生一次IRQ中斷,在中斷服務(wù)程序中執(zhí)行如下操作:
讀取ADC采集的結(jié)果;
是否需要改變輸入方式和增益,如果需要,送下一個值;
送下一個通道碼;
判斷ADC緩沖池( 30K×16bit FIFO)是否已滿,如果滿則把讀取的數(shù)據(jù)扔掉,否則把數(shù)據(jù)送到FIFO中;
在送數(shù)據(jù)到FIFO的同時,也需要復(fù)制數(shù)據(jù)到RAM中。RAM數(shù)據(jù)的存儲需要在FPGA中設(shè)計一個20bit的向上增加的地址計數(shù)器來制定數(shù)據(jù)的存儲位置,也要設(shè)計一個數(shù)據(jù)比較器,當(dāng)計數(shù)器計滿時,跟數(shù)據(jù)比較器預(yù)設(shè)的值相等,產(chǎn)生一個電平,將RAM的數(shù)據(jù)通道斷開,同時告訴NIOSII啟動DMA控制器,在PCI9054的本地總線和RAM之間建立一個DMA通道,把數(shù)據(jù)取走。圖4是系統(tǒng)控制流程圖。
PCI接口控制時序
本設(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ù)傳輸。基于以上原因本設(shè)計選用PCI接口芯片PCI9054作為總線控制器和上位機通信。該芯片符合PCI2.2總線規(guī)范,支持低成本從屬適配器,PCI時鐘為0~33MHz,基本可達到60Mbyte/s的平均傳輸速率。
FPGA按照PCI9054的讀寫時序設(shè)計讀寫控制邏輯,接收上位機傳來的命令,對電路進行相應(yīng)的設(shè)置后,啟動ADC采集數(shù)據(jù),然后將采集的數(shù)據(jù)送到ADC緩沖FIFO中(或者控制將存儲在RAM中的數(shù)據(jù)),當(dāng)FIFO滿后(或者RAM滿后)通過相應(yīng)的傳輸方式將數(shù)據(jù)發(fā)送到PCI9054的本地數(shù)據(jù)線上,并將地址譯碼作為局部器件的地址片選,從而實現(xiàn)對PCI總線的局部器件的訪問。PCI9054從模式的局部總線包括局部時鐘線LCLK,數(shù)據(jù)線LD[31..0],地址線LA[31..2],控制狀態(tài)線ADS#,LBE[3..0]#,BLAST#,LW/R#,READY#和仲裁線LHOLD和LHOLDA。本設(shè)計使用了16位的本地數(shù)據(jù)總線和24位地址總線進行數(shù)據(jù)傳送和地址譯碼控制。PCI9054 DMA方式工作時序圖如圖5所示。
結(jié)論
通過詳細分析各種數(shù)據(jù)指標(biāo),本文所設(shè)計的PCI數(shù)據(jù)采集模塊,充分考慮設(shè)計中各種影響信號質(zhì)量的因素,包括噪聲的抑制和信號衰減等。合理的設(shè)計保證了PCB板設(shè)計方面的電磁兼容性和信號回路方面的要求,同時綜合考慮各種方案,減小了PCB板的尺寸,減少了設(shè)計成本。通過FPGA內(nèi)嵌NIOSII和擴展的CPLD可靠地實現(xiàn)了三十二個通道不同輸入方式、增益改變、順序掃描或者點名掃描的要求,通過定時中斷實現(xiàn)最高實時采樣率200KSa/s和低于200KSa/s時任意采樣率的設(shè)置指標(biāo)。通過選用高精度的ADC實現(xiàn)了設(shè)計對16bit分辨率的需求,合理的元件選擇保證了檢測信號的幅值范圍為±100mV、±1V、±10V的各種量程需求。通過真實的硬件測試,各項指標(biāo)均得到滿足。本文設(shè)計的PCI掃描采集模塊適用于最多三十二通道掃描采集的場合,同時根據(jù)設(shè)計思路可以擴展更多輸入通道和更高采樣速度和分辨率的采集模塊。
評論