一.IIC协议初识
IIC(集成电路总线),半双工同步通信方式
*特点
1.简单性和有效性
由于接口直接在组件之上,因此IIC总线占用的空间特别小,减少了电路板的空间和芯片管脚的数量,降低了互联成本,总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。
2.多主控
其中任何能够进行发送和接收的设备都可以成为主线,一个主控能够控制信号的传输和时钟频率。当然,在任何 时间点上只能有一个主控。
*构成
IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,其时钟信号是由主控器件产生。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线SCL上对于并联在一条总线上的每个IC都有唯一的地址。
二.IIC协议
IIC总线在传输数据的过程中一共有三种类型信号,分别为:开始信号、结束信号和应答信号,这些信号中,起始信号是必须的。
根据时序图我们可以写出这些:
注:_nop()_执行这个语句耗时5us.
三.IIC协议发送一个字节的函数封装
我们在发送字节之前先看看数据发送的时序是怎样的?
注:列出这张图就是要提醒,我们每传一bit数据时,要保证scl处于低电平状态,因为scl处于高电平状态时,会被误认为是起始信号或者停止信号(scl=1)。
函数封装: