我是靠谱客的博主 知性钢笔,最近开发中收集的这篇文章主要介绍IIC通信协议原理总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一.主要特征
1.只要求两条总线线路 一条串行数据线 (SDA) 一条串行时钟线 (SCL)
2.每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 /从机关系软件设定地
址 主机可以作为主机发送器或主机接收器
3.它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁
防止数据被破坏
4.串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速
模式下可达 3.4Mbit/s
5.片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整
6.连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制

二.位传输
1.位传输:由于连接到 IIC 总线的器件有不同种类的工艺 (CMOS NMOS 双极性) 逻辑‘ 0 ’(低) 和 ‘1’(高 )的电平不是固定的 它由 VDD 的相关电平决定;每传输一个数据位就产生一个时钟脉冲

2.数据有效性:SDA 线上的数据必须在时钟线SCL的高电平周期保持稳定,数据线的高或低电平状态只有在 SCL 线的时钟信号是低电平时才能改变;
如图所示,时钟线SCL高电平时,数据线SDA必须保持稳定,不能改变,当时钟线SCL为低电平时,数据线SDA才可以变化,以此来保证数据传输的有效性
补充:SDA和SCL 必须接到上拉VDD,VDD电压不固定,常用单片机控制为3.3V
3.IIC总线起始和停止条件
开始传输 (S): 在 SCL 线是高电平时 SDA 线从高电平向低电平切换 这个情况表示起始条件
停止传输 (P): 当 SCL 是高电平时 SDA 线由低电平向高电平切换表示停止条件
注:联想记忆*.*,SCL为高时想成游泳池有水,低时没有水,SDA为游泳员,当泳池有水时游泳员从高处潜入水表示开始,从低处出水到高出表示停止游泳;
起始和停止波形
三.数据传输
1.发送端发送到SDA线上的数据按每字节8位,每次传输字节数不受限制,但每个字节后必须跟一个响应位
如果从机要完成一些其他功能后,才能接收或发送下一个完整的数据字节 ,可以使时钟线 SCL 保持低电平迫使主机进入等待状态, 当从机准备好接收下一个数据字节并释放时钟线 SCL 后 。继续传输数据。

2.数据传输必须带响应 ,相关的响应时钟脉冲由主机产生 ,在响应的时钟脉冲期间 发送器释放 SDA 线(高),在响应的时钟脉冲期间 接收器必须将 SDA 线拉低 使它在这个时钟脉冲的高电平期间保持稳定的低电平;

ACK和NACK响应信号
四.时钟同步与仲裁
1.时钟同步
因为IIC传输过程中数据线只在时钟线为高电平时有效,所以需要一个确定的时钟进行逐位判断仲裁,这也就要求时钟必须同步;
当多个器件连接时,同步SCL时钟的低电平周期由低电平时钟周期最长的器件决定,高电平周期又高电平最短的器件决定,因为那些提前到达高电平的时钟线还是会被未到达的时钟线拉低,所以提前到也只能等着,大地最大!

最后

以上就是知性钢笔为你收集整理的IIC通信协议原理总结的全部内容,希望文章能够帮你解决IIC通信协议原理总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部