java怎么拦截某个对象
328
2022-11-14
PCI_MT64 IP核的原理和结构设计
引言
PCI_MT64 IP核的原理和结构
图1 PCI_MT64的模块结构
PCI侧地址/数据缓冲模块:用来缓存PCI总线侧的地址数据输入、输出信号。
PCI侧主/从模式控制模块:用于控制PCI总线的主设备和从设备的各种时序操作。
Local侧主/从模式控制模块:用于控制PCI_MT64与本地逻辑的各种操作。
Local侧地址/数据/命令/字节使能模块:接收和输出用户侧的所有地址、数据、命令、字节使能等信号。
奇偶校验模块:用于对数据、地址、命令进行奇偶校验。
PCI_MT64 IP核在CPCI数据采集卡中的应用设计
PCI_MT64 IP核在CPCI数据采集卡中的功能:与CPCI总线之间的通信和数据传输,并做奇偶校验以保证正确性,即将复杂的CPCI总线信号转换为相对简单易操作的CPCI本地总线信号,它从CPCI总线侧获得传输命令和读写数据的地址后,一方面对这个操作命令做出反应,将其传达给本地逻辑,另一方面将CPCI总线传送过来的数据地址映射为本地逻辑可识别的地址。当本地端总线准备好后,PCI IP核会收到本地逻辑做出的响应信号,然后根据主从模式,读/写命令的不同执行相应的时序。简单的说,它是CPCI总线和本地逻辑的桥梁,所以首先要设计CPCI本地侧逻辑实现PCI IP核功能验证,如图2所示。
图2 CPCI本地端逻辑设计
DMA控制器由DMA寄存器和DMA状态机两个模块构成。DMA寄存器是主机控制DMA的窗口,包括控制状态寄存器、地址寄存器、字节寄存器、中断状态寄存器和本地地址寄存器。DMA寄存器的地址直接映射到PCI的地址空间,其基地址对应PCI IP核中的配置寄存器Bar0。主机通过设置在存储器地址空间的DMA寄存器来控制DMA传输。DMA状态机是控制主模式写传输的核心,产生主模式传输需求的各种信号。状态跳转条件来自DMA寄存器,IP核以及DMA FIFO。状态机流程图如图3所示。
图3 DMA状态机
以链式DMA传输为例介绍其流程:主机首先把多组字节寄存器和地址寄存器的值写入描述符FIFO,每一组字节寄存器和地址寄存器就是一个描述符;主机再写本地地址寄存器和控制状态寄存器即启动了DMA状态机,开始链式的数据传输。状态机跳入装载DMA状态,通过对DMA FIFO的读取将需要的值写入寄存器中,经寄存器有效状态进入等待请求状态。当外部FIFO数据准备好,DMA状态机向主机发送总线请求信号,并等待主机的总线允许信号,此时状态机进入等待允许状态;一旦接收到主机的总线允许信号,整个DMA传输开始,状态机也进入数据传输状态。在数据传输周期中,字节寄存器的值逐渐减少直到零时,一个描述符传输完成,每一个描述符传输完成的时候,状态机并不进入结束状态,而是直接进入空闲状态,开始下一次描述符的传输,所以不产生中断。等到DMA FIFO为空的时候,状态机认为本次链式DMA传输完成,进入到结束状态,此时产生中断,一次链式DMA传输结束。
实验调试及分析
图4 从模式单周期写仿真时序
为测试PCI_MT64 IP核的本地端逻辑设计,调用基于Windriver编写的驱动程序和用户界面实现数据的传输。这样,既验证了CPCI数据采集卡硬件逻辑的正确性,又验证了软件的正确性。其测试结果如图5所示。
图5 应用软件测试界面
图5中数据采样率为500MHz,输入信号频率为16MHz,一个周期的采样点数N=500/16=31.25,故250个点内应有250/31.25=8个周期的数据。采样数据的幅值以十六进制格式在列表框中显示。波形显示了有限数据的连续传输,没有任何数据丢失,验证了基于PCI_MT64 IP核在数据采集卡中采用DMA方式传输数据的完整性及传输速度。
结束语
PCI_MT64 IP核能有效的满足CPCI数据采集卡对数据高速传输的要求,实现CPCI接口功能,并能与用户逻辑配合工作,实现数据的缓存和传输。相较于使用PCI专用芯片实现接口功能的方法,本设计具有电路板集成性能高、功耗低、成本低、方便移植等优点。
电子科技大学自动化工程学院 王俊丽 王志刚
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~