IIC 通信协议

IIC 通信协议IIC通信协议I2C(IIC,Inter-IntegratedCircuit),数据线SDA(data)和时钟SCL(clock)构成的串行总线,双向传送。高速IIC总线一般可达400kbps以上。IIC是半双工通信方式。时序图主机:起始信号—–>第一位——>第二位———>……..——–>第八位———>等待应答信号——->停止信号大致的一个数据传输流程是:主机向SDA线上发送一个起始信号,表示有信号进行传输,此时所有连接到IIC总线

大家好,又见面了,我是你们的朋友全栈君。

IIC 通信协议

I2C(IIC,Inter-Integrated Circuit),数据线SDA(data)和时钟SCL(clock)构成的串行总线,双向传送。

高速IIC总线一般可达400kbps以上。

IIC是半双工通信方式。

时序图

这里写图片描述

主机:起始信号—–>第一位——>第二位———> …….. ——–>第八位———> 等待应答信号——->停止信号

大致的一个数据传输流程是:主机向SDA线上发送一个起始信号,表示有信号进行传输,此时所有连接到IIC总线上的芯片都处于接收状态,接下来,主机发送想要与其进行数据传输的从机地址信号,所有的从机都会接收到该地址信号并和自己固有的地址信号进行匹配,当配对成功时,接下来就在时钟信号的带动下进行数据传输,数据的传输是按照每8位一个单元进行数据的传输。每一位的传输过程中,在SCL高电平期间,一定要保证SDA数值的稳定,否则会出现出错的情况,SDA数值的改变发生在SCL的低电平期间。最终8位全部传输完毕,从机产生一个应答信号给主机,主机在接收到该应答信号后决定接下来是发送一组新的数据还是终止发送。

时序分析

空闲状态

SDA和SCL同时为高电平时,总线处于空闲状态

起始信号与停止信号

起始信号:SCL为高电平时,SDA电平发生高到低的跳变
停止信号:SCL为高电平时,SDA电平发生低到高的跳变

这里写图片描述

应答信号

发送器每发送完一个字节(8个脉冲),在第9个脉冲间释放总线,接收器返回一个ACK信号,协议规定,低电平为有效应答,高电平为无效应答。

这里写图片描述

数据有效性

时钟信号为高电平期间,数据必须保持稳定,时钟信号低电平期间,数据线上的电平才允许变化。

也就是说,数据在时钟信号到来前必须准备好,并保持到时钟信号的下降沿之后。

这里写图片描述

数据传输

I2C为同步传输,时钟控制数据位的传输,边沿触发。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131293.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • win10闲置服务如何关闭_任务管理器中服务主机进程有什么用

    win10闲置服务如何关闭_任务管理器中服务主机进程有什么用在使用Windows10系统电脑过程中,一位用户打开任务管理器时发现一些空闲进程会占用比较多的CPU,因此想知道能否将它关闭掉。为此,小编整理了关闭方法,有需要的用户,请来看看win10系统空闲进程占用cpu怎么关闭吧。windows10系统使用过程中,会默认运行很多进程,但有许多是空闲进程,且会占用很多空间,因此win10系统空闲进程占用cpu多最好的解决方法就是关闭空闲进程,如何关闭空闲进程呢…

    2022年10月20日
  • mysql基本总结

    mysql基本总结

  • 体验国产Linux系统,开局就翻车了…

    体验国产Linux系统,开局就翻车了…本文转载自差评,作者差评君可能你们之前在网上看到过别人对Linux操作系统的分析,也在新闻里见过有关国产Linux操作系统的报道。那么你们肯定也见过这些帖子下面的评论区里,不断有人复述着“垃圾”、“难用”。被称作“最美操作系统”的深度OS▼我相信,很多小伙伴是想尝试一下国产Linux操作系统的,但碍于现实条件往往只能作罢。所以,Linux真的难用吗;假如说从明天开始,Windows和苹果MacOS突然不能用了,Linux…

  • 使用clion创建c项目_C语言模板

    使用clion创建c项目_C语言模板参考链接File->Setting->Editor->FileandCodeTemplates选择Files选项卡,选择要要添加模板代码的文件类型在输入框中写入模板代码(关于作者,时间什么的,参考链接有说)要注意的是,#开头的代码,要用#[[…]]包起来…

  • linux 文件重命名的命令是什么_linux移动文件并重命名

    linux 文件重命名的命令是什么_linux移动文件并重命名就目前所知道的知识,有两种方法。一、rmrm命令最简单,也更好掌握。形如:rmoldnamenewname二、renamerename命令更加健壮,不仅支持普通的文件重命名,而且还支持模式匹配。在开发速度上给我们带来了很大的便利。形如:renamefromnametonamefilenames相关例子可以参考有关文章–linux下rename用法(批量重命名)

  • 伴随矩阵_伴随矩阵通俗理解

    伴随矩阵_伴随矩阵通俗理解$A^$是矩阵$A$的伴随矩阵:$$a^_{ji}=A_{ij}$$其中,$A_{ij}$是$a_{ij}$的代数余子式.方阵的伴随矩阵可用于求逆:$$AA^=|A|I

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号