RK3568平台 有线以太网接口之MAC芯片与PHY芯片

2024-02-20 10:28

本文主要是介绍RK3568平台 有线以太网接口之MAC芯片与PHY芯片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.平台网络网络通路

平台有线以太网通路:有线以太网一般插入的是RJ45 座要与 PHY 芯片(RTL8306M)连接在一起,但是中间需要一个网络变压器,网络变压器经过模数转换后到达网卡(RTL8111)转换为帧数据后到达SOC。

二.网络接口简介

RJ45 接口:

RJ45 座要与 PHY 芯片连接在一起,但是中间需要一个网络变压器,网络变压器用于隔离 以及滤波等,网络变压器也是一个芯片,外形一般如图:

但是现在很多 RJ45 座子内部已经集成了网络变压器。

RJ45 座子上一般有两个灯,一个黄色(橙色),一个绿色,绿色亮的话表示网络连接正常,黄色闪烁的话说明当前正在进行网络通信。这两个灯由 PHY 芯片控制,PHY 芯片会有两个引 脚来连接 RJ45 座上的这两个灯。 

三.PHY芯片

PHY的数据是RJ45网络接口(网线口)穿过了的差分信号,而PHY作用就是将差分信号转为数字信号。

PHY 是 IEEE 802.3 规定的一个标准模块,SOC 可以对 PHY 进行配置或者读取 PHY 相关状态,这个就需要 PHY 内部寄存器去实现了。PHY 芯片寄存器地址空间为 5 位,地 址 0~31 共 32 个寄存器,IEEE 定义了 0~15 这 16 个寄存器的功能,16~31 这 16 个寄存器由厂 商自行实现。也就是说不管你用的哪个厂家的 PHY 芯片,其中 0~15 这 16 个寄存器是一模一 样的。仅靠这 16 个寄存器是完全可以驱动起 PHY 芯片的,至少能保证基本的网络数据通信。

四.MAC芯片与PHY芯片在网络七层协议的位置

网络七层协议:

数据链路层的MAC芯片;物理层的PHY芯片。

MAC位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。MAC在发送数据的时候,事先判断是否可以发送数据,如果可以,给数据加上一些控制信息,再将数据以及控制信息以规定的格式封装成帧发送到物理层;在接收数据的时候,MAC只接收发送至本网卡的单播帧、组播帧和广播帧,其余的丢弃,再将帧重新组合成数据,并判断输入的数据是否发生传输错误,如果没有错误,则去掉控制信息发送至LLC层。

PHY位于OSI七层协议中的物理层。PHY在发送数据的时候,收到MAC过来的数据,然后把并行数据转化为串行流数据,按照物理层的编码规则把数据编码,再变为模拟信号送出去,收数据时的流程反之。

五.MDIO的作用

 

mido协议即SMI协议

SMI协议也是一种通信协议类似与I2C协议但是通信方式不一样

SMI包含两根信号线,一个MDC时钟线,一个MDIO双向传输的数据线,STA(StaTIon Management)为主控设备,PHY为从设备,一个STA最多管理32个PHY。

MDIO主要是传输链接状态、传输速度与选择、断电、低功率休眠状态、TX/RX模式选择、自动协商控制、环回模式控制等。

六.网络硬件架构方案

 以太网硬件设计有两种方案:SOC内未集成MAC芯片,SOC内集成MAC芯片。

SOC内未集成MAC芯片:

对于内部没有MAC的SOC芯片,可以使用外置 MAC+PHY一体的网络芯片来实现网络功能。

有些外置的网络芯片更强大,内部甚至集成了硬件TCP/IP协议栈,SOC就不需要移植软件协议

栈,这种方案的优点就是让不支持网络的SOC能够另辟蹊径,实现网络功能,但是缺点就是网络

效率不高,因为一般芯片内置的MAC会有网络加速引擎,比如网络专用DMA,网络处理效率会很

高。而且此类外置芯片网速都不快,基本就是10/100M。另外,相比PHY芯片而言,此类芯片的成

本也比较高,可选择比较少。

SOC内集成MAC芯片:

我们一般说某个SOC支持网络,说的就是他内部集成网络MAC外设,此时我们还需要外接一个网

络PHY芯片。目前几乎所有支持网络的SOC都是内置MAC外设。内部MAC外设会有专用的加速模

块,比如专用的DMA,加速网速数据的处理。网速快,可以支持10/100/1000M网速。外接PHY可

选择性多,成本低。

这篇关于RK3568平台 有线以太网接口之MAC芯片与PHY芯片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727914

相关文章

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

QT移植到RK3568开发板的方法步骤

《QT移植到RK3568开发板的方法步骤》本文主要介绍了QT移植到RK3568开发板的方法步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录前言一、获取SDK1. 安装依赖2. 获取SDK资源包3. SDK工程目录介绍4. 获取补丁包二

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N