CAN(江科大CAN学习)

news2024/11/14 13:26:03

1.CAN

CAN简介 

CAN 总线( Controller Area Network Bus )控制器局域网总线
         CAN总线构建的是一种局域网网络,每个挂载在can总线上的设备,都可以利用这个局域网去发送自己的信息,也可以接受局域网的各种消息,每个设备都是平等的,都在共享这个局域网的通信资源,这就是CAN总线的设计理念。
CAN 总线是由 BOSCH公司开发的一种简洁易用、传输速度快、易扩展、可靠性高的串行通   信总线,广泛应用于汽车、嵌入式、工业控制等领域
CAN总线特征:
        √  两根通信线( CAN_H CAN_L ),线路少,无需共地(因为是差分信号,IIC其实是3根线,要共地)
        √  差分信号通信 抗干扰能力强
        √  高速CAN ISO11898 ): 125k~1Mbps, <40m
        √  低速CAN ISO11519 ): 10k~125kbps, <1km
        √  异步,无需时钟线 ,通信速率由设备各自约定
        √  半双工,可挂载多设备 ,多设备同时发送数据时通过仲裁判断先后顺序
        √  11位 /29 位报文 ID ,用于区分消息功能,同时决定优先级
        √  可配置1~8 字节的有效载荷
        √  可实现 广播式 一个设备发送,其他设备都能收到,接收方根据报文ID决定用不用这个数据 )和 请求式 两种传输方式( 数据发送方不会主动广播自己的数据,只有接到接收方发出的请求,发送方才会发数据,这样一个数据的传输就需要先请求再接收两个过程
        √  应答、CRC 校验、位填充、位同步、错误处理等特性

主流通信协议对比

名称

引脚

双工

时钟

电平

设备

应用场景

UART

TXRX

全双工

异步

单端

点对点

两个设备互相通信

I2C

SCLSDA

半双工

同步

单端

多设备

一个主控外挂多个模块

SPI

SCKMOSIMISOSS

全双工

同步

单端

多设备

一个主控外挂多个模块(高速)

CAN

    CAN_HCAN_L

半双工

异步

差分

多设备

多个主控互相通信

CAN硬件电路

每个设备通过 CAN 收发器挂载在 CAN 总线网络上
CAN 控制器引出的 TX RX CAN 收发器 相连 (无需交叉) CAN 收发器引出的 CAN_H CAN_L 分别与总线的 CAN_H CAN_L 相连
高速 CAN 使用闭环网络, CAN_H CAN_L 两端添加 120Ω的终端电阻( 两个电阻的作用,一个是防止回波反射,尤其是高频信号,远距离传输的场景。如果不加电阻,信号波形会在线路终端反射,进而影响干扰原始信号。第二个作用是没有设备操作时,将两根差分线的电压收紧,使其电压一致。 )
低速 CAN 使用开环网络, CAN_H CAN_L 其中一端添加 2.2kΩ 的终端电阻

CAN电平标准

CAN总线采用差分信号,即两线电压差(VCAN_H-VCAN_L)传输数据位
高速CAN规定:
        电压差为0V
时表示逻辑1(隐性电平)
        电压差为
2V时表示逻辑0(显性电平)
低速CAN规定:
        电压差为-1.5V
时表示逻辑1(隐性电平)
        电压差为3V时表示逻辑0(显性电平)

两线收紧,没有电压差,是默认状态,所以称为隐性。两线张开产生电压差,是需要设备干预的状态,所以称为显性。
因为电路约定成俗的习惯,默认状态高电平1,所以默认的隐性电瓶就和逻辑1绑定,显性和0绑定 显性跟隐性同时出现时,总线显示出显性电瓶状态。

高速CAN加闭合的终端电阻,有利于总线快速回归到隐性电平,也就是相等的电平,回归隐形电瓶快,传输速度就快,低速CAN总线回归隐性电瓶慢,传输速度自然慢

 两根线的隐性电平不相等,如果是闭合回路的话,就会强制拉紧两根线上的电平使他们相等,这与低速can的设计理念两根线默认隐形电平不相同相违背。 

CAN收发器 – TJA1050(高速CAN

V\,ref和S不用管

如果TXD给1,则不会对总线进行任何操作,总线呈现默认的隐性电瓶1。如果TXD悬空,则默认也是给1。如果TXD给零,则驱动器会把CAN_H拉高,CAN_L拉低,输出显性电瓶0。如果t xd一直给零出错了,则显性超时,收发器为主动释放CAN总线

2.CAN总线帧格式

1.数据帧

SOF Start of Frame ):帧起始,表示后面一段波形为传输的数据位
ID Identify ):标识符,区分功能,同时决定优先级
RTR Remote Transmission Request ):远程请求位, 区分数据帧和遥控帧
IDE Identifier Extension ):扩展标志位,区分标准格式和扩展格式
SRR Substitute Remote Request ):替代 RTR,协议升级时留下的无意义位(为了保证仲
            裁优先级原则,这一位必须给隐性1)
