linux-网络设备简单总结


前言

@和原子哥一起学习Linux

开发环境:I.MX6Ull开发板

参考书籍:
《【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.6.pdf》
《linux设备驱动开发详解-基于最新的linux4.0内核》

个人学习笔记,欢迎讨论

一、有线网络的连接篇

之前接触了博通的芯片,就是内部有MAC,连接外部的PHY。
soc内部的 MAC 外设会通过 MII 或者 RMII 接口来连接外部的 PHY 芯片, MII/RMII 接口用来传输网络数据。
另外主控需要配置或读取 PHY 芯片,也就是读写 PHY 的内部寄存器,所以还需要一个控制接口,叫做 MIDO, MDIO 很类似 IIC,也是两根线,一根数据线叫做 MDIO,一根时钟线叫做 MDC。

在这里插入图片描述

1、MII/RMII 接口

1、MII 全称是 Media Independent Interface,直译过来就是介质独立接口
2、RMII 全称是 Reduced Media Independent Interface,翻译过来就是精简的介质独立接口
除了 MII 和 RMII 以外,还有其他接口,比如 GMII、 RGMII、 SMII、 SMII 等,关于其他接口基本都是大同小异的,用于以太网 MAC 连接 PHY 芯片。

2、MDIO 接口

MDIO 全称是 Management Data Input/Output,一个简单的两线串行接口,一根 MDIO 数据线,一根 MDC 时钟线。驱动程序可以通过 MDIO 和MDC 这两根线访问 PHY 芯片的任意一个寄存器。

3、RJ45 接口

网络设备是通过网线连接起来的,插入网线的叫做 RJ45 座,RJ45 座子上一般有两个灯,一个黄色(橙色),一个绿色,绿色亮的话表示网络连接正常,黄色闪烁的话说明当前正在进行网络通信。

在这里插入图片描述

4、PHY

调试注意:
1)地址不能出现冲突
2)接口电压要适配
3)节能功能必须按照手册的步骤来
4)光电切换复位生效
5)可以读取自协商出来的速率和模式,光电可能是不一样的寄存器

二、网络驱动

可以从相对简单的uboot学起:

uboot网络初始化分析
uboot ping分析

对于 I.MX6ULL 而言网络驱动主要分两部分: I.MX6ULL 网络外设驱动以及 PHY 芯片驱动,网络外设驱动是 NXP 编写的, PHY 芯片有通用驱动文件, 有些 PHY 芯片厂商还会针对自己的芯片编写对应的 PHY 驱动。

在使用时,需要深入进去了解整个流程。之前因为项目学习了bcm的网络驱动,就不在这里展开了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值