新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 三十二通道掃描PCI數(shù)據(jù)采集模塊的設(shè)計(jì)方案

三十二通道掃描PCI數(shù)據(jù)采集模塊的設(shè)計(jì)方案

作者: 時(shí)間:2009-02-10 來源:網(wǎng)絡(luò) 收藏

引言

  是自動(dòng)測試系統(tǒng)中的主要功能模塊之一,在光譜分析、醫(yī)療成像等領(lǐng)域,通常需要組建多時(shí)基、多通道虛擬儀器系統(tǒng),有些領(lǐng)域要求輸入信號頻率并不高,從幾赫茲到幾百赫茲。對于不同頻率范圍的信號,通常要求的采樣率也不同。有時(shí)為了配合信號處理算法,甚至要求采樣率可以在一定范圍內(nèi)隨意設(shè)定。這些應(yīng)用通常要求多個(gè)通道循環(huán)掃描采集,甚至是差分單端方式可選擇的輸入,對于不同的應(yīng)用還要求增益的可變性。針對這些要求,本文介紹了一種三十二通道掃描的設(shè)計(jì)方案。該方案最高采樣率為200KSa/s,存儲深度IM×16bit ,垂直分辨率16bit,增益可編程為1、2、5、10、100五個(gè)等級的的設(shè)計(jì)與實(shí)現(xiàn)。

  總體設(shè)計(jì)方案的確定

  根據(jù)上述系統(tǒng)的技術(shù)指標(biāo),本設(shè)計(jì)硬件電路主要包括電路、信號輸入方式選擇電路、程控增益電路、A/D轉(zhuǎn)換、數(shù)據(jù)存儲、觸發(fā)控制以及接口幾個(gè)部分。三十二個(gè)通道的模擬信號經(jīng)過電路使信號的帶寬、峰值和偏置電壓等達(dá)到ADC的輸入信號要求后,經(jīng)過單端變差分的轉(zhuǎn)換(前端也可以是直接輸入的三十二路差分信號),通過多路開關(guān)選擇輸入的多種方式,再通過兩級可編程增益儀用放大器進(jìn)行增益的控制,然后進(jìn)入ADC把模擬信號轉(zhuǎn)換成相應(yīng)的數(shù)字信號。邏輯控制單元在接收到采集命令后,根據(jù)相應(yīng)的觸發(fā)方式啟動(dòng)ADC進(jìn)行采樣,采樣得到的數(shù)據(jù)通過FPGA內(nèi)部FIFO直接發(fā)送到上位機(jī)處理或者存儲到高速的靜態(tài)RAM中以便歷史顯示。三十二個(gè)通道共享RAM最大的采樣速率是200KSa/s,那么連續(xù)采樣存儲時(shí)間最大可以達(dá)到4s。上位機(jī)通過32位的數(shù)據(jù)總線,采用查詢、中斷或者DMA方式將采集的數(shù)據(jù)讀取到內(nèi)存中進(jìn)行后期的數(shù)據(jù)處理和分析。基本結(jié)構(gòu)如圖1所示。

基本結(jié)構(gòu)

  電路設(shè)計(jì)

  本設(shè)計(jì)信號調(diào)理電路包括輸入方式選擇電路和增益選擇電路。將經(jīng)過前端模塊調(diào)理電路變成的三十二路差分信號(或者直接從接口輸入的三十二路差分信號)通過低導(dǎo)通阻抗、低泄漏電流、帶過壓保護(hù)的多路模擬開關(guān)切換成一路差分通道,再通過普通運(yùn)放構(gòu)成的電壓跟隨器進(jìn)行阻抗變換,避免后級的多路開關(guān)的導(dǎo)通阻抗影響前級電路。多路開關(guān)選擇DG408,它是八選一多路開關(guān),具有較低的導(dǎo)通阻抗和低功耗、低泄漏電流。通過八個(gè)DG408把三十二通道的差分輸入變換成四通道的差分輸入,再通過一個(gè)DG409(4路差分開關(guān)),將輸入信號變成一路差分輸入,然后再經(jīng)過一個(gè)DG409選擇信號的輸入方式,通過這樣的電路能實(shí)現(xiàn)四種輸入方式:零輸入、單端正極輸入、單端負(fù)極輸入和差分輸入,電路如圖2所示。

信號輸入方式選擇電路

  選擇一種輸入方式后,經(jīng)過兩級可編程增益儀表放大器AD8250,可以實(shí)現(xiàn)增益值可選1、2、5、10、100五個(gè)等級。AD8250具有較寬工作電壓范圍,可以工作在±5V~±15V;輸入阻抗可以達(dá)到G?級別,有效防止了消耗的衰減;單個(gè)AD8250有1、2、5、10四個(gè)增益選擇,在G=10的時(shí)候仍具有最小98dB的高共模抑制比和低增益漂移。AD8250有兩個(gè)增益控制端A0、A1,通過寫這兩個(gè)位選擇增益值,通過WR可以鎖存狀態(tài)值,從而穩(wěn)定保持在該增益值上。本設(shè)計(jì)通過在FPGA內(nèi)部內(nèi)嵌32bit NIOSII軟核處理器,NIOSII通過SPI總線傳送數(shù)據(jù)給CPLD然后控制選擇信號的輸入方式和寫AD8250增益控制位。增益選擇電路如圖3所示。

