一种i2c总线的通信方法

文档序号:6334211阅读:313来源:国知局
专利名称:一种i2c总线的通信方法
技术领域
本发明涉及嵌入式通信技术领域,尤其是一种I2C总线的“读”通信方法。
背景技术
I2C (Inter-Integrated Circuit)总线是一种由PHLIPS公司开发的两线式总线, 用于连接微控制器及其外围设备。I2C总线产生于80年代,最初为音频和视频设备开发, 如今主要在服务器管理中使用,其中包括单个组件状态的通信。它的主要优点是其简单性 和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空 间和芯片管脚的数量,降低了互联成本。他的另一个优点是,它支持多主控,其中任何能够 进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。如 今,I2C通讯方式在嵌入式系统技术领域应用越来越多,越来越广。I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU 与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。图1是现有技术中按 I2C通讯操作的时序示意图。通信时序有如下几个步骤
1、主机向所要访问的设备发送一个起始信号,标志着I2C通信开始,同时主机把设备 地址和“写”操作命令发出,若操作成功,设备会发送一个应答信号。2、在随机“写”操作的时候,一般发送的第一个数据作为偏移地址。在偏移地址发 送成功后,设备会送发一个应答信号。同时产生一个中断,中断处理程序把刚得到的偏移地 址保存起来。3、主机向所要访问的设备再次发送一个起始信号,同时主机把设备地址和“读”操 作命令发出,此时设备产生一个中断,中断处理程序把刚刚保存起来的偏移地址寻址,把需 要发送的数据得到。操作成功后,发送一个应答信号,标志着准备发送数据给上位机。4、在设备发送一个应答信号之后,产生一个中断信号,把刚刚准备好发送数据发 送出去o5、结束I2C通讯之前,主机想所要访问的设备发送一个非答应信号和一个停止信 号,同时产生一个中断,相应的中断处理相应的结束操作。在“读”操作时,一般速率最高为100kbps。因为在发送数据前要先去寻址把相应 的数据得到,在这之前只有一个应答信号时间,而寻址操作的时间花费特别长,如果要把速 率再提高,就会出现I2C操作死机的现象。针对这一问题,提出了本发明采用的方法。

发明内容
本发明的目的是提供一种I2C总线的通信方法,运用的寻址操作是在产生的中断 处理程序中得到偏移地址后立即执行的,从而为发送数据准备节约了时间,达到提速的目 的。本发明的目的是通过以下技术方案实现的 一种I2C总线的通信方法,其方法包括主机向所要访问的设备下发设备地址和“写”操作指令步骤,若操作成功,设备会产生 一个应答信号;
主机向所要访问的设备下发访问数据偏移地址的步骤,设备接收到数据产生一个应答
信号;
设备接收到数据后产生中断并保存偏移地址,并根据偏移地址的寻址到相应数据的步 骤,寻址得到的数据为根据当前偏移地址寻址得到的一个数据,或者是根据当前偏移地址 和下一个偏移地址寻址得到的两个数据;
主机向所要访问的设备下发设备地址和“读”操作指令的步骤,若操作成功,设备会产 生一个应答信号;
设备接收到数据后产生中断并下发数据后再寻址得到下发的下一个数据的步骤。主机向所要访问的设备发送“停止”信号的步骤。采用本发明的技术方案,可以达到的有益效果本发明所运用的寻址操作是在产 生的中断处理程序中得到偏移地址后立即执行的,从而为发送数据准备节约了时间,达到 提速的目的。本发明实现简单、可靠,特别适用于处理器性能不高,存储器资源紧张的嵌入 式系统领域。


