当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘要:基于Zynq-7000系列芯片,利用其ARM+FPGA的组合架构,搭建了千兆以太网模块。介绍了该模块的硬件平台设计,并在硬件基础上设计了FPGA和ARM程序。经测试,模块成功实现了数据上下行传输功能,传输速度达到640MbpS,满足高速数据传输要求,且稳定、可靠。

引言

随着数字信号处理技术的日益蓬勃发展,在雷达信号处理、航测等诸多领域,日益扩张的原始数据、更加复杂和不断增加的算法都对接口的传输速度提出了更高的要求,高速、稳定、安全的传输接口往往成为整个项目的技术关键。千兆以太网从以太网基础上发展而来,具有高效、高速、高性能等特点,同时还可以实现完全的电气隔离,是能够适用于诸多领域的优秀数据传输方式。本文基于xilinx的高性能Zynq-7000全可编程片上系统,利用其ARM+FPGA架构,实现了千兆以太网的高速传输,一方面将嵌入式系统简单化、小型化,另一方面鉴于FPGA的特性,为整个模块提供了可观的扩展空间,方便功能的扩展和算法模块的搭建。

1平台设计

1.1Zynq-7000系列

本文使用的硬件平台核心为xilinx公司出品的Zynq-7000系列FPGA,其集成了处理系统(ProceSSingSyStem,PS)和可编程逻辑(ProgramableLogic,PL)两大部分。PS部分包括最高可运行1GHz的双核ARMCortex-A9多核处理器:PL部分即xilinxFPGA,包括可配置逻辑块(ConfigurableLogicBlock,CLB)、36kB容量的BRAM、数字信号处理DSP48E1、时钟管理单元、可配置I/o、模数转换器(xADC)等资源。Zynq-7000系列中的PS部分与PL部分之间包含3000个内部互联,处理器系统和可编程逻辑紧密结合,内部接口可以达到100Gbit/S以上的吞吐量,其性能完全不逊于FPGA+ARM的传统组合,再加上FPGA的可反复编程特性,使得Zynq-7000系列芯片成为很多高标准平台的选择,使传输方案具备更好的扩展性和灵活性。

l.2PS-PL接口设计

本文使用32bit位宽的AxI-HP高性能端口,利用AxIDMA模式进行数据交互。在Zynq-7000的PL中,利用AxIDMA方式和AxI数据BRAM,通过AxI-Lite总线处理器进行数据建立和连续传输。

根据设计的平台方案,在Vivado上搭建系统,PS与PL间为一个深度充裕的BRAM,约定一个地址作为总线状态地址。命令字由PS至PL下发时,PS端将命令字存到BRAM固定地址,并将总线状态写为命令状态,PL端检测到命令状态时开始对BRAM进行读操作,读取约定长度的命令字数据。当数据从PL至PS上传时,PL端首先对总线状态地址进行监测,检测到总线状态为忙状态时,则不进行数据上传:检测到总线状态为非忙状态时,PL端开始对BRAM进行写操作,将固定长度的数据写入BRAM中,同时向PS端发送一个F2P的中断,PS端检测到中断后开始对BRAM进行读操作,将固定长度的数据读出并做下一步处理,处理完成后将总线状态写为闲状态,PL端检测到总线状态重新变为闲时开始下一次数据写入。利用上述的握手机制,可以保证上下行数据高速连续地传输,避免出现因PS端处理速度造成的丢包现象。

1.3模块整体架构

模块整体架构设计如图1所示。

上行数据通过在RAM进行缓存后,通过PS-PL接口传送至ARM进行打包处理,利用UDP协议通过AR8035芯片和网口发送到通用计算机:下行命令字通过千兆网口传送到ARM进行打包,然后通过PS-PL接口传送至PL侧FPGA中的RAM进行缓存,向下发送。

1.4程序设计

1.4.1FPGA程序设计

FPGA程序使用VHDL语言编写,数据帧的形式如图2所示。

为了提高数据上传效率,每次AxIDMA传输上传10帧数据。FPGA接到底层传输上来的数据后,将数据存入一个上行缓存RAM,当检测到总线状态为闲状态并且缓存RAM中数据满10帧时,启动上传使能,将10帧数据通过120MHz时钟以32位宽的形式存入总线BRAM中的约定地址并发送中断信号。然后不断监控状态地址,当总线状态完成一次由闲变忙再变闲后,开始下一次BRAM的写操作。

当命令数据下行,FPGA检测到总线状态为命令状态时,开始对总线BRAM进行读操作,读取约定地址上的1024字节的命令数据存入下行的缓存RAM,通过RAM转换成适合下层使用的位宽后向下发送。

1.4.2ARM程序设计

ARM程序使用C语言编写,当检测到F2P中断时开始数据上传流程,将状态置为忙,从BRAM中读取数据,将数据拆分为10帧,分别判断帧头,将正确的帧头通过UDP协议上传,并设置状态为闲:当接收到上位机命令时,将帧头正确的命令数据写入BRAM,并设置状态为命令状态,提醒FPGA接收。数据上行程序流程如图3所示。

2模块测试

完成软硬件设计后,对模块进行功能和稳定性测试。测试命令下行时,使用网口调试助手下发正确格式的命令包,通过VivadoHardware观察接收的命令是否正确:测试数据上行时,使用wireShark抓取数据包,观察数据帧头流水号是否连续,若连续则说明传输正常不丢包,若不连续则证明传输不正确。

经过测试,数据上行和命令下行功能正常,传输不丢包,且速度高达640MbpS,满足高速、稳定的要求。

3结语

本文基于Zynq-7000全可编程片上系统的硬、软件相结合的设计,成功搭建了千兆以太网传输模块,与通用计算机互联传输高速、稳定,使用UDP协议传输速度达到640MbpS。模块使用高性能Zynq-7000系列芯片,将嵌入式系统和可编程逻辑器件紧密结合,架构灵活且方便扩展,为多种领域的数据传输提供了一个高速、稳定、低成本的解决方案。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