GMAC简介

网卡

用于报文控制,一般有mac和phy组成。
mac: 一般用于数据的过滤
phy:    操作数据实际的收发

mac

分类:
mac按最大传输速率可以分为emac,gmac组成:
帧发送(Frame Transmission)
接收上层协议传来的数据,加头尾(控制信息),组成以太网帧,以位数据流形式传到物理层。
帧接收(Frame Reception)
接收物理层位数据流,检查是否有效(目的IP,校验码,字节对齐),发送给上层协议,或丢弃。
GMAC控制(GMAC Control)
用于全双工模式下控制帧的生成、检测,它处在主机和发送、接收模块之间,对普通的数据帧来说是透明的。
媒体独立接口管理(GMII)
控制物理层的输入输出操作,检查物理层的状态信息。(控制PHY)

phy

phy有两个重要的概念:
addr:    取值0-31,由板卡电路图决定
id:  由硬件厂商决定,同一类型的phy,id是一样的。一般通过读id来判断操作phy是否成功。

mac工作模式:全双工与半双工

半双工:
半双工模式:GMAC client将数据传给GMAC后,GMAC先给数据加上Preamble、FSD、FCS,组成以太网帧;
然后检查载波侦听信号(CRS);
若有载波信号,表示有数据正在 本地网段上传播,就等待直到载波信号消失;
载波信号消失后,GMAC还要等待一个帧间延时(interFrame Spacing);
若在帧间延时期间,一直没有载波信号,该以太网帧就可以开始向物理层传输。全双工:
全双工模式:GMAC从GMAC Client接收到数据后,不需要载波侦听和冲突检测,
直接向物理层传送,其它操作与半双工相同。

mac外部引脚:

以太网MAC芯片的一端接计算机PCI总线,另外一端就接到PHY芯片上,它们之间是通过MII接口通信的。MII接口:
包括数据接口,管理接口。
数据接口:16线;
管理接口:2线(MDC:管理时钟,MDIO:管理数据)。
支持10兆和100兆的总线接口速度,时钟都由PHY或FPGA提供。
16个数据线如下:(7+7+2 = 14)
TX:使能,错误,时钟,数据*4。
RX:使能,错误,时钟,数据*4。
CRS载波检测,COL冲突检测。GMII接口--(数据线: 11 * 2 + 2 == 24线)
GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps(每个数据收发口每秒有125M个周期的电平变换,收发各8个口)。同时兼容MII所规定的10/100 Mbps工作方式。
发送:
GTXCLK/TXCLK:千兆模式下,MAC提供这个时钟(与MII区别),其他信号和这个信号同步百兆模式下,PHY提供这个时钟,其他信号和这个同步)
TXEN——发送器使能信号
TXER——发送器错误(用于破坏一个数据包)
TXD[7..0]——被发送数据接收:
RXCLK——接收时钟信号(从收到的数据中提取,因此与GTXCLK无关联)
RXDV——接收数据有效指示
RXER——接收数据出错指示
RXD[7..0]——接收数据管理配置:(用于配置PHY)MDC——配置接口时钟MDIO——配置接口I/ORGMII接口   (24 - 10 = 14)
由GMII的24线简化为14线,TX/RX数据宽度从8为变为4位。
为了保持1000Mbps的传输速率不变,RGMII接口在时钟的上升沿和下降沿都采样数据,时钟频率仍旧为125MHz。
(100M和10M时参考时钟为25Mhz和2.5MHz)
在参考时钟的上升沿发送GMII接口中的TXD[3:0]/RXD[3:0];
在参考时钟的下降沿发送GMII接口中的TXD[7:4]/RXD[7:4]。使能和error合到一根线上:
TX_EN信号线上传送TX_EN和TX_ER两种信息,在TX_CLK的上升沿发送TX_EN,下降沿发送TX_ER;RX同理。

GMAC控制PHY的方式:

以T3为例,通过以上两个寄存器读写phy芯片的寄存器,控制phy

