内部I2C总线模块介绍:
内部集成电路 (I2C) 总线通过采用两线设计(串行数据线SDA和串行时钟线SCL)来提供双向的数据 传输,并连接到串行存储器(RAM和ROM)、网络设备、LCD、音频发生器等外部 I2C设备上。 I2C 总线也可在产品的开发和生产过程中用于系统的测试和诊断。LM3S8962微控制器包括1个 I2C 模 块, 提供与总线上其它 I2C 器件相互作用(发送和接收)的能力。 I2C 总线上的设备可被指定为主机或从机。这个 Stellaris® I2C 模块支持这些设备作为主机或从机来 发送和接收数据,也支持它们作为主机和从机的同步操作。总共有4种 I2C 模式:主机发送、主机接 收、从机发送和从机接收。该 Stellaris® I2C 模块 可在两种速率下工作:标准速率(100Kbps)和高速 速率(400Kbps)。 I2C 主机和从机都可以产生中断;该 I2C 主机在发送或接收操作完成(或由于错误中止)时产生中断 以及 I2C 从机在主机已向其发送数据或发出请求时产生中断。
方框图
功能描述 这个I2C 模块由主机和从机两个功能组成,这两个功能均可作为独立的外设来实现。对于正确的操 作,SDA和SCL管脚必须被连接到双向的开漏引脚(pad)。
I2C 总线功能概述 I2C 总线仅使用两个信号:SDA和SCL,这两个信号在 Stellaris® 微控制器中被称为I2CSDA 和 I2CSCL。SDA是双向串行数据线,SCL是双向串行时钟线。当SDA和SCL线都为高电平时,总线处 于空闲状态。 I2C 总线上的每次操作都是9位,包括8个数据位和1个应答位。每次传输的字节数(在有效的起始和 停止条件之间根据时间来定义,在 “起始和停止条件” 在 356页中详述)没有限制,但每个字节后必须 跟随一个应答位,并且数据必须先传输MSB位。当接收器不能接收另一个完整的字节时,它可以保 持时钟线SCL为低电平并强制发送器进入等待状态。当接收器释放时钟线SCL时数据传输继续进行。
起始和停止条件 I2C 总线协议定义了两种状态来开始和结束传输:起始和停止。当SCL为高电平时,SDA线上由高到 低的跳变被定义为起始条件,由低到高的跳变被定义为停止条件。总线在起始条件之后被视为忙状 态,在停止条件之后被视为空闲(free)状态。
|