基于FPGA的LVDS高速数据通信卡
1.4 FPGA内部结构设计
FPGA内部结构的逻辑设计是本板卡设计的核心部分,图3所示为本系统FPGA内部结构框图。
LVDS信号接收器接收外部的LVDS数据帧,检出帧头,并将帧数据传送给双口RAM进行处理,一个数据帧包含32 bit的帧头和256×32 bit的帧数据。接收的双口RAM实现数据的乒乓存储,写数据的宽度为1 bit,读数据的宽度为32 bit,以此来实现数据的串并转换,同时实现数据时钟域的转换。LVDS接收数据控制模块用于产生双口RAM和SDR奇力新电感AM控制器的地址总线、数据总线和控制总线,实现各接收模块联合控制和数据转移,同时它还负责从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总线协议进行全面测试。
大电流电感TDK变压器感量计算
仔细查看一下资料,应该有标注的那篇文章看了几遍没看到有标注了,是TDK的K应该是电流纹波系数,K为0时是电流断续模式(CDM)。我想可能也是这样,
应该没错了,图中K=0时,KIp=0.
影响充电宝安全使用的几大要点 说到移动电源(充电宝)的安全问题,大家第一个想到的就是电芯,以往一些充电宝爆炸的事故,也大多是因电芯劣质所造成的,而还有一部分又是因为什么因素影响的呢!
无论
[DCDC]5V输入升压型8.4V锂电池充电芯片AL30845V输入升压型8.4V锂电池充电芯片AL3084AL3084是一款5V输入支持两节串联锂电池的升压充电管理应用。 采用了开关升压压结构,有散热片的 SOP8 封装与较少的外部元件数目使得 AL3084 成为便携式应用的理想选择。 AL3084 输入电压为5V,内置自适应环路智能调节充电电流,防止拉低充电器输出。 可以适合 USB 电源和适配器电源工作。 热反馈可对充电电流进行自动调节,以便在大功率操作或高环境温度条件下对芯片温度加以限制。 充电电压固定于8.4