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

时间:2012-07-13来源:网络

2 DSP与FPGA互连接口设计
2.1 互连及数据通信方法
首先,采用DSP高速链路口实现DSP点对点连接,TS201芯片采用全双工模式,当处理器内核工作在500 MHz时,链路口最高也可工作在500 MHz,每个链路口的双向吞吐率可以达到1 GB/s,实现了点对点的高速传输。任意两片DSP之间都通过链路口连接,使得DSP之间传递数据变得灵活,使程序设计变得简单。另外,每块DSP通过一个链路口与FPGA互连,在数据传输不冲突的情况下,FPGA可以同时与多片DSP通信,实现FPGA和DSP的高速数据交换。
2.2 接口设计原理与实现
由于系统中DSP之间实现了点对点互连,接口的设计主要涉及到DSP和FPGA之间的时序电路开发。TS201有4个链路口,链路口采用全双工模式,每个链路口有两个独立的DMA通道可以同时进行通信。每个通道用LxCLKOUTP/N,LxACKI,LxCLKINP/N和LxACKO控制数据传输,LxBCM PI和LxBCMP用于指示现行缓冲器发送是否完成。利用链路口传输数据时,数据帧的开始是由时钟的上升沿来指示的,在时钟上升沿和下降沿分别传送数据。由于链路口具有收发两个模块,所以FPGA需要在内部实现收发两个模块来与DSP的两个模块相对应。
依照链路口通信协议,FPGA向DSP发送数据时的链路口发送时钟是由内部锁相环产生的,接收DSP传送的数据时的接收时钟由DSP的随路时钟提供。链路口时钟、数据信号线均使用LVDS电平标准进行连接,ACK和BCMP信号则采用单端的方式连接至FPGA。
FPGA内部逻辑主要包括接收/发送模块和接收/发送缓冲。接收模块与DSP的链路口发送端连接,发送模块与DSP的接收端连接,在FPGA和DSP通信时这两个模块可以对数据分别进行打包和拆包处理。接收/发送缓冲则用来配合接收/发送模块,在传输数据时用来缓冲数据。

b.JPG


FPGA与DSP之间传输数据时发送方先要将数据传送给链路口发送模块缓冲(一个异步FIFO),接收方控制模块检测到LxACKI为高并且FIFO内至少有一个4字数据块的数据时,双方握手完成,启动数据传输,否则继续等待。一个数据移位控制模块使数据按照链路口通信协议的标准进行排列后传送给DDIO模块产生DDR数据,另一个DDIO宏单元则是用来产生同步的时钟。发送模块的仿真波形如图2所示。

3 PCIE驱动程序开发
3.1 WDM驱动程序的开发介绍
WDM是微软全力推出的一种设备驱动程序模型,相对于KDM(Kernel Driver Model),WDM增加了对即插即用(pnp)、电源管理等新的硬件标准的支持。
WDM的分层结构有利于系统的设计、扩展和驱动程序的开发。采用DriverStudio来开发运行在Windows XP下的WDM模式PCIE设备驱动程序(用DriverWorks编写代码,用DriverMonitor和SoftlCE调试驱动。Drive/Works对WindowsDDK的类进行了很好的封装,因此在开发WDM驱动程序时,DriverWorks向导产生驱动框架,开发人员只需选择合适的例程即可,因此可以在较短的时间内开发出效率较高的驱动程序。
一个WDM驱动程序的功能模块一般由初始化、创建和删除设备、即插即用处理、访问硬件、处理Win32 I/O及控制请求、调用其他驱动程序等组成。

1 2 3 4

关键词: PCIE总线 DSP系统 WDM

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版