本发明将通过例子并参照附图的方式说明,其中 图1现有技术的I2C总线通信流程图。图2是本发明的I2C总线通信流程图。
具体实施例方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥 的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙 述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只 是一系列等效或类似特征中的一个例子而已。本发明采用的技术思路是寻址操作是在得到偏移地址后立即执行的,而不是在 “读”命令操作之后,是在产生的中断处理程序中执行的,从而为发送数据准备节约了时间, 达到提速的目的。如图2所示,是本发明I2C总线通信的流程图,一种I2C总线的通信方法,适用于 所有I2C通讯的设备,其通信方法包括
主机向所要访问的设备下发设备地址和“写”操作指令步骤,若操作成功,设备会产生 一个应答信号;
主机向所要访问的设备下发访问数据偏移地址的步骤,设备接收到数据产生一个应答
信号;
设备接收到数据后产生中断并保存偏移地址,并根据偏移地址的寻址到相应数据的步 骤,所述寻址得到的数据为根据当前偏移地址寻址得到的一个数据,或者是根据当前偏移 地址和下一个偏移地址寻址得到的两个数据,根据缓存的大小不同而决定采用哪种方式;主机向所要访问的设备下发设备地址和“读”操作指令的步骤,若操作成功,设备会产 生一个应答信号;
设备接收到数据后产生中断并下发数据后再寻址得到下发的下一个数据的步骤,这样 可以连续读取数据;
主机向所要访问的设备下发“停止”操作指令,若操作成功,设备会产生一个中断,处理 相应的结束操作。下面通过一个具体的实施例予以说明
本实施例采用ADuc7020微控制器(MCU),它具有I2C兼容接口,有两个引脚用于I2C串 口的数据传送SDA和SCL。它具有I2C中断处理服务程序,可以根据I2C状态寄存器,来判 断处理相应的I2C中断操作。它还具有一个二级的缓存,用于存放数据。同时具有缓存的 状态寄存器,用于观察缓存的当前状态。首先把ADuc7020的I2C中断处理程序配置好,在中断处理程序执行相应的操作。 主机首先发送一个开始信号,接着发送ADuc7020的设备地址和“写”命令。ADuc7020在接 收成功后会自动产生一个答应信号。接着主机发送偏移地址,ADuc7020产生一个答应信号, 这时,会产生一个I2C中断,进入中断处理程序。中断处理程序先判断是否产生了 I2C中断, 如果是就先把I2C的状态寄存器值和收到的数据值保存下来。接着判断I2C状态寄存器的值,若此时是以0x4008,表示接收到了起始信号,以及 有一个数据发送过来。然后判断二级缓存状态,看Rx FIFO中是否只有一个值;如果是把 接收到的数据作为偏移地址保存起来,根据这个偏移地址马上执行寻址操作。把寻址得到 的数据放入到I2C的从机发送数据寄存器中,准备发送。由于是二级缓存,再往I2C的从机 发送数据寄存器发送一个空数据。得到数据后,把偏移地址向后移一位。最后把I2C的TX FIFO中断申请使能。接下来主机再发送一个起始信号,ADuc7020的设备地址和“读”命令。由于TX FIFO 已经被填满,虽然TX FIFO中断申请已经使能,但不会在此产生一个I2C中断。此时会少一 个中断。接着ADuc7020自动产生一个应答信号,由于此时的命令是“读”。ADuc7020在产 生了应答信号会产生一个中断,准备发送数据出去。进入中断处理程序,I2C状态寄存器的值被保存下来。接着判断I2C寄存器的值 是否是0x4004,表示数据已经发送出去了。然后把TX FIFO清空,再去寻址把下一个数据得 到放到TX FIFO中,再把一个空值放入,使TX FIFO填满。得到数据后,把偏移地址向后移 一位。最后把I2C的TX FIFO中断申请使能。如果是连续“读”操作,主机在收到数据发送 一个答应,ADuc7020再次会产生一个中断,重复一次上一个中断的处理程序即可。最后主机发送一个非答应信号和一个停止信号。表示停止。随之产生一个中断, 进入中断处理程序后,先判断I2C状态寄存器是否是0x0400。接着把TX FIFO清空,因为 TX FIFO中一直保存着当前传送数据的下一个数据,同时也把地址指向当前位。最后,把TX FIFO中断申请关掉,把首字节传送标志设置上。本发明并不局限于前述的具体实施方式
。本发明扩展到任何在本说明书中披露的 新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
权利要求
一种I2C总线的通信方法,其方法包括主机向所要访问的设备下发设备地址和“写”操作指令的步骤;主机向所要访问的设备下发访问数据偏移地址的步骤;设备接收到数据后产生中断并保存偏移地址的步骤;主机向所要访问的设备下发设备地址和“读”操作指令的步骤;设备接收到数据后产生中断并下发数据的步骤;主机向所要访问的设备发送“停止”信号的步骤;其特征在于,设备接收到数据后产生中断并保存偏移地址的步骤还包括根据偏移地址的寻址到相应数据的步骤。
2.根据权利要求1所述的I2C总线的通信方法,其特片在于,所述寻址操作是在偏移地 址得到后,立即执行,得到所需的数据。
3.根据权利要求1所述的I2C总线的通信方法,其特征在于,所述寻址得到的数据为根 据当前偏移地址寻址得到的一个数据,或者是根据当前偏移地址和下一个偏移地址寻址得 到的两个数据。
4.根据权利要求1所述的I2C总线的通信方法,其特征在于,所述设备接收到数据后产 生中断并下发数据后再寻址得到下发的下一个数据。
5.根据权利要求4所述的I2C总线的通信方法,其特征在于,所述设备接收到数据后产 生中断并下发数据后再寻址得到下发的下一个数据的步骤重复执行,连续读取数据。
全文摘要
本发明公开了一种I2C总线的通信方法,属于嵌入式通信技术领域,应用于I2C总线“读”通信方式。一种I2C总线的通信方法,其方法包括主机向所要访问的设备下发设备地址和“写”操作指令步骤;主机向所要访问的设备下发访问数据偏移地址的步骤;设备接收到数据后产生中断并保存偏移地址,根据偏移地址立即寻址到相应数据的步骤;主机向所要访问的设备下发设备地址和“读”操作指令的步骤;设备接收到数据后产生中断并下发数据的步骤;主机向所要访问的设备下发“停止”命令的步骤。本发明运用的寻址操作是在产生的中断处理程序中得到偏移地址后立即执行的,从而为发送数据准备节约了时间,达到提速的有益效果。
文档编号G06F13/38GK101937413SQ20101051464
公开日2011年1月5日 申请日期2010年10月21日 优先权日2010年10月21日
发明者刘海 申请人:成都优博创技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1