基于AD7864和DSP的4路數(shù)據(jù)采集系統(tǒng)
摘要: 本文給出了基于AD7864和DSP的4路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。
關(guān)鍵詞: AD7864;DSP;CPLD
引言
在陣列信號(hào)處理中,往往需要對(duì)多個(gè)陣元同時(shí)進(jìn)行采樣,以保留接收到的各路信號(hào)之間的相位信息。對(duì)于一個(gè)四元十字陣,就需要對(duì)4路信號(hào)同時(shí)進(jìn)行采樣,以便在隨后的處理中解算出各路信號(hào)之間的時(shí)延關(guān)系。在這個(gè)過(guò)程中,高速率和高精度的A/D轉(zhuǎn)換就顯得尤為重要,它直接影響著隨后的數(shù)字處理結(jié)果的精度。AD7864是一種高速、低功耗、可以4通道同時(shí)采樣的A/D轉(zhuǎn)換器。它的主要特性有:高速12位A/D轉(zhuǎn)換器;同時(shí)采樣4個(gè)輸入通道,并具有4個(gè)采樣、保持放大器;0.35ms采樣保持獲取時(shí)間,每一個(gè)通道轉(zhuǎn)換時(shí)間1.65ms;可以通過(guò)軟件或者硬件的方法選取用于采樣的通道;單電源供電(+5V);多個(gè)轉(zhuǎn)換電壓范圍;具有高速并行接口,可以與處理器直接連接;低功耗,每通道功耗90mW;對(duì)于每一個(gè)模擬輸入通道均有過(guò)壓保護(hù)電路。AD7864 4通道同時(shí)工作時(shí),最大采樣率可以高達(dá)130KHz。
DSP與AD7864的接口電路
AD7864具有片內(nèi)時(shí)鐘、讀寫(xiě)允許邏輯、多種通道選擇方式以及內(nèi)部精確的2.5V參考電壓,這使得其與高速處理器的接口變得非常簡(jiǎn)單??紤]到實(shí)際工程中要求的工作電壓、轉(zhuǎn)換精度以及系統(tǒng)硬件設(shè)計(jì)的便利等因素,在硬件系統(tǒng)中選用AD7864-1。DSP選用TI公司的TMS320C5409。
AD7864轉(zhuǎn)換后的數(shù)據(jù)讀取有兩種方法,即轉(zhuǎn)換中讀取數(shù)據(jù)和轉(zhuǎn)換后讀取數(shù)據(jù)。轉(zhuǎn)換中讀取數(shù)據(jù)是在下一個(gè)通道轉(zhuǎn)換結(jié)束之前讀取前一個(gè)通道的數(shù)據(jù)。轉(zhuǎn)換后讀取數(shù)據(jù)是在全部通道均轉(zhuǎn)換結(jié)束后,才讀取數(shù)據(jù)。在此硬件系統(tǒng)中,采用轉(zhuǎn)換后讀取數(shù)據(jù)的方式。其具體工作過(guò)程如下:
當(dāng)轉(zhuǎn)換起始信號(hào)有效時(shí)(上升沿),所有采樣保持器進(jìn)入保持狀態(tài),開(kāi)始對(duì)選擇的通道采樣。Busy輸出信號(hào)在轉(zhuǎn)換起始信號(hào)上升沿時(shí)被觸發(fā)為高電平,并在轉(zhuǎn)換過(guò)程中一直保持為高,當(dāng)全部通道轉(zhuǎn)換結(jié)束后,才變?yōu)榈碗娖健^D(zhuǎn)換結(jié)束信號(hào)在被選擇的通道中每一個(gè)通道轉(zhuǎn)換結(jié)束時(shí)均有效。各個(gè)通道轉(zhuǎn)換后的數(shù)據(jù)保存在AD7864內(nèi)部相應(yīng)的鎖存器中。所有通道轉(zhuǎn)換結(jié)束后,當(dāng)讀信號(hào)和片選信號(hào)有效時(shí),就可以并行地從數(shù)據(jù)總線上讀取數(shù)據(jù)。數(shù)據(jù)讀取時(shí),按照轉(zhuǎn)換順序進(jìn)行讀取,每次讀取后自動(dòng)修改內(nèi)部鎖存器指針(指向存放下一個(gè)轉(zhuǎn)換結(jié)束的數(shù)據(jù)鎖存器)。當(dāng)所有通道數(shù)據(jù)均讀取后,內(nèi)部鎖存器指針自動(dòng)復(fù)位(指向存放第一個(gè)轉(zhuǎn)換結(jié)束的數(shù)據(jù)鎖存器)。
根據(jù)上述AD7864的工作原理,DSP與AD7864的接口電路如圖1所示。
AD7864的軟硬選擇信號(hào)/S SEL置低,這時(shí)被選擇的轉(zhuǎn)換通道就由硬件通道信號(hào)的狀態(tài)來(lái)決定,由于需要對(duì)4路信號(hào)進(jìn)行采樣,所以把全部置高,即4路通道全部選通。
DSP與AD7864具體邏輯控制關(guān)系由CPLD來(lái)完成。CPLD部分邏輯關(guān)系圖如圖2。
AD7864的12位數(shù)據(jù)線DB0-DB11經(jīng)過(guò)緩存與DSP數(shù)據(jù)線的低12位D0-D11相連,DSP另外高4位則始終為邏輯低;對(duì)于正數(shù),這種數(shù)據(jù)擴(kuò)展不會(huì)產(chǎn)生影響,而對(duì)于負(fù)數(shù),則需要在軟件上進(jìn)行一定的處理。DSP的通用I/O引腳XF接到AD7864的引腳,XF信號(hào)由軟件控制來(lái)啟動(dòng)AD7864的模數(shù)轉(zhuǎn)換。DSP的I/O空間選擇信號(hào)引腳和地址線A15的邏輯組合作為AD7864的片選信號(hào)。當(dāng)有效,即為低電平時(shí),如果地址線A15為低,則AD7864被片選。此時(shí)可以對(duì)AD7864進(jìn)行讀寫(xiě)操作,AD7864的地址為# 7FFF。DSP讀寫(xiě)信號(hào)RW 和AD7864的片選信號(hào)的組合作為AD7864的讀信號(hào)。當(dāng)AD7864被片選,且RW為高時(shí),就可以從AD7864讀取數(shù)據(jù),此時(shí)AD7864的寫(xiě)信號(hào)必須為高電平。DSP的存儲(chǔ)器選通信號(hào)和讀信號(hào)經(jīng)過(guò)邏輯與后作為緩存的使能信號(hào),分別控制DSP外部程序和A/D轉(zhuǎn)換數(shù)據(jù)從緩存中送到DSP的數(shù)據(jù)總線上去。
圖1 DSP與AD7864的接口電路
圖2 CPLD內(nèi)部控制邏輯電路
軟件設(shè)計(jì)
DSP采樣程序設(shè)計(jì)采用C和匯編語(yǔ)言混合編程的方式。TMS320C54x編譯器可以利用asm語(yǔ)句將C54xDSP的匯編語(yǔ)言指令或偽指令直接嵌入編程器輸出的匯編語(yǔ)言文件中。asm語(yǔ)句提供了C/C++語(yǔ)言不能提供的對(duì)DSP硬件的訪問(wèn)。利用asm語(yǔ)句拉低拉高XF引腳的輸出信號(hào)來(lái)啟動(dòng)AD7864的模數(shù)轉(zhuǎn)換,轉(zhuǎn)換起始信號(hào)保持低電平的時(shí)間最少為35ns,整個(gè)轉(zhuǎn)換過(guò)程所用的時(shí)間t為:t=X(tCONV+t9)-t9;其中,X為通道數(shù),tCONV為單通道轉(zhuǎn)換時(shí)間,當(dāng)用內(nèi)部時(shí)鐘時(shí),其最大值為1.65ms,t9為轉(zhuǎn)換結(jié)束信號(hào)的脈沖寬度,最小值為75ns,最大值為180ns。同樣利用asm語(yǔ)句執(zhí)行匯編重復(fù)指令RPT,重復(fù)執(zhí)行空操作NOP,達(dá)到比較精確的軟件延時(shí)目的,這樣做便于在滿足基本轉(zhuǎn)換時(shí)間的前提下,調(diào)節(jié)采樣率的大小。4路信號(hào)全都完成轉(zhuǎn)換模數(shù)后,DSP就可以從地址# 7FFF依次讀取4路數(shù)據(jù),在兩次讀取數(shù)據(jù)的過(guò)程中,需要一定的時(shí)間間隔。在讀取完4路數(shù)據(jù)到下一次轉(zhuǎn)換開(kāi)始之間有一段靜止時(shí)間,一般為50ns到100ns。
此外,DSP數(shù)據(jù)線有16位,而AD7864只有12位,并且數(shù)值都是以補(bǔ)碼表示的,由于在硬件處理中把送到DSP數(shù)據(jù)線高4位上的數(shù)據(jù)都置為0,所以對(duì)于AD7864送給DSP的負(fù)數(shù),要想在DSP中表示正確,還需要進(jìn)行符號(hào)位擴(kuò)展。具體辦法就是對(duì)AD7864送給DSP的數(shù)據(jù)和0x800進(jìn)行按位與運(yùn)算,如果為真,則表示此數(shù)為負(fù)數(shù),把此數(shù)和0xF000進(jìn)行按位或運(yùn)算,即在此數(shù)的高4位補(bǔ)上全1,這樣負(fù)數(shù)就能在DSP中正確表示了。
結(jié)語(yǔ)
筆者利用AD7864和DSP,設(shè)計(jì)了一種數(shù)據(jù)采集系統(tǒng),它能對(duì)4路模擬信號(hào)同時(shí)進(jìn)行采樣,采樣率能由DSP程序調(diào)節(jié),采樣后的數(shù)據(jù)送往DSP進(jìn)行實(shí)時(shí)處理,在實(shí)際陣列信號(hào)處理中達(dá)到了滿意的效果。
評(píng)論