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