【TC3xx】GETH

news2024/9/25 12:02:53

目录

一、RGMII

二、SMI接口

三、TC3xx MCAL

3.1 MCU

3.2 Port

3.3 DMA

3.4 中断配置

3.5 ETH

3.6 集成


一、RGMII

        TC3xx支持MII/RMII/RGMII三种以太网数据通信接口。其中RGMII经常用于MAC和MAC之间,或MAC与PHY之间的通信,RGMII的带宽可以是10Mbps、100Mbps、1000Mbps。

    • 当RGMII设置为10Mbps带宽是,TXC和RXC的时钟为2.5MHz。
    • 当RGMII设置为100Mbps带宽是,TXC和RXC的时钟为25MHz。
    • 当RGMII设置为1000Mbps带宽是,TXC和RXC的时钟为125MHz。

        备注:TC3XX中使用模式RGMII的GREFCLK并不是标准RGMII的标准接口,但是在TC3XX中使用RGMII,就必须要用到GREFCLK这个引脚,并且需要外部输入125MHz时钟。外部时钟可以来源PHY或Switch的时钟输出,也可以是独立晶振的时钟。(GREFCLK的125MHz时钟输入异常,将导致DMA软件不能软件服务,GETH初始化失败)

二、SMI接口

        SMI接口由MDC/MDIO两线构成,主要用于对PHY的管理,通过该接口可以实现对PHY内部寄存器的读写和控制。

    • MDC:时钟信号线,最大可设置为2.5MHz
    • MDIO:双向的数据信号线

        Clause22 和 Clause45是两种不同格式是的 SMI数据协议,其中Clause22是在IEEE802.3里面定义的,随着以太网的发展,为了满足10G以太网的需求扩展,在802.3ae规范标准中提出了Clause45。

        备注:TC3xx支持Clause22 和 Clause45两种格式,但是在MCAL接口中不支持Clause45,因为该部分没有在AUTOSAR标准中定义。

TC3xx的读写接口如下:

  • Eth_17_GEthMac_WriteMii
  • Eth_17_GEthMac_ReadMii

三、TC3xx MCAL

3.1 MCU

        以太网驱动程序依赖于MCU驱动程序来生成时钟fSRI、fSPB和fGETH。fGETH为千兆以太网内核定义了应用程序时钟频率。fGETH独立于fSPB,并允许千兆以太网以恒定的波特率(频率)运行。要配置fSRI、fSPB和fGETH,请参考MCU驱动程序配置中的McuSRI频率、McuSPB频率和McuGEETH频率参数。在Tresos中配置MCU驱动程序时,必须考虑以下事项:

  • 在以太网控制器中,由于需要同时从FIFO存储器进行读写传输,应用时钟频率(fGETH)应使存储器的数据传输带宽(fSRI)的带宽必须至少是应用时钟频率(fGETH)的两倍。即,fSRI必须大于或等于2* fGETH。

3.2 Port

ETH_TXD[3:0]

8位并行的发送数据线,在ETH_TXEN为高电平,ETH_TXER为低电平时有效。(4位数据有效)

MAC --> PHY

ETH_TXC

发送参考时钟,ETH_TXC由PHY侧提供

MAC --> PHY

ETH_TXEN

发送数据有效信号,高电平有效

MAC --> PHY

ETH_GETH_CLK

RGMII125MHz参考时钟

外部时钟提供

ETH_RXD[3:0]

8位并行的接收数据线,在ETH_RXDV为高电平,ETH_RXER为低电平时有效。(4位数据有效)

PHY --> MAC

ETH_RXC

接收数据参考时钟,ETH_RXC由PHY侧提供。

PHY --> MAC

ETH_RXDV

接收数据有效信号,高电平有效

PHY --> MAC

ETH_RXER

接受数据错误信号,高电平有效

PHY --> MAC

MDIO

SMI数据线

双向

MDC

SMI时钟线

MAC --> PHY

        PORT驱动程序配置整个微控制器的端口引脚。用户必须通过port配置配置以太网驱动程序使用的端口引脚:

  • 配置在MII/RMII/ RGMII和MDIO接口的以太网驱动程序中使用的所有PORT引脚。也就是说,诸如端口方向(输入或输出)、端口初始模式(输入脚为GPIO或输出脚对应的ALT选项)等参数。
  • 以太网驱动器用于MII/RMII/RGMII接口的所有输出和输入引脚,参数PortPinOutputPadDriveStrength值配置为PORT_PIN_RGMII_DRIVER。
  • 对于以太网驱动程序使用的所有输出引脚,应选择端口控制选择为ENABLE.。

