宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

另一方面,集成电路(IIC )简档I2C (集成电路)是内部集成电路的称谓,使用http://www.Sina.com、http://www.Sina.com,飞利浦公司为1980 手机I2C的正确读法是’ I-squared-C ‘,而’ I-two-C ‘是另一种错误但广泛使用的读法,在中国多被称为’ I方c ‘。 I2C总线支持所有集成电路制造工艺(NMOS CMOS、双极)。 串行数据(SDA )和串行时钟(SCL )两条线路在连接到总线的设备之间传送信息。 每个设备都有唯一的地址识别,可以是微控制器——MCU、液晶屏驱动器、内存或键盘连接器,用作由设备功能决定的发射器或接收器。

在CPU和被控IC之间,IC和IC之间进行双向传输,高速IIC总线通常可以达到400kbps以上。

I2C总线在数据传输中有三种信号,分别应答为串行通讯总线多主从架构

信号。用以连接低速周边装置: SCL为高电平时,SDA从高电平跳至低电平,开始数据传输。开始信号: SCL为高电平时,SDA从低电平跳至高电平,结束数据传输。结束信号:接收到数据的IC在接收到8bit数据后,向发送数据的IC发送特定的低电平脉冲,

表示收到了数据。 CPU向被控制单元发出信号后,等待被控制单元发出响应信号,CPU进行连接

接收到应答信号后,根据情况判断是否继续传递信号。 如果没有接收到响应信号,则判断为

控制单元发生了故障。

这些信号中,1、开始信号,不需要结束信号和响应信号。

IIC总线时间图

二. IIC的特点只要求一两条总线。 一个串行2、结束信号(从而半双工),一个串行3、应答信号

2、连接总线的各设备可以用一直存在于起始信号是必需的的简单的主/从关系软件设置地址,主可以作为主发射机或主接收机使用;

3、它为数据线SDA,两个或多个主机同时初始化时,数据传输可以通过冲突检测和仲裁防止数据破坏;

4、串行8位双向数据传输比特率在标准模式下达到100kbit/s,在高速模式下达到400kbit/s,在高速模式下达到3.4Mbit/s;

5、连接到同一总线的IC的数量被限制在总线的最大容量400pF

三、IIC的从站地址IIC从站地址分别有7位、8位、10位3种。 发生这么多类型的原因是制造商采用的不同地址的约定。

7位地址指定是在7位地址指定过程中,在开始信号后的第一个字节中传输从站地址。 该字节有趣的铃位表示从地址,第8位表示读写位,0表示写入,1表示读取。

图1:7位寻址。 I2C总线标准规定,标准模式I2C、从站地址为7位长,然后是读/写位。

第一个字节的前7位构成从地址,最低有效位(LSB )是第8位,以确定传输的方向。

第1个字节的第8位为“0”,表示主机将信息写入选定的从站。

“1”表示主机向从机读取信息并发送地址时,系统内的各设备在开始条件之后

将前7位与它的地址相比较,如果相同,则装置确定它已被寻址到主机,且由R/W位确定它是从接收器还是从发射器。

任何I2C设备都必须遵循此标准,时钟线SCL,读写位由函数自动添加。

8位地址一些制造商在提供从站地址时说的是包含读写位的8bit地址。 例如,如下图所示,写入地址为0x92,读取地址为0x93

图2: 8位寻址

对于8位地址,需要唯一的地址,并传递给USB2XXX接口函数,例如0x49。

如何确定制造商提供的地址是7位模式地址还是8bit地址模式地址:在多主机总线之间,如果超出此范围,则此地址可能为8bit地址。

图3 :有效的7位地址范围

10位寻址I2C总线的10位寻址和7位寻址兼容,因此可以在同一总线上同时使用7位地址和10位地址模式的设备。 进行10位地址传输时,第一个字节是一个特殊的保留地址,表示当前正在传输的是10位地址。

图4:10位寻址

用USB2XXX传输10b

it地址模式的时候,只需要在初始化的时候配置为10bit地址模式(由第一个字节设置),然后再调用读写数据函数的时候传入正确的10bit地址即可。

四、保留地址

I2C规范保留了两组和8个地址,1111XXX和0000XXX。这些地址用于特殊用途。下表已被取自 I2C规范(2000年)。

从机地址+R/W描述0000 0000呼叫地址0000 0001起始字节0000 001XCBUS地址0000 010X保留供不同的总线格式0000 011X保留将来用0000 1XXXHS模式主机码1111 0XXX10位从机地址1111 1XXX保留将来用五、IIC的连接

1、IIC可以接多个主设备,多个从设备(外围 设备)。如下图,存在多个主机、多个从机。

2、当多主机会产生总线裁决问题。当多个主机同时想占用总线时,企图启动总线传输数据,就叫做总线竞争。I2C通过总线仲裁,以决定哪台主机控制总线
3、上拉电阻一般在4.7k~10k之间,默认拉高。

六、IIC总线最多可以挂多少个设备

由IIC地址决定,8位地址,减去1位广播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127个地址, 所以理论上可以挂127个从器件

但是IIC协议没有规定总线上device最大数目,但是规定了总线电容不能超过400pF
管脚都是有输入电容的,PCB上也会有寄生电容,所以会有一个限制。实际设计中经验值大概是不超过8个器件。

规定电容大小的原因:
IIC的OD(漏极开路)要求外部有电阻上拉,电阻和总线电容产生了一个RC延时效应,电容越大信号的边沿就越缓,有可能带来信号质量风险。

传输速度越快,信号的窗口就越小,上升沿下降沿时间要求更短更陡峭,所以RC乘积必须更小。

原文链接:https://blog.csdn.net/qq_38769551/article/details/105108062

注:
广播地址:广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用[TCP/IP 协议](https://baike.baidu.com/item/TCP%2FIP 协议/2116790)的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机。例如,对于10.1.1.0 (255.0.0.0 )网段,其直播广播地址为10.255.255.255 (255 即为2 进制的11111111 ),当发出一个目的地址为10.255.255.255 的分组(封包)时,它将被分发给该网段上的所有计算机。

七、IIC实现的方式

IIC实现的方式主要有两种,硬件IIC和软件模拟IIC

软件IIC是程序员使用程序控制SCL,SDA线输出高低电平,模拟i2c协议的时序。一般较硬件IIC稳定,但是程序较为繁琐,但不难。

硬件IIC程序员只要调用IIC的控制函数即可,不用直接的去控制SCL,SDA高低电平的输出。但是有些单片机的硬件IIC不太稳定,调试问题较多。

硬件IIC、软件模拟IIC的区别

模拟IIC硬件IIC用法流程更清楚一些用法比较复杂速度速度快、效率高、可以使用DMA适用管脚任何管脚固定管脚稳定性稳定不太稳定下一章、实现硬件IIC和软件模拟IIC,实验中…