微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > SOPC在PCI总线高速数据传输系统中的应用

SOPC在PCI总线高速数据传输系统中的应用

时间:08-21 来源:互联网 点击:

断传输是否完成,传输完成则通过PCI桥向PC发送中断,并执行(1),开始下一次DMA传输;

  (6)PCI总线发生异常时,PCI桥逻辑中断CPU,CPU查询异常状态,并自动从异常中恢复。

  2.2 PCI总线异常的自动处理

  PCI总线DMA传输过程中,可能出现的异常包括:

  (1)PCI总线上SERR信号为高,系统错误。

  (2)PCI总线上PERR信号为高,数据奇偶校验错误;

  (3)主设备或从设备中止传输;

  (4)主设备或从设备中止传输,或重试次数超过门限,导致PCI桥对总线读/写失败。

  在侦察接收系统设计中,上述异常一旦发生,PCI接口便中断NiosCPU,CPU接收到中断后,通过查询PCI桥的控制寄存器访问(Control RegisterAccess,CRA)空间,获得异常信息。系统错误发生时,PCI接口设备是没有办法恢复的,在这种情况下,NiosCPU可点亮指示灯,指示系统错误发生;其它异常情况发生后,Nios CPU可立即通过对DMA控制器的状态空间的长度写零来停止DMA传输,然后重新启动DMA传输,让系统从异常中恢复过来。

  2.3 提高PCI总线DMA速率的优化措施

  为了尽可能提高DMA传输速率,本方案中共采取了以下三个方面的措施。

  (1)PCI总线的突发传输与Avalon总线的流水线操作

  为了提高系统传输速率,应充分利用PCI总线的突发传输特性,使PCI总线处于突发传输状态。为此,在系统设计中,一方面使Avalon总线工作于流水线模式下,降低Avalon总线的延迟时间;另一方面适当增大缓存存储空间,避免因缓冲区满造成的传输延迟等待。

  (2)DMA控制的优化

  为了使DMA传输更为灵活,如程序运行过程中改变DMA长度、读写地址、数据的帧长度,以及发生异常时程序自动恢复等,本文中使用Nio sCPU控制DMA传输。CPU的主要任务是在PC使能DMA和数据准备好时启动DMA传输,应尽可能使程序紧凑,减少冗余操作,做到条件具备立即启动DMA传输。

  (3)功能模块的时钟设置

  如图2所示,SOPC中包括7个功能组件,为了进一步提高系统的速度,需要分别让这7个组件的时钟处于最佳状态。PCI总线访问相关组件的时钟为33MHz,Nios CPU相关的组件运行在150MHz时钟上。使系统在正确稳定运行的基础上,最大限度地提高运行速度。

3 结束语

  本文给出了一种基于SOPC系统的PCI总线高速DMA传输方案。与传统的使用PCI桥芯片实现PCI总线的方案相比,该方案将PCI桥和用户逻辑在一片FPGA中实现,减少了硬件电路的复杂度、降低了系统成本;采用SOPC创建PCI桥,大大缩短了开发周期,提高了系统的可靠性,且因使用了片上Nios CPU进行DMA的在线配置和自动异常处理,使DMA传输更加灵活。通过在EP3C120芯片上验证,该设计能够实现大于100Mbytes /s的PCI总线DMA传输速率

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top