新聞中心

        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 內嵌 仿真器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 丹寨县| 崇信县| 揭西县| 平泉县| 上高县| 鸡东县| 手机| 高安市| 庆阳市| 张家川| 江阴市| 滕州市| 当阳市| 金阳县| 习水县| 海口市| 达拉特旗| 嫩江县| 阿巴嘎旗| 清原| 怀安县| 台江县| 营山县| 确山县| 和龙市| 朝阳区| 开江县| 安徽省| 阳原县| 惠州市| 搜索| 龙泉市| 大邑县| 肃南| 明光市| 万载县| 沐川县| 沾益县| 收藏| 财经| 沽源县|