CAN总线介绍(一 ~ 三)---CAN基础知识

21 篇文章 221 订阅
订阅专栏

参考资料:《CAN入门书》

一、 CAN 总线概念

1.1 什么是CAN总线

CAN 是 Controller Area Network 的缩写,是 ISO 国际标准化的串行通信协议。
通俗来讲,CAN总线就是一种传输数据的线,用于在不同的ECU之间传输数据。

CAN总线有两个ISO国际标准:ISO11898 和 ISO11519
ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米。
ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米。

Tips: <总线的传输速率>:又称为总线的通信速率,指的是位速率。或称为比特率(和波特率不是一回事),表示的是:单位时间内,通信线路上传输的二进制位的数量,其基本单位是 bps 或者 b/s (bit per second)。


1.2 CAN的拓扑结构

下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。
在这里插入图片描述如图中所示,CAN总线包括CAN_H 和 CAN_L 两根线。节点通过CAN控制器和CAN收发器连接到CAN总线上。

Tips :通常来讲,ECU内部集成了CAN控制器和CAN收发器,但是也有没集成的,需要自己外加。


1.3 CAN信号表示

在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。CAN总线上的电位差分为显性电平和隐性电平。其中显性电平为逻辑0,隐性电平为逻辑1。
ISO11898标准(125kbps ~ 1Mbps)和ISO11519标准(10kbps ~ 125kbps)中CAN信号的表示分别如下所示:
在这里插入图片描述

1.4 CAN信号传输

发送过程:
CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。
在这里插入图片描述接收过程:
CAN接收器将CAN_H 和 CAN_L 线上传来的差分电平转换为逻辑电平输出到CAN控制器,CAN控制器再把该逻辑电平转化为相应的信号发送到CPU上。
在这里插入图片描述概括的讲:
发送方通过使总线电平发生变化,将其信息传递到CAN总线上。
接收方通过监听总线电平,将总线上的消息读入自己的接收器。


二、CAN通信的特点

2.1 多主工作方式

所谓多主工作方式,指的是:总线上的所有节点没有主从之分,大家都处于平等的地位。
反应在数据传输上,即是:在总线空闲状态,任意节点都可以向总线上发送消息。

Tips: <总线空闲状态>:当总线上的上出现连续的11位隐性电平,那么总线就处于空闲状态。也就是说对于任意一个节点而言,只要它监听到总线上连续出现了11位隐性电平,那么该节点就会认为总线当前处于空闲状态,它就会立即向总线上发送自己的报文。
至于为什么连续出现11位隐性电平,就可以判定+总线处于空闲状态,这个问题可以结合CAN协议的帧结构来进行理解。

在多主工作方式下:

  1. 最先向总线发送消息的节点获得总线的发送权;
  2. 当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。

2.2 非破坏性位仲裁机制

在CAN协议中,所有的消息都以固定的帧格式发送。
当多个节点同时向总线发送消息时,对各个消息的标识符(即ID号)进行逐位仲裁,
如果某个节点发送的消息仲裁获胜,那么这个节点将获取总线的发送权,仲裁失败的节点则立即停止发送并转变为监听(接收)状态。

例如:Node_A和Node_B同时向总线发送各自的消息Msg_1和Msg_2,
那么对Msg_1的ID号ID_1和Msg_2的ID号ID_2进行逐位仲裁,
如果仲裁结果是:ID_1的优先级比ID_2高,那么Msg_1在仲裁中获胜,
于是发出Msg_1这条报文的节点Node_A就获得了总线的发送权。
同时,Msg_2在仲裁中失败,于是Node_B就转换到监听总线电平的状态。

这种仲裁机制既不会造成已发送数据的延迟,也不会破坏已经发送的数据,所以称为非破坏性仲裁机制。


2.3 系统的柔性

CAN总线上的节点没有“地址”的概念,因此在总线上增加节点时,不会对总线上已有节点的软硬件及应用层造成影响。


2.4 通信速度

在同一条CAN线上,所有节点的通信速度(位速率)必须相同,如果两条不同通信速度总线上的节点想要实现信息交互,必须通过网关。

例如:汽车上一般有两条CAN总线:500kbps的驱动系统CAN总线和125kbps的舒适系统CAN总线,如果驱动系统CAN总线上的发动机节点要把自己的转速信息发送给舒适系统CAN总线上的转速表节点,那么这两条总线必须通过网关相连。


2.5 数据传输方式

CAN总线可以实现一对一,一对多以及广播的数据传输方式,这依赖于验收滤波技术。验收滤波技术的实现机制参见本系列笔记的第二篇CAN协议帧结构中的介绍。


