| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> CAN总线协议以及概念 -> 正文阅读 |
|
[嵌入式]CAN总线协议以及概念 |
1 CAN总线概念
CAN
总线有两个
ISO
国际标准:
ISO11898
和
ISO11519
。其中:
?
ISO11898?
定义了通信速率为
125 kbps
~
1
Mbps
的高速
CAN
通信标准,属于闭环总线,传输速率可达
1Mbps
,总线长度 ≤
40
米。
?
ISO11519
定义了通信速率为
10
~
125 kbps
的低速
CAN
通信标准,属于开环总线,传输速率为
40kbps
时,总线长度可达
1000
米。
?
在
CAN
总线上,利用
CAN_H
和
CAN_L
两根线上的电位差来表示
CAN
信号。
CAN
总线上的电位差分为
显性电平
和
隐性电平
。其中
显性电平
为逻辑
0
,
隐性电平
为逻辑
1
。
CAN
信号的表示分别如下所示:
??发送过程:CAN控制器将CPU传来的信号转换为逻辑电平(即逻辑0-显性电平或者逻辑1-隐性电平)。CAN发射器接收逻辑电平之后,再将其转换为差分电平输出到CAN总线上。
?
接收过程:
CAN
接收器将
CAN_H
和
CAN_L
线上传来的差分电平转换为逻辑电平输出到
CAN
控制器,
CAN
控制器再把该逻辑电平转化为相应的信号发送到
CPU
上。
? 2?CAN通信的特点 ? ?
多主工作方式:
?
所谓多主工作方式,指的是:总线上的所有节点没有主从之分,在总线空闲状态,任意节点都可以向总线上发送消息。
?
<
总线空闲状态
>
:当总线上的上出现连续的
11
位隐性电平,那么总线就处于空闲状态。也就是说对于任意一个节点而言,只要它监听到总线上连续出现了
11
位隐性电平,那么该节点就会认为总线当前处于空闲状态,它就会立即向总线上发送自己的报文。
?
在多主工作方式下:最先向总线发送消息的节点获得总线的发送权;当多个节点同时向总线发送消息时,所发送消息的优先权高的那个节点获得总线的发送权。例如:
Node_A
和
Node_B
同时向总线发送各自的消息
Msg_1
和
Msg_2
,如果
Msg_1
的优先级比
Msg_2
高,那么
Node_A
就获得了总线的发送权。
? ? ?非破坏性位仲裁机制: ? ??在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就转换到监听总线电平的状态。这种仲裁机制既不会造成已发送数据的延迟,也不会破坏已经发送的数据,所以称为非破坏性仲裁机制。
?
系统的柔性:
?
CAN
总线上的节点
没有“地址”的概念
,因此在总线上增加节点时,不会对总线上已有节点的软硬件及应用层造成影响。
?
通信速度:
?
通信速度在同一条
CAN
线上,所有节点的通信速度(位速率)必须相同,如果两条不同通信速度总线上的节点想要实现信息交互,必须通过网关。? 例如:汽车上一般有两条
CAN
总线:
500kbps
的驱动系统
CAN
总线和
125kbps
的舒适系统
CAN
总线,如果驱动系统
CAN
总线上的发动机节点要把自己的转速信息发送给舒适系统
CAN
总线上的转速表节点,那么这两条总线必须通过网关相连。
3??CAN通信网络结构 ???实际上,CAN总线网络底层只采用了OSI基本参照模型中的数据链路层、传输层。而在CAN网络高层仅采用了OSI基本参照模型的应用层 . ?4 CAN 报文协议 ?在CAN协议中,ISO标准只对数据链路层和物理层做了规定。对于数据链路层和物理层的一部分,ISO11898和ISO11519-2的规定是相同,但是在物理层的PMD子层和MDI子层是不同的。 ? 5?CAN总线的结构应用 ? ?? 高速CAN和低速CAN通信需要通过网关进行转换。 ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 1:32:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |