采用可編程邏輯器件和A/D轉(zhuǎn)換器的高速數(shù)據(jù)采集卡的設(shè)計方案
利用FPGA(現(xiàn)場可編程門陣列)來連接高速A/D轉(zhuǎn)換器和PC的PCI接口,可以充分利用可編程器件高速、靈活、易于升級、抗干擾性能的優(yōu)點,并且可以大大縮短開發(fā)時間[1]。
1 CLC5958型A/D轉(zhuǎn)換器
本數(shù)據(jù)采集系統(tǒng)中的A/D轉(zhuǎn)換器采用美國國家半導體公司的CLC5958,該電路具有14位分辨率和52Mb/s的轉(zhuǎn)換速度,而且動態(tài)輸入頻帶寬,轉(zhuǎn)換噪聲低,非常適合于寬帶、高頻信號的采集。CLC5958集高保真采樣保持器和14位多通道轉(zhuǎn)換器于一體,其信號和時鐘均采用差動輸入方式,且內(nèi)部集成有參考電壓,可支持CMOS和TTL雙重輸出標準。采用0.8μmBiCMOS制作工藝。CLC5958的內(nèi)部結(jié)構(gòu)如圖1所示。
CLC5958的基本特性如下:
●具有極寬的動態(tài)輸入范圍;
●奈奎斯特濾波器特性卓越;
●取樣保持能力強;
●采用48引腳CSP封裝;
●CMOS、TTL輸出可選;
●取樣速度可達52Ms/s,SFDR可達90dB,SNR可達70dB。
CLC5958可應用于GSM、WCDMA、DAMPS、精確天線系統(tǒng)等通訊領(lǐng)域。其工作時序如圖2所示。但在具體應用時,應注意以下問題。
?。?)由于AIN和AIN模擬量差分輸入端可通過片內(nèi)500Ω輸入電阻器接入,且內(nèi)置3.25V標準參考電壓。為了減小非線性輸入的偏置電流,其輸入耦合網(wǎng)絡(luò)應盡可能接近電路。
(2)ENCODE和ENCODE為時鐘差分輸入端,其參考電源為VCC,時鐘輸入可以為PECL電平,也可以為其他波形(如直流為1.2V峰值在VCC以下的正弦波)。輸入時鐘的噪聲超低,轉(zhuǎn)換時的SNR性能越高。但由于時鐘輸入采用非自偏置輸入,所以每個輸入信號必須指定“地”電平。
(3)該電路的噪聲主要來自采樣保持器的非線性特性和轉(zhuǎn)換器,因此,通過變壓器的磁耦合來傳遞輸入信號可以有效減少低頻噪聲。輸入時鐘在電路內(nèi)部被分頻產(chǎn)生內(nèi)部控制信號,但在分頻過程中可能產(chǎn)生1/4倍和1/8倍的時鐘噪聲,這些噪聲一般不大于-90dBFS。
?。?)CLC5958的內(nèi)部電源由V cc供給,但是輸出信號電源由DVcc供給(3.3V到5V均可),使用時,每一個電源引腳都必須接入相應的電平,且最好并接0.01μF的去耦電容器。
?。?)該電路在高速采樣時性能最好,如果采樣速率過低,內(nèi)部采樣保持電路將會產(chǎn)生較大誤差。
根據(jù)以上注意事項,給出CLC5958在采樣系統(tǒng)中的電路,如圖3所示。
2 FPGA的內(nèi)部設(shè)計
由于CLC5958的轉(zhuǎn)換速度高且控制操作簡單,因此一般單片機因速度太低而很難控制該電路。如果采用高速DSP來控制,顯然,對DSP超強的運算能力來說又是一種浪費。
現(xiàn)在市面上銷售的各種PCI接口控制電路,如果AMCC公司的S5933及PLX的9080系列等,雖然可以實現(xiàn)完整的PCI主、從設(shè)備模式的接口功能,將復雜的PCI總線接口轉(zhuǎn)化為相對簡單的用戶接口,但系統(tǒng)結(jié)構(gòu)受接口電路的限制,不能靈活地設(shè)計目標系統(tǒng),且成本較高。本文所設(shè)計的數(shù)據(jù)采集卡則不需要完整的PCI接口功能。
在高速數(shù)據(jù)采集方面,F(xiàn)PGA具有單片機和DSP無法比擬的優(yōu)勢,F(xiàn)PGA的時鐘頻率高,內(nèi)部時延小,全部控制邏輯均可由硬件完成;而且速度快,效率高,組成形式靈活,并集成有外圍控制、譯碼和接口電路。根據(jù)本數(shù)據(jù)采集系統(tǒng)的要求,F(xiàn)PGA分為以下幾個模塊:A/D控制模塊:產(chǎn)生A/D時鐘和控制信號用于控制CLC5958,讀取A/D轉(zhuǎn)換產(chǎn)生的數(shù)據(jù)并存儲。雙口RAM:作為緩存,一邊存儲A/D轉(zhuǎn)換產(chǎn)生的數(shù)據(jù),一邊通過PCI向PC傳輸數(shù)據(jù)。雙口RAM控制模塊:產(chǎn)生存儲和取數(shù)的讀寫信號和地址信號,控制雙口RAM的正常工作。PCI接口控制模塊:從雙口RAM中讀取數(shù)據(jù),經(jīng)過符合PCI協(xié)議的變換后,傳送給PC。FPGA的內(nèi)部結(jié)構(gòu)如圖4所示。
?。?)A/D轉(zhuǎn)換器控制模塊
該模塊首先從PCI總線控制模塊接收采樣速度控制字,然后根據(jù)控制字對FPGA時鐘進行分頻以得到用于CLC5958的時鐘。同時可在A/D轉(zhuǎn)換器中斷輸入線的每一個上升沿給雙口RAM一個寫入信號,并讀取A/D轉(zhuǎn)換器輸出的數(shù)據(jù)。此外,還用于給雙口RAM控制模塊一個控制信號以使其輸出的雙口RAM地址控制字加1。 2)雙口RAM
當寫入控制信號到達時,根據(jù)當前寫入地址控制字向相應單元寫入數(shù)據(jù)輸入總線上的內(nèi)容,并在讀出控制信號到達時,根據(jù)讀出地址控制字從相應單元讀出內(nèi)容,送到數(shù)據(jù)輸出總線。
?。?)雙RAM控制模塊
當啟動寫入地址控制信號到達時,把當前的寫入地址加1,加滿之后清零并重新開始,同時,當啟動讀出地址控制信號到達時,對當前讀出地址加1,加滿之后清零并重新開始。
?。?)PCI接口控制模塊
PCI總線接口控制模塊中的信號按照功能可以分為系統(tǒng)信號、地址和數(shù)據(jù)信號、接口控制信號等。系統(tǒng)信號包括CLK和RST兩個信號,為系統(tǒng)提供時鐘和復位。對地址和數(shù)據(jù)信號來說,在總線傳輸操作周期中,一個PCI總線周期由一個地址段和緊隨其后的一個或多個數(shù)據(jù)段組成,其中AD[30:0]是地址和數(shù)據(jù)復用總線,它可為PCI接口電路提供地址和數(shù)據(jù)信號。復用引腳C/BE[3:0]為PCI接口電路提供總線命令和這節(jié)允許兩組信號。
接口控制信號主要由FRAME、IRDY、TRDY和DEVSEL等組成。其中FRAME信叫是總線周期構(gòu)成信號,由當前總線中主要設(shè)備驅(qū)動,用以表明一個總線風吹草動期的開始和延續(xù);IRDY表明啟動方準備好數(shù)據(jù);TRDY是目標設(shè)備就緒信號,在寫操作中,TRDY有效說明從設(shè)備已準備好接收數(shù)據(jù),在讀操作中,它說明AD[30:0]上已有有效數(shù)據(jù);DEVSEL為設(shè)備選擇信號,當其有效時,說明驅(qū)動它的主設(shè)備已將其地址譯碼作為當前操作的目標設(shè)備,該信號作為輸入信號時,DEVSEL用來表示總線上已有目標設(shè)備被選中。
其他PCI總線所需但本系統(tǒng)不用的信號則可用高阻態(tài)來代替。圖5示出PCI接口控制模塊的內(nèi)部結(jié)構(gòu)。
PCI總線上的基本傳輸機制是突發(fā)分組傳輸。一個突發(fā)分組由一個地址周期和一個(或多個)數(shù)據(jù)周期組成。PCI支持存儲空間和I/O的突發(fā)傳輸,所有的數(shù)據(jù)傳輸基本上都是由FRAME、IRDY和TRDY三條信號線控制的。
當數(shù)據(jù)有效時,數(shù)據(jù)資源需要無條件設(shè)置IRDY信號(寫操作為IRDY,讀操作為TRDY)。接收方可在適當時間發(fā)出它的xRDY信號。FRAME信號有效后的第一個時鐘上升沿是地址周期的開始,此時傳送地址信息和總線命令。下一個時鐘上升沿即是一個(或多個)數(shù)據(jù)周期的開始,每當IRDY和TRDY同時有效時,所對應的時鐘上升沿,數(shù)據(jù)可以在主、從設(shè)備之間傳送。在此期間,可由主設(shè)備或從設(shè)備分別利用IRDY和TRDY的無效而插入等待周期。PCI總線的讀寫時序如圖6所示。
本設(shè)計采用Verilog語言來進行編程,在MAXpluse II仿真平臺上進行仿真,采用的電中是Altera公司的EPM7160SQC160-6。PCI接口控制部分的仿真結(jié)果如圖7所示。
3 結(jié)束語
本文提出一種采用可編程邏輯器件和A/D轉(zhuǎn)換器組成的高速數(shù)據(jù)采集卡的設(shè)計方案,該采集卡只用兩塊主體電路,因而結(jié)構(gòu)簡單,可以直接插入PC,適用于智能儀器和其他需要高速數(shù)據(jù)采集的場合。如果在該采集卡前置處理部分增加通道轉(zhuǎn)換和可控放大部分,則該采集卡的功能將更加完美。