AUTOSAR MCAL层ETH模块(1)——通信原理

基础了解

        ETH,以太网,简单来讲就是将几台设备连接起来形成网络。这种连接是点到点之间的。以太网的传输速率为10M~10G,速度非常快。

        为了实现网络通信的标准化,普及网络应用,国际标准化组织(ISO)将整个以太网通信结构制定了OSI(Open System Interconnection)模型,整个模型包括硬件和软件定义。

        本文及后续文章所介绍的内容为以太网模块的物理层和数据链路层,上层协议等内容暂时不在讲述范围。

以太网的数据链路层分为LLC和MAC两种。

MAC:(Media Access Control)媒体访问控制层,负责以太网的总线访问机制、物理寻址方式、以太网帧格式等等。

LLC:(Logical Link Control)逻辑链路控制层,主要负责以太网帧的收发,还可以对以太网帧进行错误控制、流控等。

LLC负责报文的收发和检测控制等操作,MAC则作为软件和硬件间的桥梁。

物理层

        以太网设备间的连接都是由 MCU 通过 MII 和 SMI 来外接 PHY 芯片,经由 PHY 芯片将信号转换为支持网线传出的形式之后,然后才能和其他设备进行通信。

其中,MII负责数据的传输,SMI负责对PHY芯片进行控制。

        SMI包括MDIO和时钟线两种线,通过MDIO可以使MCU获取PHY芯片的状态,也可以对其进行控制。AUTOSAR 规范中定义了 WriteMII 和 ReadMII 两种接口来控制和监控 MII 的状态。MCU正是通过 SMI 来实现对 PHY 芯片的控制。

        常用的 MII 总线分为MII、RMII、SMII、GMII、RGMII、SGMII等。下图为 MII 和 RMII 两种协议的对比。

        简单来讲,在原本的 MII 前加上 “ R ” 则代表引脚简化,但是这种简化可能会导致传输不够稳定,因此适用于要求较低的场景;而 “ S ” 则表示串行,前面两种比如 MII 是采用多条数据线并行传输的方式,而 SMII 则是串行传输。

以太网帧格式

        以太网帧格式由前导字段、帧起始定界符、目标地址、源地址、数据包类型、数据域、填充域、校验和域组成。

前导码:7字节,用于同步接收端的时钟信号,便于识别帧的开始。

帧起始分隔符(SFD):1字节,用于标识帧的开始,用来指示接下来是帧的实际内容。

目的地址(Dst):6字节,接收方的MAC地址。

源地址(Src):6字节,即发送方的MAC地址。

类型/长度(Type/Length):2字节,用于指示有效载荷的类型(比如IPv4或IPv6)或者数据长度。

有效数据(Payload):46到1500字节,包含实际传输的数据内容,例如IP数据包。如果数据内容不足46字节,可能会通过填充(PAD)进行扩充。

填充(PAD):在有效数据少于46字节的情况下,增加的填充字节,保证数据部分的最小长度,填充字节通常是 0x00。

帧校验序列(FCS):4字节,用于校验数据帧的完整性,通常通过CRC(循环冗余校验)算法生成。

        目前以太网帧的格式分为 IEEE 802.3 和 Ethernet II 两种,通过判别“类型/长度”字段来进一步判断当前帧的类型。

IEEE 802.3:若该字段值小于等于0x5DC (1500),那么该帧为IEEE 802.3格式,此时该字段可以视为“长度”字段:

Ethernet II:若该字段值大于等于0x600 (1536),则该帧为Ethernet II帧格式。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是网关?网关有什么作用?API网关的主要功能,SpringCloud可以选择有哪些API网关?什么是限流算法?网关如何实现限流?一篇文章读懂网关的前世今生

1、什么是网关? API网关(API Gateway)是一种中间层服务器,用于集中管理,保护和路由对后端服务的访问。它充当了客户端与后端服务之间的入口点,提供了一组统一的接口管理和控制API的访问。 2、网关示意图 3…

【技术产品】DS三剑客:DeepSeek、DataSophon、DolphineSchduler浅析

引言 在大数据与云原生技术快速发展的时代,开源技术成为推动行业进步的重要力量。本文将深入探讨三个备受瞩目的开源产品组件:DeepSeek、DataSophon 和 DolphinScheduler,分别从产品定义、功能、技术架构、应用场景、优劣势及社区活跃度等方面…

架构——Nginx功能、职责、原理、配置示例、应用场景

