MCU微课堂
CKS32F107XX系列以太网介绍(一)
第七十一期 2026.03.03
以太网简介
以太网(Ethernet)是一种计算机局域网技术。IEEE 802.3制定了以太网的技术标准,它规定了包括物理层的连线、电子信号、介质访问控制的内容。
需要说明的是,以太网并不等于互联网,以太网是遵守 IEEE 802.3 标准组成的局域网,是互联网技术的一种; IEEE 还有其它局域网标准,比如 IEEE 802.11 是无线局域网,俗称 Wi-Fi, IEEE802.15 是个人域网,即蓝牙技术,其中的 802.15.4 标准则是 ZigBee 技术。
TCP/IP协议
Transmission Control Protocol/Internet Protocol传输协议(TCP/IP):即传输控制/网络协议,也叫网络通讯协议,TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。
通常说的TCP/IP协议是一个庞大的协议族,它是众多网络协议的集合,包括:ARP、IP、ICMP、UDP、TCP、DNS、DHCP、HTTP、FTP、MQTT等等。其中 TCP和IP只是其中的两个协议。
LwIP 全名:Light weight IP,顾名思义是一个轻量化的 TCP/IP 协议, 是瑞典计算机科学院 (SICS)的 Adam Dunkels 开发的一个小型开源的 TCP/IP 协议栈。设计 LwIP 的目的:用少量的资源消耗实现一个较为完整的 TCP/IP 协议栈,常用于 ARM 嵌入式设备。
TCP/IP 网络分层如图1,以TCP/IP 五层模型举例通常包括如下: 应用层、传输层、网络层、数据链路层、物理层。

图1 TCP/IP网络分层
1.应用层
TCP/IP协议的第一层,其主要工作就是定义数据格式并按照对应的格式解读数据,是直接为应用进程提供服务的。
2.传输层
作为TCP/IP协议的第二层,传输层的主要工作是定义端口,标识应用程序身份,实现端口到端口的通信,TCP协议可以保证数据传输的可靠性。
3.网络层
网络层在TCP/IP协议中的位于第三层,主要工作是定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由,在TCP/IP协议中网络层可以进行网络连接的建立和终止以及IP寻址等功能。路由器属于网络层设备。
IP 地址是 Internet Protocol(互联网协议)中定义的地址,用于在网络上唯一标识一个设备。IP 地址在网络层起作用。以IPv4举例,IPv4地址由32位组成,通常表示为四组8位的十进制数,范围是0-255,之间用点(".")分隔,如下图2。
图2 网络IP地址组成
4.数据链路层
在TCP/IP协议中,网络接口层位于第四层。主要工作就是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方。网卡、交换机 属于数据链路层设备。
在数据链路层,每个网络设备有一个MAC地址(Media Access Control Address)。MAC 地址是设备出厂时就固化在网卡中的,用于在局域网中设备的唯一标识。
5.物理层
也称电气层,属于协议栈最底层;通常由 PHY 芯片 + 特定电路 + 传输介质 组成;传输介质包括:同轴电缆、双绞线、光纤等。网络中继器属于物理层设备。
CKS32F107XX以太网模块
CKS32F107xx系列内部集成了一个以太网控制器,实际是一个通过DMA控制器进行介质访问控制(MAC),功能是实现MAC层的任务,该控制器可以通过以太网外设按照 IEEE 802.3-2002 标准发送和接收 MAC 数据包。
CKS32F107xx以太网控制器支持两个工业标准接口介质独立接口(MII)和简化介质独立接口(RMII)用于与外部 PHY 芯片连接。MII和RMII接口用于MAC数据包传输,此外,还集成了站管理接口(SMI)接口专门用于与外部PHY通信,用于访问PHY芯片寄存器。CKS32F107xx以太网控制器适用于各类应用,如交换机、网络接口卡等。CKS32F107xx 以太网模块符合以下的标准:
(1)IEEE 802.3-2002 标准的以太网MAC协议。
(2)IEEE 1588-2002 网路精确时钟同步标准。
(3)AMBA2.0 标准的 AHB 主/从端口。
(4)RMII 协会定义的 RMII 标准。
CKS32F107xx ETH 系统功能框图如图3,按不同种类,以太网模块(ETH)主要支持以下功能:

