基于PCIE总线的多DSP系统接口设计和驱动开发

PCI Express协议定义了4层结构:物理层,数据链路层和事务处理层,软件层。PCI Express系统体系结构如图3所示。每个层次按照协议中规定的内容,完成相应的数据处理功能。PCIE软件层保持与PCI总线兼容,软件兼容包括器件的初始化、自动配置和器件的运行。事务处理层接收来自软件层或应用层的读写请求,并构造响应数据包并传给数据链路层。数据链路层的主要作用是确保数据链路包在数据链路层上的可靠传送。物理层负责接口和设备间的连接,它在两个PCI Express模块之间的链路层间传输数据包。
3.4 驱动开发实例
3.4.1 PCIE接口模块
PCI Express接口模块通过调用IP核技术实现,它接口模块的结构如图4所示。PCI Express通信协议以及DMA的实现等是在FPGA内实现的,整个模块用到了Hard IP核和DMA IP核。

Hard IP核用来处理PCI Express协议相关的事务;DMAIP核用作DMA控制器;DMA控制器通过控制与DMA相关的寄存器,设定读写操作的地址范围和大小,来完成DMA数据读写操作。DMA管理模块控制两个独立的DMA通道,分别用来从主机内存读取数据和将数据写入主机内存。
3.4.2 DMA模式读写过程
为提高主机和板卡之间的数据传输速率,并保证数据的不丢失,采用DMA传输的方式。DMA方式的工作原理图5所示。

板卡的FPGA芯片中有DMA控制器。它提供了2个独立的DMA通道用于从主机到设备和从设备到主机的数据传输。
DMA写操作,即设备将数据向上传输到主机中,当数据到来的时候,它将FIFO中的数据直接写到服务器的内存空间,并产生一个DMA中断通知驱动程序,驱动程序收到中断后调用中断响应函数来处理内存空间的数据。
DMA读操作,即主机将数据向下传输到设备中,传输卡直接从服务器的内存空间将数据读取到FIFO中。服务器中用于DMA读写的内存空间由驱动程序初始化DMA操作时分配,PCI Express驱动程序利用这段内存空间直接与传输卡进行DMA通信。
4 结束语
开发的多DSP雷达信号处理板卡传输效率高、扩展灵活。用DriverStudio所开发的DMA模式PCIE驱动程序通用性好,并且驱动运行稳定,保证了主机应用程序与硬件板卡上各DSP数据的快速存取。
- PCIe总线的基础知识(12-15)
- PCIe总线概述(12-15)
- DSP概述(07-23)
- 一种具备远程多加载的DSP系统方案设计(02-05)
- FM18L08在DSP系统中的应用(01-23)
- 可高效再配置DSP系统的动态加载技术(01-27)
