当前位置: 首页 > news >正文

【TC3xx】GETH

目录

一、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();

相关文章:

【TC3xx】GETH

目录 一、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的带宽可以是10M…...

不需要联网的ocr项目

地址 GitHub - plantree/ocr-pwa: A simple PWA for OCR, based on Tesseract. 协议 mit 界面 推荐理由 可以离线使用,隐私安全...

【Git使用总结】

Git使用总结 随着软件开发和团队协作的日益重要,Git作为一种强大的版本控制系统,已经成为了开发人员不可或缺的工具。本文将对Git的使用进行总结,以帮助读者更好地掌握Git的用法和技巧。 一、Git的基本概念 在开始使用Git之前,…...

仿照MyBatis手写一个持久层框架学习

首先数据准备,创建MySQL数据库mybatis,创建表并插入数据。 DROP TABLE IF EXISTS user_t; CREATE TABLE user_t ( id INT PRIMARY KEY, username VARCHAR ( 128 ) ); INSERT INTO user_t VALUES(1,Tom); INSERT INTO user_t VALUES(2,Jerry);JDBC API允…...

关东升老师极简系列丛书(由清华大学出版社出版)

极简系列丛书,编程学习新体验 在这个科技日新月异的时代,编程已经成为了一种必备技能。但是面对各种复杂的编程语言,你是否也曾感到过迷茫和困惑?由清华大学出版社出版的“极简系列丛书”就是为了帮助你解决这个问题。 这套丛书…...

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器 使用高易错性和突发性方法 与人工智能生成的文本相比,人类写作往往具有更多的突发性,这是由于人类往往比人工智能生成的文…...

JavaWeb笔记之MySQL数据库

#Author 流云 #Version 1.0 一、引言 1.1 现有的数据存储方式有哪些? Java程序存储数据(变量、对象、数组、集合),数据保存在内存中,属于瞬时状态存储。 文件(File)存储数据,保存…...

Amazon CodeWhisperer 开箱初体验

文章作者:Coder9527 科技的进步日新月异,正当人工智能发展如火如荼的时候,各大厂商在“解放”码农的道路上不断创造出各种 Coding 利器,今天在下就带大家开箱体验一个 Coding 利器: Amazon CodeWhisperer。 亚马逊云科…...

Java的引用类型有几种?区别是什么?

Java中的引用类型主要分为四种:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。这些引用类型在Java中主要用于…...

掌握iText:轻松处理PDF文档-基础篇

关于iText iText是一个强大的PDF处理库,可以用于创建、读取和操作PDF文件。它支持PDF表单、加密和签署等操作,同时支持多种字体和编码。maven的中央仓库中的最新版本是5.X,且iText5不是完全免费的,但是基础能力是免费使用的&…...

小红书民宿文案怎么写?建议收藏

随着民宿市场的日益火爆,如何在众多民宿中脱颖而出,吸引更多租客入住,成为摆在每一位民宿业主面前的难题。一篇优质的小红书民宿文案,不仅能吸引潜在租客的关注,还能提高民宿的知名度。本文伯乐网络传媒将从八个方面教…...

C#教程(一):面向对象

1、介绍 C#是一种多范式编程语言,但其中一个主要的编程范式是面向对象编程(OOP)。面向对象编程有一些特点,而C#提供了丰富的功能来支持这些特点。 2、面向对象特点 封装(Encapsulation): 封装…...

Linux系统中部署minio服务、开启反向代理、二级域名SSL加固

链接: B站1小时-配置指导视频: 一、创建minio 文件目录(/project/minio) 二、下载Minio wget https://dl.min.io/server/minio/release/linux-amd64/minio 三、在minio目录中-创建日志文件 四、对minio(可以理解为windows系统中的.exe可执行文件) 进行授权 chmod 777 min…...

PMP备考总结:项目管理PMP考试提高通过率,轻松上岸~

分享一篇左羊学霸的备考总结,希望能帮到正在备考的友友们~ 前言 作为⼀名通过PMP项⽬管理认证并且拿到3A成绩 ( PMP认证最好成绩) 的 学习者, 来跟⼤家分享下我考取PMP证书的动机与过程 。考证不是主要⽬ 的, 在考证的过程深化⾃⼰的项⽬管理…...

shell脚本中获取当前脚本的绝对路径

说明: PWD 是获取当前脚本的执行路径的,下面的方式是获取文件绝对路径的。 话不多说,直接上硬货!!! #!/bin/bashecho "执行路径 $PWD"absolute_path$(readlink -f "$0") # 获取目录路径 directory$(dirname "$absolute_path&q…...

SSD基础架构与NAND IO并发问题探讨