r0/r1 Reserve ):保留位,为后续协议升级留下空间
DLC Data Length Code ):数据长度,指示数据段有几个字节
Data :数据段的 1~8 个字节有效数据
CRC Cyclic Redundancy Check ):循环冗余校验,校验数据是否正确
ACK Acknowledgement ):应答位,判断数据有没有被接收方接收
CRC/ACK 界定符:为应答位前后发送方和接收方释放总线留下时间
EOF End of Frame ):帧结束,表示数据位已经传输完毕

2.遥控帧 

遥控帧无数据段,RTR为隐性电平1,其他部分与数据帧相同

相当于就是先遥控帧之后,再数据帧。

3.错误帧

总线上所有设备都会监督总线的数据,一旦发现“位错误”或“填充错误”或“CRC错误”或“格式错误”或“应答错误” ,这些设备便会发出错误帧来破坏数据,同时终止当前的发送设备

4.过载帧

 •当接收方收到大量数据而无法处理时,其可以发出过载帧,延缓发送方的数据发送,以平衡总线负载,避免数据丢失

5.帧间隔

将数据帧和远程帧与前面的帧分离开

6.位填充

位填充规则:发送方每发送5个相同电平后,自动追加一个相反电平的填充位,接收方检测到填充位时,会自动移除填充位,恢复原始数据

位填充作用
√ 增加波形的定时信息,利于接收方执行“再同步”,防止波形长时间无变化,导致接收方不能精确掌握数据采样时机
√ 将正常数据流与“错误帧”和“过载帧”区分开,标志“错误帧”和“过载帧”的特异性
√ 保持CAN总线在发送正常数据流时的活跃状态,防止被误认为总线空闲(CAN规定,当连续11个
   隐性1后,默认为空闲)

3.波形实例

标准数据帧,报文ID0x555,数据长度1字节,数据内容为0xAA

标准数据帧,报文ID0x666,数据长度2字节,数据内容为0x12, 0x34

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

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

相关文章

Unity中保存数据的方法

一、概述 Unity中可用于持久化的方式有&#xff1a; 1&#xff09;通过ScriptableObject在可编辑模式下保存数据 2&#xff09;通过excel、json等文件实现数据的可持久化 二、ScriptableObject的使用 1、使用背景 假如需要制作子弹预设体&#xff0c;每个子弹上有speed速…

windows 10安装GPU版本pytorch

一、下载Anaconda 1.由于anaconda的服务器都在国外&#xff0c;推荐大家使用镜像源进行下载&#xff0c;清华的conda镜像链接&#xff1a;​​​​​​ anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirrora 2.使用命令新建一个虚拟环境&#…

一个简单的 NLP 神经网络

如何搭建一个简单的 NLP 神经网络&#xff1f; 假设我们一个变量名列表&#xff0c;根据这个变量名列表&#xff0c;学习其中的特征并生成新的变量名。训练一个模型用于预测下一个字符并生成新的变量名。使用一个单层的神经网络实现&#xff0c;假设我们的变量名只能用英文字母…

Python爬虫02

xml 和html 区别 jsonpath模块 场景 多层嵌套的复杂字典直接提取数据 安装 pip install jsonpath使用 from jsonpath import jsonpathret jsonpath(dict, jaonpath语法规则字符串)语法规则 eg: lxml模块&xpath语法 谷歌浏览器 xpath helper 插件 作用对当前页面…

d3dcompiler_47.dll缺失的可能原因多种多样,那么d3dcompiler_47.dll缺失怎么修复

在数字世界的深处&#xff0c;d3dcompiler_47.dll文件扮演着至关重要的角色&#xff0c;它是Direct3D编译器的一部分&#xff0c;负责处理图形渲染和游戏运行中的关键任务。然而&#xff0c;当用户启动某个程序或游戏时&#xff0c;屏幕上突然弹出的错误提示“d3dcompiler_47.d…

DevOps学习笔记

记录以下DevOps学习笔记&#xff0c;这里是笔记的入口汇总&#xff0c;可以直观的看到所有的笔记&#xff0c;还没有入口的部分&#xff0c;在下正在努力编写中。 gitlab jenkins docker docker安装 artifactory 1.artifactory安装 2.artifactory使用 计算机网络 1.dn…

世界上最快的端口扫描器masscan,如何使用?如何进行分布式使用部署?如何集成到web系统?

世界上最快的端口扫描器masscan,如何使用?如何进行分布式使用部署?如何集成到web系统? Masscan是一个高速的端口扫描工具,其主要功能和特点包括: 高速扫描:Masscan采用异步扫描技术,能够以非常快的速度扫描大量的主机和端口。 支持大规模扫描:Masscan可以同时扫描数十…

获得SSH秘钥和SSL环境的可见性和控制权

未经管理的密钥和证书如何损害分层安全防御系统 多年来&#xff0c;由于技术的不断发展和演变&#xff0c;网络威胁和安全漏洞也在不断变化。企业大多都在精心研究各种解决方案和战略&#xff0c;以加强其安全基础设施。但是&#xff0c;安全问题是没有灵丹妙药的。 目前&…

自动化工程案例01:8工位插针装配机01

机器主要作用是对充电枪中的插头进行加工&#xff0c;主要实现对插头进行压橡胶帽和安装密封圈。主要对两种不同的工件进行装配 旋转盘工位&#xff1a; 控制旋转盘每次旋转角度是2个气动夹爪之间的角度。 1.旋转盘共有10个气动夹爪和10个安装密封圈辅助固定工位。 2.通过接…

谷器数据产品入选《沈阳市工业领域大规模设备更新供给设备清单》

近日&#xff0c;沈阳市举行了工业领域大规模设备更新产需对接暨制造业新型技术改造城市试点启动大会&#xff0c;旨在促进制造业企业扩大需求、拓展市场、抢抓订单&#xff0c;推动制造业高端化、智能化、绿色化发展。 会上&#xff0c;沈阳市工信局首次对外发布了《沈阳市工…

43款最新泛微Ecology9精品应用(一键导入,轻松上手)

泛微E9精品应用建模——高效管理从这里开始,支持二次开发 简介 在现代企业管理中&#xff0c;系统化、标准化的流程管理已成为各类企业提升竞争力的必经之路。为了帮助企业快速搭建并优化业务流程&#xff0c;我们推出了泛微E9的精品应用建模Demo。这款Demo展示了从业务需求…

甜羊浏览器:抖店多店铺管理与自动回复的最佳解决方案

随着短视频平台的蓬勃发展&#xff0c;抖音旗下的电商平台——抖店&#xff0c;已成为许多商家的重要销售渠道。然而&#xff0c;对于拥有多个抖店店铺的商家而言&#xff0c;如何高效管理这些店铺以及处理大量的客户咨询&#xff0c;成为了亟待解决的问题。此时&#xff0c;甜…

audiocraft - 免费文本转音乐、AI音乐生成、AI音乐创作工具,Facebook开源,本地一键整合包下载

AudioCraft 是一个由Facebook Research开发的PyTorch库&#xff0c;专注于深度学习在音频生成领域的研究。这个强大的工具包集成了两个最新的AI音频生成模型&#xff1a;AudioGen和MusicGen&#xff0c;能够产生高质量的声音和音乐。 今天的一键包也包含了 AudioGen 和 MusicG…

x264 编码器 AArch64汇编系列:quant 量化相关汇编函数

quant x264_quant_init函数中初始化时指向不同的具体实现: 以4x4块量化为例 c 语言版本实现 4x4 块量化:quant_4x4#define QUANT_ONE( coef, mf, f ) \

SprinBoot+Vue校园活动报名微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍&#xff1a;CSDN认证博客专家&#xff0c;CSDN平…

c# checkbox的text文字放到右边

checkbox的text文字放到右边 实现方法如下图 特此记录 anlog 2024年9月2日

【Python学习手册(第四版)】学习笔记23-模块包

个人总结难免疏漏&#xff0c;请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 本文主要介绍模块包&#xff0c;介绍了包导入&#xff08;基础、__init__.py包文件&#xff09;、包绝对导入&#xff08;import string/from dr1 import xxx&…

绿色物流:TMS在节能减排中的角色

绿色物流&#xff1a;TMS在节能减排中的角色 随着全球气候变化的严峻挑战&#xff0c;节能减排已成为各行各业不可回避的议题。物流行业作为连接生产与消费的重要桥梁&#xff0c;其碳排放量不容忽视。在追求经济效益的同时&#xff0c;如何实现绿色、可持续的物流发展&#x…

AI真“卷出天际”!我国发布全球首个月球专业大模型;0代码可做游戏,谷歌发布世界首个AI游戏引擎|AI日报

文章推荐 OpenAI“草莓项目”最快今年秋季发布&#xff01;苹果将于9月10号推出首款AI iPhone&#xff5c;AI日报 吴恩达辞任Landing AI CEO&#xff0c;专注AI投资&#xff1f;数学家斯蒂芬预言哲学家引领AI未来&#xff5c;AI日报 今日热点 中国科学院地球化学研究所与阿…

不到一元!新手用ToDesk云电脑体验《黑神话:悟空》

游戏小白们&#xff0c; 你们 是不是也眼馋《黑神话悟空》那炫酷的画面和刺激的战斗&#xff0c;但一想到要升级电脑配置就头疼&#xff1f;别怕&#xff0c; 小埋 有个超赞的秘籍要分享给你们——ToDesk云电脑&#xff0c;让你不到一块钱就能尝鲜&#xff01; ToDesk云电脑&am…