协议_CAN协议

news2025/2/10 5:52:19

物理层特征

信号传输原理:

CAN控制器根据CAN_L和CAN_H上的电位差来判断总线电平,总线电平分为显性电平(CAN_H与CAN_L压差 = 2v)、隐性电平(CAN_H与CAN_L压差 = 0v),发送方通过总线电平的变化,将消息传递给接收方,其中显性电平对应逻辑0、隐形电平对应逻辑1。

硬件连接:

单片机的CAN接口通过TJA1050芯片与CAN总线进行连接,TJA1050会将单片机的逻辑信号转换成CAN_H和CAN_L。

CAN帧

CAN帧有数据帧、遥控帧、错误帧、过载帧、间隔帧这五种,

数据帧、遥控帧有标准格式和扩展格式这两种,标准格式有11个标识符(ID),扩展格式有29个ID,这个ID决定了信息的优先级。

数据帧的组成:

数据帧由7部分组成,含义如下:

  • 帧起始:

表示数据帧的开始,一个位的显性电平

  • 仲裁段:

表示该帧优先级的段(ID)。

标准格式下该段由11个基本ID、RTR组成,其中:基本ID禁止高7位都为隐性(1111111xxxx不允许),RTR表示远程请求位(0表示数据帧,1表示远程帧)

扩展格式下该段由1个基本ID、SRR、扩展ID、RTR组成,其中:基本ID与标准格式的基本ID完全一样,SRR替代RTR(应设置为1),IDE表示标识符选择位(这里应为1,代表扩展标识符)

  • 控制段:

表示数据的字节数及保留位的段

标准格式下该段由IDE、r0、DLC组成,其中r0为保留位(发送必须为0,接收无要求),DLC为数据长度码(范围是0~8,代表接收/发送的数据长度,单位为字节),IDE表示标识符选择位(这里应为0,代表标准标识符)。

扩展格式下该段由r0、r1、DLC组成,其中r0、r1为保留位与标准格式要求一致,DLC也与标准格式含义一致。

  • 数据段:

数据的内容,一帧可以发送0~8个字节的数据,高位先输出。

  • CRC段:

检查帧的传输错误的段,检查范围是帧起始、仲裁段、控制段、数据段这4个段做CRC运算,存放到CRC区域。

接收方以相同的方式对接收到的这4个段进行CRC运算,并把运算结果与数据帧的CRC段进行比较,如果结果不一致则报错。

  • ACK段:

表示确认正常接收的段,由ACK槽、ACK界定符组成。发送方将数据帧的ACK段设置为11,接收方接收到正确的消息后,在ACK槽发送0。

注意:发送ACK的是接收到正常消息的、不处于总线关闭态和休眠态的所有接受单元,发送单元只设置ACK段,不发送ACK段。正常消息代表无填充错误、格式错误、CRC错误。

  • 帧结束:

表示数据帧结束的段,由7个1组成。

下图为帧的结构框图,其中D代表显性电平,R代表隐性电平。 

总线仲裁 

总线空闲时,一个发送单元开始发送数据,其余发送单元无法抢占,直到该发送单元发送完毕。

多个发送单元同时发送时,从ID位开始比较,显性单元(0)多的单元优先级高。

位时序

位速率:

发送单元在非同步的情况下发送的每秒钟的位数,也就是波特率。

位时序:

一个位可以分成同步段(SS)、传播时间段(PTS)、相位缓冲段1(PBS1)、相位缓冲段2(PBS2),这些段由Time Quantum(Tq)的最小时间单位构成。

这种一个位分为4个段,每个段分为多个Tq的时序叫做位时序。通过设置位时序,多个单元可以同时采样,也可以任意设置采样点。

位时间:

位时间 = 1/波特率。

如果1bit被分为了10Tq,1个Tq=0.1us,那么计算可得波特率=1MHz。

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

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

相关文章

QT修仙之路2-2 对话框 尚欠火候

