• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > 基于DSP內嵌PCI總線的衛星信號仿真器設計

    基于DSP內嵌PCI總線的衛星信號仿真器設計

    作者: 時間:2009-08-25 來源:網絡 收藏

    2 6416關鍵寄存器及其中斷機制
    6416的接口支持通過主/從總線接口連接主機,PCI接口端通過EDMA內部硬件與DSP相連,它支持四種類型PCI數據交換:從模式讀,即外部PCI主設備通過PCI接口寫數據到DSP;從模式寫,即外部PCI主設備通過PCI接口從設備讀數據;主模式讀,即DSP主設備通過PCI接口讀數據到外部PCI從設備;主模式寫,即DSP主設備通過PCI接口寫數據到外部PCI從設備。
    PCI寄存器主要包括3類:PCI配置寄存器、PCII/O寄存器、映射在DSP存儲空間作為外設的PCI寄存器。前兩類寄存器只能被外部主機訪問,而第三類寄存器可以被DSP和外部PCI主機訪問。
    PCI配置寄存器包含標準的PCI配置信息(設備標識,廠商標識,分類代碼,基址等);PCI I/O寄存器位于PCI主機的I/O空間,主機只能在:Base1和Base2訪問它們,PCI I/O寄存器包括HSR,HDCR,DSPP。如圖3所示,HSR寄存器表明主機的狀態,它的INTSRC位和INTAM位對于中斷處理至關重要。 INTAM位為1時,它可以屏蔽DSP發送的中斷,當該位為0時,只要。DSP設置RSTSRC字段中的INTREQ位時,可以使能PINTA,即主機在這時可以響應中斷。當INTSRC位讀為0時,表示PINTA自上次清除后無效,當讀為1時,表示PINTA處于使能狀態,該位寫0無效,寫1清除 PINTA的使能狀態。對于HDCR來說,PC機通過將DSPINT位置1產生主機中斷。DSPP主要和Base0一起定義一段存儲空間。

    PCI內存映射外圍寄存器主要用于控制PCI接口,它可以被主機和DSP訪問,在該寄存器中,較重要的是RSTSRC寄存器,如圖4所示。

    DSP通過將RSTSRC寄存器中的INTREQ置1產生中斷;PC機和DSP通過將INTRST置1清除中斷,這一點在驅動開發中至關重要,因為DSP 產生的中斷屬于電平中斷類型,如果不清除中斷,它將一直有效.這將會導致中斷響應函數不斷的調用,從而導致死機。
    PCI端口通過3種基址寄存器可以完全訪問DSP的存儲器映射。
    Base0:4 MB的可預存取空間,通過設置DSP頁寄存器映射所有DSP存儲器空間,預取讀使所有的字節有效。
    Base1:8 MB非預取地址映射對應于所有的DSP存儲空間,非預取支持字節使能。
    Base2:PCI的16MB I/O包括I/O寄存器。
    這3種寄存器屬于PCI配置寄存器,PCI主機可以訪問映射在PCI存儲器空間4 MB的DSP存儲器,PCI端口包含一個PCI I/O寄存器(DSPP寄存器)從PCI地址到DSP地址的映射。當DSP作為PCI本地總線從屬時,使用該映射模式;當DSP上的PCI基地址寄存器被配置成一個8 MB不可預取區域時,該存儲空間映射為DSP內存映射寄存器(0180 0000h)。PCI地址的22:0位與一個固定偏移相連,將Base 1訪問映射到內存寄存器;基地址寄存器2配置16 B I/O空間,使PCI主機用于訪問PCI I/O寄存器。

    3 程序及驅動程序的開發
    3.1 驅動工具的選擇
    對于開發wDM型PCI驅動,常用的開發工具有三種。一是直接使用Windows DDK或者WDK工具;二是使用DriverStudio;三是使用WinDriver。第一種方式要求掌握Windows的體系結構、設備驅動的體系結構等知識,開發難度較大;第二種方式對DDK進行了封裝,難度雖然降低了些,但依然不小,而且由于封裝問題,可能帶來一些Bug,有可能導致項目失敗;第三種方式克服了傳統開發工具開發驅動周期長,效率低,需具有DDK和核心態程序開發經驗等缺點,大大簡化了ISA-BUS,PCIBUS等硬件設備驅動程序的開發過程,而且WinDriver還提供核心插件(Kerneal Plu-gin)功能,使開發者在用戶模式下調試代碼,然后將調試無誤的代碼搬到內核模式(Kernel Mode)中,因而使用WinDriver,具有簡單、快速、高效的特點。



    關鍵詞: DSP PCI 內嵌 仿真器

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 屏东县| 渑池县| 华蓥市| 淳化县| 陵水| 安宁市| 万山特区| 托里县| 西宁市| 石家庄市| 沛县| 万州区| 沛县| 宁南县| 象州县| 丰原市| 博爱县| 阿拉尔市| 兰考县| 华宁县| 呼伦贝尔市| 疏勒县| 明星| 宁河县| 洪泽县| 汪清县| 鹰潭市| 北辰区| 江口县| 抚松县| 永寿县| 弋阳县| 康定县| 琼结县| 芷江| 岑巩县| 乌拉特中旗| 深圳市| 兴文县| 西充县| 枞阳县|