基于PCI總線的高速噪聲檢測(cè)系統(tǒng)(圖)
關(guān)鍵字:噪聲檢測(cè);pci總線;pci 9052;wdm
前言
噪聲檢測(cè)系統(tǒng)用于對(duì)環(huán)境噪聲進(jìn)行樣本采集和頻譜分析,確定噪聲中的頻率分量是否對(duì)人體造成傷害。該系統(tǒng)分為高速數(shù)據(jù)采集卡和頻譜分析兩部分。數(shù)據(jù)采集卡將采樣采集到的數(shù)據(jù)送入計(jì)算機(jī)內(nèi),由應(yīng)用程序完成快速頻譜分析功能。由于環(huán)境噪聲是實(shí)時(shí)變化的,因此需要采集電路的高速采樣和數(shù)據(jù)的高速傳輸。鑒于傳統(tǒng)總線無法滿足高速傳輸?shù)囊?,采用了pci總線作為噪聲檢測(cè)系統(tǒng)的底層平臺(tái)。
pci總線是intel公司推出的一種微機(jī)擴(kuò)展槽接口標(biāo)準(zhǔn),時(shí)鐘頻率為0~33mhz,其最大數(shù)據(jù)傳輸速率為132~264mbps,有效克服了傳統(tǒng)總線進(jìn)行高速數(shù)據(jù)傳輸時(shí)的瓶頸現(xiàn)象,使數(shù)據(jù)的實(shí)時(shí)高速采集和傳輸成為可能。
數(shù)據(jù)采集卡結(jié)構(gòu)說明
數(shù)據(jù)采集卡具有高速和速率可調(diào)節(jié)的特點(diǎn)。其前端采用聲波傳感器采集模擬噪聲信號(hào),采集到的模擬信號(hào)經(jīng)過a/d變換器轉(zhuǎn)換為數(shù)字信號(hào),數(shù)字信號(hào)再經(jīng)pci總線傳輸?shù)接?jì)算機(jī)內(nèi)。該數(shù)據(jù)采集卡主要包括數(shù)據(jù)采集電路、pci接口電路和邏輯控制電路三部分,采集卡結(jié)構(gòu)如圖1所示。下面分別介紹各個(gè)部分的功能。
1. 數(shù)據(jù)采集電路
數(shù)據(jù)采集電路是由聲波傳感器和a/d變換器組成的,傳感器將采集到的噪聲信號(hào)送入a/d變換器,轉(zhuǎn)換成數(shù)字信號(hào)輸出。a/d變換器采用的是maxim公司的max 1446。max 1446有一路模擬信號(hào)輸入,10位數(shù)字信號(hào)輸出,工作頻率可達(dá)60mhz。實(shí)際的數(shù)據(jù)轉(zhuǎn)換時(shí)間為:轉(zhuǎn)換時(shí)間+各種延遲=5+0.5=5.5個(gè)時(shí)鐘周期,由此可知max 1446的轉(zhuǎn)換時(shí)間最低可達(dá)0.1μs,即采樣速率可達(dá)到100mbps,為高速數(shù)據(jù)采集提供了最基本的硬件條件。
2. pci接口電路
考慮到pci總線規(guī)范的復(fù)雜性,本設(shè)計(jì)采用了plx公司的pci 9052作為pci總線接口芯片,以簡(jiǎn)化硬件設(shè)計(jì)。pci 9052是作為pci總線和局部總線一端的設(shè)備的橋梁,保證了局部總線一端的設(shè)備在符合pci總線的規(guī)范后連接到pci總線上。pci 9052提供了多個(gè)內(nèi)部寄存器,以盡量提高總線接口設(shè)計(jì)的靈活性和傳輸速率。所有的寄存器可分為pci總線配置寄存器和局部總線配置寄存器兩類。pci總線配置寄存器是為符合pci規(guī)范所設(shè)置的,局部總線配置寄存器用于設(shè)定局部總線的工作方式。
對(duì)于pci 9052,需要一個(gè)eeprom存儲(chǔ)配置信息,當(dāng)主機(jī)啟動(dòng)時(shí),eeprom完成對(duì)pci 9052內(nèi)部的pci總線配置寄存器和局部總線配置寄存器的初始化。在設(shè)計(jì)中采用microchip公司93lc46作為eeprom存儲(chǔ)配置信息。
3. 邏輯控制電路
邏輯控制電路的作用是用于產(chǎn)生目標(biāo)設(shè)備準(zhǔn)備好信號(hào)lrdyi#。在max 1446完成一個(gè)a/d轉(zhuǎn)換后,使目標(biāo)設(shè)備準(zhǔn)備好信號(hào)lrdyi#有效,表明數(shù)據(jù)已經(jīng)在數(shù)據(jù)線上,通知主設(shè)備可以從數(shù)據(jù)線上讀取數(shù)據(jù)了。
由于max 1446的數(shù)據(jù)轉(zhuǎn)換時(shí)間需要5.5個(gè)時(shí)鐘周期,因此采用一個(gè)模6計(jì)數(shù)器作為控制電路,以保證在數(shù)據(jù)轉(zhuǎn)換完成后,才產(chǎn)生lrdyi#。
數(shù)據(jù)采集卡原理圖
數(shù)據(jù)采集卡原理圖如圖2所示。
對(duì)原理圖有以下幾點(diǎn)說明。
(1)設(shè)計(jì)中采用9052的非復(fù)用模式,因此將mode接地,所以9052的lad[31..0]上只有數(shù)據(jù)信息,而其地址信息在la[27..0]上,又由于max1446的轉(zhuǎn)換位數(shù)為10bit,因此將該10位輸出數(shù)據(jù)d[9..0]連接到pci 9052的lad[9..0],而lad[31..10]接地。
(2)a/d變換器max 1446的時(shí)鐘頻率可高達(dá)60mhz。在設(shè)計(jì)中將pci總線時(shí)鐘(33mhz)作為a/d的時(shí)鐘信號(hào),從而簡(jiǎn)化了a/d的時(shí)鐘電路。為了保證lrdyi#信號(hào)的產(chǎn)生同max 1446的轉(zhuǎn)換同步,模6計(jì)數(shù)器的時(shí)鐘信號(hào)也采用pci總線的時(shí)鐘信號(hào)。
(3)數(shù)據(jù)采集的速率的控制是通過上層的軟件完成的。在設(shè)計(jì)中,將pci 9052的局部總線端的輸出信號(hào)cs0#作為a/d的使能信號(hào),驅(qū)動(dòng)a/d的轉(zhuǎn)換功能。cs0#是pci 9052局部總線端的一個(gè)通用片選信號(hào),它是在配置寄存器編程指定的。通過上層軟件對(duì)cs0#低電平產(chǎn)生的時(shí)間間隔的控制,即可實(shí)現(xiàn)實(shí)現(xiàn)對(duì)a/d采樣速率的控制。由于a/d轉(zhuǎn)換需要5.5個(gè)時(shí)鐘周期,在a/d轉(zhuǎn)換期間,使能信號(hào)oe#應(yīng)當(dāng)始終保持有效,但是cs0#的低電平信號(hào)保持時(shí)間小于a/d轉(zhuǎn)換時(shí)間,因此,使cs0#經(jīng)過一脈沖展寬電路后再連接到oe#端,以保證a/d的有效轉(zhuǎn)換。
(4)系統(tǒng)采用的時(shí)鐘頻率為33mhz,由于lrdyi#信號(hào)的產(chǎn)生是6個(gè)時(shí)鐘周期,所以數(shù)據(jù)采集速率可高達(dá)55mbps,可實(shí)現(xiàn)對(duì)噪聲信號(hào)的高速實(shí)時(shí)采樣。
結(jié)束語
以上僅針對(duì)硬件電路的設(shè)計(jì)思路和原理作了詳細(xì)的說明。在win2000、win nt操作系統(tǒng)下,應(yīng)用程序不能對(duì)i/o端口直接進(jìn)行操作,因此將a/d轉(zhuǎn)換的數(shù)據(jù)讀進(jìn)內(nèi)存中就要由驅(qū)動(dòng)程序來完成。驅(qū)動(dòng)程序作為下層硬件和上層應(yīng)用程序的紐帶,實(shí)現(xiàn)應(yīng)用程序?qū)Φ讓佑布脑L問。在windows平臺(tái)上,wdm將代替vxd成為主流的驅(qū)動(dòng)模式,因此選擇driverworks作為驅(qū)動(dòng)程序的開發(fā)工具,開發(fā)wdm。
數(shù)據(jù)采集卡、驅(qū)動(dòng)程序和頻譜分析程序三部分的數(shù)據(jù)流程如圖3所示。
1.劉暉譯,pci系統(tǒng)結(jié)構(gòu)(第四版),電子工業(yè)出版社,2000.
2.plx pci9052 data book,2000.
3.chris cant著,孫義等譯,windows wdm設(shè)備驅(qū)動(dòng)程序開發(fā)指南,
機(jī)械工業(yè)出版社,2000.
評(píng)論