当前位置:首页 > 通信技术 > 通信技术
[导读]网络控制器芯片的功能与设计实现 IEEE 802.3协议是针对以太网CSMA/CD标准的传输介质物理层(PHY)和介质访问控制协议(MAC、Media Access Control)来定义的。芯片由PHY、发送模块、接收模块、FIFO、控制模块组成,

网络控制器芯片的功能与设计实现
IEEE 802.3协议是针对以太网CSMA/CD标准的传输介质物理层(PHY)和介质访问控制协议(MAC、Media Access Control)来定义的。芯片由PHY、发送模块、接收模块、FIFO、控制模块组成,其中控制模块包括寄存器堆、DMA(Direct Memory Access)模块、流量控制模块、接收缓冲区和发送缓冲区组成。网络控制器芯片的功能框图如图1所示。

图1 以太网控制器芯片的功能框图


1 IEEE 802.3以太网MAC数据帧结构
在发送数据时,发送模块自动在待传数据前加上7字节的前导码和1字节的帧起始定界符,紧随的是6字节的目的地址和6字节的源地址,然后长度/类型为2字节,接着是数据区,然后是46~1500字节的数据。若发送时,数据长度小于最短长度46字节,发送模块自动填补,以达到最小长度,最后是4个字节的循环冗余校验码。


2 发送模块
发送模块的作用就是按照CSMA/CD协议发送数据包。发送模块状态机控制协调各个发送子模块的时序,发送模块状态机如图2所示。

图2 发送模块状态转换图


S_defer状态表示网络忙,若网络空闲了,经过最小的帧间隙时间,进入网络空闲状态S_idle。若需要发送数据包,经过S_pre,S_data,S_pad,S_crc等状态发送,在这当中若检测到冲突信号,就进入S_jam状态。在S_jam状态判断是local collision还是late collision,若是local collision就进入S_back状态,按照退避算法重发当前数据帧,否则直接进入网络忙状态,放弃该帧的发送。


3 接收模块
接收模块的任务就是接收数据帧。物理接口收发器PHY将收到的网络数据变成二进制数据送给接收模块,接收模块再把正确的数据经过接收FIFO和DMA的控制送给接收缓冲区。接收模块的功能还包括移除接收到帧的前导码/帧分隔符;比较目的地址,判断是否丢弃当前数据帧;对接收到的数据包做CRC校验,判断传输过程中数据是否出错。接收模块状态机是接收模块的核心,控制协调接收模块的各个子模块的工作与时序。接收模块状态机如图3所示。

图3 接收模块状态转换图


复位后,状态机进入S_idle状态,若数据是无效的,就停留在S_idle状态,否则进入S_pre状态。S_pre状态和S_sdf状态的作用就是去掉前导码和帧间隔符。当帧间隔符全部检测到,进入S_data状态,在S_data状态使用字节计数器,记录所收到数据的字节个数,用于比较目的地址。若目的地址匹配则将接收到的数据写入到接收FIFO,否则丢弃该帧,不写入到FIFO。字节计数器的作用还有判断接收到的数据包是否超过帧的最大长度。若在S_pre状态、S_sdf状态或S_data状态出现数据有效信号无效的情况,都进入到S_drop状态。

图4 核心模块的功能仿真


4 控制模块
控制模块包含DMA(direct memory access)模块、流量控制模块、缓冲区模块、寄存器堆模块和总线接口模块。DMA模块的功能是将接收FIFO的数据搬运到接收缓冲区,以及发送缓冲区的数据搬运到发送FIFO。流量控制模块端口阻塞的情况下丢帧,这种方法是当接收缓冲区开始溢出时,通过将阻塞信号发送回源地址实现的。流量控制可以有效地防止由于网络中瞬间的大量数据对网络带来的冲击,保证用户网络高效而稳定地运行。两种控制流量的方式:(1)在半双工方式下,流量控制是通过反向压力(backpressure),即我们通常说的背压计数实现的,这种计数是通过向发送源发送jamming信号使得信息源降低发送速度。(2)在全双工方式下,流量控制一般遵循IEEE 802.3X标准,是由交换机向信息源发送“pause”帧令其暂停发送。缓冲区模块由一块32KB的SRAM组成,分为接收缓冲区和发送缓冲区,接收缓冲区和发送缓冲区的大小可以由用户编程决定。缓冲区以分页的方式来管理,256B为一页。主机通过总线接口与芯片交换数据,通过读写寄存器堆来控制芯片的工作。

设计验证
本文给出核心功能的验证过程。把这些核心功能模块连接成一个环路(发送模块直接与接收模块相连接),发送模块按照802.3协议发出数据包,接收模块按照802.3协议处理这些数据包,符合要求的数据包送到(接收缓冲区),这些模块在Mentor公司的ModelsimSe5.8里面功能仿真波形如图5所示。

