基于FPGA的通用网络下载器硬件设计
扫描二维码
随时随地手机看文章
摘要 网络下载器作为航天计算机地面检测系统的重要组成部分,发挥着重要的作用。文中主要介绍了网络下栽器的总体设计思路,给出了硬件模块的设计原理图。并在PCB设计中,对于LVDS接口、高速总线以及叠层的设计中给出了应用参考,保证了系统硬件的可靠性,且在实际应用中取得了稳定的性能表现。
关键词 LVDS;通用下载器;FPGA
随着航天技术的发展,地面检测设备作为大系统的重要组成部分,发挥着重要作用。通用下载器作为测试指令和测试数据上传下发的重要通道,其可靠性和稳定性备受关注,本文介绍了通用下载器的总体设计思路,给出了原理图和PCB的设计参考,同时在实际测试中验证了该设计的可靠性和稳定性。
1 系统概述
该设备主要完成的功能是将70 Mbit的数据包通过网口分包发送给接收设备,并发送控制数据给接收设备,从而接收来自接收设备的状态数据。
整个设备主要由ARM芯片和FPGA芯片组成,ARM芯片采用三星2440,FPGA选用Xilinx的Xilinx Spartan6系列FPGA,型号为XC6SLX45F484,将FPGA挂在ARM的RAM接口下,其接口带宽可达133 M/5x4 Byte=106 MByte,通过100 Mbit·s-1以太网网卡与PC上位机通信,通过LVDS接口来完成与下位机的数据和控制信息交互。
FPGA通过一个FIFO接收ARM发送的数据,写使能信号(fifo_wren)由ARM发送的片选信号(nce)和写使能(nwe)控制,当地址信号为0,nce和nwe同时有效时,FIFO被写入数据(16位宽)。FIFO读使能由FIFO空信号(fifo_empt_w)控制,当FIFO有数据写入时,FIFO空信号(fifo_empt_w)由低变高,触发读使能,数据被读出,并经LVDS后进入下位机。
FPGA通过另一个FIFO接收下位机发送的数据,写使能信号(lvds_en_in)由下位机控制,使能信号为高后,下位机提供写时钟(lv_clk_in_ wire),数据(8位宽)被写入FIFO。FIFO读使能(fifo_rden)由ARM发送的片选信号(nce)和写使能信号(noe)控制,当FIFO有数据写入时,FIFO空信号(fifo_r_empt_w)由低变高,ARM检测到此信号后使能nce和noe,并给出读时钟,FIFO数据被读出。
ARM通过100 MBIT网口接收上位机发送的TCP/IP数据包,ARM将其解包使数据内容通过ARM的RAM口发送给FPGA,而FPGA将数据包通过LVDS接口发送给接收设备。
下载器通过LVDS口接收来自接收设备发送的状态数据包并缓存至FIFO中,接收完一帧后给ARM发送中断信号,ARM接收到中断信号通过RAM接口读取FPGA FIFO中的状态数据包并打包成TCP/IP数据包并通过100 Mbit网口发送给上位机。
2 原理图设计
2.1 电源设计
系统采用5 V直流供电,FPGA需要1.2 V的核心电压,2.5 V的VCCAUX电压,3.3 V的bank电压,RAM板与LVDS接口芯片sn551vds31/32均使用3.3 V电压供电,同时保证各个电压等级互不影响,采用5 V直接产生1.2 V,2.5 V和3.3 V电压的方式,其中FPGA的1.2 V核心电压采用开关电源LM2852,保证供电电压的精度,提高了电源效率,2.5 V和3.3 V电流预估较大,为满足系统长时间工作的散热,使用TI的电源模块pth04070。
2.2 网络接口设计
网络接口使用DM9000芯片以及网络接口芯片HR911103A组成,DM9000是一个全集成、功能强、性价比高的快速以太网MAC层控制器。其带有一个通用处理器接口、EEPROM接口、10/100 PHY和16 kB的SRAM(其中13 kB用来接收FIFO,3 kB用来发送FIFO)。电源模块采用单一电源,可分别兼容3.3 V和5 V的IO接口电平。设计采用3.3 V电源供电,保证了系统的稳定性,100 m网口双向通信带宽为50 Mbit·s-1(6 MByte /s)。DM9000和2440连接了16条数据线,1条地址线,唯一地址线用于判断数据线传输的是地址或是数据,所以这16条数据线为数据和地址复用,如图4所示。
2.3 LVDS接口设计
LVDS:Low Voltage Differential Signaling,低电压差分信号。LVDS传输支持速率一般在155 Mbit·s-1以上。LVDS是一种低摆幅的差分信号技术,其使得信号能在差分PCB线对或平衡电缆上以几百Mbit·s-1的速率传输,其低压幅和低电流驱动输出实现了低噪声和低功耗。 IEEE在两个标准中对LVDS信号进行了定义。ANSI/TIA/EIA-644中,推荐最大速率为655 Mbit·s-1。设计采用了LVDS接口发送芯片sn551vds 31和接收芯片sn55lvds32,其中发送部分采用50 Ω的串联匹配,电阻精度选择为1%,保证终端匹配电阻的精度。
3 PCB设计
系统PCB设计需注意叠层设计,ARM和FPGA间高速总线的设计以及LVDS总线的阻抗匹配及信号约束问题。
根据TI的参考手册,通常的叠层结构为LVDS信号层、电源层(分割成LVDS电平电源和TTL电平电源)、地层(分割成LVDS电平地和TTL电平地)和TTL信号层,如图7所示。
但在实际设计中,由于叠层的设计,不可能单独列出较多层,对于TTL和LVDS信号的地层也无需进行分割,因其会破坏地层的完整性,在确保完整地的情况下,可对其他地层TTL和LVDS信号分割。总之,在保证地层完整的情况下,使LVDS信号和TTL信号尽量分离,最好是在不同的层进行布线。在本PCB板的设计中,使用6层叠层结构:TOP-GND1-INNER-POWER-GND2-BOTTOM,其中TOP和BOTTOM层走LVDS信号,INNER和GND2走LVTTL信号,这样既保持了信号的分层,也保持了完整的信号回流路径。
LVDS信号频率可达600 MHz以上,所以差分线要求严格等长,差分对内最好不超过10 mil(0.254mm),若频率低于600 MHz,该约束值可适当放宽,但上限不能超过75 mil。不同LVDS对间的布线最大差值不超过200 mil。文中在Cadence16.3的约束设置中,具体设置如下。
差分阻抗的不匹配会产生反射,有10%的阻抗不匹配便会产生5%的反射,所以需根据不同的情况进行不同的匹配控制。LVDS信号的差分特性阻抗为100 Ω,对于LVDS信号发射端(TX),采用差分对各自串联精度为1%的50 Ω电阻进行匹配,这样既保持了信号传输的功率要求,又满足了阻抗控制的要求。
4 实测结果
下载器性能实测时,将LVDS接口接收和发送部分回环连接,可使用网络调试助手发送55 AA组成的1 032 Byte的数据包,测试下载器的功能。结果如图10所示,从图中可看到,下载器稳定的收发数据。
5 结束语
设计的网络下载器将FPGA在信号处理中的优势和ARM芯片在网络通信中的优势相结合,在PCB设计中对于LVDS接口的阻抗、高速线时序以及叠层进行了设计,较好地保证了系统硬件的可靠性,并在实际使用中达到了良好的效果。