2.6 远程数据请求

某个节点Node_A可以通过发送“遥控帧”到总线上的方式,请求某个节点Node_B来发送由该遥控帧所指定的报文。


2.7 错误检测、错误通知、错误恢复功能

所有的节点都可以检测出错误(错误检测功能);
检测出错误的节点会立即通知总线上其它所有的节点(错误通知功能);
正在发送消息的节点,如果检测到错误,会立即停止当前的发送,并在同时不断地重复发送此消息,直到该消息发送成功为止(错误恢复功能)。


2.8 故障封闭

节点能够判断错误的类型,判断是暂时性的数据错误(如噪声干扰)还是持续性的数据错误(如节点内部故障),如果判断是严重的持续性错误,那么节点就会切断自己与总线的联系,从而避免影响总线上其他节点的正常工作。


三、CAN通信网络结构

3.1 OSI基本参照模型

实际上,CAN总线网络底层只采用了OSI基本参照模型中的数据链路层、传输层。而在CAN网络高层仅采用了OSI基本参照
在这里插入图片描述

3.2 CAN协议网络层次

在CAN协议中,ISO标准只对数据链路层和物理层做了规定。对于数据链路层和物理层的一部分,ISO11898和ISO11519-2的规定是相同,但是在物理层的PMD子层和MDI子层是不同的。

在这里插入图片描述在CAN总线,每一层网络中定义的事项如下:
**V**



本文学自:

https://blog.csdn.net/weixin_40528417/article/details/79476186

