资料介绍
I2C是由Philips公司发明的一种串行数据通信协议,仅使用两根信号线:SerialClock(简称SCL)和SerialData(简称 SDA)。I2C是总线结构,1个Master,1个或多个Slave,各Slave设备以7位地址区分,地址后面再跟1位读写位,表示读(=1)或者写(=0),所以我们有时也可看到8位形式的设备地址,此时每个设备有读、写两个地址,高7位地址其实是相同的。 I2C数据格式如下:无数据:SCL=1,SDA=1;开始位(Start):当SCL=1时,SDA由1向0跳变;停止位(Stop):当SCL=1时,SDA由0向1跳变;数据位:当SCL由0向1跳变时,由发送方控制SDA,此时SDA为有效数据,不可随意改变SDA;当SCL保持为0时,SDA上的数据可随意改变;地址位:定义同数据位,但只由Master发给Slave;应答位(ACK):当发送方传送完8位时,发送方释放SDA,由接收方控制SDA,且SDA=0;否应答位(NACK):当发送方传送完8位时,发送方释放SDA,由接收方控制SDA,且SDA=1。当数据为单字节传送时,格式为:开始位,8位地址位(含1位读写位),应答,8位数据,应答,停止位。当数据为一串字节传送时,格式为:开始位,8位地址位(含1位读写位),应答,8位数据,应答,8位数据,应答,……,8位数据,应答,停止位。需要注意的是:
1,SCL一直由Master控制,SDA依照数据传送的方向,读数据时由Slave控制SDA,写数据时由Master控制SDA。当8位数据传送完毕之后,应答位或者否应答位的SDA控制权与数据位传送时相反。
2,开始位“Start”和停止位“Stop”,只能由Master来发出。
3,地址的8位传送完毕后,成功配置地址的Slave设备必须发送“ACK”。否则否则一定时间之后Master视为超时,将放弃数据传送,发送“Stop”。
4,当写数据的时候,Master每发送完8个数据位,Slave设备如果还有空间接受下一个字节应该回答“ACK”,Slave设备如果没有空间接受更多的字节应该回答“NACK”,Master当收到“NACK”或者一定时间之后没收到任何数据将视为超时,此时 Master放弃数据传送,发送“Stop”。
5,当读数据的时候,Slave设备每发送完8个数据位,如果Master希望继续读下一个字节,Master应该回答“ACK”以提示 Slave准备下一个数据,如果Master不希望读取更多字节,Master应该回答“NACK”以提示Slave设备准备接收Stop信号。
6,当Master速度过快Slave端来不及处理时,Slave设备可以拉低SCL不放(SCL=0将发生“线与”)以阻止Master发送更多的数据。此时Master将视情况减慢或结束数据传送。在实际应用中,并没有强制规定数据接收方必须对于发送的8位数据做出回应,尤其是在Master和Slave端都是用GPIO软件模拟的方法来实现的情况下,编程者可以事先约定数据传送的长度,slave不检查NACK,有时可以起到减少系统开销的效果。但是如果slave方是硬件i2c要求一定要标准的NACK,master方是GPIO软件模拟i2c并没有正确的发送NACK,就会出现“slave收不到 stop”导致i2c挂死。
- 51单片机模拟半双工串口的程序免费下载 4次下载
- 51单片机的红外遥控的资料和程序免费下载 24次下载
- 51单片机的I2C总线驱动程序免费下载 9次下载
- 使用51单片机模拟LED交通灯的程序免费下载 13次下载
- 使用C语言模拟51单片机的I2C总线的资料和程序免费下载 11次下载
- 使用51单片机IO模拟I2C的程序免费下载 3次下载
- 使用51单片机实现流水灯总线操作的C51程序免费下载 4次下载
- 使用51单片机模拟I2C的原理和程序免费下载 3次下载
- 使用51单片机模拟秒表的程序免费下载 7次下载
- 使用51单片机模拟I2C总线的程序免费下载 3次下载
- 如何使用51单片机进行AD转换的程序资料免费下载 17次下载
- C51单片机的串口的程序资料免费下载 7次下载
- 使用51单片机模拟I2C总线的驱动程序免费下载 0次下载
- 51单片机的PWM程序资料免费下载 74次下载
- 51单片机的键盘扫描程序资料免费下载 2次下载
- 51单片机烧写程序的方法 3034次阅读
- 基于51单片机的湿度监测仿真和程序 813次阅读
- 单片机里的程序是如何运行? 2914次阅读
- 使用51单片机读写AT29C040的C语言程序免费下载 4136次阅读
- 51单片机读写AT29C040的C51程序 4396次阅读
- HD44780读写单片机C51程序免费下载 3816次阅读
- 使用HD44780读写单片机的C51程序详细概述 2835次阅读
- I2C总线驱动的C语言源程序详细说明 4824次阅读
- 如何使用C语言实现51单片机模拟I2C总线 3903次阅读
- 基于MCS-51单片机I2C总线接口电路的设计 3045次阅读
- AT89S52单片机并行端口模拟I2C总线协议读写AT24C04的设计 2348次阅读
- 80C51单片机模拟I2C总线的主机程序分享 2985次阅读
- 针对常用51单片机下载程序问题做下详解 1.5w次阅读
- 如何使用Keil3开发51单片机程序 6782次阅读
- 51单片机存储程序和数据 9102次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1490次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 92次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 10次下载 | 免费
- 6基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 7蓝牙设备在嵌入式领域的广泛应用
- 0.63 MB | 3次下载 | 免费
- 89天练会电子电路识图
- 5.91 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233045次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多