图3 CKS32F107XX 以太网系统功能框图
1.SMI、MII、RMII物理层接口
站管理接口 (SMI) 允许应用程序通过 2 线(时钟和数据线)访问任意 PHY 寄存器,该接口支持访问多达 32 个 PHY 芯片。
独立介质访问接口(MII/RMII) 定义了 10 Mbit/s 和 100 Mbit/s 的数据传输速率下 MAC 层与 PHY 层之间的互连。
CKS32F107xx 以太网模块可以通过配置AFIO_MAPR 寄存器的选择位,可以选择使用 MII 或者 RMII 接口。
2.MAC 802.3 网络控制器
MAC 模块实现了LAN CSMA/CD 的子层,适用于10Mbps 和100Mbps 数据传输率的基带和宽带系统,支持全双工和半双工的操作模式。支持冲突检测的访问方式,并且实现如下功能:数据封装(传送和接收)、帧的组装(帧间隔和帧同步)、寻址(管理源地址和目的地址) 、错误检测、介质访问管理、介质分配(防止冲突)、冲突解决(处理冲突) 等。
(1)通过外接PHY接口,支持10/100Mbps的数据传输速率;使用SMI接口对PHY进行配置和管理。支持MII接口的内循环,可用于调试。支持全双工和半双工操作。
(2)在发送时插入前导符和帧开始数据(SFD),在接收时去掉这些域;以帧为单位,自动计算CRC和产生可控制的填充位;在接收帧时,自动去除填充位/CRC为可选项;可对帧长度进行编程,支持最长为16K字节的标准帧;可对帧间隙进行编程(40~96位,以8位为单位改变) 。
(3)支持多种灵活的地址过滤模式;对于发送和接收的数据包,返回独立的32位状态信息;支持检测接收到帧的IEEE 802.1Q VLAN标签;应用程序有独立的发送、接收和控制接口。
(4)支持使用RMON/MIB计数器 ( RFC2819/RFC2665 ) 进行强制性的网络统计;检测LAN唤醒帧和AMD的Magic PacketTM帧。
(5)对IPv4和由以太网帧封装的TCP数据包的接收校验和卸载分流功能;对IPv4报头校验和以及对IPv4或IPv6数据格式封装的TCP、UDP或ICMP的校验和进行检查的高级接收功能。
(6)支持由IEEE 1588-2002标准定义的以太网帧时间戳,在每个帧的接收或发送状态中加上64位的时间戳。
(7)两套FIFO:一个2K字节的传输FIFO,带可编程的发送阈值,和一个2K字节的接收FIFO,带可编程的接收阈值(默认值是64字节); 在接收FIFO的EOF后插入接收状态信息,使得多个帧可以存储在同一个接收FIFO中,而不需要开辟另一个FIFO来储存这些帧的接收状态信息。
(8)可以滤掉接收到的错误帧,并在存储-转发模式下,不向应用程序转发错误的帧。可以转发“好”的短帧给应用程序;支持产生脉冲来统计在接收FIFO中丢失和破坏(由于溢出)的帧数目;对于MAC控制器的数据传输,支持存储-转发机制。根据接收FIFO的填充程度(阈值可编程),自动向MAC控制器产生PAUSE帧或背压信号。
(9)在发送时,如遇到冲突可以自动重发;支持在迟到冲突、冲突过多、顺延过多和欠载(underrun)情况下丢弃帧;支持软件控制清空发送FIFO。
(10)在存储-转发模式下,在要发送的帧内,计算并插入IPv4的报头校验和及TCP、UDP或ICMP的校验和。
3.DMA控制器
DMA 控制器负责把接收到的帧数据传送给CKS32F107xx 的接收缓存,把CKS32F107xx 发送缓存里的数据发送出去。DMA 具有独立的发送和接收控制器,发送控制器负责把数据从系统存储器转送至发送FIFO,而接收控制器负责把数据从接收FIFO 读出到系统存储器,为了把CPU 的操作减到最小,DMA 控制器利用描述符来实现数据从源头到目的之间的移动。
CKS32F107xx 以太网模块 DMA 控制器包括如下特点:
(1)在AHB从接口下,支持所有类型的AHB突发传输;在AHB主接口下,软件可以选择AHB突发传输的类型,可以选择来自AHB主接口的地址对齐的突发传输。
(2)可配置发送与接收DMA突发传输长度,传输以帧分隔符为界的数据帧。优化总线使用。
(3)状态寄存器指向当前发送/接收缓存区,无论正常传输还是错误传输都有完整的状态信息报告。
(4)支持以字节对齐的方式对数据缓存区寻址;双缓存区(环)或链表形式的描述符列表;描述符的架构,使得大量的数据传输仅需要最小量的CPU介入;每个描述符可以传输高达8K字节的数据。
(5)可以设置以不同的操作条件产生对应的中断;每个帧发送/接收完成时产生中断。 同时也支持用轮换或固定优先级方式,仲裁DMA发送和接收控制器的优先级。
(6)支持开始/停止模式。
4.PTP功能
PTP(Precision Time Protocol)是一种高精度时间同步协议,常用于通信网络中确保设备间的时间一致性。CKS32F107xx ETH 模块的 PTP 功能包含如下特点:
(1)设置接收和发送帧的时间戳。
(2)粗调和细调的校正方法。
(3)当系统时间比目标时间大时,触发中断。
(4) (通过MCU的复用功能I/O)输出秒脉冲。