gmac网卡驱动1-------mac与phy基础知识相关推荐

  1. 【NanoPi T2】 5.uboot gmac网卡驱动(1) - mac控制器,phy芯片,rgmii协议

    1.mac控制器,phy芯片,rgmii协议 2.寄存器介绍 3.驱动源码解析 4.nanopi t2 移植rtl8211e网卡驱动(首发) 硬件构成部分 以太网卡或者是ARM开发板的网络部分通常由M ...

  2. 网卡驱动学习一、wireless基础知识(cfg80211 mac80211 nl80211)

    1. 基本概念 cfg80211: 用于对无线设备进行配置管理.与FullMAC, mac80211和nl80211一起工作.(Kernel态) mac80211: 是一个driver开发者可用于为S ...

  3. 网卡构造:MAC与PHY的关系,GMAC介绍

    GMAC:千兆网媒体访问控制 GMAC接口(1)--GMAC简介_daikaimiao的博客-CSDN博客_gmac GMAC接口(2)--协议_daikaimiao的博客-CSDN博客_gmac协议 ...

  4. UEFI 中的Gmac网卡驱动实现

    UEFI 中的Gmac网卡驱动实现 最近在龙芯平台完成了Gmac网卡驱动的迁移,目前已经在UEFI上跑起来了,经过大量的测试,gmac搭配Rtl或者intel的网卡进行pxe启动都是没有问题的.也算是 ...

  5. 【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍

    1.mac控制器,phy芯片,rgmii协议 2.寄存器介绍 3.驱动源码解析 4.nanopi t2 移植rtl8211e网卡驱动(首发) s5p4418 gmac概述 支持千兆速度,协议为RGMI ...

  6. 【NanoPi T2】 7.uboot gmac网卡驱动(3) - 驱动源码解析

    1.mac控制器,phy芯片,rgmii协议 2.寄存器介绍 3.驱动源码解析 4.nanopi t2 移植rtl8211e网卡驱动(首发) 驱动注册入口 驱动的注册分两个部分,一个部分是静态编译的时 ...

  7. [Windows驱动开发](二)基础知识——数据结构

    本节主要介绍驱动开发的一些基础知识. 1. 驱动程序的基本组成 1.1. 最经常见到的数据结构 a. DRIVER_OBJECT驱动对象 [cpp] view plaincopy // WDK中对驱动 ...

  8. 【转】phy基础知识总结 common register总结

    PHY篇以太网PHY标准寄存器分析 PHY 是IEEE802.3中定义的一个标准模块,STA( station management entity ,管理实体,一般为MAC或CPU)通过SMI(S e ...

  9. phy基础知识总结 common register总结

    PHY篇以太网PHY标准寄存器分析 PHY 是IEEE802.3中定义的一个标准模块,STA( station management entity ,管理实体,一般为MAC或CPU)通过SMI(S e ...

最新文章

  1. 实时的激光雷达点云压缩
  2. 使用pickle保存机器学习模型详解及实战(pickle、joblib)
  3. 红帽收购混合云管理提供商NooBaa,混合云爆发节点临近!
  4. 设计模式——工厂模式
  5. 用Unity3D的50个技巧:Unity3D最佳实践
  6. 【VS开发】Return与Exit的区别
  7. [转] 哈佛大学研究:一个人成为废物的九大根源
  8. BZOJ1018 | SHOI2008-堵塞的交通traffic——线段树维护区间连通性+细节
  9. 你单身,其实是个科学问题……
  10. (2021) 24 [持久化] 文件系统API
  11. 成功入职阿里P7后 一个技术老哥总结了这几句话
  12. Springboot瘦身(lib和程序分开打包)
  13. 【caffe学习】caffe第二个比较典型的识别例子CIFAR_10的运行详解
  14. python web框架 多线程和多进程_python的多线程和多进程(一)
  15. v​n​c​服​务​​安​装​与配置
  16. Unity 2D独立开发手记(外篇):Anima2D动画制作
  17. 一个月空余时间微信诗词小程序前后端开发上线实践指南
  18. 15、ADS使用记录之耦合器设计
  19. “双 亲 委 派 机 制”
  20. 【新番尝鲜】白色相簿——我的女朋友是偶像?

热门文章

  1. CAN总线学习心得:zlg关于can帖子汇总【转】【强烈推荐】
  2. MIGO结合NFT技术带来全新DeFi金融平台
  3. Java加密算法—凯撒加密实现以及暴力破解
  4. 量化系统工程师需要学什么?
  5. java拷贝远程服务器上文件,java拷贝远程服务器上文件
  6. Python的面试题/测试题汇总,带答案
  7. 使用JDBC操作MySQL数据库
  8. 电子健康档案在国外的一些实践
  9. dul恢复oracle数据,学习笔记:Oracle dul数据挖掘 使用DUL数据恢复软件恢复分区表中...
  10. bootstrap的学习-基础样式和排版一