常用的串行通信:one-wire,IIC,SPI
![](https://i-blog.csdnimg.cn/blog_migrate/b63da85a31f82548fa6d0a301c3985d9.png)
如上图,当总线空闲时,两根线均为高电平;
iic总线通过上拉电阻接正电源;
当连到总线上的任一器件输出为低电平都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系
每一个接在总线上的器件都有一个IIC地址,便于主机识别
主机按一定的通信协议向从机寻址和传输信息,传输方向和对象以及传输开始和结束都由主机控制
具体说说这个协议
1 总的规则
![](https://i-blog.csdnimg.cn/blog_migrate/271fe0c2bed49ff6efc98415a4907dda.png)
iic总线进行数据传输时,时钟信号SCL高电平期间,数据线SDA上的数据必须保持稳定
只有在时钟线SCL低电平期间,数据线SDA上的高,低电平状态才允许数据改变
2 起始信号和终止信号
![](https://i-blog.csdnimg.cn/blog_migrate/4b7e96a2e56640aa2cdbd17358a67244.png)
起始信号 SCL为高电平期间,SDA线由高电平向低电平变化。
终止信号 SCL为高电平期间,SDA线由低电平向高电平变化
![](https://i-blog.csdnimg.cn/blog_migrate/cb453b9a3952aa926c9261fe639babd9.png)
3 应答
应答 SDA = 0,可以继续通信
非应答:SDA=1,结束通信
每一个字节必须保证是8位长度。数据传送时,先传送最高位)—MSB—
每一个被传送的字节后面都必须跟随一位应答位(即一帧一共有9位)
4 数据传输
![](https://i-blog.csdnimg.cn/blog_migrate/c4be4ac960f85bf47a4610d017392376.png)