java can总线开发_开源CAN总线信号可编程台架
weixin_35762258的博客
02-28 1232
刚才开源了一款以前写的CAN信号可编程台架,很早以前我接触了CAN总线和一些相关的测试技术,随后写了这个台架,但是一直没开源,原因主要是写的太烂,达不到我开源的标准。后来我修修补补,虽然还是很烂,但是我开源的标准降低了啊,所以就开放了。再不写点车辆相关的东西我都要忘记自己是车辆工程专业毕业的了。https://github.com/TsingJyujing/CAN-panel​github.com...
jnaCan:Java 的 CAN 总线,使用 JNA 访问 Linux SocketCan API
06-02
大麻 Java 的 CAN 总线,使用 JNA 访问 Linux SocketCan API。 本软件为Alpha品质,请勿用于生产。 通过使用Java Native Access,无需编写本机代码即可访问SocketCan API。 这个项目是纯 Java 的(从技术上讲,JNA jar 包含一些小型现成的本机二进制库)。 该库目前仅支持原始罐头模式。 读取和写入调用将被阻塞。 但是,有套接字选项设置 SO_RCVTIMEO 值,以便读取超时。 包括 Netty 4.0 通道实现。 jnaCan 在 GNU LESSER GENERAL PUBLIC LICENSE Version 3 下获得许可,请参阅 LICENSE.txt jnaerator 开关 请注意,Linux C 头文件中定义的某些常量在您的平台上可能不同,因此生成的 Java 代码可能无法正常工作。 我已经在
CAN总线通信详解 (超详细配34张高清图)
艾格北峰嵌入式
01-13 8052
CAN 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km 时,CAN 仍可提供高达50Kbit/s 的数据传输速率。由于 CAN 总线具有很高的实时性能,现在,CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
CAN总线详解-理论知识部分
最新发布
w123456789ABCDEF的博客
08-14 3189
CAN总线详细介绍,包括CAN总线硬件电路、CAN总线帧格式、CAN总线位时序、CAN总线硬同步、CAN总线再同步、CAN总线先占先得和破坏性仲裁、CAN总线错误处理
CAN总线
puppyoo的博客
10-01 1039
CAN总线
一对多 多字节的can总线通信
09-18
基于当今最流行的stm32f103vet的can总线通信开发,可以自己用工业工程中。可以实现原大于8字节的准确传输,在超大数据传输时候能够确保数据的准确无误。希望对使用can总线的朋友有帮助。
汽车CAN总线CAN网络汽车网络CAN基础知识CAN总线通信详解资料合集.zip
04-30
汽车CAN总线CAN网络汽车网络CAN基础知识CAN总线通信详解资料合集 2008晶锐 ( Fabia )14_CAN 总线网络连接驱动和诊断电路图.pdf 2012款奔驰212远程信息处理控制器区域网络(CAN)的电路图.pdf CAN总线通信详解.pdf CAN...
CAN-bus现场总线基础教程【第1章】现场总线CAN-bus-CAN-bu数据链路层(3).pdf
10-29
CAN-bus现场总线技术是一种高效的串行通讯系统,主要用于汽车和一般的工业环境中的微控制器和设备之间的通讯。它支持分布式实时控制,具有高性能...通过理解这些基础知识,能够更好地设计和维护基于CAN-bus的通讯网络。
项目驱动CAN-bus现场总线基础教程
11-01
项目驱动CAN-bus现场总线基础教程,CAN-bus通信网络的完整实现来展现CAN-bus各方面知识。
CAN总线负载率计算代码-canbusload.c
10-11
`canbusload.c` 是一个用于计算CAN总线负载率的源代码文件,通常作为`can-utils`工具集的一部分。 `can-utils`是一个集合各种CAN工具的开源项目,提供了诸如`candump`、`cansend`、`canrouter`等实用程序,便于CAN...
CAN_BUS_Shield-master_优必选can总线舵机
09-11
CAN_BUS_Shield-master_优必选can总线舵机是一个专为驱动优必选公司生产的CAN总线舵机设计的项目。CAN总线(Controller Area Network)是一种串行通信协议,广泛应用于汽车、工业自动化、机器人等领域,因其高可靠性...
CAN总线简单的发送接收程序
06-09
基于CAN总线的简单发送和接收程序,由此程序可以了解CAN的基本工作原理。对初学者很有帮助,并且可以以此做为模板进行CAN总线收发的编写。
CAN总线第五章
11-18
CAN总线第五章,CAN总线第五章CAN总线第五章
java-socketcan
12-03
java开发can接口,再linux环境下编译的jar,直接添加到lib使用即可。
汽车安卓大屏导航CAN总线设置APP
06-21
汽车安卓大屏导航CAN总线设置,飞鸽导航,路畅导航,卡仕达导航可以使用
can报文总线节点设计
05-05
现场总线是一种工业数据总线,它主要解决现场的智能化仪表、控制器、协作机构等现场设备间的数字通讯以及这些现场设备和高级控制系统之间的信息传递问题.
java can总线开发_CAN错误分类
weixin_31974659的博客
02-28 2105
1.bit errorCAN总线上的节点在发送数据的同时也在检测总线上的电平。如果在仲裁域之外,所发送的数据与节点监测到的数据不一致,则CAN总线产生了一次位错误。但是,如果在发送ACK段或者被动错误标志时,节点检测到总线上电平与发送值不一致,并不判定产生了位错误。2.stuff error在CAN总线传输中,报文的侦起始、仲裁域、控制域、数据域以及CRC校验部分只要连续出现五个相同的位就需要额外...
can总线用java怎么解析_CAN报文DBC解析的编程方法说明
weixin_30249953的博客
03-05 3205
主要内容1. 概述2. 我们要做一件什么事情在软件框架中的位置DBC介绍3. 我们怎么去做这件事情数据存储输入输出1概述前面介绍过PEAK的所有CAN卡都有提供如下图所示这些二次开发包,常适合于做二次开发。PCAN-Basic API除了DLL,也提供了C#, C++/MFC, C++/CLR,C++_Builder, Delphi, VB.NET, Java, and Python等的例程,这...
java的springboot支持tcp接口_CAN总线也支持SOA 可披上IP“外衣”的CAN XL
weixin_29484843的博客
12-22 812
未来车载网络将主要以Ethernet和CAN总线组合呈现。虽然Ethernet在ADAS领域以基于服务的IP通信和SOME/IP技术占据主导地位,但基于信号的CAN网络仍将在动力和底盘系统中长期存在。第CAN总线CAN XL将“连接”这两种本质不同的总线系统,并在协同通信方面起到决定性作用。CAN XL究竟能否支持基于服务的通信?若可以,其可能实现基于服务通信的途径有哪些?CAN X...
写文章

热门文章

  • 汽车电子(三)--- 车机TBOX 介绍 98022
  • PCI (一) 之 概述与接口定义 17783
  • 汽车电子(一)--- 整车CAN网络介绍 16377
  • 汽车电子(四)--- 车机电源介绍 16238
  • Ubuntu22.04安装及更换源 13769

