第10章单片机的串行总线扩展技术祥解.docVIP

第10章单片机的串行总线扩展技术祥解.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章单片机的串行总线扩展技术祥解.doc

第11章 单片机的串行总线扩展技术 11.1 I2C总线I2C是Inter-Integrated Circuit的缩写。I2C总线是一种由PHILIPS公司开发的串行总线,用于连接微控制器及其外围设备。具有I2C接口的设备有微控制器、ADC、DAC、存储器、LCD控制器、LCD驱动器以及实时时钟等。 采用I2C总线标准的器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元挂靠或脱离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统简单而灵活的扩展和控制。I2C只有两条线路一条串行数据线SDA),一条串行时钟线SCL),其连接方法如图-1所示。 图-1 I2C总线示意图 连接到I2C总线上的设备分两类:主控设备和从控设备。它们都可以是数据的发送器和接收器,但是数据的接收和发送的发起者只能是主控设备。正常情况下,I2C总线上的所有从控设备被设置为高阻状态,而主控设备保持高电平,表示空闲状态。 I2C具有如下特点: 只有两条一条串行数据线SDA),一条串行时钟线SCL); 每个连接到总线的器件都可以使用软件根据它的唯一的地址来识别; 传输数据的设备间是简单的主从关系; 主机可以用作主机发送器或主机接收器; 它是一个真正的多主机总线,两个或多个主机同时发起数据传输时,可以通过冲突检测和仲裁来防止数据被损坏;串行的8位双向数据传输,位速率在标准模式下可达100kbps在快速模式下可达400kbps在高速模式下可达3.4Mbps。 I2C总线的操作模式为主发送模式、主接收模式、从发送模式和从接收模式。当I2C处于从模式时,要传输数据,必须检测SDA线上的起始条件,起始条件有主控设备产生。起始条件在SCL保持高电平期间,SDA由高电平向低电平的变化状态,如图-2所示。当I2C总线上产生了一个起始条件,那么这条总线就被发出起始条件的主控器占用了,变成忙状态; 而当SCL保持高电平期间,SDA是由低电平向高电平变化状态则规定为停止条件如图-2所示。停止条件也是有主控设备产生,当主控器产生一个停止条件,则停止数据传输,总线被释放,I2C总线变成闲状态。 图 -2 I2C 起始条件和停止条件示意图 从机地址 当主控器发出一个起始条件后,它还立即送出一个从机地址,来通知进行通信的从器件。一般从机地址由7位地址位和1位读写标志R/W组成,7位地址占据高7位,读写位在最后。读写位是0,表示主机将要向从机写入数据;读写位是1,则表示主机将要从从机读取数据。 带有I2C 总线的器件除了有从机地址Slave Address)外,还可能有子地址。从机地址是指该器件在I2C 总线上被主机寻址的地址,而子地址是指该器件内部不同部件或存储单元的编址。例如,带I2C总线接口的E2PROM 就是拥有子地址。某些器件只占少数内部结构比较简单,可能没有子地址,只有必须的从机地址。与从机地址一样,子地址实际上也是像普通数据那样进行传输的,传输格式仍然是与数据相统一的,区分传输的到底是地址还是数据要靠收发双方具体的逻辑约定。子地址的长度必须由整数个字节组成,可能是单字节8位子地址,也可能是双字节16位子地址,还可能是3字节以上,这要看具体器件的规定。 数据传输控制 I2C总线总是以字节Byte)为单位收发数据,每个字节的长度都是8位,每次传送字节的数量没有限制。I2C总线首先传输的是数据的最高位MSB),最后传输的是最低位LSB)。另外,每个字节之后还要跟一个响应位,称为应答。接收器接收数据的情况可以通过应答位来告知发送器。应答位的时钟脉冲仍由主机产生,而应答位的数据状态则遵循谁接收谁产生的原则,即总是由接收器产生应答位。主机向从机发送数据时,应答位由从机产生;主机从从机接收数据时,应答位由主机产生。I2C总线标准规定:应答位为0”,表示接收器应答ACK),简记为A;为1”则表示非应答NACK),简记为。发送器发送完LSB之后,应当释放SDA线,以等待接收器产生应答位。如果接收器在接收完最后一个字节的数据,或者不能再接收更多的数据时,应当产生非应答来通知发送器。发送器如果发现接收器产生了非应答状态,则应当终止发送。 I2C总线基本数据传输格式根据从机地址可以分为7位寻址和10位寻址两种数据格式,无子地址的从机地址由7位地址位和1位读写位构成,称为7位寻址方式,其数据格式如图a)和如图a)所示;有子地址的从机地址为10位寻址方式,分别有7位地址位和1位读写位,以及2位子地址构成,其数据格式如图b)和如图b)所示。 (a)7位寻址的数据格式 (b)10位寻址的数据格式 图 主机向从机发送数据的基本格式 (a)7位寻址的数据格式 (b)10位寻址的数

文档评论(0)

四娘 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档