增益選擇電路

  數(shù)據(jù)采集與控制電路設(shè)計(jì)

  A/D轉(zhuǎn)換器是數(shù)據(jù)采集系統(tǒng)的核心,對A/D器件的選擇往往影響到整個(gè)系統(tǒng)的性能指標(biāo),甚至可能需要重新設(shè)計(jì)電路。為了實(shí)現(xiàn)三十二通道掃描采樣,本設(shè)計(jì)采用多路提取技術(shù),把三十二路差分輸入信號經(jīng)過兩級多路開關(guān)提取出一路差分信號,再通過增益變換電路將差分信號變成單端模擬信號輸入到ADC中進(jìn)行采樣,通過FPGA控制CPLD定時(shí)掃描的方式實(shí)現(xiàn)三十二通道輪流采樣。本設(shè)計(jì)選擇的A/D轉(zhuǎn)換器是ADI公司的AD7612,它具有-路雙極性的高阻抗輸入,采樣速率為750KSa/s,具有可選擇的并行或者串行的輸出接口,容易與其他器件連接。AD7612內(nèi)部集成了采樣的時(shí)鐘電路,具有可選擇的內(nèi)部2.5V參考電壓或者外部用戶自己提供的參考。AD7612有四個(gè)差分輸入范圍和三個(gè)差分輸入模式,不同的模式對應(yīng)不同的特點(diǎn)。Warp模式具有最快的吞吐率,正常模式具有最快的異步吞吐率,脈沖模式可以實(shí)現(xiàn)吞吐率和功耗的線性映射。根據(jù)技術(shù)要求本設(shè)計(jì)選用正常模式,采用并行16位數(shù)據(jù)的輸出方式和FPGA直接接口。根據(jù)AD7656的內(nèi)部時(shí)序?qū)⒉杉臄?shù)據(jù)并行輸出到數(shù)據(jù)緩沖池和SRAM中。

  本設(shè)計(jì)數(shù)字控制部分由FPGA和外擴(kuò)的CPLD共同合作完成。FPGA內(nèi)部嵌入一個(gè)NIOSII軟核,負(fù)責(zé)數(shù)據(jù)采集、數(shù)據(jù)傳輸和輸入方式以及增益的選擇控制。下面詳細(xì)分析這三個(gè)數(shù)字控制電路的實(shí)現(xiàn)方法。

信號輸入方式和增益選擇控制邏輯的實(shí)現(xiàn)

  FPGA和CPLD之間通過SPI同步串行總線通信。通過在FPGA內(nèi)部構(gòu)建一個(gè)5bit地址總線,5bit數(shù)據(jù)線的RAM塊用來存儲三十二個(gè)通道碼。再構(gòu)建一個(gè)8bit地址線,8bit數(shù)據(jù)線的RAM塊用來存儲信號的輸入方式和增益值。8bit數(shù)據(jù)的前兩位是輸入方式的選擇碼,后六位是增益選擇碼。在送通道碼之前只送一次輸入方式和增益值碼,直到下一次需要改變的時(shí)候再送。在CPLD中構(gòu)建一個(gè)二選一的開關(guān)和64bit的串并轉(zhuǎn)換把通道碼或者輸入方式選擇碼和增益選擇碼送到相應(yīng)的引腳。從而實(shí)現(xiàn)信號順序掃描和點(diǎn)名掃描以及相應(yīng)的輸入方式和增益選擇控制邏輯的實(shí)現(xiàn)。

數(shù)據(jù)采集和傳輸控制邏輯的實(shí)現(xiàn)

  為了便于控制,本設(shè)計(jì)在FPGA內(nèi)部嵌入一個(gè)NIOSII軟核處理器,NIOSII處理器通過 Avalon總線與外設(shè)通信,根據(jù)設(shè)計(jì)的要求,在NIOSII處理器中定制帶中斷的定時(shí)器、DMA控制器、SPI控制器和PIO控制器。由于設(shè)計(jì)要求最高采樣率是200KSa/s,而AD7612從啟動(dòng)采樣到得到穩(wěn)定的數(shù)據(jù)時(shí)間是1.5μs ,所以通過設(shè)定定時(shí)器最短的時(shí)間5μs(200KSa/s任意設(shè)定,可以通過實(shí)時(shí)設(shè)置定時(shí)器的值來完成)來實(shí)現(xiàn)。每隔5μs,定時(shí)器計(jì)數(shù)到0,產(chǎn)生一次IRQ中斷,在中斷服務(wù)程序中執(zhí)行如下操作:

