IIC通讯协议解析

2019-05-08 16:35:35 来源:互联网
标签:
MCU   IIC

IIC,两根线,SCL时钟线,SDA数据线。一个主机master,一个或多个从机slave。

 

主机通常就是MCU,从机会有一个地址,这个地址通常前4位是器件本身固定的,5-7位可以硬件选择,最后一位通常是WP位,一般此位低电平表示正常读写,此位高电平表示读保护,只能读。如常用的EEPROM 24C02,地址高四位是1010,5-7位硬件连接决定,即是将其A0-A2引脚接地为000,这样设备地址是0xA0或者0xA1(读)。

 

IIC的指令:

默认下(无数据传输):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上的数据可改变。也就是说,不管是主机发从机,还是从机发主机,只要想发送或者读取数据,必须有一个scl上升的过程,此时SDA数据有效,数据来自于发送方。

 

地址位:定义同数据位,但只由Master发给Slave;

 

应答位(ACK):发送SDA=0,可以是主机主动发送,也可以是从机发送主机接收。

 

否应答位(NACK):发送SDA=1,可以是主机主动发送,也可以是从机发送主机接收。

 

注意:

1,SCL一直由Master控制。

 

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挂死。

 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
用MCU的PWM产生负电压的教程
用MCU的PWM产生负电压的教程

我们应该知道,有一种开关电源是通过PWM波来实现的,但你知道通过PWM波也能输出负电压吗?

电线正在被取代,未来世界将无线供电?

摆脱电线并不仅仅意味着不再需要电缆供应商。由于无线高功率传输技术的发展,曾经受限于电源插座的机器人和工业机器开始真正体验到自由。

7000+学员好评的STM32讲师,何俊鹏靠的是什么?
7000+学员好评的STM32讲师,何俊鹏靠的是什么?

“学技术的很多都比较低沉,我觉得需要活跃的气氛,所以我在讲课的开始,都喜欢放一段音乐给大家听。”在和与非网记者的交流过程中,摩尔吧讲师何俊鹏如是说。

用免费板卡赢取万元大奖,此等好事只在2019 NXP MCU 挑战大赛

为进一步释放MCU的潜能,2019恩智浦杯 MCU 挑战大赛正式启动。

从效率优先,车用半导体市场如何?

IHS Markit日前将2019年全球新车销售量预估值下修至9,100万台、将年减2%,原先则是预估将呈现年增。

更多资讯
华为将借鸿蒙打造万物互联时代?汽车或将是首个爆点

犹如十几年前微软如日中天的时候,所有科技界的人物在思考着“下一个微软在哪里?”

鸿蒙想要成功,开发人员、生态、用户一个都不能少

华为已经发布Harmony OS(鸿蒙操作系统),之前我们已经看到许多野心勃勃的移动OS折戟沉沙,败北而归,为什么失败?因为缺少App支持,缺少开发者支持。对于Harmony,外媒到底是怎样看的?有了

嵌入式“软”硬领域缺乏探索,使用 FPGA 有何潜力?

在一个领域中,如果唯一不变的是变化,那么不需要对电子技术 和设计方法的发展变化做多少回顾,就能见证到变化是如何使设计工程师能够创建出下一代创新产品。

苹果“双标”,竟然在iOS 13 中限制第三方软件的位置跟踪功能?

iOS 13虽说还没有推出正式版,但是测试版已经进行了多版,其中苹果对一些功能的改进,引起了开发者强烈不满。

做物联网操作系统,为什么是一个“九死一生”的行当?
做物联网操作系统,为什么是一个“九死一生”的行当?

阿里AliOS、谷歌Fuchsia、西门子Mindsphere、ARM公司mbedOS…成功的IoT操作系统意味着更大的市场份额、更高的话语权和可观的经济回报。而且已经存在多时的工业互联网平台亦可被看作是某种层面的IoT操作系统,这篇文章我们不妨从多个角度观察IoT操作系统的走势。