CN105335322B - 一种spi接口转换i2c总线接口的方法及转换器 - Google Patents
一种spi接口转换i2c总线接口的方法及转换器 Download PDFInfo
- Publication number
- CN105335322B CN105335322B CN201510714137.8A CN201510714137A CN105335322B CN 105335322 B CN105335322 B CN 105335322B CN 201510714137 A CN201510714137 A CN 201510714137A CN 105335322 B CN105335322 B CN 105335322B
- Authority
- CN
- China
- Prior art keywords
- interface
- data
- spi interface
- spi
- bus
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/40—Bus coupling
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种SPI接口转换I2C总线接口的方法及转换器,包括:步骤S10根据SPI接口的时钟频率,接收SPI接口发送的数据;步骤S20将接收到的数据存入数据缓存区内;步骤S30判断接收的数据是否完整;若是,则执行步骤S50;若否,则执行步骤S40;步骤S40判断数据缓存区是否已满;若是,则执行步骤S50;若否,则执行步骤S10;步骤S50接收SPI接口发送的指示选择相应的I2C总线通道启动;步骤S60根据I2C接口的时钟频率,将数据缓存区内的数据发送出去。本发明利用SPI接口通过转换器扩展出I2C总线接口,满足了电子设备对I2C总线数量越来越大的需求。
Description
技术领域
本发明涉及总线通信技术领域,特别是涉及一种SPI接口转换I2C总线接口的方法。
背景技术
I2C(集成电路总线,Inter-Integrated Circuit)总线是一种两线式串行总线,用于连接微控制器及其外围设备。由于其简单、灵活、硬件管脚资源少等优点,在器件与器件之间的通信中有着广泛的应用。在标准的I2C总线协议中,物理链路分别是一条串行数据线(SDA)和一条串行时钟线(SCL)。
总线中的器件被分为主机和从机。主机是初始化总线的数据传输并产生允许传输的时钟信号的器件。此时,任何被寻址的器件都被认为是从机。每个从机一般均有一个唯一的地址,主机可以通过该地址,配置和管理相应的从机。
但在实际应用中,有可能会出现多个从机地址相同的情况。例如,现有用于以太网交换机的光模块,其I2C地址都是已经固定的A0H。此时如果采用传统的方法,主机是无法对具有相同地址的从机进行管理、配置和通信。这时就需要多组I2C总线对光模块进行操作。
一般I2C从机芯片都有三个地址线,I2C总线上挂接的I2C从机芯片不能超过8个,比如常用的温度传感器芯片LM75。随着目前以太网交换机的体积越来越大,需要检测的温度点可能会超过8个,这时就需要两个以上的I2C总线,而有的CPU上只有一组I2C总线接口甚至没有I2C接口,这就导致主机无法同时连接多个电子设备进行检测。即使CPU上有SPI(串行外设接口,Serial Peripheral Interface)接口,也无济于事。
发明内容
本发明就是针对上述问题,提供一种SPI接口转换I2C总线接口的方法。为了实现上述目的,本发明采用如下技术方案:
步骤S10根据SPI接口的时钟频率,接收SPI接口发送的数据;步骤S20将接收到的数据存入数据缓存区内;步骤S30判断接收的数据是否完整;若是,则执行步骤S50;若否,则执行步骤S40;步骤S40判断数据缓存区是否已满;若是,则执行步骤S50;若否,则执行步骤S10;步骤S50接收SPI接口发送的指示选择相应的I2C总线通道启动;步骤S60根据I2C接口的时钟频率,将数据缓存区内的数据发送出去。
本发明还提供另一种SPI接口转换I2C总线接口的方法,包括:步骤S10根据SPI接口的时钟频率,接收SPI接口发送的数据;步骤S20将接收到的数据存入数据缓存区内;步骤S30判断接收的数据是否完整;若是,则执行步骤S50;若否,则执行步骤S40;步骤S40判断数据缓存区是否已满;若是,则执行步骤S50;若否,则执行步骤S10;步骤S50接收SPI接口发送的指示选择相应的I2C总线通道启动;步骤S60根据I2C接口的时钟频率,将数据缓存区内的数据发送出去;步骤S70将数据缓存区清零,执行步骤S10。
优选地,本发明还包括步骤S01设定数据缓存区的大小。
优选地,本发明还包括步骤S02将SPI接口设为主设备模式;步骤S03将I2C总线接口设为从设备模式。
优选地,本发明还包括步骤S04设置I2C总线接口的时钟频率。
本发明还提供一种SPI接口与I2C总线接口的转换器,其中所述转换器包括:SPI接口,与所述发送设备的SPI接口相连;数据缓存模块,与所述转换器上的SPI接口相连,接收SPI接口收到的数据并进行缓存;判断模块,与所述数据缓存模块相连,判断所述数据缓存模块接收的数据是否完整,以及所述数据缓存模块是否已满;I2C通道选择模块,与所述转换器上的SPI接口相连,根据SPI接口收到的指示选择相应的I2C总线通道启动;I2C接口,与所述数据缓存模块、I2C通道选择模块相连,并与所述接收设备的I2C接口相连,根据I2C通道选择模块的选择,按照I2C接口的时钟频率,将数据缓存区内的数据发送出去。
优选地,所述转换器还包括循环控制模块,与所述数据缓存模块相连,控制数据缓存区在数据发送完毕后清零,并使SPI接口继续接收数据。
优选地,所述转换器为复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice);所述数据缓存模块是复杂可编程逻辑器件内部开辟出的数据缓存区。
本发明还提供一种SPI接口与I2C总线接口的转换装置,包括:转换器以及与所述转换器相连的时钟信号发生器,为所述转换器的I2C总线接口的串行时钟线提供时钟信号。
优选地,所述转换装置还包括具有至少一个SPI接口的发送设备,与所述转换器的SPI接口相连;至少一个具有I2C接口的接收设备,与所述转换器的I2C接口相连。
与现有技术相比,本发明利用SPI接口通过转换器扩展出I2C总线接口,在主设备I2C总线接口没有或不够的情况下,满足了电子设备对I2C总线数量越来越大的需求,且I2C接口数量可以根据实际情况及转换器的接口数量决定,具有较大的灵活性。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种SPI接口转换I2C总线接口的方法及转换器的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明一种SPI接口转换I2C总线接口的方法的主要流程图;
图2是本发明一种SPI接口转换I2C总线接口的方法的完整流程图;
图3是本发明一种SPI接口与I2C总线接口转换器的完整组成结构示意图;
图4是本发明一种SPI接口与I2C总线接口的转换装置的电路图。
附图标号说明:
1.SPI接口,2.数据缓存模块,3.判断模块,4.I2C通道选择模块,5.I2C接口,6.循环控制模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
图1是本发明一种SPI接口转换I2C总线接口的方法的主要流程图。如图1所示,一种SPI接口转换I2C总线接口的方法,包括:步骤S00开始;步骤S10根据SPI接口的时钟频率,接收SPI接口发送的数据;步骤S20将接收到的数据存入数据缓存区内;步骤S30判断接收的数据是否完整;若是,则执行步骤S50;若否,则执行步骤S40;步骤S40判断数据缓存区是否已满;若是,则执行步骤S50;若否,则执行步骤S10;步骤S50接收SPI接口发送的指示选择相应的I2C总线通道启动;步骤S60根据I2C接口的时钟频率,将数据缓存区内的数据发送出去。
优选地,所述步骤S60之后还包括:步骤S70将数据缓存区清零,执行步骤S10。
具体的,本实施例中从SPI接口接收到的数据先要存入数据缓存区内,如果要接收的数据量大于数据缓存区容量,则需要通过数据缓存区多次缓存,分多次将要发送的数据通过I2C总线通道发送出去。
图2为本发明一种SPI接口转换I2C总线接口的方法的完整流程图。在本发明另一个改进的实施例中,除与上述实施例相同的部分之外,还包括,如图2所示,步骤S01设定数据缓存区的大小。
在本发明另一个改进的实施例中,除与上述实施例相同的部分之外,还包括,如图2所示,步骤S02将SPI接口设为主设备模式;步骤S03将I2C总线接口设为从设备模式。
在本发明另一个改进的实施例中,除与上述实施例相同的部分之外,还包括,如图2所示,步骤S04设置I2C总线接口的时钟频率。
图3是本发明一种SPI接口与I2C总线接口转换器的完整组成结构示意图。如图3所示,本发明提供一种SPI接口与I2C总线接口的转换器,包括:SPI接口1,与所述发送设备的SPI接口相连;数据缓存模块2,与所述转换器上的SPI接口1相连,接收SPI接口1收到的数据并进行缓存;判断模块3,与所述数据缓存模块2相连,判断所述数据缓存模块2接收的数据是否完整,以及所述数据缓存模块2是否已满;I2C通道选择模块4,与所述转换器上的SPI接口1相连,根据SPI接口1收到的指示选择相应的I2C总线通道启动;I2C接口5,与所述数据缓存模块2、I2C通道选择模块4相连,并与所述接收设备的I2C接口相连,根据I2C通道选择模块的选择,按照I2C接口的时钟频率,将数据缓存区内的数据发送出去。
对上述实施例进行改进,如图3所示,本发明还提供另一种SPI接口与I2C总线接口的转换器,包括:SPI接口1,与所述发送设备的SPI接口相连;数据缓存模块2,与所述转换器上的SPI接口1相连,接收SPI接口1收到的数据并进行缓存;判断模块3,与所述数据缓存模块2相连,判断所述数据缓存模块2接收的数据是否完整,以及所述数据缓存模块2是否已满;I2C通道选择模块4,与所述转换器上的SPI接口1相连,根据SPI接口1收到的指示选择相应的I2C总线通道启动;I2C接口5,与所述数据缓存模块2、I2C通道选择模块4相连,并与所述接收设备的I2C接口相连,根据I2C通道选择模块的选择,按照I2C接口的时钟频率,将数据缓存区内的数据发送出去;循环控制模块6,与所述数据缓存模块2相连,控制数据缓存区在数据发送完毕后清零,并使SPI接口1继续接收数据。
优选地,所述转换器为复杂可编程逻辑器件(CPLD);数据缓存模块2是复杂可编程逻辑器件(CPLD)内部开辟出的数据缓存区。
图4是本发明一种SPI接口与I2C总线接口的转换装置的电路图。如图4所示,U1是交换机等数据通信领域常用的CPU P1014,即具有至少一个SPI接口的发送设备;U2是常用的CPLD EPM240,即转换器;与U2相连的U3,即至少一个具有I2C接口的接收设备,也是I2C总线接口。3.3V电压经C1滤波后进入J1的第四脚,R1、R2、R3和J1组成JTAG电路,用以芯片的测试。另一组3.3V电压经C2滤波后进入OSC1的第一和第四脚,分别给晶体振荡器提供电源和使能信号,I2C总线接口的串行时钟线的时钟信号由OSC1提供。U2的电源和地引脚分别接3.3V电源和地。U2的IO45-IO48分别于CPU的SPI总线对应引脚相连。U2的IO68与CPU的中断引脚输入端IRQ_1相连。
对上述实施例进行改进,如图4所示,本发明还提供一种SPI接口与I2C总线接口的转换装置,包括,与所述转换器相连的时钟信号发生器,为所述转换器的I2C总线接口的串行时钟线提供时钟信号。
对上述实施例进行改进,如图4所示,本发明还提供一种SPI接口与I2C总线接口的转换装置,包括,具有至少一个SPI接口的发送设备,与所述转换器的SPI接口相连;至少一个具有I2C接口的接收设备,与所述转换器的I2C接口相连。
具体的,本实施例中的发送设备可以是拥有SPI接口的中央处理器(CPU),它是是一块超大规模的集成电路,它的主要功能是发送数据到转换器。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种SPI接口转换I2C总线接口的方法,其特征在于,包括:
步骤S10:根据SPI接口的时钟频率,接收SPI接口发送的数据;
步骤S20:将接收到的数据存入数据缓存区内;
步骤S30:判断接收的数据是否完整;若是,则执行步骤S50;若否,则执行步骤S40;
步骤S40:判断数据缓存区是否已满;若是,则执行步骤S50;若否,则执行步骤S10;
步骤S50:接收SPI接口发送的指示选择相应的I2C总线通道启动;
步骤S60:根据I2C接口的时钟频率,将数据缓存区内的数据发送出去;
步骤S70:将数据缓存区清零,执行步骤S10。
2.如权利要求1所述的SPI接口转换I2C总线接口的方法,其特征在于,还包括:
步骤S01:设定数据缓存区的大小。
3.如权利要求1-2任一所述的SPI接口转换I2C总线接口的方法,其特征在于,还包括:
步骤S04:设置I2C总线接口的时钟频率。
4.如权利要求3所述的SPI接口转换I2C总线接口的方法,其特征在于,还包括:
步骤S02:将SPI接口设为主设备模式;
步骤S03:将I2C总线接口设为从设备模式。
5.一种SPI接口与I2C总线接口的转换器,其特征在于,所述转换器包括:
SPI接口,与发送设备的SPI接口相连;
数据缓存模块,与所述转换器上的SPI接口相连,接收SPI接口收到的数据并进行缓存;
判断模块,与所述数据缓存模块相连,判断所述数据缓存模块接收的数据是否完整,以及所述数据缓存模块是否已满;
I2C通道选择模块,与所述转换器上的SPI接口相连,根据SPI接口收到的指示选择相应的I2C总线通道启动;
I2C接口,与所述数据缓存模块、I2C通道选择模块相连,并与接收设备的I2C接口相连,根据I2C通道选择模块的选择,按照I2C接口的时钟频率,将数据缓存区内的数据发送出去;
循环控制模块,与所述数据缓存模块相连,控制数据缓存区在数据发送完毕后清零,并使SPI接口继续接收数据。
6.如权利要求5所述的SPI接口与I2C总线接口的转换器,其特征在于:
所述SPI接口与I2C总线接口的转换器为复杂可编程逻辑器件;
所述数据缓存模块是复杂可编程逻辑器件内部开辟出的数据缓存区。
7.一种SPI接口与I2C总线接口的转换装置,其特征在于,包括:
如权利要求5-6任一所述的SPI接口与I2C总线接口的转换器;以及
与所述SPI接口与I2C总线接口的转换器相连的时钟信号发生器,为所述SPI接口与I2C总线接口的转换器的I2C总线接口的串行时钟线提供时钟信号。
8.如权利要求7所述的SPI接口与I2C总线接口的转换装置,其特征在于,还包括:
具有至少一个SPI接口的发送设备,与所述转换器的SPI接口相连;
至少一个具有I2C接口的接收设备,与所述转换器的I2C接口相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510714137.8A CN105335322B (zh) | 2015-10-28 | 2015-10-28 | 一种spi接口转换i2c总线接口的方法及转换器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510714137.8A CN105335322B (zh) | 2015-10-28 | 2015-10-28 | 一种spi接口转换i2c总线接口的方法及转换器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335322A CN105335322A (zh) | 2016-02-17 |
CN105335322B true CN105335322B (zh) | 2018-07-24 |
Family
ID=55285868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510714137.8A Active CN105335322B (zh) | 2015-10-28 | 2015-10-28 | 一种spi接口转换i2c总线接口的方法及转换器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335322B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255231B (zh) * | 2016-12-28 | 2020-10-02 | 深圳市中兴微电子技术有限公司 | 一种数据采样方法和芯片 |
CN114036096B (zh) * | 2021-11-04 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201123723A (en) * | 2009-12-31 | 2011-07-01 | Alcor Micro Corp | I2C/SPI control interface circuitry, integrated circuit structure, and bus structure thereof |
CN202167015U (zh) * | 2011-08-19 | 2012-03-14 | 湖南文理学院 | 串行接口转换电路 |
CN103577368A (zh) * | 2013-11-11 | 2014-02-12 | 东莞市泰斗微电子科技有限公司 | 一种基于spi协议的iic扩展通信方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973598B2 (en) * | 2002-01-28 | 2005-12-06 | Dell Products L.P. | Computer system with improved data capture system |
JP5530269B2 (ja) * | 2010-06-28 | 2014-06-25 | ラピスセミコンダクタ株式会社 | 通信インタフェース装置及び通信方法 |
-
2015
- 2015-10-28 CN CN201510714137.8A patent/CN105335322B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201123723A (en) * | 2009-12-31 | 2011-07-01 | Alcor Micro Corp | I2C/SPI control interface circuitry, integrated circuit structure, and bus structure thereof |
CN202167015U (zh) * | 2011-08-19 | 2012-03-14 | 湖南文理学院 | 串行接口转换电路 |
CN103577368A (zh) * | 2013-11-11 | 2014-02-12 | 东莞市泰斗微电子科技有限公司 | 一种基于spi协议的iic扩展通信方法及装置 |
Non-Patent Citations (1)
Title |
---|
《基于CP2120的SPI与I2C总线接口转换电路设计》;段向东 等;《国外电子元器件》;20071205;第47-49、54页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105335322A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201710921A (zh) | 在共同實體介面上之動態資料鏈結選擇 | |
CN104518933B (zh) | 在uart环路通信中自动设置id的方法 | |
JP6538715B2 (ja) | ハイブリッド仮想gpio | |
CN107273329B (zh) | 虚拟gpio | |
US20110102053A1 (en) | Method and soc for implementing time division multiplex of pin | |
CN103085487A (zh) | 一种带自适应触点的成像盒芯片、成像盒及其自适应方法 | |
CN105159860A (zh) | Iic扩展系统及方法 | |
CN104714908B (zh) | 支持主从模式的spi接口 | |
CN108604219B (zh) | 具有最优传输等待时间的串行通信链路 | |
CN108052473B (zh) | 串行通信装置 | |
CN105335322B (zh) | 一种spi接口转换i2c总线接口的方法及转换器 | |
CN104133799A (zh) | 一种多网卡ncsi管理系统 | |
JPH0678019A (ja) | インターフェース装置 | |
JP5332428B2 (ja) | レベルシフト回路及びその方法 | |
CN105281782A (zh) | 通用串行器架构 | |
CN208580391U (zh) | 一种双通道数字中频处理板 | |
CN106713094A (zh) | 一种1394数据采集模块 | |
CN206757602U (zh) | 一种基于SoC支持多个SPI接口标准组的装置 | |
CN108959156A (zh) | 电路装置、电子设备、电缆束及数据传输方法 | |
CN107239423A (zh) | 一种基于扩展iic接口的装置 | |
WO2005083577A2 (en) | Integrated circuit with two different bus control units | |
CN105589821B (zh) | 一种防止总线死锁的装置及方法 | |
WO2019146397A1 (ja) | 制御回路、通信装置、及び、通信システム | |
CN116541329A (zh) | 一种数据传输方法、装置、设备及介质 | |
CN207601784U (zh) | 一种usb装置、接口驱动板及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201209 Address after: 313028 Industrial Park, balidian Town, Huzhou City, Zhejiang Province Patentee after: HUZHOU FENGYUAN AGRICULTURAL EQUIPMENT MANUFACTURE Co.,Ltd. Address before: 201616 No. 3666 Sixian Road, Songjiang District, Shanghai Patentee before: Phicomm (Shanghai) Co.,Ltd. |