文章介紹了一種基于PCI總線的高速噪聲檢測系統,介紹了采用PCI 9052作為PCI總線接口芯片的數據采集部分的設計原理,并說明了數據采集卡的高速采樣和速率可變的實現原理,給出了底層硬件同上層軟件的連接實現。 噪聲檢測系統用于對環境噪聲進行樣本采集和頻譜分析,確定噪聲中的頻率分量是否對人體造成傷害。該系統分為高速數據采集卡和頻譜分析兩部分。數據采集卡將采樣采集到的數據送入計算機內,由應用程序完成快速頻譜分析功能。由于環境噪聲是實時變化的,因此需要采集電路的高速采樣和數據的高速傳輸。鑒于傳統總線無法滿足高速傳輸的要求,采用了PCI總線作為噪聲檢測系統的底層平臺。 PCI總線是Intel公司推出的一種微機擴展槽接口標準,時鐘頻率為0~33MHz,其最大數據傳輸速率為132~264Mbps,有效克服了傳統總線進行高速數據傳輸時的瓶頸現象,使數據的實時高速采集和傳輸成為可能。 數據采集卡結構說明 數據采集卡具有高速和速率可調節的特點。其前端采用聲波傳感器采集模擬噪聲信號,采集到的模擬信號經過A/D變換器轉換為數字信號,數字信號再經PCI總線傳輸到計算機內。該數據采集卡主要包括數據采集電路、PCI接口電路和邏輯控制電路三部分,采集卡結構如圖1所示。下面分別介紹各個部分的功能。 1. 數據采集電路 數據采集電路是由聲波傳感器和A/D變換器組成的,傳感器將采集到的噪聲信號送入A/D變換器,轉換成數字信號輸出。A/D變換器采用的是MAXIM公司的MAX 1446。MAX 1446有一路模擬信號輸入,10位數字信號輸出,工作頻率可達60MHz。實際的數據轉換時間為:轉換時間+各種延遲=5+0.5=5.5個時鐘周期,由此可知MAX 1446的轉換時間最低可達0.1μs,即采樣速率可達到100Mbps,為高速數據采集提供了最基本的硬件條件。 2. PCI接口電路 考慮到PCI總線規范的復雜性,本設計采用了PLX公司的PCI 9052作為PCI總線接口芯片,以簡化硬件設計。PCI 9052是作為PCI總線和局部總線一端的設備的橋梁,保證了局部總線一端的設備在符合PCI總線的規范后連接到PCI總線上。PCI 9052提供了多個內部寄存器,以盡量提高總線接口設計的靈活性和傳輸速率。所有的寄存器可分為PCI總線配置寄存器和局部總線配置寄存器兩類。PCI總線配置寄存器是為符合PCI規范所設置的,局部總線配置寄存器用于設定局部總線的工作方式。 對于PCI 9052,需要一個EEPROM存儲配置信息,當主機啟動時,EEPROM完成對PCI 9052內部的PCI總線配置寄存器和局部總線配置寄存器的初始化。在設計中采用Microchip公司93LC46作為EEPROM存儲配置信息。 3. 邏輯控制電路 邏輯控制電路的作用是用于產生目標設備準備好信號LRDYi#。在MAX 1446完成一個A/D轉換后,使目標設備準備好信號LRDYi#有效,表明數據已經在數據線上,通知主設備可以從數據線上讀取數據了。 由于MAX 1446的數據轉換時間需要5.5個時鐘周期,因此采用一個模6計數器作為控制電路,以保證在數據轉換完成后,才產生LRDYi#。 數據采集卡原理圖 數據采集卡原理圖如圖2所示。 對原理圖有以下幾點說明。 (1)設計中采用9052的非復用模式,因此將MODE接地,所以9052的LAD[31..0]上只有數據信息,而其地址信息在LA[27..0]上,又由于MAX1446的轉換位數為10bit,因此將該10位輸出數據D[9..0]連接到PCI 9052的LAD[9..0],而LAD[31..10]接地。 (2)A/D變換器MAX 1446的時鐘頻率可高達60MHz。在設計中將PCI總線時鐘(33MHz)作為A/D的時鐘信號,從而簡化了A/D的時鐘電路。為了保證LRDYi#信號的產生同MAX 1446的轉換同步,模6計數器的時鐘信號也采用PCI總線的時鐘信號。 (3)數據采集的速率的控制是通過上層的軟件完成的。在設計中,將PCI 9052的局部總線端的輸出信號CS0#作為A/D的使能信號,驅動A/D的轉換功能。CS0#是PCI 9052局部總線端的一個通用片選信號,它是在配置寄存器編程指定的。通過上層軟件對CS0#低電平產生的時間間隔的控制,即可實現實現對A/D采樣速率的控制。由于A/D轉換需要5.5個 時鐘周期,在A/D轉換期間,使能信號OE#應當始終保持有效,但是CS0#的低電平信號保持時間小于A/D轉換時間,因此,使CS0#經過一脈沖展寬電路后再連接到OE#端,以保證A/D的有效轉換。 (4)系統采用的時鐘頻率為33MHz,由于LRDYi#信號的產生是6個時鐘周期,所以數據采集速率可高達55Mbps,可實現對噪聲信號的高速實時采樣。 結束語 以上僅針對硬件電路的設計思路和原理作了詳細的說明。在Win2000、Win NT操作系統下,應用程序不能對I/O端口直接進行操作,因此將A/D轉換的數據讀進內存中就要由驅動程序來完成。驅動程序作為下層硬件和上層應用程序的紐帶,實現應用程序對底層硬件的訪問。在Windows平臺上,WDM將代替VxD成為主流的驅動模式,因此選擇DriverWorks作為驅動程序的開發工具,開發WDM。 數據采集卡、驅動程序和頻譜分析程序三部分的數據流程如圖3所示。 |