3.3 DMA

        以太网控制器在硬件上有它自己的DMA,并且以太网驱动程序实现了执行此DMA的必要代码。因此,以太网驱动程序不使用TC3xx设备中可用的任何MCAL DMA服务。

3.4 中断配置

        如使用中断模式,需要给ETH配置一个接收中断与发送中断,如下配置相应中断响应优先级。

3.5 ETH

(1)以太网速度模式设置

(2)管脚选择

(3)硬件和校验配置,保持默认即可

(4)MAC信息配置

3.6 集成

/* MCU Initialization */
Mcu_Init(&Mcu_Config);
Mcu_InitClock(0U);
while(Mcu_GetPllStatus() == MCU_PLL_LOCKED);
Mcu_DistributePllClock();
/* Port Initialization */
Port_Init(&Port_Config);
/* Ethernet controller Initialization */ 
Eth_17_GEthMac_Init(&Eth_Config);

/*中断初始化与使能*/
IrqEthernet_Init();
SRC_GETH_GETH0_SR2.B.SRE = 1;
SRC_GETH_GETH0_SR6.B.SRE = 1;

/*PHY初始化*/
Phy_Init();

/*控制器模式初始化*/
/*如果使用RGMII模式需要外部提供GETHCLK 125Mhz,在MAC模式设置前配置好时钟输入*/
RetValue_ETH = Eth_17_GEthMac_SetControllerMode(0u, ETH_MODE_ACTIVE);

/*数据发送*/
Eth_17_GEthMac_ProvideTxBuffer(0, BufIdxPtr, BufPtr, LenBytePtr);
Eth_17_GEthMac_Transmit(0, BufIdx,FrameType, TxConfirmation, LenByte, PhysAddrPtr);


/*如使用轮询模式需要调用一下函数*/
Eth_17_GEthMac_TxConfirmation(0);
Eth_17_GEthMac_Receive(0, RxStatusPtr);
/*根据MCAL配置调用主函数*/
Eth_17_GEthMac_MainFunction();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对于初学者来说,从哪些方面开始学习 Java 编程比较好?

对于初学者来说,从哪些方面开始学习 Java 编程比较好? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「Java的资料从专业入门到高级教程工具包」,点个关注,全…

vue2-安装elementUI时警告

警告内容&#xff1a;npm WARN deprecated core-js2.6.12: core-js<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up …

机器学习可重复性危机下,创建复杂数据系统的挑战

文章目录 一、前言二、主要内容三、总结 &#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 数据科学系统已成为众多研究领域的关键性工具&#xff0c;其开发者群体呈现出多元化的背景特征。在过去十年中&#xff0c;尽管数据科学与机器学习的强…

OpenSSL的源码在哪里下载?

官方网站去下载&#xff0c;网址&#xff1a; https://www.openssl.org/source/ 比较老的版本的下载页面地址&#xff1a; https://www.openssl.org/source/old/ 由于某面板的OpenSSL模块的安装配置语句如下&#xff1a; --with-openssl/root/rpmbuild/BUILD/openssl-1.0.2u所…

TreeSelect 树型选择控件 编辑回显时所选的值与展开后的数据不对应 解决方案

一、业务场景&#xff1a; 最近在使用Vue框架和antd-vue组件库的时候&#xff0c;发现在做编辑回显时** TreeSelect 树型选择控件** 组件的选中的值能拿到&#xff0c;但是在下拉列表的回显位置有偏差。为了大家后面遇到和我一样的问题&#xff0c;给大家分享一下 二、bug信息…

商城免费搭建之java鸿鹄云商 java电子商务商城 Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

鸿鹄云商 SAAS云产品概述 1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、My…

el-tooltip 修改全局的样式 (默认的太丑了)

