上一期讲解了EMIF外设驱动,这一期聊一聊以太网系统。(以DSP芯片C6678为例)
一、常见的以太网硬件结构
主要包括MAC、PHY芯片以及RJ45接口
1.1MAC
MAC全称是媒体访问控制器,充当一个数据打包和分拣的角色,主要职责如下:
组帧与解帧 | 发送时:将数据封装成以太网帧 接收时:拆解帧,将有效数据提取处理传给上层处理 |
寻址 | 根据目标MAC地址决定将数据转发至何处 |
错误检测 | 发送端:MAC会计算帧内容的CRC,并附加在帧尾 接收端:MAC重新计算CRC,与帧尾的CRC比较,不匹配会请求重发 |
流量控制 | 接收方处理不过来时,可以向发送方发送暂停帧 |
1.2PHY
PHY全称为物理层收发器,通常是独立的芯片,位于处理器与网线接口之间
主要职责如下:
数模/模数转换 | 发送时:将MAC发来的数字信号转换成能够在网线上传输的模拟差分信号 接收时:执行相反的过程,将模拟信号转换为数字信号 |
编码解码 | 对数字信号进行解码,增加时钟信息 |
链路管理 | 设备插入网线后,自动和对端设备握手; 持续监测链路状态,并通过MDIO接口报告给MAC |
1.3RJ45
是一个物理接口,机箱上插水晶头的插槽
主要职责:
物理连接 | 提供标准化结构稳定的插口 |
集成变压器 | 集成网络变压器,电气隔离 |
二、KeyStone I系列芯片(C6674、C6678等)的以太网硬件结构
KeyStone I系列芯片的片上以太网子系统主要由以太网交换部分(Serdes、SGMII、EMAC、三端口交换机)、PA包加速器和SA安全加速器组成
2.1以太网交换部分
Serdes(串行器/解串器)
核心功能是完成并串转换
发送时:将芯片内部并行总线上的数字信号,转换为高速串行差分信号
接收时:将外部接收到的串行差分信号,转换成并行数组信号
SGMII
是一种接口协议标准,图中SGMII指的是实现这一协议的硬件电路。
对发送的数据进行编码,对接收的数据进行解码,以满足SGMII协议的电气规范。
EMAC
EMAC属于MAC的一种,实现数据组帧的功能,多了些协同工作的接口。
与PA和SA通过硬件队列直接连接,数据包可以被送至PA进行校验和计算,或送到SA进行硬件加密,不需要CPU参与。
三端口交换机
三个端口的连接对象
port0 | 连接对象::DSP的CPU核心和内存 |
port1 | 通过SerDes连接到外部PHY芯片1 |
port2 | 通过SerDes连接到外部PHY芯片2 |
主要功能:
1.数据包路由与转发
交换机会检查每个数据包的源MAC地址,记录下这个地址从哪个端口发来的,通过ALE维护MAC地址表
当收到一个数据包会查看目的地址,将数据发送到对应地址
2.VLAN隔离与处理
可将两个SGMII端口划分为不同虚拟局域网,实现网络隔离与安全。
3.流量控制
检测端口的拥塞情况
如果CPU来不及处理数据,交换机可以向网络发送暂停帧,请求对端设备暂停发送数据。
2.2包加速器(PA)
核心功能:
硬件加速计算IP、TCP、UDP等协议的首部校验和
发送时:自动计算并填充校验和字段
接收时:自动验证校验和,无效的包会被直接丢弃
优点:通过硬件计算校验和,节约了CPU计算资源
2.3安全加速器(SA)
核心功能:
硬件加解密:处理主流的各种加密和认证算法
优点:通过硬件计算加解密算法,节约了CPU计算资源
总结:Keystone架构以太网结构的对数据的处理以硬件加速为中心,性能更高。