新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机访问IIC总线技术

单片机访问IIC总线技术

作者: 时间:2016-11-27 来源:网络 收藏
IIC 总线的特征:
1. 只要求两条总线线路:一条串行数据线(SDA);一条串行时钟总线
2. 每个接到总线上的器件都可以用软件设定地址,通过唯一的地址。总线上的不同设备会一直存在这一个主从关系,主设备可以工作在主发送和主接受模式。
3. 这是一个真正的多主机总线,如果多个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁检测来防止数据被破坏。
4. 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下科大400kbit/s,高速模式下可达3.4Mbit/s。
5. 片上集成有滤波器,可以滤除总线上的毛刺波,保证数据完整。
连接到相同总线的IC数量只受到总线的最大负载电容400pF的限制,因为挂接的设备越多,在总线上产生的负载电容就越大,会严重影响数据的传输波形,导致总线无法正常工作。
6. IIC设备便于电路的模块话设计,能是系统的设计裁减更加灵活。
IIC典型应用:
1. 现在的数码电视机中使用的就是一个IIC总线,所有设备都挂接在IIC总线上。
2. DECT无绳电话基站,不同模块也是通过IIC总线连接。
IIC总线规范:
在用到微控制器的系统中,需要一些规范来协调不同设备间的通信。
IIC总线的概念:
IIC总线支持任何IC生产工艺(NMOS, CMOS. 双极性)。
两线:
SDA-串行数据
SCL-串行时钟
每个器件都有一个唯一的地址识别(微控制器,LCD驱动器,存储器或是键盘接口),而且都可以作为一个发送器或接收器 由器件的功能决定 很明显 LCD驱动器只是一个接收器 而存储器则既可以接收又可以发送数据 除了发送器和接收器外 器件在执行数据传输时也可以被看作是主机或从机(见表 1)主机是初始化总线的数据传输并产生允许传输的时钟信号的器件 此时 任何被寻址的器件都被认为是从机
表一:
术语描述
发送器发送数据到总线的器件
接收器从总线接受数据的器件
主机初始化发送、产生时钟信号和终止发送的器件
从机被主机寻址的器件
多主机同时有多于一个主机尝试控制总线,但不破坏报文
仲裁是一个在多个主机同时尝试控制总线,但只允许其中一个控制总线并使报文不被破坏的过程
同步两个或多个器件共用一个同步时钟信号的过程
主机、从机;接收机,发送机:
关系都是相对的并且只在数据传输的时候才会存在:
1)假设微控制器A(主)要给B(从)发送数据
1. A寻址B
2. A发送数据到B; A - 发送器 B - 接收器
3. A终止发送
2)假设A(主)想从B(从)接受信息
1. A寻址B
2. A从B接受数据;A - 接收器 B - 发送器
3. A终止接收
总线仲裁过程:
多个主机同时尝试发送信息到总线,其他主机都产生“0”的情况下,首先产生“1”的主机讲丢失仲裁。
仲裁时的时钟信号是用线与到SCL线的主机产生的时钟的同步结合。
IIC总线接口电路:电路如下图
图中可以看出据诶大总线上的设备都是漏极(或集电极)开路,即OC门,只有OC们啊次可以实现总线上的线与。
数据的有效性:
SDA线上的数据必须在时钟的高电平周期保持稳定。数据线上的数据只能在SCL为低电平是才能改变。时序波
如下图:
start,stop
数据传送的起始和停止:
IIC总线中数据的起始和结束,与数据的位传输有所不同,
起始位:在SCL为高电平时,SDA从高电平向低电平切换
结束位:在SCL为高电平时,SDA从低电平向高电平切换
起始和结束位是由主机产生,总线在起始位开始之后被认为是处于忙状态,在出现结束位之后的某段时间后总线被确认为闲状态。
在起始条件产生后,停止条件产生前出现的起始条件和第一个起始条件在功能上是一样的。表示为(S)。
如果没有硬件检测总线起始和结束的设备想监视IIC总线(如微处理器),那么在每个周期至少采样两次SDA总线来确认有没有电平发生变化。
数据的传输:
字节格式传输:
SDA线上传输的数据必须是8位的,但每次可以传输多个字节。每个字节后面必须跟一个响应位。
总线上每个字节首先传送的是最高位(MSB)。
如果从机在接受数据前要完成一些工作(如中断服务程序)才能接受或发送数据,那么从机可以使时钟线SCL保
持低电平迫使主机进入等待状态。当从机准备好后接收下一个数据字节并释放时钟线后,数据传输继续。 在传
输数据时使用同样的方法也不会影响数据的传输。
响应位:
数据传输必须带响应。相关的响应脉冲由主机产生,在响应的时钟脉冲期间,发送器释放SDA线(此时为高电平)响应的时钟脉冲期间,接收器必须将SDA线拉低,并保持。(CBUS除外)
如果从机不能响应从机地址(在执行别的程序),从机必须使数据线保持高电平。主机会产生一个停止条件终止
传输或者产生重复起始条件开始新的传输。
如果从机接收器响应了从机地址但是在传输了一段时间后不能接受更多的数据字节,主机必须终止传输。这个情
况用从机在第一个字节后没有产生响应来表示。从机使数据线保持高电平 主机产生一个停止或重复起始条件。
如果主机为接收模式,它必须在从机发送结束,时钟停止的最后一个字节不发送响应位,从而告诉发送器数据结
束。从机发送器释放数据线,允许主机产生一个停止或重复起始条件。
数据传输时序,数据响应时序如下图:

本文引用地址:https://www.eepw.com.cn/article/201611/322091.htm
数据响应:
数据仲裁:
所有主机在SCL总线上产生自己的时钟来传输数据,数据只在时钟的高电平周期有效。
时钟同步通过线与SCL线来执行。就是说:SCL线的高低切换会使器件开始数它们的低电平周期,而且一旦器件的时钟变低,它会使SCL线保持这种状态知道到达时钟的高电平。但是,当变为高电平时,另一个总线上的时钟仍处于低电平周期,这个低到高的电平变化不会出现在总线上改变SCL的状态。所以,SCL线被最长低电平周期的器件所持有,此时低电平周期短的器件会进入高电平的等待状态。
上一页 1 2 下一页

关键词: 单片机IIC总线技

评论


技术专区

关闭