默认的是黑色的框 话不多说,上代码 : .atooltip.el-tooltip__popper[x-placement^"top"] .popper__arrow {border-top-color: #fff;color: #999;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); } .atooltip.el-tooltip__popper[x-placement^"top"] .popp…

kotlin 基础概览

继承类/实现接口 继承类和实现接口都是用的 : &#xff0c;如果类中没有构造器 ( constructor )&#xff0c;需要在父类类名后面加上 () &#xff1a; class MainActivity : BaseActivity(), View.OnClickListener 空安全设计 Kotlin 中的类型分为「可空类型」和「不可空类型」…

嵌入式培训-数据结构-day23-线性表

线性表 线性表是包含若干数据元素的一个线性序列 记为&#xff1a; L(a0, ...... ai-1, ai, ai1 ...... an-1) L为表名&#xff0c;ai (0≤i≤n-1)为数据元素&#xff1b; n为表长,n>0 时&#xff0c;线性表L为非空表&#xff0c;否则为空表。 线性表L可用二元组形式描述…

冲压模具市场调研:2023年该行业发展现状及前景分析

汽车冲压件模具是汽车车身生产的重要工艺装备&#xff0c;是汽车换型的主要制约因素。汽车冲压件模具具有尺寸大、型面复杂、精度要求高等特点&#xff0c;属于技术密集型产品。 汽车冲压模具能快速精密地把材料直接加工成零件或半成品并通过焊接、铆接、拼装等工艺装配成零部件…

ChatGLM3-6B模型介绍及微调

文章目录 ChatGLM3-6B的强大特性更强大的基础模型更完整的功能支持更全面的开源序列 ChatGLM3-6B的部署basic版部署集成版部署 ChatGLM3-6B-base 微调ChatGLM3-6B-chat 微调多轮对话微调单轮对话微调 ChatGLM3-6B的强大特性 项目地址&#xff1a;https://github.com/THUDM/Cha…

基于node 安装express后端脚手架

1.首先创建文件件 2.在文件夹内打开终端 npm init 3.安装express: npm install -g express-generator注意的地方&#xff1a;这个时候安装特别慢,最后导致不成功 解决方法&#xff1a;npm config set registry http://registry.npm.taobao.org/ 4.依次执行 npm install -g ex…

shopify商城开发 引用谷歌字体库 fonts.google.com

引用谷歌字体库 https://fonts.google.com/ <link rel"preconnect" href"https://fonts.googleapis.com"> <link rel"preconnect" href"https://fonts.gstatic.com" crossorigin> <link href"https://fonts.goo…

详细了解云堡垒机的作用,提高企业数据信息安全

随着上云企业的不断增加&#xff0c;云上数据安全性成为企业面临的重要问题。为了保障企业的核心数据安全&#xff0c;越来越多的企业采购了云堡垒机来提升数据安全性。今天我们就来详细了解一下云堡垒机的作用&#xff0c;以及如何提高企业数据安全。 一、云堡垒机定义 云堡垒…

LabVIEW进行癌症预测模型研究

LabVIEW进行癌症预测模型研究 癌症是一种细胞异常增生的疾病。随着年龄的增长&#xff0c;细胞分裂速度放缓&#xff0c;但癌细胞会失去控制地不断分裂&#xff0c;形成可能良性或恶性的肿瘤。 2012年的国际癌症数据显示&#xff0c;新发癌症病例和癌症相关死亡人数有所增加。…

springboot使用EasyExcel导入数据

springboot使用EasyExcel导入数据 1. 引入依赖 <!-- Easy Excel --> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.2.1</version> </dependency>2. 建立对应实体类 假如…

多线程JUC 第2季 CAS的作用介绍

一 CAS作用介绍 1.1 CAS作用 CAS有3个操作数&#xff0c;位置内存值V&#xff0c;旧的预期值A&#xff0c;要修改的更新值B&#xff0c;如果内存值V和预期值相同则&#xff0c;内存值改为B&#xff0c;否则什么都不做。当它重来重试的这种行为称为-自旋。 CAS是一条cpu的原…

为什么越来越多的人从事软件测试行业?

1.市场需求增加&#xff1a;随着数字化转型和互联网的普及&#xff0c;各行各业都需要高质量、稳定可靠的软件来支持其业务运作。因此&#xff0c;对软件测试人员的需求也随之增加。同时&#xff0c;新兴技术的发展&#xff0c;如物联网、大数据、区块链、人工智能等&#xff0…

git学习笔记03(小滴课堂)

详解分支的基本操作 创建分支&#xff1a; 查看分支&#xff1a; 切换分支&#xff1a; git branch 中星号是当前分支。 idea中也更新了。 提交上去。 我们新建个分支&#xff1a; 我们新建分支是复制当前分支&#xff0c;而不是直接复制的主分支。 我们切换回主分支&#xf…

Bounding boxes augmentation for object detection

Different annotations formats Bounding boxes are rectangles that mark objects on an image. There are multiple formats of bounding boxes annotations. Each format uses its specific representation of bouning boxes coordinates 每种格式都使用其特定的边界框坐标…