APP下载

基于FPGA的MAC层数据包收发系统的设计与实现

2016-12-13周庆芳

教育界·上旬 2016年4期

周庆芳

【摘要】随着以太网技术的不断进步与发展,以太网MAC(媒体接入控制)层的传输时延将影响网络的通信质量,通过FPGA实现以太网MAC协议层数据包进行正确收发,进而减少传输时延,提高网络吞吐率,避免网络拥塞,为千兆以太网的发展提供技术支撑。本文基于FPGA技术对以太网MAC协议层数据包进行收发设计。

【关键词】MAC协议层 FPGA 数据帧收发 收发设计

一、引言

1975年,以太网技术在Palo Alto研究中心诞生,通过近30年的发展,各种新的局域网技术相继产生,特别是令牌环、令牌总线等其他局域网技术的成熟与进步,促使以太网技术不断向前发展。按照OSI(Open SystemInterconnection,开放系统互联)七层网络模型,以太网技术的关键在于物理层和数据链路层,其中,数据链路层包括媒体接人控制MAC(Medium Access Control)子层和逻辑链路控制LLC(Logical Link Control)子层。

二、基于FPGA以太网的相关技术原理

IEEE802以局域网标准委员会将局域网的数据链路层分成两个子层,即媒体接入控制MAC(Medium Access Control)子层和逻辑链路控制LLC(Logical Link Contrl)子层,其中,传输媒体主要涉及的内容与MAC子层有关,而且MAC子层独立性和兼容性较强,能够适应不同的网络通信拓扑结构的变化.所以,同样的网络协议栈软件可以运行在大多数的以太网上,不需要做很大的修改。凭借MAC协议层的灵活性以及易扩展性,以太网已经从局域网扩大到城域网和广域网的应用领域。

三、基于FPGA的以太网MAC协议层数据包的收发设计

(一)以太网MAC协议层的整体结构设计

在对以太网MAC协议进行深入分析研究后,本文的设计将以太网MAC协议在整体功能上划分为数据接收、数据发送、控制管理等三个模块。以太网数据包的封装与解封主要通过数据接收和发送模块完成,控制管理模块主要用于实现与外部PHY其他芯片通信。

(二)数据接收和发送模块的FPGA设计与实现

数据接收模块将在PHY芯片接口处检测输入信号的变化,GMII模块将GMII接口形式的信号转换为系统内SOP格式的数据信号。本文中的MAC控制器工作频率为100MHz,而系统端的工作频率为125MHz,所以必须将MAC时钟域进行转换。对于跨时钟域的数据信号处理,我们采用双锁存器法,即将源时钟域的信号在目的时钟域利用锁存器锁存两次。

数据发送模块从内部逻辑接口将数据包进行相关封装操作之后发送到外部PHY芯片上。数据发送模块的设计是以包为单位进行发送,当系统内模块准备好发送一个数据包时,此模块就进行数据包的封装工作。根据以太网MAC协议,发送给外部物理层PHY芯片的数据包需要在有效数据之前添加MAC前导帧。

四、系统仿真测试

本文中的以太网MAC协议设计实现方案使用Altera公司的CycloneII系列FPGA,经过仿真与测试,可以实现以太网MAC协议层数据收发的基本功能,传输速率达到1Gbps。通过实践,我们发现编译的结果与仿真测试的结果一致,同时验证了基于FPGA设计的以太网数据包收发模块系统占用率低、传输速率高的特点。

五、总结与展望

本文详细分析了以太网MAC协议的整体结构,然后将MAC协议层按功能划分为接收模块、发送模块和控制模块,并引入10/100/1000以太网MAC的IP核进行协议的逻辑控制,包括流量统计、数据帧的填充和校验和,最后通过FPGA详细设计了MAC协议层的收发数据帧模块,而且还配置相关的外部PHY芯片接口。实验仿真测试表明,基于FPGA平台设计的以太网MAC收发数据包模块能够满足实时网络通信环境条件下的高速率传输要求,同时系统占用资源较小。