讀取ADC采集的結(jié)果;

  是否需要改變輸入方式和增益,如果需要,送下一個(gè)值;

  送下一個(gè)通道碼;

  判斷ADC緩沖池( 30K×16bit FIFO)是否已滿,如果滿則把讀取的數(shù)據(jù)扔掉,否則把數(shù)據(jù)送到FIFO中;

  在送數(shù)據(jù)到FIFO的同時(shí),也需要復(fù)制數(shù)據(jù)到RAM中。RAM數(shù)據(jù)的存儲需要在FPGA中設(shè)計(jì)一個(gè)20bit的向上增加的地址計(jì)數(shù)器來制定數(shù)據(jù)的存儲位置,也要設(shè)計(jì)一個(gè)數(shù)據(jù)比較器,當(dāng)計(jì)數(shù)器計(jì)滿時(shí),跟數(shù)據(jù)比較器預(yù)設(shè)的值相等,產(chǎn)生一個(gè)電平,將RAM的數(shù)據(jù)通道斷開,同時(shí)告訴NIOSII啟動(dòng)DMA控制器,在9054的本地總線和RAM之間建立一個(gè)DMA通道,把數(shù)據(jù)取走。圖4是系統(tǒng)控制流程圖。

系統(tǒng)控制流程圖

  PCI接口控制時(shí)序

  本設(shè)計(jì)采用PCI總線作為數(shù)據(jù)總線連接采集模塊和上位機(jī)進(jìn)行通信,用以實(shí)現(xiàn)數(shù)據(jù)的分析處理和歷史顯示等功能。

  由于本文設(shè)計(jì)的采集模塊需要工作在連續(xù)采集的系統(tǒng)中,所以當(dāng)存儲器存滿之后,需要快速地輸出通道并將數(shù)據(jù)通過PCI接口傳輸出去,本設(shè)計(jì)采用DMA的方式傳輸數(shù)據(jù),這樣做既可以不占用CPU資源,又能實(shí)現(xiàn)快速的數(shù)據(jù)傳輸?;谝陨显虮驹O(shè)計(jì)選用PCI接口芯片PCI9054作為總線控制器和上位機(jī)通信。該芯片符合PCI2.2總線規(guī)范,支持低成本從屬適配器,PCI時(shí)鐘為0~33MHz,基本可達(dá)到60Mbyte/s的平均傳輸速率。

  FPGA按照PCI9054的讀寫時(shí)序設(shè)計(jì)讀寫控制邏輯,接收上位機(jī)傳來的命令,對電路進(jìn)行相應(yīng)的設(shè)置后,啟動(dòng)ADC采集數(shù)據(jù),然后將采集的數(shù)據(jù)送到ADC緩沖FIFO中(或者控制將存儲在RAM中的數(shù)據(jù)),當(dāng)FIFO滿后(或者RAM滿后)通過相應(yīng)的傳輸方式將數(shù)據(jù)發(fā)送到PCI9054的本地?cái)?shù)據(jù)線上,并將地址譯碼作為局部器件的地址片選,從而實(shí)現(xiàn)對PCI總線的局部器件的訪問。PCI9054從模式的局部總線包括局部時(shí)鐘線LCLK,數(shù)據(jù)線LD[31..0],地址線LA[31..2],控制狀態(tài)線ADS#,LBE[3..0]#,BLAST#,LW/R#,READY#和仲裁線LHOLD和LHOLDA。本設(shè)計(jì)使用了16位的本地?cái)?shù)據(jù)總線和24位地址總線進(jìn)行數(shù)據(jù)傳送和地址譯碼控制。PCI9054 DMA方式工作時(shí)序圖如圖5所示。

三十二通道掃描PCI數(shù)據(jù)采集模塊的設(shè)計(jì)方案

  結(jié)論

  通過詳細(xì)分析各種數(shù)據(jù)指標(biāo),本文所設(shè)計(jì)的PCI數(shù)據(jù)采集模塊,充分考慮設(shè)計(jì)中各種影響信號質(zhì)量的因素,包括噪聲的抑制和信號衰減等。合理的設(shè)計(jì)保證了PCB板設(shè)計(jì)方面的電磁兼容性和信號回路方面的要求,同時(shí)綜合考慮各種方案,減小了PCB板的尺寸,減少了設(shè)計(jì)成本。通過FPGA內(nèi)嵌NIOSII和擴(kuò)展的CPLD可靠地實(shí)現(xiàn)了三十二個(gè)通道不同輸入方式、增益改變、順序掃描或者點(diǎn)名掃描的要求,通過定時(shí)中斷實(shí)現(xiàn)最高實(shí)時(shí)采樣率200KSa/s和低于200KSa/s時(shí)任意采樣率的設(shè)置指標(biāo)。通過選用高精度的ADC實(shí)現(xiàn)了設(shè)計(jì)對16bit分辨率的需求,合理的元件選擇保證了檢測信號的幅值范圍為±100mV、±1V、±10V的各種量程需求。通過真實(shí)的硬件測試,各項(xiàng)指標(biāo)均得到滿足。本文設(shè)計(jì)的PCI掃描采集模塊適用于最多三十二通道掃描采集的場合,同時(shí)根據(jù)設(shè)計(jì)思路可以擴(kuò)展更多輸入通道和更高采樣速度和分辨率的采集模塊。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