基于FPGA的LVDS高速数据通信卡设计 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

基于FPGA的LVDS高速数据通信卡设计

来源:中国一卡通网  作者:不详  发布时间:2012-08-09 10:04:53  字体:[ ]

关键字:通信卡  高速数据  LVDS总线协议  

摘   要:  某遥测信号模拟源是用于产生模拟信号处理器、遥测组件测试和交付测试的前端输入信号的专用设备。该信号源生成各种类型的信号,输入给待测产品,测试时比对遥测信号模拟源生成的信号和其经过待测产品以后的信号,以判断产品的功能是否正常。设计中的板卡为该遥测信号模拟源的组成部分,主要用于测试产品的LVDS总线协议的功能是否正常。


  1.4 FPGA内部结构设计

  FPGA内部结构的逻辑设计是本板卡设计的核心部分,图3所示为本系统FPGA内部结构框图。 


  LVDS信号接收器接收外部的LVDS数据帧,检出帧头,并将帧数据传送给双口RAM进行处理,一个数据帧包含32 bit的帧头和256×32 bit的帧数据。接收的双口RAM实现数据的乒乓存储,写数据的宽度为1 bit,读数据的宽度为32 bit,以此来实现数据的串并转换,同时实现数据时钟域的转换。LVDS接收数据控制模块用于产生双口RAM和SDRAM控制器的地址总线、数据总线和控制总线,实现各接收模块联合控制和数据转移,同时它还负责从SDRAM控制器读取数据送至FPGA内的FIFO缓冲区,用于PCI总线交互。

  LVDS信号发送部分由LVDS发送数据控制、双口RAM、FIFO缓冲、LVDS信号发送器和DDS控制器组成。LVDS发送数据控制用于产生各模块的地址、数据和控制总线,实现数据转移和交互。双口RAM实现并串转换和乒乓存储。LVDS信号发送器为数据帧添加包头,并连同帧数据以AD98 51产生的发送频率串行发送出去。

  另外,SDRAM控制器是FPGA内用于外部SDRAM控制的模块,PCI本地总线控制器是FPGA内用于控制PCI9054本地总线交互的模块,DDS控制器是FPGA内用于外部AD9851控制的模块。PLL是Ahera FPGA内提供的模拟延迟锁相环模块,可以实现系统时钟的倍频、分频及延迟等时钟控制操作。通过该模块可以实现系统内不同时钟域的时钟分配。

  2 软件设计

  系统设备的驱动程序采用Windows下的WDM(Windows Driver Model)驱动程序。目前开发WDM驱动程序通常有3种工具,即Windows DDK、DriverStudio和WinDriver。由于DriverStudio包含完善的源代码生成工具以及相应的类库和驱动程序样本,提供了在VC++下进行驱动程序开发的支持,因此设计中使用DdverStudio来开发WDM驱动程序。 

  设计的上层应用程序采用Microsoft Virtual Studio作为开发平台,通过MFC设计了人机交互界面,主要用于完成接收数据显示存储、发送数据载入、发送频率控制字以及PCI控制命令等功能。其程序面板如图4所示。 


  3 结果测试

  在Ahium Designer 2009平台上进行板卡硬件原理图和PCB图设计,FPGA芯片采用Altera公司的EP1C6Q240C6,使用Quartus II 9.0开发系统实现编程和仿真,完成对电路设计的功能仿真和时序仿真。

  在Quartus II中进行引脚分配并编译完工程后,将设计文件下载到FPGA的配置芯片中。在硬件上将LVDS的发送端和接收端连接以实现自发自收。在PC机的应用程序中设置发送频率为50 MHz,然后点击“发送频率控制字”按钮发送频率控制字,载入从0开始的连续累加数字,点击“开始发送”按钮发送数据,然后点击“开始接收”按钮接收数据。从图4所示的发送与接收数据显示可以发现,接收到的LVDS数据与发送的LVDS数据完全一致,系统的发送功能与接收功能符合设计要求。

  4 结束语

  介绍了基于FPGA和PCI9054的LVDS数据通信卡的设计,通过FPGA实现了LVDS数据的接收发送控制、PCI9054实现了与上位机的数据交互,实现了10~200 Mbit·s-1速率的LVDS数据接收以及10~50 Mbit·s-1任意速率的LVDS数据发送。此板卡的设计,可以有效地应用于某遥测模拟信号源,并对待测设备的LVDS总线协议进行全面测试。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