色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于DSP的PCI高速測控系統(tǒng)結構的研究設計

          基于DSP的PCI高速測控系統(tǒng)結構的研究設計

          作者: 時間:2012-07-18 來源:網絡 收藏

          本文引用地址:http://cafeforensic.com/article/257350.htm

          PC219054提供了三個物理總線接口:總線接口、EEPROM接口、局部總線接口。總線接口依照擴展板上定義的引腳分配情況將彼此對應的信號連接在一起即可。本系統(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.設置局部地址寄存器:設置局部總線側的地址空間。

          當進行數據采集時,由應用程序或通過的外部引腳(pin21)向發(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)的軟件設計主要包括測控程序、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)定,具有廣泛的應用前景。


          上一頁 1 2 下一頁

          關鍵詞: DSP PCI 高速測控

          評論


          相關推薦

          技術專區(qū)

          關閉