FPGA实现IIC协议芯片解密
一. 简介
芯片解密这是FPGA之旅设计的第五例啦!今天给大家带来的是IIC通信,IIC协议应用非常广泛,例如与MPU6050进行通信,配置OV5640摄像头、驱动OLED屏幕等等,都需要使用到IIC协议,所以掌握它是非常必要的,废话不多说,接着往下看。文末获取完整代码。
二. IIC简介
IIC协议分为主机和从机,所有的请求都是由主机发出,从机进行响应,从机是没有办法对主机进行读或写的。IIC协议共有两根线,数据线SDA和时钟线SCL,两根线就可以完成所有的通信请求,简直是太给力了。
三. IIC协议
终于到了IIC协议的部分。IIC协议简单来说,共有五种状态,这五种状态的有序组合就组成了完整的IIC通信,学习IIC协议,就是学习这五种状态。
空闲态: SCL 和 SDA 都为高电平,不进行通信的时候。
起始态:在SCL为高电平的时候,将SDA拉低,主机通知从机,开始进行通信。
数据传输态:数据传输态,又可以分为读和写两个部分,过程都是一样的,就合在一起了,都是在SCL为低电平的时候,SDA将数据发送,在SCL为高电平的时候,将数据接收。
(非)应答态:数据传输态完成后,必须接一个应答态或者非应答态,为了确定对方接收到了数据。在SCL为高电平的时候,检测到SDA为低电平,则为应答,否则为非应答。
停止态:一次数据传输完成,由主机发起,在SCL为高电平的时候,SDA由低电平变成高电平。
了解了这五种状态后,接下来就要学习如何使用这五种状态来进行读写操作了。