当前位置:首页 > 电源 > 数字电源
[导读]摘要:开发了多DSP雷达信号处理板卡。对DSP互连、DSP与FPGA通信以及基于Xilinx FPGA的PCIE总线进行设计。系统可扩展性好、效率高。用DriverStudio开发了WDM总线驱动程序,具有很好的通用性和可移植性。 关键词:PCI

摘要:开发了多DSP雷达信号处理板卡。对DSP互连、DSP与FPGA通信以及基于Xilinx FPGA的PCIE总线进行设计。系统可扩展性好、效率高。用DriverStudio开发了WDM总线驱动程序,具有很好的通用性和可移植性。
关键词:PCIE;WDM;驱动;DSP

    雷达成像信号处理的特点是运算复杂。数据量大,要求系统在进行快速运算的同时能进行大数据量的快速传输和存储。I/O技术在高性能计算的发展过程中始终是一个十分关键的技术。
    PCI Express总线基于串行总线高速互连,比普通并行I/O技术有着更为领先的带宽优势,被广泛地认为是一项革命性的总线技术,其重要性可以满足不同使用者的需求。本文将详细讨论基于PCIE总线的信号处理板卡的数据传输设计,主要包括DSP互连,DSP与FPGA通信,PCIE接口设计以及总线驱动程序的开发。

1 基于PCIE总线的数字信号处理机介绍
    本系统是一个通用的基于PCIE总线的雷达成像数字处理机,板卡功能框图如图1所示。4片DSP之间通过高速链路口实现点对点互连,实现1GB/s的全双工带宽。同时每个DSP又分别通过链路口与FPGA互连,构成一个分布式系统。系统采用4片ADI公司生产的TS201芯片进行主要的数据处理工作,配以高性能的Xilinx Virtex-5芯片(XC5VLX110T),实现对数据的高速预处理。每片DSP配备容量为256MB的SDRAM。系统通过FPGA芯片内嵌的PCIEIP core实现与主机的通信。

[!--empirenews.page--]

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通信时这两个模块可以对数据分别进行打包和拆包处理。接收/发送缓冲则用来配合接收/发送模块,在传输数据时用来缓冲数据。


    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及控制请求、调用其他驱动程序等组成。[!--empirenews.page--]
3.2 应用程序和驱动程序的通信方法
    应用程序可以用标准的Win32API函数与驱动程序建立通信。在应用程序中首先用设备GUID接口或符号链接名打开设备,实际上应用程序调用了Win32API函数CreateFile。若成功打开将返回设备的有效句柄,应用程序获得有效句柄后就可以和驱动程序交换数据。打开设备后应用程序可以用函数DevieeloControl与驱动程序通信,这个函数包括从驱动程序读数据和写数据。完成硬件操作后用CloseHandle函数关闭该设备。
3.3 PCI Express总线介绍
    PCIE总线是Intel公司提出的第3代I/O总线。PCIE总线采用双工串行传输模式,速度快,低功耗,扩展灵活,软件层与PCI兼容,具有数据包和层协议架构。


    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通道,分别用来从主机内存读取数据和将数据写入主机内存。[!--empirenews.page--]
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数据的快速存取。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Micro热插拔技术作为现代电子设备中常见的一种接口设计,其便捷性和灵活性得到了广泛应用。然而,关于Micro热插拔是否需要断电的问题,一直存在争议。本文将详细探讨Micro热插拔的原理、优缺点,以及在不同情况下是否需要...

关键字: Micro热插拔技术 现代电子设备 接口设计

其一,是把系统所需的外设和单片机连接起来,使单片机系统能与外界进行信息交换。如通过键盘、A/D 转换器等外部设备向单片机送入数据、命令等有关信息,去控制单片机运行;通过显示器、发光二极管、打印机等设备把单片机处理的结果送...

关键字: 单片机 外部总线 接口设计

史胜辉,在MTK工作了11年,一直在基带芯片的USB驱动领域做开发和验证。从最开始做USB2.0/3.0 IP验证和驱动开发到后面带领团队做上层协议驱动开发,以及跟硬件设计部门合作开发全新的USB硬件加速器。

关键字: 基带芯片 驱动领域 驱动开发

科技不断进步的今天,电脑作为生产力工具早已走进我们的生活。想必大家都遇到过电脑开机慢、卡顿的问题,如果你上网查询解决方案,总会看到有人建议给电脑换个固态硬盘。于是你去购物软件搜索固态硬盘,映入眼帘的是SATA、M.2、P...

关键字: 固态硬盘 HC SATA PCIE总线

科技不断进步的今天,电脑作为生产力工具早已走进我们的生活。想必大家都遇到过电脑开机慢、卡顿的问题,如果你上网查询解决方案,总会看到有人建议给电脑换个固态硬盘。于是你去购物软件搜索固态硬盘,映入眼帘的是SATA、M.2、P...

关键字: 固态硬盘 HC SATA PCIE总线

摘 要 :视频监控系统是计算机应用中的重要领域之一。数字化摄像头网络化之后,监控系统正在不断引入新的功能,为使现有监控系统能更好地应对复杂环境,满足不同监控要求,就需要追加新功能,在系统架构与设计上进行调整。因此,如何将...

关键字: 智能监控 系统架构 模块化设计 接口设计 数据传输 深度相机

点击上方名片关注我们朱老师推荐语:此岗位为AIoT终身成长大会员同学提供的自己公司的岗位内推,总部在深圳,是一家专业从事闭路电视监控设备、会议摄像机的研发、制造、销售的高科技企业,有学过嵌入式课程或者海思项目的同学,想换...

关键字: 开发工程师 linux驱动 驱动开发

最近在学习MIPI接口的LCD驱动开发与调试,这里我主要用的是MIPI-DSI接口,它学习起来真的是太复杂了,特别是对于我这种很久都没写驱动来说更是头疼,但是头疼归头疼,工作咱们还是要完成的,那就只能硬着头皮往下肝吧!首...

关键字: MIPI 驱动开发 调试

关注、星标嵌入式云IOT技术圈,精彩及时送达来源|  Linux与SoC整理出了6种驱动开发时与设备注册、设备树相关的调试方法,彼此间没有优先级之分,每种方法不一定是最优解,但可以作为一种debug查找问题的手段,快速定...

关键字: 驱动开发

最近在学习MIPI接口的LCD驱动开发与调试,这里我主要用的是MIPI-DSI接口,它学习起来真的是太复杂了,特别是对于我这种很久都没写驱动来说更是头疼,但是头疼归头疼,工作咱们还是要完成的,那就只能硬着头皮往下肝吧!首...

关键字: MIPI 驱动开发 调试
关闭
关闭