基于DSP的PCI高速測控系統(tǒng)結構的研究設計
PC219054提供了三個物理總線接口:PCI總線接口、EEPROM接口、局部總線接口。PCI總線接口依照PCI擴展板上定義的引腳分配情況將彼此對應的信號連接在一起即可。本系統(tǒng)采用的EEPROM為4K、3.3V串行的93LC66B,通過對PCI時鐘分頻來產生EEPROM時鐘,內部存放PCI9054的配置信息,系統(tǒng)加電時PCI9054自動加載EEPROM中的配置信息,并由BIOS通過PCI總線對配置寄存器讀寫,來完成各種控制功能。接口電路如圖3所示。
PCI9054在DMA傳輸方式下,通過設置其DMA控制器內部的寄存器即可實現(xiàn)兩總線之間的數據傳送。傳輸過程由以下幾個步驟實現(xiàn):
1.設置傳輸方式寄存器:通過寄存器DMA MODE0或DMAMODE1的位9來設置DMA通道的傳輸方式,置0表示Block傳輸,置1表示Scatter/Gather傳輸;
2.設置命令/狀態(tài)寄存器:啟動/停止DMA操作,并讀此寄存器返回DMA狀態(tài);
3.設置描述寄存器:設置DMA的傳輸方向;
4.設置傳輸計數寄存器:以字節(jié)為單位設置傳輸數據量;
5.設置PCI地址寄存器:設置PCI總線側的地址空問;
6.設置局部地址寄存器:設置局部總線側的地址空間。
當進行數據采集時,由應用程序或通過DSP的外部引腳(pin21)向DSP發(fā)出采集命令,同時復位FIFO,在13SP內部程序和CPLD的控制下,數據經DO-31源源不斷地輸入到FIFO中,當FIFO半滿時發(fā)出半滿標志信號(HF#),CPLD接到半滿信號后,立即向PCI9054發(fā)出中斷請求信號(LINT),驅動程序響應中斷,在中斷響應程序內,發(fā)出讀命令、要讀取的字節(jié)數、傳輸方向、地址信號等,PCI9054設定DMA傳輸開始位啟動數據傳輸,當ADS#為低(有效),BLAST為高(無效),LW/R為低(有效)時,表明PCI9054開始一個有效的讀數據周期,CPLD產生一個低電平信號REN#給FIFO,同時作為Ready信號返回給PCI9054, 表明已準備就緒。直到ADS#為高(無效)且BLAST#為低(有效)時,表明PCI9054已經開 始最后一個周期,同時設定D M A傳輸結束位結束DMA操作,此時REN#信號再次變高電平(無效),完成一次數據突發(fā)傳輸。接口電路如圖4所示。
該系統(tǒng)的軟件設計主要包括DSP測控程序、PCI設備驅動程序和Windows應用程序三個部分。驅動程序是連接硬件系統(tǒng)和應用程序的橋梁,是整個測控系統(tǒng)開發(fā)中的關鍵一步。在此簡單介紹一下PCI設備驅動程序開發(fā)過程。
在Windows環(huán)境下共有三種類型的驅動程序,分別是VXD、NT、WDM。因為WDM可以應用在windows98/2000/XP下,支持即插即用、電源管理、WMI等功能,是Windows NT驅動體系基礎上發(fā)展起來的未來主流驅動程序體系,所以為這里選擇設計WDM驅動程序。
開發(fā)工具選擇Compuware公司提供的DriverStudio完~成驅動程序的開發(fā),DriverWorks是DriverStudio中的一個部分,DriverWorks中的類庫封裝了針對驅動程序的各種通用操作,使用其中的DriverWizard向導功能,能夠非常方便地實現(xiàn)WDM驅動程序的開發(fā)。
其中PCI配置空間的訪問采用KPciConfiguration實現(xiàn)。I/O訪問采用DriverStudio中的KIoRange類實現(xiàn)。硬件中斷響應的處理可以采用Kinterrupt類實現(xiàn)。DMA讀主要是利用三個類來實現(xiàn)數據傳輸,分別為:KDmaTransfer、KdmaAdapter和K C o m m o n D m a B U ff e r。KDmaTransfer用于DMA傳輸控制。KdmaAdapter用于建立一個DMA適配器來說明DMA通道的特性。KCommonDmaBuffer用于申請系統(tǒng)提供的公用緩沖區(qū)。
執(zhí)行過程中驅動程序首先設置PCI9054的工作方式和中斷寄存器、DMA配置寄存器,然后等待本地中斷的到來。當FIFO半滿時表明本地中斷到來,在設備成員函數Isr_IrqO中屏蔽本地中斷,在設備成員函數DpcFor_Irq()中調用KDmaTransfer:Continue()函數進行DMA傳輸。一次數據傳輸完畢后,驅動程序通過操作系統(tǒng)將內核中的數據拷貝到用戶態(tài)內存,交給應用軟件處理。
結語
在實驗室中利用PCI9054作為接口芯片的高速測控系統(tǒng),可實現(xiàn)持續(xù)數據傳輸速率達50MB/s,且系統(tǒng)運行穩(wěn)定,具有廣泛的應用前景。
評論