IIC
总线\x0d\x0a一般串行数据通讯都有时钟和数据之分,有异步和同步之别.\x0d\x0a有单线,双线和三线等.\x0d\x0a\x0d\x0aI2C肯定是2线的(不算地线).\x0d\x0a\x0d\x0aI2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了.\x0d\x0a\x0d\x0aI2C的原则是:\x0d\x0a\x0d\x0a在SCL=1(高电平)时,SDA千万别忽悠!!!\x0d\x0a\x0d\x0a否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".\x0d\x0a\x0d\x0a在SCL=0(低电平)时,SDA随便忽悠!!!(可别忽悠过火到SCL跳高)\x0d\x0a\x0d\x0a每个字节后应该由对方回送一个应答信号ACK做为对方在线的标志.\x0d\x0a\x0d\x0a非应答信号一般在所有字节的最后一个字节后.一般要由双方协议签定.\x0d\x0a\x0d\x0aSCL必须由主机发送,否则天下大乱.\x0d\x0a\x0d\x0a首字节是"片选信号",即7位从机
地址加1位方向(读写)控制.\x0d\x0a\x0d\x0a从机收到(听到)自己的地址才能发送应答信号(必须应答!!!)表示自己在线.\x0d\x0a\x0d\x0a其他地址的从机不允许忽悠!!!(当然群呼可以忽悠但只能听不许说话)\x0d\x0a\x0d\x0a读写是站在主机的立场上定义的.\x0d\x0a\x0d\x0a"读"是主机接收从机数据,"写"是主机发送数据给从机.\x0d\x0a\x0d\x0a重复位主要用于主机从发送模式到接收模式的转换"信号",由于只有2线,\x0d\x0a\x0d\x0a所以收发转换肯定要比SPI复杂,因为SPI可用不同的边沿来收发数据,而I2C不行.\x0d\x0a\x0d\x0a在硬件I2C模块,特别是MCU/ARM/DSP等每个阶段都会得到一个准确的状态码,\x0d\x0a\x0d\x0a根据这个状态码可以很容易知道现在在什么状态和什么出错信息.\x0d\x0a\x0d\x0a7位I2C总线可以挂接127个不同地址的I2C设备,0号"设备"作为群呼地址.\x0d\x0a\x0d\x0a10位I2C总线可以挂接更多的10位I2C设备.\x0d\x0a\x0d\x0a总之,只要掌握I2C的忽悠运迅液记,一般很容易掌控... 第一个字节(为slave address)由7位地址和一位R/W读写位组成的,这字节是个
器件地址。\x0d\x0a首先,你要知道:常用IIC接口通用器件的器件地址是由种类型号,及寻址码组成的,共7位。\x0d\x0a如格式如下: \x0d\x0a D7 D6 D5 D4 D3 D2 D1 D0\x0d\x0a1-器件类型由:D7-D4 共4位决定的。这是由半导公司生产时就已固定此类型的了,也就是说这4位已是固定的。\x0d\x0a\x0d\x0a2-用户自定义地址码:D3-D1共3位。这是由用户自己设置的,通常的作法如EEPROM这些器件是由外部IC的3个引脚所组合电平决定的(用常用的名字如A0,A1,A2)。这也就是寻址码。\x0d\x0a所以为什么同一IIC总线上同一型号的IC只能最多共挂8片同种类芯片的原因了。\x0d\x0a\x0d\x0a3-最低一位就是R/W位。这位不用我多说了。\x0d\x0a 在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。作为一个专利的控制总线,I2C已经成为世界性的工业标准。\x0d\x0a \x0d\x0a每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如:存储器)。发送器或接收器可以在主模式或从模式下 *** 作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。I2C是一个多主总线,即它可以由多个连接的器件控制旁物。\x0d\x0a基本的I2C总线规范于20年前发布昌亮,其数据传输速率最高为100Kbits/s,采用7位寻址。但是由于数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。\x0d\x0aI2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。并且最近还增加了高速模式,其速度可达3.4Mbits/s。它使得I2C总线能够支持现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器。 在现代电子系统中,有为数众多的IC需要进行相互之间以及与外界的通信。为了提供硬件的效率和简化电路的设计,PHILIPS开发了一种用于内部IC控制的简单的双向两线串行总线I2C。I2C总线支持任何一种IC制造工艺,并且PHILIPS和其他厂商提供了种类非常丰富的I2C兼容芯片。作为一个专利的控制总线,I2C已经成为世界性的工业标准。\x0d\x0a \x0d\x0a每个器件都有一个唯一的地址,而且可以是单接收的器件(例如:LCD驱动器)或者可以接收也可以发送的器件(例如:存储器)。发送器或接收器可以在主模式或从模式下 *** 作,这取决于芯片是否必须启动数据的传输还是仅仅被寻址。I2C是一个多主总线,即它可以由多个连接的器件控制。\x0d\x0a基本的I2C总线规范于20年前发布,其数据传输速率最高为100Kbits/s,采用7位寻址。但是由于数据传输速率和应用功能的迅速增加,I2C总线也增强为快速模式(400Kbits/s)和10位寻址以满足更高速度和更大寻址空间的需求。\x0d\x0aI2C总线始终和先进技术保持同步,但仍然保持其向下兼容性。并且最近还增加了高速模式,其速度可达3.4Mbits/s。它使得I2C总线能够支持现有以及将来的高速串行传输应用,例如EEPROM和Flash存储器。
IIC设备地址一般为8(0~7)位。
其中第7位1为读,0为写。
剩下的0~6位参考IIC设备的datasheet和搜迟板卡原理图可知.
IIC( Inter-Integrated Circuit (集成电路裤洞总线 ) ),是IICBus的简称。为一种串行通讯总线,采世纯李用多主从架构。
由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。I²C的正确读法为“I平方C”(“I-squared-C”),而“I二C”(“I-two-C”)则是另一种错误但被广泛使用的读法。自2006年10月1日起,使用I²C协议已经不需要支付专利费,但制造商仍然需要付费以获取I²C从属设备地址。
PS:我们一般读作“ I 方 C”。
注意上面的关键字,连接低速周边设备 。以及需要注意IIC为半双工通讯。
低速:IIC数据传输速率有标准模式(100kbps)、快速模式(400kbps)和高速模式(3.4Mbps)。
连接:物理上,IIC是两线制,一根时钟线SCL,一根数据线SDA。
周边设备:即多用与外围模块与MCU的数据通讯,比如常用的MPU6050、0.96寸左右大小OLED显示屏模块、DS3231时钟模块等,都可以通过IIC模块实现数据和指令半双工通讯
————————————————
评论列表(0条)