在我们的日常生活中,我们经常会遇到一些“快如闪电”的事物:比如那场突如其来的雨、那个突然出现在你眼前的前任、还有就是今天我们要聊的——固态硬盘(SSD)。 如果你是一个技术宅,或者对速度有着近乎偏执的追求&…...

激光雷达反射率定标板如何提取障碍信息

随着信息科技技术的发展,自动驾驶技术在移动机器人等智能移动设备领域得到广泛应用。智能移动设备不仅减少了人力劳动,方便生活,而且提高了工作效率。激光雷达作为自动驾驶技术的核心避障传感器,得到迅速发展。 激光雷达通过对发射…...

【开源】基于JAVA的桃花峪滑雪场租赁系统

项目编号: S 036 ,文末获取源码。 \color{red}{项目编号:S036,文末获取源码。} 项目编号:S036,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设…...

将VOC2012格式的数据集转为YOLOV8格式

文章目录 简介1.数据集格式1.1数据集目录格式对比1.2标签格式对比 2.格式转换脚本3.文件处理脚本 简介 将voc2012中xml格式的标签转为yolov8中txt格式将转换后的图像和标签按照yolov8训练的要求整理为对应的目录结构 1.数据集格式 1.1数据集目录格式对比 (1&…...

DevExpress WinForms Pivot Grid组件,一个类似Excel的数据透视表控件(二)

界面控件DevExpress WinForms的Pivot Grid组件是一个类似Excel的数据透视表控件,用于多维(OLAP)数据分析和跨选项卡报表。在上文中(点击这里回顾>>)我们介绍了DevExpress WinForms Pivot Grid组件的性能、分析服务、数据塑造能力等&…...

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

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

ERP数据仓库模型

ERP数据仓库模型建设是一个复杂的过程,涉及到多个主题域。以下是一个详细的设计方案: 确定业务需求和目标 在开始设计数据仓库模型之前,需要了解企业的业务需求和目标。这包括了解企业的运营模式、业务流程、关键绩效指标等。通过与业务部门…...

基于单片机的智能小车 (论文+源码)

1. 系统设计 此次可编程智能小车系统的设计系统,结合STM32单片机,蓝牙模块,循迹模块,电机驱动模块来共同完成本次设计,实现小车的循迹避障功能和手机遥控功能,其整体框架如图2.1所示。其中,采用…...

Redis和MySQL双写一致性实用解析

1、背景 先阐明一下Mysql和Redis的关系:Mysql是数据库,用来持久化数据,一定程度上保证数据的可靠性;Redis是用来当缓存,用来提升数据访问的性能。 关于如何保证Mysql和Redis中的数据一致(即缓存一致性问题…...

win10彻底永久关闭自动更新的方法

win10彻底永久关闭自动更新的方法 文章目录 win10彻底永久关闭自动更新的方法一、禁用Windows Update服务二、在组策略里关闭Win10自动更新相关服务 可以参考这个视频的做法: 教学视频搬用 一、禁用Windows Update服务 1、同时按下键盘 Win R,打开运行…...

【webpack】初始化

webpack 旧项目的问题下一代构建工具 Vite 主角 :webpack安装webpack1,mode的选项2,使用source map 精准定位错误行数3,使用watch mode(观察模式),自动运行4,使用webpack-dev-server工具,自动刷…...

服务器GPU占用,kill -9 PID 用不了,解决办法

PID(progress ID 进程ID) 上图为占用情况,使用下面的指令都不管用 kill -9 PID kill -15 PID # 加入sudo 还是不行 # 等等网上的 chatgpt 提供的其他办法,一圈试了下来还是不管用最后解决办法 首先用下面的指令查看进程的树结构…...

Vue学习笔记-Vue3中的toRaw和markRaw

toRaw 作用:将一个由reactive生成的响应式对象转为普通对象 导入: import {toRaw} from vue 使用方法: let data reactive({k1:v1,k2:v2 }) //将对象变为非响应式的普通对象 let raw_data toRaw(data)使用场景:用于读取响应式…...

【Android Audio Focus 音频焦点】

介绍 Android 中的音频焦点(Audio Focus)是一种机制,用于管理应用程序之间的音频资源竞争。当多个应用程序同时请求使用音频设备时,通过音频焦点机制可以确保最终用户的体验不受影响。 两个或两个以上的 Android 应用可同时向同…...

ChatGPT一周年,一图总结2023生成式AI里程碑大事件时间线

带你探索AI的无限可能!AI一日,人间一年,这句话绝非空谈! AI技术在不断地发展,让我们一起期待它未来更多的可能性吧! 2022 年 11 月 30 日,OpenAI 宣布正式推出 ChatGPT。365 天过去,…...