i2c速率 400kbps_I2C接口技术

600a95b3a612aed8e5a378e8454860f8.png

I2C接口是嵌入式系统中常用的网络接口之一,它采用串行通信方式将MCU/传感器连接到系统总线,通过主机/从机的方式协调工作。I2C/IIC(Inter-Integrated Circuit)总线是由PHILIPS公司于1982年针对MCU/传感器等应用需求而研制的一种两线式串行总线,用于连接MCU及传感器等设备。I2C总线的主要特点如下:(1)I2C总线最主要的优点是其简单性和有效性。(2)由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。(3)I2C总线的长度可高达25英尺(约7.6m),并且能够以标准模式100Kbps的传输速率支持40个组件。新一代I2C总线还支持高速模式400Kbps传输。(4)I2C总线的另一个优点是支持多主控(multi-mastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号传输和时钟频率。当然,在任何时间点上只能有一个主控。1. I2C总线系统组成I2C总线协议包含两层协议:物理层和数据链路层。在物理层,I2C总线仅使用了两条信号线:一个是串行数据线SDA (Serial DAta line),它用于数据的发送和接收;另一个是串行时钟线SCL (Serial Clock Line)构成的串行总线,它用于指示何时数据线上是有效数据,即数据同步。MCU与被控IC之间、IC与IC之间进行双向传送,I2C标准模式最大传送速率为100kbps,I2C快速模式最大传输速率为400kbps。在数据链路层,每个连接到I2C总线上的设备都有唯一的地址,设备的地址由系统设计者决定。在信息的传输过程中,I2C总线上并接的每一设备既是主设备(或从设备)又是发送器(或接收器),这取决于它所要完成的功能。由I2C总线所构成的系统可以有多个I2C节点设备,并且可以是多主系统,任何一个设备都可以为主I2C;但是任一时刻只能有一个主I2C设备,I2C具有总线仲裁功能,以保证系统正确运行。主I2C设备发出时钟信号、地址信号和控制信号,选择通信的从I2C设备并控制收发。I2C总线要求:(1)各个节点设备必须具有I2C接口功能;(2)各个节点设备必须共地;(3)两根信号线必须接上拉电阻Rp。如图1所示。2975125ae49ca0cab8bcd0d1ab0c43a1.png图1 多I2C设备接口示意图2. I2C总线的状态及信号(1)空闲状态SCL和SDA均处于高电平状态,即为总线空闲状态(空闲状态为何是高电平的道理很简单,因为它们都接上拉电阻)。(2)占有总线和释放总线若想让器件使用总线应当先占有它,占有总线的主控器向SCL线发出时钟信号。数据传送完成后应当及时释放总线,即解除对总线的控制(或占有),使其恢复成空闲状态。(3)启动信号[S]启动信号由主控器产生。在SCL信号为高时,SDA产生一个由高变低的电平变化,产生启动信号。(4)结束/停止信号[P]当SCL线高电平时,主控器在SDA线上产生一个由低电平向高电平跳变,产生停止信号。启动信号和停止信号的产生见图2所示。af2d4815cbd0d09d56acc9bf5f67ebe2.png图2 启动信号和停止信号的产生(5)应答/响应信号[A/NA]应答信号是对字节数据传输的确认。应答信号占1位,数据接收者接收1字节数据后,应向数据发出者发送一个应答信号。对应于SCL第9个应答时钟脉冲,若SDA线仍保持高电平,则为非应答信号(NA/ACK)。低电平为应答,继续发送;高电平为非应答,结束发送。(6)控制位信号[R/nW]控制位信号占1位,IIC主机发出的读写控制信号,高为读、低为写(对IIC主机而言)。控制位(或方向位)在寻址字节中给出。(7)地址信号地址信号为从机地址,占7位,称之为“寻址字节”(见表1)。表1 寻址字节bf462c637507f08b8c3ac5933e974b08.png下面对表1中的各字段进行说明。器件地址(DA3-DA0):DA3-DA0是I2C总线接口器件固有的地址编码,由器件生产厂家给定,如AT24C××I2C总线EEPROM器件的地址为1010等。引脚地址(A2、A1、A0):引脚地址由I2C总线接口器件的地址引脚A2、A1、A0的高低来确定,接高电平者为1,接地者为0。读写控制位/方向位(R/n W):R/nW为1表示主机读,R/nW为0表示主机写。7位地址和读写控制位组成1个字节,即寻址字节。(8)等待状态在IIC总线中,赋予接收数据的器件具有使系统进行等待状态的权力,但等待状态只能在一个数据字节完整接收之后进行。例如,当进行主机发送从机接收的数据传送操作时,若从机在接收到一个数据字节后,由于中断处理等原因而不能按时接收下一个字节;从机可以通过把SCL下拉为低电平,强行使主机进入等待状态;在等待状态下,主机不能发送数据,直到从机认为自己能继续接收数据时,再释放SCL线,使系统退出等待状态,主机才可以继续进行后续的数据传送。3. I2C总线基本操作(1)串行数据线SDA和串行时钟线SCL在连接到总线的器件间传递信息。(2)每个器件都有一个唯一的地址标识,无论是MCU、LCD驱动器、存储器或键盘接口。(3)每个器件都可以作为一个发送器或接收器,由器件的功能决定。显然,LCD驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。(4)除了将器件看作发送器和接收器外,在执行数据传输时它也可以被看作是主机或从机。(5)主机是初始化总线的数据传输并产生允许传输时钟信号的器件,此时任何被寻址的器件都被看作是从机。4. 启动和停止条件在SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况称为启动条件。当SCL是高电平时,SDA 线由低电平向高电平切换,称为停止条件。启动和停止条件一般由主机产生。总线在启动条件后被认为处于忙的状态,在停止条件的某段时间后,总线被认为再次处于空闲状态。如果产生重复启动条件Sr而不产生停止条件P,总线将一直处于忙状态。5. I2C总线数据传输格式I2C总线数据传输格式见图3所示。在图3中,S为启动信号,R/nW为读写控制位,A/NA为应答信号,P为停止信号。0de3937997da04f9863f3049eca0f3ae.png


b4d7f2d450d16162460e5b744efd902a.png

展开阅读全文
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值