协议_CAN协议
物理层特征
信号传输原理:
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。

相关文章:
协议_CAN协议
物理层特征 信号传输原理: CAN控制器根据CAN_L和CAN_H上的电位差来判断总线电平,总线电平分为显性电平(CAN_H与CAN_L压差 2v)、隐性电平(CAN_H与CAN_L压差 0v),发送方通过总线电平的变化&am…...
nuxt3中报错: `setInterval` should not be used on the server.
那是因为在后端渲染没有浏览器的执行环境,一些浏览器环境提供的对象和方法都无法使用,代码判断下就行。 if (import.meta.client) {setInterval(() > {}, 1000) }Import meta Nuxt API...
leetcode_深度搜索和广度搜索 101. 对称二叉树
101. 对称二叉树 给你一个二叉树的根节点 root , 检查它是否轴对称思路: 1.判断根节点的左右子树是否为空, 若都为空则返回True2.根节点的左右子树其中之一为空或子树的根节点的值不同则返回False3.分别判断根节点左右子树是否相同, 判断时, 左边子树的左节点要对应…...
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 市场数据,艺术新闻类,游戏新闻类,虚拟…...
ZooKeeper 技术全解:概念、功能、文件系统与主从同步
引言 随着分布式系统变得越来越复杂,对协调服务的需求也在不断增长。ZooKeeper 作为一个由 Apache 维护的开源分布式协调服务框架,广泛用于 Hadoop 生态系统和其他需要协调的分布式环境中。这一系统旨在解决分布式应用中常见的挑战,如配置管…...
什么是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…...
AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA的CAN FD汽车总线数据交互系统设计
目录 前言 汽车总线以及发展趋势 汽车总线技术 汽车总线发展趋势 CAN FD总线国内外研究现状 2 系统方案及CAN FD协议分析 2.1系统控制方案设计 2.2 CAN FD总线帧结构分析 2.2.1数据帧分析 2.2.2远程帧分析 2.2.3过载帧分析 2.2.4错误帧分析 2.2.5帧间隔分析 2.3位…...
【神经网络框架】非局部神经网络
一、非局部操作的数学定义与理论框架 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中…...
深入讲解MyBatis
1. MyBatis 的背景和优势 背景:在 Java 开发中,传统的 JDBC 操作数据库代码繁琐,需要手动管理数据库连接、编写 SQL 语句、处理结果集等,开发效率低且容易出错。MyBatis 应运而生,它通过将 SQL 语句与 Java 代码分离&a…...
URL调用本地Ollama模型
curl http://192.168.2.247:11434/api/generate -d "{ \"model\": \"deepseek-r1:8b\", \"prompt\": \"Who r u?\" ,\"stream\":false}" 连续对话...
DeepSeek和ChatGPT的优劣或者区别(答案来DeepSeek和ChatGPT)
DeepSeek的答案 DeepSeek与ChatGPT作为当前两大主流AI模型,在架构设计、性能表现、应用场景等方面存在显著差异,以下从多个维度进行对比分析: 一、架构与训练效率 架构设计 DeepSeek:采用混合专家(MoE)框架…...
【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…...
Vue Router 导航方式详解:声明式导航与编程式导航
Vue Router 是 Vue.js 官方推荐的路由管理器,提供了两种主要的导航方式:声明式导航和编程式导航。这两种方式各有特点,适用于不同的场景。本文将详细介绍它们的用法、区别以及底层实现原理。 1. 声明式导航 1.1 什么是声明式导航?…...
【RabbitMQ重试】重试三次转入死信队列
以下是基于RabbitMQ死信队列实现消息重试三次后转存的技术方案: 方案设计要点 队列定义改造(核心参数配置) Bean public Queue auditQueue() {Map<String, Object> args new HashMap<>();args.put("x-dead-letter-exchan…...
接入 deepseek 实现AI智能问诊
1. 准备工作 注册 DeepSeek 账号 前往 DeepSeek 官网 注册账号并获取 API Key。 创建 UniApp 项目 使用 HBuilderX 创建一个新的 UniApp 项目(选择 Vue3 或 Vue2 模板)。 安装依赖 如果需要在 UniApp 中使用 HTTP 请求,推荐使用 uni.requ…...
网络爬虫js逆向之异步栈跟栈案例
【注意!!!】 前言: 1. 本章主要讲解js逆向之异步栈跟栈的知识(通过单步执行调试) 2. 使用关键字搜定位加密入口 3. 本专栏通过多篇文章【文字案例】的形式系统化进行描述 4. 本文章全文进行了脱敏处理 5. 详…...
机器学习 - 需要了解的条件概率、高斯分布、似然函数
似然函数是连接数据与参数的桥梁,通过“数据反推参数”的逆向思维,成为统计推断的核心工具。理解它的关键在于区分“参数固定时数据的概率”与“数据固定时参数的合理性”,这种视角转换是掌握现代统计学和机器学习的基础。 一、在学习似然函…...
string 与 wstring 的字符编码
测试代码: #include<stdio.h> #include<stdlib.h> #include<windows.h> #include <locale.h> #include <string> #include <iostream>// 函数用于计算UTF-8字符串中的字符数 int utf8_strlen(const char* str) {int len = 0;for (; *s…...
【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,有时候还会提示你有一些…...