分类专栏

  • 鸿蒙OH-v5.0源码分析之 Uboot+Kernel 部分 付费 32篇
  • QNX+Android虚拟化方案 付费 123篇
  • SemiDrive源码分析 付费 64篇
  • OpenHarmony OS 2.0开机流程代码分析 付费 20篇
  • Linux0.11代码分析 付费 11篇
  • 音频.视频.图像 付费 60篇
  • FFmpeg视频编码项目 2篇
  • FFmpeg视频解码项目 - 音视频播放器 7篇
  • Android音视频编解码项目 4篇
  • 音视频数据处理 18篇
  • 数字图像处理 9篇
  • 流媒体 2篇
  • FFmpeg 31篇
  • 深度学习之图像识别 11篇
  • 数据结构与算法 82篇
  • LeetCode算法刷题 25篇
  • 傅里叶变换 10篇
  • 10篇
  • 二叉树 13篇
  • 排序 5篇
  • 查找 7篇
  • 递归 13篇
  • Qualcomm经验总结 79篇
  • Wifi & P2P 6篇
  • Android开机流程 6篇
  • Android Camera 30篇
  • Android Sensor 10篇
  • Android Linux 内存及性能优化 11篇
  • Android HIDL 5篇
  • Android Audio 35篇
  • Android Media 29篇
  • Android USB 16篇
  • Linux内核 97篇
  • Android 输入子系统 7篇
  • Android WBG 7篇
  • Android驱动 30篇
  • Android Java 15篇
  • 操作系统理论 2篇
  • 计算机操作系统 19篇
  • 进程及高并发 18篇
  • 乐理理论基础 16篇
  • 汽车电子 21篇
  • 编程语言
  • Julia 开发 2篇
  • Python总结 60篇
  • PHP网站开发 28篇
  • 汇编语言 1篇
  • C/C++ 18篇
  • Ubuntu 19篇
  • 杂七杂八 11篇

最新评论

  • 【SemiDrive源码分析】【X9芯片启动流程】25 - MailBox 核间通信机制介绍(代码分析篇)之 RPMSG-IPCC RTOS & QNX篇

    weixin_43117451: hi,想问下芯驰系列剩下几篇没有上传的文档在哪里可以阅读?

  • 【QNX+Android虚拟化方案】122 - QNX 侧开启 SSH 调试log

    "小夜猫&小懒虫&小财迷"的男人: 支持的呀,现在远程登录都是选用ssh,基本不用telnet,主要考虑安全性 不过要配置好网络ip ssh 通过帐号密码就可以登录了

  • 【QNX+Android虚拟化方案】122 - QNX 侧开启 SSH 调试log

    weixin_49006650: 新加个login账户和登录密码,高通源生不就支持ssh登录qnx吗表情包

  • 【QNX+Android虚拟化方案】41 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析

    S景S: 多谢,我在捋捋

  • 【QNX+Android虚拟化方案】41 - HQX Display(OpenWFD)qcdisplaycfg_ADP_STAR_LA.xml 配置文件解析

    "小夜猫&小懒虫&小财迷"的男人: 类似,openwfd是总服务商,其他的client都是代理, 别人的进程要显示什么,就会先问代理,我们支持哪些屏(这些屏就是挂载这个client的屏),然后选择要显示的屏,送数据就好了

最新文章

  • 【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空间进程 init 进程 第一阶段初始化过程 源码分析
  • 【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】010 - 二号内核线程 kthreadd线程 工作流程分析
  • 【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】009 - 一号内核线程 kernel_init线程 之 do_basic_setup() 函数源码分析
2024
09月 12篇
08月 23篇
07月 3篇
06月 14篇
2023年156篇
2022年80篇
2021年39篇
2020年257篇
2019年296篇
2018年3篇
2015年117篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家山西动物玻璃钢雕塑销售厂家合肥酒店玻璃钢雕塑设计消防员玻璃钢雕塑厂宁夏玻璃钢卡通雕塑定制亳州广场玻璃钢雕塑生产厂家山东玻璃钢动物雕塑厂家广州现代人物玻璃钢雕塑遂宁玻璃钢花盆批发玻璃钢新娘雕塑代理商吉林景区玻璃钢雕塑成都玻璃钢雕塑有哪些哪里有玻璃钢雕塑制作方法菏泽定做玻璃钢雕塑厂报价表温州玻璃钢仿铜雕塑定制陕西镜面玻璃钢人物雕塑商丘玻璃钢人物校园玻璃钢雕塑玻璃钢仿真驴雕塑淮南景区玻璃钢雕塑多少钱山西步行街玻璃钢雕塑定制阿里玻璃钢卡通雕塑价格玻璃钢花盆有哪些原因苏州玻璃钢雕塑摆件价钱玻璃钢雕塑青蛙白城玻璃钢雕塑工程电话多少河南仿铜玻璃钢雕塑销售电话天水景区玻璃钢雕塑多少钱新余校园玻璃钢雕塑玻璃钢雕塑计算公式上海特色商场美陈订购漯河公园不锈钢玻璃钢景观雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化