- SOC与MAC及PHY的硬件关系
1.
soc(带mac和phy) -----差分信号-----RJ45接口网线
2.
soc(带mac,不带phy) -- RGMII/RMII ----phy -----差分信号-----RJ45接口网线
3.
soc(不带mac,不带phy) - mdio接口/spi接口/gpio接口-- mac(带phy) -----差分信号-----RJ45接口网线
|________MDIO/MDCK_________________________|
4.
soc(不带mac,不带phy) - mdio接口/spi接口/gpio接口-- mac(不带phy) ---RGMII/RMII---phy -----差分信号-----RJ45接口网线
|________MDIO/MDCK________________________|
// soc 自带mac和phy 也可以用外置的
//stm32 103不带以太网模块,105和107带
//MDIO是用来传输控制命令的,控制芯片
//RGMII接口是用来传输网络数据的,用来传输从网络或者从芯片来的数据
- ENC28J60
ENC28J60集成了MAC控制器和PHY收发器,属于 模型 3,接口为spi,四线两line
除了这个网络芯片,还有 并口形式的RTL8019S,CS8900A等.
-
硬件连接图
-
集成mac的soc与phy的连线
-
ENC28J60硬件ops
需要提供的ops有三个
ENC28J60_Init
ENC28J60_Packet_Receive
ENC28J60_Packet_Send
ENC28J60_Init // 还需要用 ENC28J60_PHY_Write 来初始化灯
1. 初始化spi
2. rset enc
3. 设置 enc
4. 判断是否初始化enc 成功
ENC28J60_Packet_Receive
1.读是否接到包
2.读包的状态(长度)
3.复制包到内存
4.判断是否已经读到包(读硬件)
ENC28J60_Packet_Send
1.复制包到硬件
2.判断是否复制完成
- ENC28J60 和 OSI模型
- 网卡究竟工作在OSI的哪一层?
- ETH—Lwip以太网通信—零死角玩转STM32-F429系列
- 数据链路层中MAC子层和LLC子层的功能分析
网卡工作在物理层和数据链路层的MAC子层。
以太网数据链路层其实包含MAC(介质访问控制)子层和LLC(逻辑链路控制)子层。
一块以太网卡MAC芯片的作用不但要实现MAC子层的功能,还要提供符合规范的接口以实现和主机的数据交换。
而驱动网卡的驱动软件是 属于 mac 子层的软件部分
虽然说 llc子层和 mac子层是软硬件的划分,但感觉 mac子层也包含了软件,这个部分的软件是网卡驱动
对于局域网来说,llc层及其之上的层的代码都是通用的,也就是不根据硬件改变的.
llc层是局域网中特有的层.广域网中的数据链路层没有llc及mac
在TCP/IP混合参考模型中,数据链路层又被分为LLC层(逻辑链路层)和MAC层(媒体介质访问层)。
目前,对于普通的接入网络终端的设备, LLC层和MAC层是软、硬件的分界线。(待验证)
如PC的网卡主要负责实现参考模型中的MAC子层和物理层,在PC的软件系统中则有一套庞大程序实现了LLC层及以上的所有网络层次的协议。
由硬件实现的物理层和MAC子层在不同的网络形式有很大的区别,如以太网和Wi-Fi,这是由物理传输方式决定的。
但在MAC之上的LLC层、网络层、传输层和应用层的协议,是基本上同的,这几层协议由软件实现,并对各层进行封装。
在PC上也许能实现完整的功能,一般支持所有协议,而在嵌入式领域则按需要进行裁剪。
在物理层,由IEEE 802.3标准规定了以太网使用的传输介质、传输速度、数据编码方式和冲突检测机制,物理层一般是通过一个PHY芯片实现其功能的。当然还包括 phy的接口(例如rt45接口,及双绞线)
MAC子层是属于数据链路层的下半部分,它主要负责与物理层进行数据交接,如是否可以发送数据,发送的数据是否正确,对数据流进行控制等。它自动对来自上层的数据包加上一些控制信号,交给物理层。接收方得到正常数据时,自动去除MAC控制信号,把该数据包交给上层。
LLC层:处理传输错误;调节数据流,协调收发数据双方速度,防止发送方发送得太快而接收方丢失数据。主要使用数据链路协议。
网络层:本层也被称为IP层。LLC层负责把数据从线的一端传输到另一端,但很多时候不同的设备位于不同的网络中(并不是简单的网线的两头)。此时就需要网络层来解决子网路由拓扑问题、路径选择问题。在这一层主要有IP协议、ICMP协议。
传输层:由网络层处理好了网络传输的路径问题后,端到端的路径就建立起来了。传输层就负责处理端到端的通讯。在这一层中主要有TCP、UDP协议
应用层:经过前面三层的处理,通讯完全建立。应用层可以通过调用传输层的接口来编写特定的应用程序。而TCP/IP协议一般也会包含一些简单的应用程序如Telnet远程登录、FTP文件传输、SMTP邮件传输协议。
实际上,在发送数据时,经过网络协议栈的每一层,都会给来自上层的数据添加上一个数据包的头,再传递给下一层。在接收方收到数据时,一层层地把所在层的数据包的头去掉,向上层递交数据,
- 嵌入式tcpip协议
嵌入式以太网协议栈有著名的uIP协议栈,Lwip协议
- 无线网卡和有线网卡区别
IEEE 802.3 :以太网介质访问控制协议 (CSMA/CD)及物理层技术规范[2]。
IEEE 802.11:无线局域网(WLAN)的介质访问控制协议及物理层技术规范。
不管是在传统的有线局域网(LAN)中还是在目前流行的无线局域网(WLAN)中,MAC协议都被广泛地应用。
在传统局域网中,各种传输介质(铜缆、光线等)的物理层对应到相应的MAC层,目前普遍使用的网络采用的是IEEE802.3的MAC层标准,采用CSMA/CD访问控制方式;
而在无线局域网中,MAC所对应的标准为IEEE802.11,其工作方式采用DCF(分布控制)和PCF(中心控制)。
MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。