基于FPGA的LVDS高速数据通信卡设计
摘要 基于FPGA、PCI9054、SDRAM和DDS设计了用于某遥测信号模拟源的专用板卡。PCI9054实现与上位机的数据交互,FPGA实现PCI本地接口转换、数据接收发送控制及DDS芯片的配置。通过WDM驱动程序设计及MFC交互界面设计,最终实现了10~200 Mbit·s-1的LVDS数据接收及10~50 Mbit·s-1任意速率的LVDS数据发送。
关键词 PCI9054;LVDS;DDS:FPGA
某遥测信号模拟源是用于产生模拟信号处理器、遥测组件测试和交付测试的前端输入信号的专用设备。该信号源生成各种类型的信号,输入给待测产品,测试时比对遥测信号模拟源生成的信号和其经过待测产品以后的信号,以判断产品的功能是否正常。设计中的板卡为该遥测信号模拟源的组成部分,主要用于测试产品的LVDS总线协议的功能是否正常。由于待测信号的特殊应用,要求板卡能够接收200 Mbit·s-1内的高速串行数据并能发送10~50 Mbit·s-1的任意速率LVDs数据。因PCI总线速度高、兼容性好、可靠性高且成本低,使其在各种与主机通信的总线技术中优势明显。FPGA资源丰富、速度快、开发方便快捷,因此在高速数据通信中应用广泛。DDS频率合成技术通过频率控制字、相位控制字及参考时钟的控制来实现输出信号的调频调相,并且输出信号具有频率转换快、频率分辨率高和相位噪声低等优点。综合上述特点,设计运用PCI9054实现PCI总线接口,FPGA实现数据接收发送控制及接口实现,DDS芯片AD9851产生任意LVDS数据发送时钟,最后使用MFC实现板卡的交互界面并对板卡实现测试。
1 硬件设计
数据接收系统是将目标信号进行采集、处理并存储,形成计算机可以处理的数据格式,即包含信号输入单元、信号处理单元和信号输出单元。数据发送系统是将目标数据传送给下位机,下位机进行数据格式处理,然后按照数据协议形式通过信号输出单元发送出去。除此之外整个系统还需要缓冲区、时钟以及电源等相关模块支持。图1所示为本板卡的硬件设计框图。
1.1 PCI接口设计
PCI总线是由Intel等公司制定的具有严格规范的外部设备互联总线,是目前计算机中广泛采用的局部总线,它的信号线包括32根地址数据复用线、仲裁、接口控制线、总线命令字节允许复用线和系统复位等。PCI接口设计一般采用两种方法:(1)利用CPLD/FPGA实现,这种方法可以针对自己的需要定制功能,设计灵活性大。(2)用通用的接口芯片,如AMCC公司的S5933、PLX公司的PCI9054等。因PCI总线协议复杂,自行设计接口费时费力,而PCI接口芯片具有设计简单、功能强大、可靠性好等特点,从而大大减少开发工作量。综上所述,设计选用PCI90 54,C从模式工作,本地总线端输入时钟50 MHz,配置芯片为Mierochip Technology公司的93LC56串行EEPROM。
1.2 LVDS接口设计
低压差分信号(Low Voltage Differential Signaling,LVDS)采用极低的电压摆幅高速差动传输数据,可以实现点对点或一点对多点的连接。文中采用Cyclone I系列EP1C6Q240FPGA,它支持高速LVDS接口,利用其I/O的LVDS驱动器把FPGA内部逻辑信号转换为低压差分信号对,经过传输线传送到对方差分接收电路。在Cyclone I系列FPGA中,使用LVDS接口只需在其配套的Quartus II软件的MegaWizard中调用Alt lvds并进行定制即可。
LVDS接口电路的设计如图2所示,FPGA发送端通过LVDS发送差分信号,在差分线上分别串接一个120 Ω电阻,再在其间并接一个170 Ω电阻,削弱差分信号的幅值,防止信号产生震荡;FPGA接收端在差分线间并接一个100 Ω的终端电阻,电流主要通过终端电阻形成回路,从而在接收器的输入端形成差分接收的信号电压;PCB布线时防止LVDS高速信号串扰和互扰,避免其他信号耦合到LVDS传输线上,应尽量将LVDS信号和其他信号分别布在两个信号层上。
1.3 其他接口设计
为满足PCI总线的DMA传输特性,需要在硬件上加入缓冲区。输入的LVDS速率越高,需要的缓冲区容量越大,以保证不丢失数据。因此设计选用Micron公司提供的MT48LC2M32 SDRAM作为缓冲区,它是一款64 MB全同步SDRAM。另外,输出的LVDS信号要求10~50 MHz频率范围内任意可调,因此选用AD公司采用CMOS技术生产的直接数字合成器AD9851,它的最高工作时钟为180 MHz,内部除了完整的高速DDS外,还集成了时钟6倍频器和一个高速比较器,并且它的接口控制简单,可以用8位并行口或串行口直接输入频率、相位等控制数据。设计中通过FPGA中PLL输出30 MHz时钟,倍频器将参考时钟倍频至180 MHz,控制接口采用并行口传输。
除此之外,时钟模块采用有源晶振为系统提供50 MHz时钟,SDRAM时钟由FPGA内部PLL合成。电源模块采用外围电路简单的LDO(Low Dropout Regulator)提供3.3V及1.5V电源电压。
1.4 FPGA内部结构设计
FPGA内部结构的逻辑设计是本板卡设计的核心部分,图3所示为本系统FPGA内部结构框图。
- 怎样选择适合您应用的无线网络(10-10)
- 光传送技术发展现状和趋势(06-13)
- 基于航空总线提高数据可靠性的设计与实现(12-11)
- 基于C8051的CAN多点实时数据通信系统(02-16)
- 实现触摸屏和PLC之间数据通信的方案(10-19)
- 如何有效利用NFC加快目前蓝牙处理的速度(04-13)