读书笔记——CAN IIC 协议的基础概念

文章介绍了CAN和IIC两种通信协议。CAN是控制器局域网,适合车辆总线,具有高可靠性和高速特点,采用差分信号传输,仲裁机制由高位到低位进行。IIC是同步半双工串行协议,依赖时钟线,数据传输基于线与逻辑的仲裁机制,先到先得。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

CAN和IIC是常见的通讯协议。笔者最近观看了B站“爱上半导体”相关内容,总结其大意的同时也综合了其他一些来源的资料希望能说得更清楚一些。

原视频链接:

CAN 趋近于完美的通讯 CAN总线!4分钟看懂!_哔哩哔哩_bilibili

IIC (I2C) 4分钟看懂!I2C通讯协议 最简单的总线通讯!_哔哩哔哩_bilibili

一、CAN

CAN全名是controller area network,即控制器局域网。它的特点是异步(不需要时钟线)半双工(同一时间要么发要么收,不能同时收发)串行(同时只能传一位二进制位到接收机)通讯,具有高可靠性和高速的优点,多用于车辆的总线。

CAN的压差0v表示逻辑1,压差2v表示逻辑0,两根线CANh(high,高压)和CANl(low,低压)输出差分信号,采用差分双绞线连接。下图是其数据帧的结构,属于总线协议里面比较复杂的。

图中蓝线引出的是识别码的排队问题,在CAN中是通过仲裁来进行的,原视频讲的不是很详细。CAN仲裁机制是由高位到低位,对CanID逐位(Bit)进行AND(与)运算,当第一次出现比较结果与参与比较的任意一方Bit位不一致时,谁与比较结果一致,谁获胜

来自 <CAN总线仲裁原理 - 知乎>

(笔者注:0胜1,因为0与1 = 0;也即谁的ID值小谁获胜)。

二、IIC

1.基本概念

I2C指的是inter-integrated circuit,是同步(需要时钟线)半双工串行 。

同步通讯的两根线在传送一组数据时波形往往这样:

 时钟信号每震一下(低电平变到高电平)代表传一个二进制信息位的“节拍”(姑且这样理解吧),此时数据线低电平表示0,高电平表示1。

IIC的数据帧结构如下,理解上比较容易。

 

2.仲裁

I2C也有仲裁机制,笔者理解为FCFS(先到先得,first come first served)制,包含线与逻辑。

(此处开始为引用「小小verifier」的原创文章)仲裁过程:当主设备A准备占用I2C时,需要在SCL为高时,SDA先拉高,再拉低做出下降沿满足一个启动条件。当主设备A将SDA拉高后,需要检查SDA的电平:

如果此时SDA电平为高,说明主设备可以占用总线,然后主设备A会将SDA拉低,一次满足启动条件,开始传输;如果此时SDA电平为低,说明总线已经被其他设备占用,主设备A会退出。

为什么SDA为低,就是被其他设备占用了呢?

因为线与逻辑的存在。只要总线上有其他的设备将SDA置为0,线与后,SDA线的电平为0(笔者注:因为0与0或者1都 = 0)。主设备A检查SDA线的电平时,会发现为低电平。所以仲裁时,哪个设备更早地将SDA线拉低,谁就抢占了优先权(那不就是FCFS吗)。

————————————————

版权声明:本文为CSDN博主「小小verifier」的原创文章(此处有删改),遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/SummerXRT/article/details/118683350

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值