简单的I2C协议理解!(无图) - EEcha的BLOG - 52RD R&D Blog ...

来源:百度文库 编辑:神马文学网 时间:2024/03/29 17:04:29
简单的I2C协议理解!(无图)
EEcha 发表于 2006-3-9 15:51:00
一、技术性能:
工作速率有100K和400K两种;                     支持多机通讯;
支持多主控模块,但同一时刻只允许有一个主控;      由数据线SDA和时钟SCL构成的串行总线;
每个电路和模块都有唯一的地址;                    每个器件可以使用独立电源但是必须共地
二、基本工作原理:
以启动信号START来掌管总线,以停止信号STOP来释放总线;
每次通讯以START开始,以STOP结束;
启动信号START后紧接着发送一个地址字节,其中7位为被控器件的地址码,一位为读/写控制位R/W,R./W位为0表示由主控向被控器件写数据,R/W为1表示由主控向被控器件读数据;
当被控器件检测到收到的地址与自己的地址相同时,在第9个时钟期间反馈应答信号;
每个数据字节在传送时都是高位(MSB)在前;
写通讯过程:
1、   主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;
2、   发送一个地址字节(包括7位地址码和一位R/W);
3、   当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);
4、   主控收到ACK后开始发送第一个数据字节;
5、   被控器收到数据字节后发送一个ACK表示继续传送数据,发送NACK表示传送数据结束;
6、   主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;
读通讯过程:
1、   主控在检测到总线空闲的状况下,首先发送一个START信号掌管总线;
2、   发送一个地址字节(包括7位地址码和一位R/W);
3、   当被控器件检测到主控发送的地址与自己的地址相同时发送一个应答信号(ACK);
4、   主控收到ACK后释放数据总线,开始接收第一个数据字节;
5、   主控收到数据后发送ACK表示继续传送数据,发送NACK表示传送数据结束;
6、   主控发送完全部数据后,发送一个停止位STOP,结束整个通讯并且释放总线;
三、 硬件连接及要求
上图为硬件连接结构与参数曲线
四、 总线信号时序分析
1、 总线空闲状态
SDA和SCL两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高;
2、 启动信号START
时钟信号SCL保持高电平,数据信号SDA的电平被拉低(即负跳变)。启动信号必须是跳变信号,而且在建立该信号前必修保证总线处于空闲状态;
3、 停止信号STOP
时钟信号SCL保持高电平,数据线被释放,使得SDA返回高电平(即正跳变),停止信号也必须是跳变信号。
4、 数据传送
SCL线呈现高电平期间,SDA线上的电平必须保持稳定,低电平表示0(此时的线电压为地电压),高电平表示1(此时的电压由元器件的VDD决定)。只有在SCL线为低电平期间,SDA上的电平允许变化。
5、 应答信号ACK
I2C总线的数据都是以字节(8位)的方式传送的,发送器件每发送一个字节之后,在时钟的第9个脉冲期间释放数据总线,由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。
6、 无应答信号NACK
在时钟的第9个脉冲期间发送器释放数据总线,接收器不拉低数据总线表示一个NACK,NACK有两种用途:a、一般表示接收器未成功接收数据字节;b、当接收器是主控器时,它收到最后一个字节后,应发送一个NACK信号,以通知被控发送器结束数据发送,并释放总线,以便主控接收器发送一个停止信号STOP。
7、其它信号如插入等待、重启动、时钟同步、总线仲裁、总线封锁等不经常使用,请参阅资料。
五、 寻址约定
地址的分配方法有两种:1、含CPU的智能器件,地址由软件初始化时定义,但不能与其它的器件有冲突;2、不含CPU的非智能器件,由厂家在器件内部固化,不可改变。
上图为地址字节定义
高7位为地址码,其分为两部分:1、高4位属于固定地址不可改变,由厂家固化的统一地址;2、低三位为引脚设定地址,可以由外部引脚来设定(并非所有器件都可以设定);
简单的I2C协议理解!(无图) - EEcha的BLOG - 52RD R&D Blog ... tcp粘包分析 - imjacob的BLOG - 52RD R&D Blog - 研发人员... 手机开机怎么看芯片 - zsqt8888的BLOG - 52RD R&D Blog - 研... c语言中static 用法总结 - imjacob的BLOG - 52RD R&D Blo... #pragma 预处理指令详解 - sunhuibo的BLOG - 52RD R&D Bl... [人在职场]技术人员创业经[转] - zsqt8888的BLOG - 52RD R&D B... 手机TDMA noise的产生 - Adamwu的BLOG - 52RD R PPT设计者必看的十大博客 - xuanny的BLOG - 52RD R DM6446开发-工具链概述 转载http://space.ee365.cn/?uid-1430-a - sarah的BLOG - 52RD R&D Blog - 研发人员聚集的专业博客_我爱研发网_52RD.com 关于喇叭音腔设计的基本原理及与射频天线的对比 - wangsw的BLOG - 52RD R... 简单的I2C协议理解 - 笑天工作室xiaotiansoft - 博客园 简单的I2C协议理解 - 笑天工作室xiaotiansoft - 博客园 R&D人生-亲爱的RD老公 你只会讲三相电流吗? SPI、I2C、UART三种串行总线协议的区别 我理解的放生- 尼玛才仁 - 新浪BLOG 元泰世纪科技拓展移动二维码应用新领域 - 我爱研发网 52RD.com - R&D大本营 股指期货的走势"预测"- 木剑无锋 - 新浪BLOG Blackfin531与PCF8576的接口设计及 I2C协议实现 电子设计应用 SPI、I2C、UART三种串行总线协议的区别-技术中心-DICDER 清水无鱼:北京与上海的宿世恩仇(一) - 清水无鱼 - 新浪BLOG JNDI的简单理解 Blog 的衍生进化图 非常简单的失眠调养绝招- 中里巴人 - 新浪BLOG BLOG家园 对BLOG三种境界的图释