ARM之IIC协议

IIC总线:

  1. 半双工通信,一条串行数据线SDA,一条串行时钟线SCL
  2. 每个连接到总线的器件都可以使用软件根据它的惟一地址来识别
  3. 传输数据的设备之间是简单的主从关系

信号类型:

  1. 开始信号(S):SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据
  2. 结束信号(P):SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据
  3. 响应信号(ACK):接收器在接收到8位数据后,在第9个时钟周期,拉低SDA电平

SDA上传输的数据必须在SCL为高电平期间保持稳定,SDA上的数据只能在SCL为低电平时发生变化

写:

红色代表从机,黑色代表主机

开始S 从机地址 方向R/W 响应ACK 数据 响应ACK 结束P

读:

开始S 从机地址 方向R/W 响应ACK 数据 响应ACK 结束P

设备地址为7位,高位先传。把设备地址和方向位看作一组数据。

2440的IIC控制器:

涉及的寄存器:

PCLK为50M,设置IICCON,设置时钟。IICSTAT发出信号(三种信号发出)。

上图中,ACK后产生中断,SCL被拉低,直到请中断。   

发送模式下,发送完一个数据就拉低SCL,直到中断程序完成,IIC继续工作。

接收模式下,接收数据,产生中断,SCL被拉低,中断程序里判断各种情况,之后执行相应操作,IIC继续工作,继续接收下一个数据。

 

猜你喜欢

转载自blog.csdn.net/weixin_40288381/article/details/81179435