基于DSP和DDS技術(shù)的氣體濃度檢測系統(tǒng)
引 言
ADSP-BF531處理器是ADI公司Blackfin系列產(chǎn)品的成員,專為滿足當(dāng)今嵌入式音頻、視頻和通信應(yīng)用的計(jì)算要求和低功耗條件而設(shè)計(jì)的新型16位嵌入式處理器。它基于由ADI和Intel公司聯(lián)合開發(fā)的微信號(hào)架構(gòu)(Micro Signal Architecture,MSA),將一個(gè)32位RISC型指令集和雙16位乘法累加(MAC)信號(hào)處理功能與通用型微控制器所具有的易用性組合在一起。ADSP-BF531處理器具有以下主要特點(diǎn):最大頻率為600 MHz,1200 MMACs;每一個(gè)內(nèi)核中帶有2個(gè)16位的乘法器,2個(gè)40位的累加器,2個(gè)40位的邏輯運(yùn)算單元,4個(gè)位的視頻運(yùn)算單元和1個(gè)40位的移位器,在一個(gè)指令周期內(nèi)可完成2個(gè)16位數(shù)的乘法,2個(gè)40位數(shù)的算術(shù)邏輯運(yùn)算,4個(gè)位的視頻數(shù)據(jù)算術(shù)邏輯運(yùn)算,1個(gè)40位的移位運(yùn)算;低功耗采用1.12 V的內(nèi)核電壓和3.3 V的I/O電壓,片內(nèi)集成調(diào)壓器,并且具備動(dòng)態(tài)電源管理;高達(dá)148 KB的片內(nèi)存儲(chǔ)器;豐富的外設(shè)接口,支持與SDRAM,SRAM,F(xiàn)LASH和ROM的無縫連接;片上JTAG仿真接口。提出一種基于ADSP-BF531為核心,集DDS和A/D采樣芯片于一體的氣體濃度檢測系統(tǒng)。該系統(tǒng)針對結(jié)構(gòu)性微氣體傳感器,充分利用了DDS信號(hào)源頻率、相位穩(wěn)定可控的特點(diǎn)和DSP芯片強(qiáng)大的控制能力和高速的數(shù)據(jù)處理能力,具有硬件簡單,成本低,可靠性高,通用性好等優(yōu)點(diǎn)。1 自相關(guān)檢測原理設(shè)被測信號(hào)x(k)由有用信號(hào)s(k)和噪聲u(k)組成:x(k)=s(k)+u(k)x(k)的自相關(guān)函數(shù)為:式中:Rs(m)為s(k)的自相關(guān)函數(shù);Rsu(m)為s(k)與u(k)的互相關(guān)函數(shù);Rus(m)為u(k)與s(k)的互相關(guān)函數(shù);Ru(m)為u(k)的自相關(guān)函數(shù)。由于在電路系統(tǒng)中主要為白噪聲,有Rsu(m)=Rus(m)=0,隨著m的增大,根據(jù)維納一辛欽定理,功率信號(hào)的自相關(guān)函數(shù)與其功率譜密度函數(shù)具有傅里葉變換關(guān)系,所以可以用FFT計(jì)算自相關(guān)函數(shù)。但是,實(shí)際采樣值只有N+1點(diǎn),所以求出的Rx(m)只能是自相關(guān)函數(shù)的估計(jì)值。當(dāng)用FFT計(jì)算自相關(guān)函數(shù)時(shí),x(k)必須補(bǔ)N個(gè)零,使長度變成2N+1,因此功率譜密度為:對上式進(jìn)行IFFT就可以得到Rs(m)。2 系統(tǒng)硬件設(shè)計(jì)氣體濃度檢測系統(tǒng)硬件框圖如圖1所示。主要包括傳感器激勵(lì)信號(hào)的發(fā)生、傳感器位置的選取,信號(hào)采集以及外部存儲(chǔ)器的設(shè)計(jì)四個(gè)部分。其核心是ADSP-BF531芯片,它負(fù)責(zé)整個(gè)系統(tǒng)事務(wù)協(xié)調(diào)以及算法功能實(shí)現(xiàn)。系統(tǒng)工作過程中,DSP芯片通過設(shè)定 SPI控制器,控制DDS芯片AD9850產(chǎn)生一個(gè)特定的穩(wěn)幅的超聲頻的正弦信號(hào)。這個(gè)信號(hào)通過放大器和多路開關(guān)后,施加在指定的傳感器驅(qū)動(dòng)電極上,并驅(qū)動(dòng)傳感器發(fā)生同頻振動(dòng)。傳感器輸出信號(hào)經(jīng)由前置放大器放大到適當(dāng)?shù)某潭?,再?jīng)過高精度的A/D芯片AD9235采樣后將轉(zhuǎn)換結(jié)果送到DSP進(jìn)行相關(guān)運(yùn)算,計(jì)算出振動(dòng)幅度。2.2 DSP與A119235的接口設(shè)計(jì)ADSP-BF531處理器提供可直接與并行A/D和D/A轉(zhuǎn)換器、ITU R601/656視頻編碼和解碼器以及其他通用外設(shè)連接的并行接口(PPI)。PPI包括一個(gè)專用時(shí)鐘引腳,多達(dá)3個(gè)幀同步引腳和多達(dá)16個(gè)數(shù)據(jù)引腳。輸入時(shí)鐘支持系統(tǒng)時(shí)鐘一半的并行數(shù)據(jù)傳輸率。PPI采用DMA方式,可以直接把數(shù)據(jù)存放在SDRAM或者送到內(nèi)核進(jìn)行處理。它能與12 b A/D采樣芯片AD9235完全兼容,電路接口簡單,A/D芯片和PPI采用同一時(shí)鐘來同步數(shù)據(jù)。同時(shí)AD9235的數(shù)據(jù)溢出位作為數(shù)據(jù)最高位接到 PPI,在計(jì)算過程中,可以通過判斷該位對壞數(shù)據(jù)進(jìn)行剔出,其電路接口如圖3所示。3 系統(tǒng)軟件設(shè)計(jì)氣體濃度檢測系統(tǒng)軟件設(shè)計(jì)包括DSP初始化程序、中斷向量表、應(yīng)用程序(包括響應(yīng)外部中斷程序)、數(shù)據(jù)后處理程序。檢測系統(tǒng)啟動(dòng)時(shí)首先運(yùn)行內(nèi)部ROM固化的Boot-Loader程序,將存儲(chǔ)在FLASH中的程序代碼加載到DSP內(nèi)部RAM 中。程序首先是初始化系統(tǒng),通過配置DSP內(nèi)部寄存器,確定DSP具體的工作狀態(tài),然后是中斷響應(yīng)程序以及數(shù)據(jù)后處理程序。系統(tǒng)程序框圖如圖4所示,自相關(guān)運(yùn)算在中斷子程序中完成,為方便移植所有程序都采用結(jié)構(gòu)化C語言完成。本檢測系統(tǒng)在工作過程中,對每一頻點(diǎn)采樣4 092點(diǎn),將每個(gè)頻點(diǎn)采樣值進(jìn)行自相關(guān)運(yùn)算,恢復(fù)出微弱信號(hào),并計(jì)算該頻率傳感器響應(yīng)幅度。前面已經(jīng)證明在DSP內(nèi)進(jìn)行自相關(guān)運(yùn)算可以用FFT來實(shí)現(xiàn)。FFT算法中的倒序可以由DSP變址方便實(shí)現(xiàn),整個(gè)推導(dǎo)過程由三重循環(huán)構(gòu)成,外層的循環(huán)控制有M級(jí)的順次運(yùn)算(M=log2N),內(nèi)層的兩個(gè)循環(huán)一起控制同一級(jí)中各個(gè)碟型運(yùn)算單元,最內(nèi)層的一個(gè)循環(huán)控制為同一類型的碟型運(yùn)算。本程序采用基-2時(shí)間碟型運(yùn)算,碟型運(yùn)算的計(jì)算關(guān)系為:這里的X(M-1)(k)和X(M-1)(j)分別表示第M-1級(jí)中上節(jié)點(diǎn)和下節(jié)點(diǎn)的值,XM(k)和XM(j)分別為第M級(jí)中上節(jié)點(diǎn)和下節(jié)點(diǎn)的值,k是j的對偶節(jié)點(diǎn),依據(jù)上述公式可以實(shí)現(xiàn)序列的同址運(yùn)算。4 結(jié) 語實(shí)驗(yàn)證明,基于微氣體傳感器的氣體濃度檢測系統(tǒng)能有效地檢測出傳感器的微弱信號(hào)。系統(tǒng)以 Black-fin531為核心,結(jié)合DDS技術(shù)和自相關(guān)檢測方法,硬件設(shè)計(jì)簡單可靠,程序采用結(jié)構(gòu)化的C語言,通用性和移植性好,易于DSP實(shí)現(xiàn)。系統(tǒng)很好地滿足了氣體濃度檢測的需要,測量精度高,算法簡單,可以用于氫氣等多種氣體的檢測。