邮箱:zhuimengcanyang@163.com 痴爱嵌入式技术的蜗牛
分类: 嵌入式
2015-10-08 11:22:14
以太网(ethernet)是互联网技术的一种,由于它在组网技术中占的比重很高,很多人直接把以太网理解为互联网。
以太网是指遵守IEEE 802.3标准组成的局域网,由IEEE 802.3标准规定的主要是位于参考模型的物理层(PHY)和数据链路层中的媒体接入控制子层(MAC)。
在家庭、企业和学校所组建的PC局域网形式一般也是以太网,其标志是使用水晶头网线来连接(当然还有其他形式)。
IEEE还有其他标准:
IEEE 802.11 --> 无线局域网 wifi
IEEE 802.15 --> 个人域网 bluetooth
IEEE 802.15.4 --> zigbee.
3. 以太网控制器
(1)集成MAC控制器的MCU4. 为什么在MAC之上还有分层?
PHY层和MAC层的实现是由以太网控制器实现的。部分MCU,只是集成了MAC控制器外设,在芯片外必须再外接一个PHY控制器和以太网变压器即可实现以太网功能。
STM32的MAC控制器外设可以通过IEEE协议规定的MII或者RMII、SMI与PHY芯片进行通信。
(2)外接以太网控制器方案
对于没有集成以太网控制器的MCU,可通过外接以太网控制器芯片(包含MAC和PHY驱动)接入以太网。常见以太网控制器:ENC28J60等。
ENC28J60接口连接图:(SPI通信接口)
为什么要分层:
5. TCP/IP协议中各层次的功能
应用层
传输层
网络层
数据链路层
LLC
-----------------------
MAC
PHY层
讲过很多次,分层无非是想让变化的部分和固定的部分分离开来。
从数据链路层中MAC层以上,就是协议栈的软件部分,是固定的,不需要改变。
而MAC和PHY层是针对不同的硬件(作为传输介质),它们的驱动方式是不一样的。这个需要根据具体的芯片,来写不同的驱动。
为什么在MAC之上还有分层?
很显然,把协议栈固定的部分保持不变。
以太网和WIFI,它们的MAC子层和PHY层有较大的区别,但是MAC层之上的LLC层,网络层,传输层和应用层的协议,是基本相同的。这几层协议由软件实现,并对各层进行封装。各层的功能如下:
LLC层:处理传输错误
调节数据流,协调收发数据双方速度,防止发送方发送的太快而接收方丢失数据。主要使用数据链路协议。网络层:解决数据路径问题(路由转发等)
也称为IP层。LLC层负责把数据从线的一端传输到另一端,但很多时候不同的设备位于不同的网络中(并不是简单的网线的两头)。此时就需要网络层来解决子网路由问题、路径选择问题。在这一层主要有IP协议,ICMP协议。传输层:解决数据端到端传输问题
由网络层处理好了网络传输路径问题后,端到端的传输路径就建立起来了。传输层就负责处理端到端的通信。在这一层主要有:TCP、UDP协议。应用层:
经过前面三层的处理,通信完全建立起来了。应用层可以通过调用传输层的接口来编写特定的应用程序。