单位文秘网 2021-10-06 08:10:54 点击: 次
v<# <"-s#9\O!,鎜肶x(b#*riO 3 {b.3 qmz?u<"? <" <# ]03 080"https://www.kgf8887.com/list-170-1.html" target="_blank" class="keylink">信息。集散模式DMA应用灵活,其缺点是在传输完一个数据块之后要重新配置DMA控制寄存器的值,速度比连续模式稍慢。在侦察接收系统中,DMA传输模式选择连续式传输模式。
1.3PCI总线DMA传输方案设计
PCI接口总体结构框图如图1所示。数据输入到乒乓RAM缓冲区,乒乓切换信号通知CPU数据准备好,CPU通过PCI桥的控制状态寄存器判断PC端是否备妥,如PC备妥则配置并启动DMA控制器,DMA控制器读口从乒乓RAM中读数据,写口将数据写至PCI总线访问端,PCI总线接口单元申请并获得PCI总线访问权,将数据送上PCI总线。
2PCI总线接口的SOPC实现
SOPC是Altera公司提出的一种灵活、高效的片上系统解决方案,它将处理器、存储器、I/O口以及一些通用的功能模块集成在一个PLD器件上,构成一个可编程的片上系统。利用SOPC开发侦察接收机中的PCI总线接口,具有开发周期短、系统稳定性好的优点。
2.1系统实现
PCI总线接口的SOPC内部结构如图2所示。实现PCI总线DMA传输系统使用到4类功能模块,分别是实现PCI桥逻辑的pci_comiler组件(pci_compiler)、负责数据传输的DMA控制器(dma)、控制整个SOPC的NiosII 处理器(cpu)及其数据程序存储器(onchip_mem),以及SOPC和外部用户逻辑通信的接口模块(BA1、DMARD和datardy),上述组件通过avalon总线连接在一起组成SOPC。
PCI总线DMA传输系统功能模块之间的交互过程如图3所示,过程描述如下:
(1)CPU等待PC使能DMA传输,PC使能DMA后,执行(2);
(2)PC等待乒乓RAM的数据准备好信号,数据准备好后,执行(3);
(3)CPU将DMA的读/写地址和传输长度参数写入DMA控制器中,使能DMA控制器,DMA控制器开始数据传输,即读口通过DMARD接口从RAM中读数,写口将数据写到PCI桥,PCI桥将数据送至PCI总线;
(4)当传输结束后,DMA控制器产生一个中断(IRQ1)送CPU;
(5)CPU判断传输是否完成,传输完成则通过PCI桥向PC发送中断,并执行(1),开始下一次DMA传输;
(6)PCI总线发生异常时,PCI桥逻辑中断CPU,CPU查询异常状态,并自动从异常中恢复。
2.2PCI总线异常的自动处理
PCI总线DMA传输过程中,可能出现的异常包括:
(1)PCI总线上SERR信号为高,系统错误。
(2)PCI总线上PERR信号为高,数据奇偶校验错误;
(3)主设备或从设备中止传输;
(4)主设备或从设备中止传输,或重试次数超过门限,导致PCI桥对总线读/写失败。
在侦察接收系统设计中,上述异常一旦发生,PCI接口便中断Nios CPU,CPU接收到中断后,通过查询PCI桥的控制寄存器访问(Control Register Access,CRA)空间,获得异常信息。系统错误发生时,PCI接口设备是没有办法恢复的,在这种情况下,Nios CPU可点亮指示灯,指示系统错误发生;其它异常情况发生后,Nios CPU可立即通过对DMA控制器的状态空间的长度写零来停止DMA传输,然后重新启动DMA传输,让系统从异常中恢复过来。
2.3提高PCI总线DMA速率的优化措施
为了尽可能提高DMA传输速率,本方案中共采取了以下三个方面的措施。
(1)PCI总线的突发传输与Avalon总线的流水线操作
为了提高系统传输速率,应充分利用PCI总线的突发传输特性,使PCI总线处于突发传输状态。为此,在系统设计中,一方面使Avalon总线工作于流水线模式下,降低Avalon总线的延迟时间;另一方面适当增大缓存存储空间,避免因缓冲区满造成的传输延迟等待。
(2)DMA控制的优化
为了使DMA传输更为灵活,如程序运行过程中改变DMA长度、读写地址、数据的帧长度,以及发生异常时程序自动恢复等,本文中使用Nios CPU控制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传输速率。
参考文献
[1] 闵小平,陆达. 基于FPGA支持PCI接口的片上系统实现[J]. 计算机应用研究,2007,24(8): 272-275.
[2]梁科,李国峰. 通用多通道高性能DMA控制器设计[J]. 天津大学学报,2008,41(5): 621-626.
[3]颜建峰,吴宁. 基于PCI总线的DMA高速数据传输系统[J]. 电子科技大学学报,2007,36(5): 858-861.
[4]黄崧,曾芳玲,杨景曙. 嵌入式智能云控制系统的原理与设计[J]. 电光与控制,2007,14(3): 99-102.
作者简介
张用宇(1977-),男,湖北鄂州,硕士,工程师,研究方向为无线通信系统与技术。
屈晓旭(1976-),男,黑龙江佳木斯,硕士,讲师,研究方向为跳频通信、抗干扰通信技术,通信地址:湖北武汉海军工程大学电子工程学院通信工程系。
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-161-94204-1.html
上一篇:“补”满则溢
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用