CN101937413A - 一种i2c总线的通信方法 - Google Patents

一种i2c总线的通信方法 Download PDF

Info

Publication number
CN101937413A
CN101937413A CN 201010514644 CN201010514644A CN101937413A CN 101937413 A CN101937413 A CN 101937413A CN 201010514644 CN201010514644 CN 201010514644 CN 201010514644 A CN201010514644 A CN 201010514644A CN 101937413 A CN101937413 A CN 101937413A
Authority
CN
China
Prior art keywords
data
equipment
offset address
bus
addressing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201010514644
Other languages
English (en)
Other versions
CN101937413B (zh
Inventor
刘海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Superxon Information Technology Co ltd
Nine letter asset management Limited by Share Ltd.
Original Assignee
SUPERXON TECHNOLOGY (CHENGDU) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SUPERXON TECHNOLOGY (CHENGDU) Co Ltd filed Critical SUPERXON TECHNOLOGY (CHENGDU) Co Ltd
Priority to CN 201010514644 priority Critical patent/CN101937413B/zh
Publication of CN101937413A publication Critical patent/CN101937413A/zh
Application granted granted Critical
Publication of CN101937413B publication Critical patent/CN101937413B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种I2C总线的通信方法,属于嵌入式通信技术领域,应用于I2C总线“读”通信方式。一种I2C总线的通信方法,其方法包括:主机向所要访问的设备下发设备地址和“写”操作指令步骤;主机向所要访问的设备下发访问数据偏移地址的步骤;设备接收到数据后产生中断并保存偏移地址,根据偏移地址立即寻址到相应数据的步骤;主机向所要访问的设备下发设备地址和“读”操作指令的步骤;设备接收到数据后产生中断并下发数据的步骤;主机向所要访问的设备下发“停止”命令的步骤。本发明运用的寻址操作是在产生的中断处理程序中得到偏移地址后立即执行的,从而为发送数据准备节约了时间,达到提速的有益效果。

Description

一种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、在设备发送一个应答信号之后,产生一个中断信号,把刚刚准备好发送数据发送出去。
5、结束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中断申请关掉,把首字节传送标志设置上。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

Claims (5)

1.一种I2C总线的通信方法,其方法包括:
主机向所要访问的设备下发设备地址和“写”操作指令的步骤;
主机向所要访问的设备下发访问数据偏移地址的步骤;
设备接收到数据后产生中断并保存偏移地址的步骤;
主机向所要访问的设备下发设备地址和“读”操作指令的步骤;
设备接收到数据后产生中断并下发数据的步骤;
主机向所要访问的设备发送“停止”信号的步骤;
其特征在于,设备接收到数据后产生中断并保存偏移地址的步骤还包括:根据偏移地址的寻址到相应数据的步骤。
2.根据权利要求1所述的I2C总线的通信方法,其特片在于,所述寻址操作是在偏移地址得到后,立即执行,得到所需的数据。
3.根据权利要求1所述的I2C总线的通信方法,其特征在于,所述寻址得到的数据为根据当前偏移地址寻址得到的一个数据,或者是根据当前偏移地址和下一个偏移地址寻址得到的两个数据。
4.根据权利要求1所述的I2C总线的通信方法,其特征在于,所述设备接收到数据后产生中断并下发数据后再寻址得到下发的下一个数据。
5.根据权利要求4所述的I2C总线的通信方法,其特征在于,所述设备接收到数据后产生中断并下发数据后再寻址得到下发的下一个数据的步骤重复执行,连续读取数据。
CN 201010514644 2010-10-21 2010-10-21 一种i2c总线的通信方法 Expired - Fee Related CN101937413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010514644 CN101937413B (zh) 2010-10-21 2010-10-21 一种i2c总线的通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010514644 CN101937413B (zh) 2010-10-21 2010-10-21 一种i2c总线的通信方法

Publications (2)

Publication Number Publication Date
CN101937413A true CN101937413A (zh) 2011-01-05
CN101937413B CN101937413B (zh) 2012-07-04

Family

ID=43390749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010514644 Expired - Fee Related CN101937413B (zh) 2010-10-21 2010-10-21 一种i2c总线的通信方法

Country Status (1)

Country Link
CN (1) CN101937413B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593316A (zh) * 2013-11-25 2014-02-19 深圳市共进电子股份有限公司 一种减少mcu中断占用i2c总线时间的方法
CN104298625A (zh) * 2014-10-11 2015-01-21 龙迅半导体科技(合肥)有限公司 一种iic设备地址的检测方法及装置
CN105117365A (zh) * 2015-07-16 2015-12-02 上海斐讯数据通信技术有限公司 一种基于Mpc837x框架的数据读取方法
CN106126362A (zh) * 2016-06-17 2016-11-16 青岛海信宽带多媒体技术有限公司 一种光模块i2c总线乱时序诊断方法及装置
CN106126452A (zh) * 2016-06-17 2016-11-16 北京大学 基于IIC协议的Linux操作系统与裸机通信的方法
CN108134599A (zh) * 2017-12-04 2018-06-08 山东高云半导体科技有限公司 一种i3c总线控制接口电路
CN108280041A (zh) * 2017-12-29 2018-07-13 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种内部集成电路主机的通信方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996275A (zh) * 2006-11-09 2007-07-11 中兴通讯股份有限公司 10位寻址模式i2c控制器访问大容量存储器的方法
US20070240011A1 (en) * 2006-04-05 2007-10-11 Texas Instruments Incorporated FIFO memory data pipelining system and method for increasing I²C bus speed
US20090327547A1 (en) * 2008-06-30 2009-12-31 In Sung Cho I2c bus compatible with hdmi

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070240011A1 (en) * 2006-04-05 2007-10-11 Texas Instruments Incorporated FIFO memory data pipelining system and method for increasing I²C bus speed
CN1996275A (zh) * 2006-11-09 2007-07-11 中兴通讯股份有限公司 10位寻址模式i2c控制器访问大容量存储器的方法
US20090327547A1 (en) * 2008-06-30 2009-12-31 In Sung Cho I2c bus compatible with hdmi

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593316A (zh) * 2013-11-25 2014-02-19 深圳市共进电子股份有限公司 一种减少mcu中断占用i2c总线时间的方法
CN103593316B (zh) * 2013-11-25 2016-04-06 深圳市共进电子股份有限公司 一种减少mcu中断占用i2c总线时间的方法
CN104298625A (zh) * 2014-10-11 2015-01-21 龙迅半导体科技(合肥)有限公司 一种iic设备地址的检测方法及装置
CN105117365A (zh) * 2015-07-16 2015-12-02 上海斐讯数据通信技术有限公司 一种基于Mpc837x框架的数据读取方法
CN106126362A (zh) * 2016-06-17 2016-11-16 青岛海信宽带多媒体技术有限公司 一种光模块i2c总线乱时序诊断方法及装置
CN106126452A (zh) * 2016-06-17 2016-11-16 北京大学 基于IIC协议的Linux操作系统与裸机通信的方法
CN106126452B (zh) * 2016-06-17 2019-01-01 北京大学 基于IIC协议的Linux操作系统与裸机通信的方法
CN106126362B (zh) * 2016-06-17 2019-01-04 青岛海信宽带多媒体技术有限公司 一种光模块i2c总线乱时序诊断方法及装置
CN108134599A (zh) * 2017-12-04 2018-06-08 山东高云半导体科技有限公司 一种i3c总线控制接口电路
CN108280041A (zh) * 2017-12-29 2018-07-13 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种内部集成电路主机的通信方法和装置
CN108280041B (zh) * 2017-12-29 2020-03-10 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 一种内部集成电路主机的通信方法和装置

Also Published As

Publication number Publication date
CN101937413B (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
US11176068B2 (en) Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
CN101937413B (zh) 一种i2c总线的通信方法
CN101788972B (zh) 一种数据传输的系统与方法
US20180165232A1 (en) Slave device connected to master device via i2c bus and communication method thereof
US9047418B2 (en) Methods and devices for extending USB 3.0-compliant communication
CN1969270B (zh) 用于处理拆分事务的总线控制器
CN107908589B (zh) I3c验证从设备、主从设备的通信验证系统及方法
CN108733600B (zh) 具有直接存储器访问控制器的电子系统及其操作方法
US20070088874A1 (en) Offload engine as processor peripheral
CN102073611B (zh) 一种i2c总线控制系统及方法
CN115499505B (zh) Usb网卡和通信方法
US8788734B2 (en) Methods and devices for universal serial bus port event extension
CN101561790B (zh) 一种主控机与从机通信的方法、系统及装置
US7793024B2 (en) Method for utilizing a PCI-Express bus to communicate between system chips
CN105718396B (zh) 一种大数据主设备传输的i2c总线装置及其通讯方法
CN105356988A (zh) 一种基于PCIe的全双工DMA传输方法
CN105607874B (zh) Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器
CN104615558A (zh) 一种数据传送方法及电子装置
CN102890667A (zh) 一种韦根数据处理装置及方法
CN103593316A (zh) 一种减少mcu中断占用i2c总线时间的方法
CN101976230B (zh) 通用序列总线传输转译器及输入请求同步传输方法
US8904062B2 (en) Network control model driver
CN104850517A (zh) 一种dma传输报文数据的方法及装置
WO2010070530A1 (en) Electronic apparatus comprising a common bus
CN203616748U (zh) 一种解决不同优先级dma传输竞争问题的接口电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Communication method of I2C bus

Effective date of registration: 20130329

Granted publication date: 20120704

Pledgee: Bank of East Asia (China) Co.,Ltd. Chengdu branch

Pledgor: Superxon (Chengdu) Technology Ltd.

Registration number: 2013990000178

PLDC Enforcement, change and cancellation of contracts on pledge of patent right or utility model
C56 Change in the name or address of the patentee

Owner name: SICHUAN SUPERXON INFORMATION TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SUPERXON TECHNOLOGY (CHENGDU) CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 7, No. 216, No. 610041 South City Road, Chengdu hi tech Zone, Sichuan, 101, 201

Patentee after: SICHUAN SUPERXON INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 7, No. 216, No. 610041 South City Road, Chengdu hi tech Zone, Sichuan, 101, 201

Patentee before: Superxon (Chengdu) Technology Ltd.

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: 7, No. 216, No. 610041 South City Road, Chengdu hi tech Zone, Sichuan, 101, 201

Patentee after: Nine letter asset management Limited by Share Ltd.

Address before: 7, No. 216, No. 610041 South City Road, Chengdu hi tech Zone, Sichuan, 101, 201

Patentee before: SICHUAN SUPERXON INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20160606

Address after: 610041, D, 7, Tianfu Software Park, Chengdu hi tech Zone, Sichuan, 201

Patentee after: CHENGDU SUPERXON INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 7, No. 216, No. 610041 South City Road, Chengdu hi tech Zone, Sichuan, 101, 201

Patentee before: Nine letter asset management Limited by Share Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20181021