新闻中心

EEPW首页>EDA/PCB>设计应用> 基于DSP内嵌PCI总线的卫星信号仿真器设计

基于DSP内嵌PCI总线的卫星信号仿真器设计

作者: 时间:2009-08-25 来源:网络 收藏

26416关键寄存器及其中断机制
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,具有简单、快速、高效的特点。



关键词:DSPPCI内嵌仿真器

评论


相关推荐

技术专区

关闭