以下是关于 Nginx 的功能、职责、原理、配置示例、应用场景及其高性能原因的详细说明: 一、Nginx 的核心功能 1. 静态资源服务 功能:直接返回静态文件(如 HTML、CSS、JS、图片、视频等)。配置示例:server {listen 80…

spring 学习 (注解)

目录 前言 常用的注解 须知 1 Conponent注解 demo(案例) 2 ControllerServiceRepository demo(案例) 3 ScopeLazyPostConstructPreDestroy demo(案例) 4 ValueAutowiredQualifierResource demo(案例) 5 Co…

机器学习 - 机器学习模型的评价指标

为了衡量一个机器学习模型的好坏,需要给定一个测试集,用模型对测试集 中的每一个样本进行预测,并根据预测结果计算评价分数。本文,我们来了解一下机器学习模型常用的评价指标。 一、分类问题常用到的混淆矩阵 在分类任务中&…

openAI最新o1模型 推理能力上表现出色 准确性方面提升 API如何接入?

OpenAI o1模型在回答问题前会进行深入思考,并生成一条内部推理链,使其在尝试解决问题时可以识别并纠正错误,将复杂的步骤分解为更简单的部分,并在当前方法无效时尝试不同的途径。据悉,o1不仅数学水平与美国奥林匹克竞赛…

基于ArduPilot开发无人机飞控自动驾驶仪

目录 1、项目参数 2、硬件设计解析 2.1、主控与协处理器架构 2.2、高精度传感器集成 2.3、数据存储与恢复 2.4、电源管理与保护 2.5、通信与接口 本项目基于开源飞行控制固件 ArduPilot 开发,设计并实现了一款高度集成的 自动驾驶仪,可广泛应用于…

传输层协议TCP ( 下 )

文章目录 前言序号与确认序号超时重传RTOJacobson算法内核中超时时间的计算 滑动窗口滑动窗口延迟应答流量控制 拥塞控制慢启动拥塞避免快重传快速恢复 保活机制参考资料 前言 TCP(Transmission Control Protocol,传输控制协议)是互联网最重要…

vscode使用常见问题处理合集

目录 一、使用vite创建的vue3项目,script和style首行代码不会缩进,且格式化属性字段等会换行问题 首行缩进情况如下: 属性、参数格式化换行情况如下: 解决方式: 一、使用vite创建的vue3项目,script和style首行代码不…

【C语言】程序环境与预处理

目录 程序的翻译环境和执行环境 粗谈编译链接 翻译环境 编译的几个阶段及链接 运行环境 预处理详解 预定义符号 #define #define 定义标识符 #define 定义宏 #define 替换规则 #和## 带副作用的宏参数 宏和函数的对比 命名约定 #undef 命令行定义 条件编译 …

类与对象C++详解(中)-----构造函数与析构函数

1.构造函数 构造函数是一个特殊的成员函数,函数名和类名相同,构造函数的作用是初始化,以下是构造函数的一些特点: 1. 函数名与类名相同。 2. ⽆返回值。(返回值啥都不需要给,也不需要写void,不要纠结&#…

计算机网络(1)基础篇

目录 1.TCP/IP 网络模型 2.键入网址--->网页显示 2.1 生成HTTP数据包 2.2 DNS服务器进行域名与IP转换 2.3 建立TCP连接 2.4 生成IP头部和MAC头部 2.5 网卡、交换机、路由器 3 Linux系统收发网络包 1.TCP/IP 网络模型 首先,为什么要有 TCP/IP 网络模型&a…

【JavaEE进阶】验证码案例

目 🌲实现说明 🎄Hutool介绍 🌳准备工作 🌴约定前后端交互接口 🚩接口定义 🚩实现服务器后端代码 🚩前端代码 🚩整体测试 🌲实现说明 随着安全性的要求越来越⾼…

硬件学习笔记--42 电磁兼容试验-6 传导差模电流干扰试验介绍

目录 电磁兼容试验-传导差模电流试验 1.试验目的 2.试验方法 3.判定依据及意义 电磁兼容试验-传导差模电流干扰试验 驻留时间是在规定频率下影响量施加的持续时间。被试设备(EUT)在经受扫频频带的电磁影响量或电磁干扰的情况下,在每个步进…

机器学习·最近邻方法(k-NN)

前言 上一篇简单介绍了决策树,而本篇讲解与决策树相近的 最近邻方法k-NN。 机器学习决策树-CSDN博客 一、算法原理对比 特性决策树最近邻方法(k-NN)核心思想通过特征分割构建树结构,递归划分数据基于距离度量,用最近…

Deesek:新一代数据处理与分析框架实战指南

Deesek:新一代数据处理与分析框架实战指南 引言 在大数据时代,高效处理和分析海量数据是企业和开发者面临的核心挑战。传统工具如Pandas、Spark等虽功能强大,但在实时性、易用性或性能上仍有提升空间。Deesek(假设名称&#xff…

【Vue】打包vue3+vite项目发布到github page的完整过程

文章目录 第一步:打包第二步:github仓库设置第三步:安装插件gh-pages第四步:两个配置第五步:上传github其他问题1. 路由2.待补充 参考文章: 环境: vue3vite windows11(使用终端即可&…

JVM内存模型详解

文章目录 1. 程序计数器(Program Counter Register)2. Java虚拟机栈(Java Virtual Machine Stacks)3. 本地方法栈(Native Method Stacks)4. Java堆(Java Heap)5. 方法区(…

KubeSphere 和 K8s 高可用集群离线部署全攻略

本文首发:运维有术,作者术哥。 今天,我们将一起探索如何在离线环境中部署 K8s v1.30.6 和 KubeSphere v4.1.2 高可用集群。对于离线环境的镜像仓库管理,官方推荐使用 Harbor 作为镜像仓库管理工具,它为企业级用户提供…

代码随想录-训练营-day30

今天我们要进入动态规划的背包问题,背包问题也是一类经典问题了。总的来说可以分为: 今天让我们先来复习0-1背包的题目,这也是所有背包问题的基础。所谓的0-1背包问题一般来说就是给一个背包带有最大容量,然后给一个物体对应的需要…