图5 芯片的实现流程


图中,clk为系统时钟;rst为复位信号;tx_req为发送FIFO请求信号,让DMA从发送缓冲区搬运数据到发送FIFO;tx_fifo_data_out是从发送FIFO里面出来的8数据,发送模块封装这些数据,发送给PHY;这里没有对PHY进行验证,把发送模块发出的数据TXD和数据使能TXEN直接与接收模块数据端和数据有效信号分别相连接;接收模块把TXD进行串并转换,得到8为rx_data;byte_cnt为接收到rx_data的个数。


功能仿真通过之后,把核心模块连接成一个整体(SRAM直接调用Quartus II的IP Core),通过Quartus II综合以后,下载到FPGA开发板里面。用FPGA模拟网络控制器芯片,与计算机进行通信。FPGA与PC通过RJ-45相连。应用软件发一数据包给FPGA,接收模块接收到数据包后,通过DMA将数据从FIFO搬运到接收缓冲区。一包数据接收完成后,通过附加逻辑,让FPGA发送出刚刚接收到的数据包,附加逻辑还完成了把接收到的数据按位取反的功能。应用软件显示PC收到的数据包,通过比较PC发给FPGA的数据包和FPGA发送给PC的数据包,验证了核心模块的功能正确(FPGA的附加逻辑将接收到的数据包进行了按位取反操作)。

芯片实现
设计验证通过以后,经过图5所示的流程,得到整个芯片的版图。


本次流片采用华虹NEC 0.35μm CMOS工艺,芯片面积为5640μm×5480μm(不计划片槽和缓冲区),芯片有100个管脚。芯片的右上部分是实现MAC层的数字区,左下区域是华虹NEC提供的IP Core--32KB的SRAM,用作缓冲区,右下区域完成PHY功能,周围是管脚。

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

2023年6月29日 – 提供超丰富半导体和电子元器件™的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 即日起备货安森美 (onsemi) NCN26010工业以太网控制器。这款...

关键字: 以太网控制器 传感器 电缆

全新CV3-AD685芯片助力自动驾驶和高级驾驶辅助系统(ADAS)应用,为多传感器融合和路径规划提供单芯片解决方案 韩国首尔和美国加利福尼亚州圣克拉拉2023年2月21日 /美通社/ -- 近日,三星电子与美国边缘A...

关键字: 三星电子 汽车 控制器芯片 AI

上海2022年5月6日 /美通社/ -- 澜起科技今日发布全球首款CXL™(Compute Express Link™)内存扩展控制器芯片(MXC)。该MXC芯片专为内存AIC扩展卡、背板及EDSFF内存模组而设计,可大...

关键字: 内存 控制器芯片 MX TE

循环缓冲区是嵌入式软件工程师在日常开发过程中的关键组件。多年来,互联网上出现了许多不同的循环缓冲区实现和示例。我非常喜欢这个模块,可以GitHub上找到这个开源的CBUF.h模块。地址:https://github.co...

关键字: 缓冲区

1. 缓冲区概述 标准I/O提供了三种类型的缓冲: 1、全缓冲: 在填满标准I/O缓冲区后才进行实际I/O操作。常规文件(如普通文本文件)通常是全缓冲的。 2、行缓冲: 当在输入和输出中遇到换行符时,标准I/O库执行I/...

关键字: 缓冲区 IO

  DesignWare IP专为应对现代数据中心SoC吞吐量和服务质量需求而实现优化   美国加利福尼亚州山景城,2013年10月 – 为加速芯片和电子系统创新而提供软件、

关键字: 40g synopsys 以太网控制器

    4-20mA(1-5V.DC)信号制是国际电工委员会(IEC):过程控制系统用模拟信号标准。我国从DDZ-Ⅲ型电动仪表开始采用这一国际标准信号制,仪表传输信号采用4-20mA.DC,联络

关键字: 通信 接收模块 传感器 通信电路

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记! 常规打印方法 在STM32的应用中,我们常常对printf进行重定向的方式来把打印信息printf到我们的串口助手。 在MDK环境中,我们常常使用Mi...

关键字: 串口打印 BSP BUF 缓冲区

在第15届全国大学生智能车竞赛中,有一道比赛项目组别是声音信标。在信标发送的导航信号中包括有声音、无线调频信号两种。在无线调频信号中包括有和发送的声音信号同步的调制信号。为了方便解调出该信号,可以使用集成的调频收音机模块...

关键字: TEA5767 调频 接收模块 BSP

简介 TEA5767调频接收模块[1]是一款小型调频收音机模块,它通过I2C总线完成控制。 设计一个小型的选台电路可以方便后期使用它接收声音信标[2]的信号,为后续调试减少麻烦。 电路设计 为了缩小配置电路的体积,选择了...

关键字: 接收模块 调频 TEA5767 电路
关闭
关闭