I2C总线协议及其应用_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、i2c总线协议及其应用i2c协议及其应用一、i2c总线介绍:因为大规模技术的进展,在单个芯片集成cpu以及组成一个单独工作系统所必需的rom、ram、i/o端口、a/d、d/a等外围和已经实现,这就是常说的或微控制器。目前,世界上许多公司生产单片机,品种无数:包括各种字长的cpu,各种容量和品种的rom、ram,以及功能各异的i/o等等。但是,单片机品种规格有限,所以只能选用某种单片机再举行扩展。扩展的办法有两种:一种是并行总线,另一种是串行总线。因为串行总线连线少,结构容易,往往不用专用的母板和插座而挺直用导线衔接各个设备即可。因此,采纳串行总线大大简化了系统硬件设计。philips公司早在

2、十几年就前推出了i2c串行总线,它是具备多主机系统所需的包括裁决和凹凸速设备同步等功能的高性能串行总线。1. i2c总线硬件结构和术语i2c串行总线有两根信号线:一根双向的数据线sda;另一根是时钟线scl。全部接到i2c总线上的设备的串行数据都接到总线的sda线,各设备的时钟线scl接到总线的scl。典型的i2c总线结构1。图1:pc总线结构为了避开总线信号的混乱,要求各设备衔接到总线的输出端必需是开漏输出或集电极开路输出的结构。设备与总线的接口电路2所示。设备上的串行数据线sda接口电路应当是双向的,输出电路用于向总线上发数据,输入电路用于接收总线上的数据。串行时钟线也应是双向的,作为控制

3、总线数据传送的主机要通过scl输出电路发送时钟信号,同时要检测总线上scl上的电平以打算什么时候发下一个时钟脉冲电平;作为接受主机指令的从机,要按总线上的scl的信号发出或接收sda上的信号,也可以向scl线发出低电平信号以延伸总线时钟信号周期。总线空闲时,因各设备都是开漏输出,上拉rp使ada和scl线都保持高电平。任一设备输出的低电平都使相应的总线信号线变低,也就是说各设备的sda是“与”关系,scl也是“与”关系。图2:设备和pc总线接口电路总线对设备接口电路的创造工艺和电平都没有特别的要求(nmos、都可以兼容)。数据传送率按i2c总线可高达每秒十万位,高速方式可高达每秒四十万位。总线

4、上允许衔接的设备数以总线上的量不超过400pf为限。总线的运行(数据传输)由主机控制。所谓主机即启动数据的传送(发出启动信号),发出时钟信号,传送结束时发出停止信号的设备,通常主机是微处理器。被主机寻访的设备都称为从机。为了举行通讯,每个接到i2c总线的设备都有一个唯一的地址,以便于主机寻访。主机和从机的数据传送,可以由主机发送数据到从机,也可以是从机发到主机。凡是发送数据到总线的设备称为发送器,从总线上接收数据的设备被称为接受器。i2c总线上允许衔接多个微处理器及各种外围设备,如存储器、及驱动器、a/d及d/a转换器等。为了保证数据牢靠地传送,任一时刻总线只能有由某一台主机控制一个微处理器应

5、当在总线空闲时发启动数据,为了妥当解决多台微处理器同时发启数据传送(总线控制权)的矛盾,并打算由哪一台微处理器控制总线。i2c总线允许衔接不同传送速率的设备,多台设备之间时钟信号的同步过程称为同步化。2. i2c数据传输在i2c总线传输过程中,将两种特定的状况定义为开头和停止条件(3):当scl保持“高”,sda由“高”变为“低”时为开头条件;scl保持“高”,sda由“低”变为“高”是为停止条件。开头和停止条件由主控器产生。用法硬件接口可以很简单地检测开头和停止条件,没有这种接口的微机必需以每时钟周期起码两次对sda取样以使检测这种变幻。图3:总线开头/停止sda线上的数据在时钟“高”期间必

6、需是稳定的,惟独当scl线上的时钟信号为低时,数据线上的“高”或“低”状态才可以转变。输出到sda线上的每个字节必需是8位,每次传输的字节不受限制,每个字节必需有一个应答为ack。假如一接收器件在完成其他功能(如一内部中断)前不能接收另一数据的完整字节时,它可以保持时钟线scl为低,以促使发送器进入等待状态,当接收器械预备好接受数据的其它字节并释放时钟scl后,数据传输继续举行。i2c数据总线传送时序4。图4:总线数据传送挨次数据传送具有应答是必需的。与应答对应的时钟脉冲由主控器产生,发送器在应答期间必需下拉sda线。当寻址的被控器件不能应答时,数据保持为高,接着主控器产生停止条件终止传输。在

7、传输的过程中,当用到主控接收器的状况下,主控接收器必需发出一数据结束信号给被控发送器,被控发送器必需释放数据线,以允许主控器产生停止条件。合法的数据传输格式如下:超始位被控接收器地址r/w应答位数据应答位、停止位i2c总线在开头条件后的首字节打算哪个被控器将被主控器挑选,例外的是“通用拜访”地址,它可以寻址全部期间。当主控器输出一地址时,系统中的每一器件都将开头条件后的前七位地址和自己地址比较。假如相同,该器件认为自己被主控器寻址,而作为被控接收器或被控发送器则取决于r/w位。二、i2c总线的应用i2c总线是各种总线中用法信号线最少,并具有自动寻址,多主机时钟同步和仲裁等功能很强的总线。因此,

8、用法i2c设计计算机系统非常便利、灵便、体积也小,在各类实际应用中得到广泛应用。下面举两个应用示例。1. 伺服控制系统用i2c扩展lcd显示图5是一个伺服系统的结构图。用8xc752单片机的输出经放大后驱动电机,电机的转速有测速机测取并挺直送到8xc752片内a/d电路。处理后的有关信息经i2c总线送到lcd驱动芯片pcf8577以驱动六十四段lcd显示板。图5:伺服系统结构框图2. 通用i/o端口作为i2c总线接口目前,51、96系列的单片机应用很广,但是它们都没有i2c总线接口,限制了在这些系统中用法具有i2c总线接口的器件。但通过对i2c总线时序的分析知道可以用的两根i/o线来实现i2c总线的功能。i2c总线规定scl线和sda线是各设备对应输出状态相“与”的结果,任一设备都可以用输出低电平的办法延伸scl低电平常间,迫使高速设备进入等待状态,实现不同速度设备间的时钟同步。因此,即使时钟脉冲的高、低

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论