警告对话框 相关代码 错误对话框 相关代码 消息对话框 相关代码 询问对话框 相关代码 相关代码 警告对话框 QMessageBox::warning(this,"错误","账号密码不能为空",QMessageBox::Ok);错误对话框 QMessageBox msgBox(QMessageBox::Critical,"错误…

NFT Insider #168:The Sandbox 推出新春{金蛇礼服}套装;胖企鹅合作 LINE Minini

引言:NFT Insider 由 NFT 收藏组织 WHALE Members、BeepCrypto 联合出品, 浓缩每周 NFT 新闻,为大家带来关于 NFT 最全面、最新鲜、最有价值的讯息。每期周报将从 NFT 市场数据,艺术新闻类,游戏新闻类,虚拟…

什么是deepseek?

AI国产免费开源强大 DeepSeek 是由国内团队开发的一款开源人工智能工具库,专注于提供高效易用的 AI 模型训练与推理能力。它既包含预训练大语言模型(如 DeepSeek-R1 系列),也提供配套工具链,助力开发者快速实现 AI 应用…

容器服务基础

1.腾讯云容器服务 使用该服务,开发者将无需安装、运维、扩展您的集群管理基础设施,只需进行简单的API调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。 创建集群--创建工作负载/创建ingr…

C++基础知识(二)之数据类型、指针和内存、数组

六、C数据类型 1、sizeof运算符 sizeof运算符用于求数据类型或变量占用的内存空间。 用于数据类型:sizeof(数据类型) 用于变量:sizeof(变量名) 或 sizeof 变量名 注意: 在32位和64位操作系统中,同一种数据类型占用的内存空间…

LLMs之DeepSeek r1:Logic-RL的简介、安装和使用方法、案例应用之详细攻略

LLMs之DeepSeek r1:Logic-RL的简介、安装和使用方法、案例应用之详细攻略 目录 Logic-RL的简介 1、Logic-RL的特点 2、性能 Logic-RL 的安装和使用方法 1、安装 2、使用方法 数据准备 基础模型 指令模型 训练执行 实现细节 Logic-RL的案例应用 Logic-RL…

【神经网络框架】非局部神经网络

一、非局部操作的数学定义与理论框架 1.1 非局部操作的通用公式 非局部操作(Non-local Operation)是该研究的核心创新点,其数学定义源自经典计算机视觉中的非局部均值算法(Non-local Means)。在深度神经网络中,非局部操作被形式化为: 其中: 1.2 与传统操作的对比分析…

22.[前端开发]Day22-CSS单位-CSS预处理器-移动端视口

1 CSS常见单位详解 CSS中的单位 CSS中的绝对单位( Absolute length units ) CSS中的相对单位( Relative length units ) 1.em: 相对自己的font-size;如果自己没有设置, 那么会继承父元素的font-size 2.如果font-size中…

URL调用本地Ollama模型

curl http://192.168.2.247:11434/api/generate -d "{ \"model\": \"deepseek-r1:8b\", \"prompt\": \"Who r u?\" ,\"stream\":false}" 连续对话

【python】matplotlib(animation)

文章目录 1、matplotlib.animation1.1、FuncAnimation1.2、修改 matplotlib 背景 2、matplotlib imageio2.1、折线图2.2、条形图2.3、散点图 3、参考 1、matplotlib.animation 1.1、FuncAnimation matplotlib.animation.FuncAnimation 是 Matplotlib 库中用于创建动画的一个…

ubuntu24.04安装布置ros

最近换电脑布置机器人环境,下了24.04,但是网上的都不太合适,于是自己试着布置好了,留作有需要的人一起看看。 文章目录 目录 前言 一、确认 ROS 发行版名称 二、检查你的 Ubuntu 版本 三、安装正确的 ROS 发行版 四、对于Ubuntu24…

接入 deepseek 实现AI智能问诊

1. 准备工作 注册 DeepSeek 账号 前往 DeepSeek 官网 注册账号并获取 API Key。 创建 UniApp 项目 使用 HBuilderX 创建一个新的 UniApp 项目(选择 Vue3 或 Vue2 模板)。 安装依赖 如果需要在 UniApp 中使用 HTTP 请求,推荐使用 uni.requ…

网络爬虫js逆向之异步栈跟栈案例

【注意!!!】 前言: 1. 本章主要讲解js逆向之异步栈跟栈的知识(通过单步执行调试) 2. 使用关键字搜定位加密入口 3. 本专栏通过多篇文章【文字案例】的形式系统化进行描述 4. 本文章全文进行了脱敏处理 5. 详…

机器学习 - 需要了解的条件概率、高斯分布、似然函数

似然函数是连接数据与参数的桥梁,通过“数据反推参数”的逆向思维,成为统计推断的核心工具。理解它的关键在于区分“参数固定时数据的概率”与“数据固定时参数的合理性”,这种视角转换是掌握现代统计学和机器学习的基础。 一、在学习似然函…

【Spring】什么是Spring?

什么是Spring? Spring是一个开源的轻量级框架,是为了简化企业级开发而设计的。我们通常讲的Spring一般指的是Spring Framework。Spring的核心是控制反转(IoC-Inversion of Control)和面向切面编程(AOP-Aspect-Oriented Programming)。这些功能使得开发者…

[笔记] 汇编杂记(持续更新)

文章目录 前言举例解释函数的序言函数的调用栈数据的传递 总结 前言 举例解释 // Type your code here, or load an example. int square(int num) {return num * num; }int sub(int num1, int num2) {return num1 - num2; }int add(int num1, int num2) {return num1 num2;…

开放式TCP/IP通信

一、1200和1200之间的开放式TCP/IP通讯 第一步:组态1214CPU,勾选时钟存储器 第二步:防护与安全里面连接机制勾选允许PUT/GET访问 第三步:添加PLC 第四步:点击网络试图,选中网口,把两个PLC连接起…

(原创,可用)SSH实现内外网安全穿透(安全不怕防火墙)

目前有A、B终端和一台服务器,A、B机器不能直接访问,服务器不能直接访问A、B终端但是A、B终端可以访问服务器,这个场景很像我们有一台电脑在单位内网,外机器想访问内网系统,可能大家目前想到的就是frp之类穿透工具&…

第二节 docker基础之---镜像构建及挂载

查看当前镜像: [rootdocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE [rootdocker ~]#很明显docker是咱们新搭建的所以目前还没有镜像 1,搜索镜像: [rootdocker ~]# docker search centos 搜索镜像并过滤是官…

LLM学习笔记1——本地部署Meta-Llama-3.2-1B大模型

系列文章目录 参考博客 参考博客 文章目录 系列文章目录前言与调用一、部署要求二、实现步骤0.深度学习环境错误1,验证pytorch版本时提示以下问题:错误2,验证pytorch版本时提示以下问题:错误3,有时候还会提示你有一些…