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

SOPC实现的PCI总线高速数据传输系统

时间:02-21 来源:互联网 点击:
PCI (Peripheral CompONent Interconnect)总线,即外围部件互连总线,是目前应用最广泛的一种高速同步总线,在32位总线宽度33Mz时钟下,其理论最大传输速率可达132Mbyte/s (64位总线宽度66MHz时可达到528Mbyte/s),因此成为上述侦察接收系统中高传输速率、低成本PC接口的首选实现方式。目前,实现PCI总线接口的常用方法有两种:一是采用专门的PCI桥芯片实现PCI接口,如PLX公司的PCI905X系列芯片等;二是使用可编程芯片实现PCI接口。

  本文提出一种采用可编程片上系统(SySTem-On-Programmable-Chip,SOPC)实现侦察接收机PCI总线高速数据传输系统的设计方案,并采用直接存储器访问(DIRect Memory Access,DMA)传输方式来提高数据传输速率。

  1 PCI总线接口方案设计

  在PCI总线接口标准中,根据数据传输的发起者所在位置,PCI接口有从模式和主模式两种工作模式。根据工作方式的不同,DMA传输方式可分为连续式DMA (Continuous DMA)和集散式DMA(Scatter-Gather DMA)两种。

  1.1 PCI模式的选择

  PCI总线标准中,由PC发起数据传输、读/写PCI接口卡的模式称为从模式。这种模式只要求PCI接口设备具备PCI从设备的功能,接口逻辑相对较简单;主模式是由PCI接口卡主动读写PC内存,PCI接口的逻辑相对复杂。频繁地要求PC发起数据传输会占用PC的资源,为了减少PC的负担,使其有更多的资源用于后续的数字信号处理,在侦察接收系统中,PCI接口卡的传输模式选择主传输模式。

  1.2 DMA传输方式的选择

  DMA是提高数据传输速率和微处理器使用效率的一种数据传输机制。连续式DMA用于实现连续数据块的传输,即在一次DMA传输中设备端读/写物理地址连续变化(读存储器空间)或不变化(读IO口),PC端的物理存储地址连续变化。集散式DMA用于实现不连续数据块的传输,各传输数据块的起始读/写地址和长度都可以不同,它采用一个寄存器链表存储每个数据块的读/写起始地址和长度,DMA传输过程中自动从该链表加载地址和长度信息。集散模式DMA应用灵活,其缺点是在传输完一个数据块之后要重新配置DMA控制寄存器的值,速度比连续模式稍慢。在侦察接收系统中,DMA传输模式选择连续式传输模式。

  1.3 PCI总线DMA传输方案设计

  PCI接口总体结构框图如图1所示。数据输入到乒乓RAM缓冲区,乒乓切换信号通知CPU数据准备好,CPU通过PCI桥的控制状态寄存器判断PC端是否备妥,如PC备妥则配置并启动DMA控制器,DMA控制器读口从乒乓RAM中读数据,写口将数据写至PCI总线访问端,PCI总线接口单元申请并获得PCI总线访问权,将数据送上PCI总线。

         

  2 PCI总线接口的SOPC实现

         

SOPC是Ahera公司提出的一种灵活、高效的片上系统解决方案,它将处理器、存储器、I/O口以及一些通用的功能模块集成在一个PLD器件上,构成一个可编程的片上系统。利用SOPC开发侦察接收机中的PCI总线接口,具有开发周期短、系统稳定性好的优点。

        

  2.1 系统实现

  PCI总线接口的SOPC内部结构如图2所示。实现PCI总线DMA传输系统使用到4类功能模块,分别是实现PCI桥逻辑的pci_comiler组件(pci_c ompiler)、负责数据传输的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.2 PCI总线异常的自动处理

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

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

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

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

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

在侦察接收系统设计中,上述异常一旦发生,PCI接口便中断NiosCPU,CPU接收到中断后,通过查询PCI桥的控制寄存器访问(Control RegisterAccess,CRA)空间,获得异常信息。系统错误发生时,PCI接口设备是没有办法恢复的

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

网站地图

Top