CN117149693A - 一种基于主设备实现spi接口与i2c接口复用的电路及方法 - Google Patents
一种基于主设备实现spi接口与i2c接口复用的电路及方法 Download PDFInfo
- Publication number
- CN117149693A CN117149693A CN202311193219.3A CN202311193219A CN117149693A CN 117149693 A CN117149693 A CN 117149693A CN 202311193219 A CN202311193219 A CN 202311193219A CN 117149693 A CN117149693 A CN 117149693A
- Authority
- CN
- China
- Prior art keywords
- pin
- input
- output pin
- interface
- output
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000002093 peripheral effect Effects 0.000 claims abstract description 73
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开了一种基于主设备实现SPI接口与I2C接口复用的电路及方法,该电路包括:PS端将信号通过时钟管脚、数据输出管脚、数据输入管脚和使能管脚中任意两个后,分别经PL端的第一输入管脚、第二输入管脚和第一输入输出管脚中任意两个后,再分别经PL端的第一输出管脚和第一输入输出管脚后传输至SPI接口外设;PL端将信号分别通过第一输出管脚和第一输入输出管脚后,分别与I2C接口外设对应的管脚连接,以实现PL端与I2C接口外设通信。本发明有效的降低了硬件资源开销及成本,且稳定可靠。
Description
技术领域
本发明涉及电路技术领域,特别是一种基于主设备实现SPI接口与I2C接口复用的电路及方法。
背景技术
SPI是串行外设接口(serial peripheral interface)的缩写。SPI接口是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,SPI作为标准同步串行接口获得了极为广泛的支持,目前大量ADC、DAC、RTC、FLASH、MCU微控制器等都支持SPI接口。
I2C(inter-intergrated circuit)总线全称为芯片间总线接口,是Philips公司推出的一种串行总线,通过SDA(串行数据线)和SCL(串行时钟线)两根线在连到总线上的器件之间传送数据,并根据地址识别每个器件,用于连接微控制器及其外围设备,I2C总线仅占用两根信号线,在微处理器系统中极大地节约了I/O接口,因而得到了大量的器件支持,现已成为标准串行接口。
SPI接口与I2C接口都是标准的串行接口,在微控制器及其各种外设之间广泛应用。但两种接口互不兼容,若需要同时用到SPI接口和I2C接口,则需要占用6根线(SPI接口需要4根线、I2C接口需要2根线)分别实现SPI接口和I2C接口,或者通过硬件开关切换接口类型,不管是通过不同的管脚分别实现这两种接口还是通过硬件开关切换接口类型,都会增加硬件资源开销及相应硬件成本。而现在很多设备都追求小型化轻量化,但硬件资源及成本都不充裕,因此急需一种多接口类型复用的方法。
发明内容
鉴于此,本发明提供一种基于主设备实现SPI接口与I2C接口复用的电路及方法,通过软硬件结合的方式复用SPI接口和I2C接口,解决SPI接口与I2C接口互不兼容的问题,有效的降低硬件资源开销及成本,且稳定可靠。
本发明公开了一种基于主设备实现SPI接口与I2C接口复用的电路,其包括:建立通信连接的主设备和从设备;主设备包括PL端和PS端;从设备包括I2C接口外设和SPI接口外设;
PS端包括时钟管脚、数据输出管脚、数据输入管脚和使能管脚;PL端包括第一输入管脚、第二输入管脚、第一输出管脚和第一输入输出管脚;
PS端将信号通过时钟管脚、数据输出管脚、数据输入管脚和使能管脚中任意两个后,分别经PL端的第一输入管脚、第二输入管脚和第一输入输出管脚中任意两个后,再分别经PL端的第一输出管脚和第一输入输出管脚后传输至SPI接口外设;
PL端将信号分别通过第一输出管脚和第一输入输出管脚后,分别与I2C接口外设对应的管脚连接,以实现PL端与I2C接口外设通信。
进一步地,所述PS端的时钟管脚和数据输出管脚分别与PL端的第二输入管脚和第一输入管脚连接;
第二输入管脚通过第一输出管脚与SPI接口外设的时钟管脚连接;
第一输入管脚通过第一输入输出管脚与SPI接口外设的数据输入管脚连接。
进一步地,所述PL端通过第一输出管脚和第一输入输出管脚分别通过信号线与I2C接口外设的时钟管脚和数据管脚连接,以实现PL端与I2C接口外设通信。
进一步地,所述PS端的数据输入管脚和使能管脚分别通过数据线与SPI接口外设的数据输出管脚和使能管脚连接。
进一步地,所述主设备为微控制器或处理器。
本发明还提供了一种基于主设备实现SPI接口与I2C接口复用的方法,其包括以下步骤:
步骤1:确定主设备的接口访问标志;
步骤2:根据确定的接口访问标志,主设备的PS端经PL端后通过信号线与SPI接口外设连接;或者是,主设备的PL端通过数据线与I2C接口外设连接。
进一步地,当主设备的接口访问标志为SPI接口时,将PL端的第二输入管脚的输入信号通过第一输出管脚输出,即将PS端的时钟信号通过PL端的第一输出管脚传输至SPI接口外设;
将PL端的第一输入输出双向管脚置为输出脚;
将PL端的第一输入管脚的输入信号通过第一输入输出管脚输出,即将PS端的输出管脚通过PL端的第一输入输出管脚传输至SPI接口外设。
进一步地,当主设备的接口访问标志为I2C接口时,根据当前访问I2C接口外设通信需求,判断是需要写数据还是读数据。
进一步地,若需要写数据,则将PL端的第一输入输出管脚置为输出脚;通过PL端的第一输出管脚模拟输出I2C接口外设的时钟信号;通过第一输入输出管脚模拟输出I2C接口外设的数据信号;将PL端的第一输入输出管脚置为输入脚;通过第一输入输出管脚读取I2C接口外设的ACK信号。
进一步地,若需要读数据,则将PL端的第一输入输出管脚置为输入脚;通过PL端的第一输出管脚模拟输出I2C接口外设的时钟信号;通过第一输入输出管脚读取I2C接口外设的数据信号;将PL端的第一输入输出管脚置为输出脚;通过第一输入输出管脚模拟输出ACK信号。
由于采用了上述技术方案,本发明具有如下的优点:给用户提供一种SPI接口与I2C接口复用的方法及思路,亦可由此方法及思路扩展其他多种接口类型的复用,节省硬件资源,有效减低硬件成本,特别是硬件资源都不充裕的情况下,可大大提高资源利用率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1示出常规SPI接口连接示意图;
图2示出常规I2C接口连接示意图;
图3示出了本发明实施例的一种基于ZYNQ处理器实现的SPI接口与I2C接口复用的连接示意图;
图4示出了本发明实施例的访问SPI接口外设时软件逻辑流程图;
图5示出了本发明实施例的访问I2C接口外设时软件逻辑流程图。
具体实施方式
结合附图和实施例对本发明作进一步说明,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
图1示出了常规SPI接口连接示意图,主设备和从设备通过4根信号线进行双向通信。主设备和从设备均包括四个引脚,分别为SCK(时钟管脚)、SIMO(主设备的数据输出管脚,从设备的数据输入管脚)、SOMI(主设备的数据输入管脚,从设备的数据输出管脚)、CS(使能管脚)。其中,SCK,时钟信号,由主设备产生;SIMO,主设备的数据输出,从设备数据输入;SOMI,主设备数据输入,从设备数据输出;CS,从设备片选使能信号,由主设备控制,主设备需要与从设备通信时需要将使能脚信号拉低。
图2示出常规I2C接口连接示意图,主设备和从设备通过2根信号线进行双向通信。主设备和从设备均包括2个引脚,分别为SDA(数据管脚)和SCL(时钟管脚)。其中,SDA,双向数据线,写数据时由主设备发给从设备,读数据时由从设备发给主设备。SCL,时钟信号,有主设备产生。
鉴于现有技术存在的问题,本发明提供了一种基于主设备实现SPI接口与I2C接口复用的电路的实施例,其包括:建立通信连接的主设备和从设备;主设备包括PL端和PS端;从设备包括I2C接口外设和SPI接口外设;
PS端包括时钟管脚、数据输出管脚、数据输入管脚和使能管脚;PL端包括第一输入管脚、第二输入管脚、第一输出管脚和第一输入输出管脚;
PS端将信号通过时钟管脚、数据输出管脚、数据输入管脚和使能管脚中任意两个后,分别经PL端的第一输入管脚、第二输入管脚和第一输入输出管脚中任意两个后,再分别经PL端的第一输出管脚和第一输入输出管脚后传输至SPI接口外设;
PL端将信号分别通过第一输出管脚和第一输入输出管脚后,分别与I2C接口外设对应的管脚连接,以实现PL端与I2C接口外设通信。
参见图3,主设备(ZYNQ处理器)与从设备(I2C接口外设、SPI接口外设)之间一共用了4根信号线实现I2C接口与SPI接口的连接通信。PS端的时钟管脚和数据输出管脚分别与PL端的第二输入管脚和第一输入管脚连接;第二输入管脚通过第一输出管脚与SPI接口外设的时钟管脚连接;第一输入管脚通过第一输入输出管脚与SPI接口外设的数据输入管脚连接。
本实施例中,PL端通过第一输出管脚和第一输入输出管脚分别通过信号线与I2C接口外设的时钟管脚和数据管脚连接,以实现PL端与I2C接口外设通信。
本实施例中,PS端的数据输入管脚和使能管脚分别通过数据线与SPI接口外设的数据输出管脚和使能管脚连接。
本实施例中,主设备为微控制器或处理器。可以用DSP处理器或其他微控制器代替ZYNQ处理器。图3示例性给出的是:复用SPI时钟线和数据输出线,亦可以选择SPI接口4根信号线中任意两根线,处理器亦可选择其他微控制器MCU,其他类似的硬件复用原理也在本发明的保护范围之内。
参见图4和图5,本发明提供了一种基于主设备实现SPI接口与I2C接口复用的方法的实施例。其中,图4示出了本发明访问SPI接口外设时软件逻辑流程图,具体为:
步骤S1:将接口访问标志选择为SPI接口;
步骤S2:将PL端IO2管脚输入信号通过IO3管脚输出(第一输出管脚=IO2_IN),即将SPI_SCK(SPI时钟线信号)通过PL端IO3管脚送出至SPI接口外设;
步骤S3:将PL端第一输入输出管脚置为输出脚;
步骤S4:将PL端IO1管脚输入信号通过IO4管脚输出(第一输入输出管脚=IO1_IN),即将SPI_SIMO(主设备SPI数据输出线)通过PL端IO4管脚送出至SPI接口外设;
步骤S5:通过ZYNQ处理器PS端自带的SPI接口访问SPI外设。
在访问SPI接口外设时,采用的就是ZYNQ处理器PS端自带的标准SPI接口及其时序,整个流程中只是将SPI接口的两个信号线经过PL端中转了一下。
图5示出了本发明访问I2C接口外设时软件逻辑流程图,具体为:
步骤S01:将接口访问标志选择为I2C接口;
步骤S02:根据当前访问I2C接口外设通信需求,判断是需要写数据还是读数据,若需要写数据,则继续步骤S03~步骤S07,若需要读数据,则继续步骤S08~步骤S12;
步骤S03:将PL端第一输入输出管脚置为输出脚;
步骤S04:通过PL端第一输出管脚模拟输出I2C时钟信号;
步骤S05:通过第一输入输出管脚模拟输出I2C数据信号;
步骤S06:将PL端第一输入输出管脚置为输入脚;
步骤S07:通过第一输入输出管脚读取从设备ACK信号;
步骤S08:将PL端第一输入输出管脚置为输入脚;
步骤S09:通过PL端第一输出管脚模拟输出I2C时钟信号;
步骤S10:通过第一输入输出管脚读取从设备I2C数据信号;
步骤S11:将PL端第一输入输出管脚置为输出脚;
步骤S12:通过第一输入输出管脚模拟输出ACK信号。
在访问I2C接口外设时,采用的是通过IO口模拟I2C时序实现I2C接口通信,整个流程中I2C接口时序的控制可由PS端控制,然后通过内部寄存器总线送给PL端,再由PL端输出;亦可通过PL端自己模拟控制时序然后直接输出。
本发明先通过硬件物理上实现SPI接口与I2C接口复用,再结合软件逻辑流程分别实现SPI接口与I2C接口的通信访问,通过软硬件的配合最终完成SPI接口与I2C接口的复用。相比传统的通过开关切换接口类型,有效的降低硬件资源开销及成本,且稳定可靠。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (10)
1.一种基于主设备实现SPI接口与I2C接口复用的电路,其特征在于,包括:建立通信连接的主设备和从设备;主设备包括PL端和PS端;从设备包括I2C接口外设和SPI接口外设;
PS端包括时钟管脚、数据输出管脚、数据输入管脚和使能管脚;PL端包括第一输入管脚、第二输入管脚、第一输出管脚和第一输入输出管脚;
PS端将信号通过时钟管脚、数据输出管脚、数据输入管脚和使能管脚中任意两个后,分别经PL端的第一输入管脚、第二输入管脚和第一输入输出管脚中任意两个后,再分别经PL端的第一输出管脚和第一输入输出管脚后传输至SPI接口外设;
PL端将信号分别通过第一输出管脚和第一输入输出管脚后,分别与I2C接口外设对应的管脚连接,以实现PL端与I2C接口外设通信。
2.根据权利要求1所述的电路,其特征在于,所述PS端的时钟管脚和数据输出管脚分别与PL端的第二输入管脚和第一输入管脚连接;
第二输入管脚通过第一输出管脚与SPI接口外设的时钟管脚连接;
第一输入管脚通过第一输入输出管脚与SPI接口外设的数据输入管脚连接。
3.根据权利要求1所述的电路,其特征在于,所述PL端通过第一输出管脚和第一输入输出管脚分别通过信号线与I2C接口外设的时钟管脚和数据管脚连接,以实现PL端与I2C接口外设通信。
4.根据权利要求1所述的电路,其特征在于,所述PS端的数据输入管脚和使能管脚分别通过数据线与SPI接口外设的数据输出管脚和使能管脚连接。
5.根据权利要求1所述的电路,其特征在于,所述主设备为微控制器或处理器。
6.一种基于主设备实现SPI接口与I2C接口复用的方法,其特征在于,包括以下步骤:
步骤1:确定主设备的接口访问标志;
步骤2:根据确定的接口访问标志,主设备的PS端经PL端后通过信号线与SPI接口外设连接;或者是,主设备的PL端通过数据线与I2C接口外设连接。
7.根据权利要求6所述的方法,其特征在于,当主设备的接口访问标志为SPI接口时,将PL端的第二输入管脚的输入信号通过第一输出管脚输出,即将PS端的时钟信号通过PL端的第一输出管脚传输至SPI接口外设;
将PL端的第一输入输出双向管脚置为输出脚;
将PL端的第一输入管脚的输入信号通过第一输入输出管脚输出,即将PS端的输出管脚通过PL端的第一输入输出管脚传输至SPI接口外设。
8.根据权利要求6所述的方法,其特征在于,当主设备的接口访问标志为I2C接口时,根据当前访问I2C接口外设通信需求,判断是需要写数据还是读数据。
9.根据权利要求8所述的方法,其特征在于,若需要写数据,则将PL端的第一输入输出管脚置为输出脚;通过PL端的第一输出管脚模拟输出I2C接口外设的时钟信号;通过第一输入输出管脚模拟输出I2C接口外设的数据信号;将PL端的第一输入输出管脚置为输入脚;通过第一输入输出管脚读取I2C接口外设的ACK信号。
10.根据权利要求8所述的方法,其特征在于,若需要读数据,则将PL端的第一输入输出管脚置为输入脚;通过PL端的第一输出管脚模拟输出I2C接口外设的时钟信号;通过第一输入输出管脚读取I2C接口外设的数据信号;将PL端的第一输入输出管脚置为输出脚;通过第一输入输出管脚模拟输出ACK信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311193219.3A CN117149693A (zh) | 2023-09-15 | 2023-09-15 | 一种基于主设备实现spi接口与i2c接口复用的电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311193219.3A CN117149693A (zh) | 2023-09-15 | 2023-09-15 | 一种基于主设备实现spi接口与i2c接口复用的电路及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149693A true CN117149693A (zh) | 2023-12-01 |
Family
ID=88886756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311193219.3A Pending CN117149693A (zh) | 2023-09-15 | 2023-09-15 | 一种基于主设备实现spi接口与i2c接口复用的电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149693A (zh) |
-
2023
- 2023-09-15 CN CN202311193219.3A patent/CN117149693A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066746B (zh) | 基于i2c接口通过cpld来实现pca9555功能的方法 | |
US7774511B2 (en) | Addressing multiple devices on a shared bus | |
CN109359073B (zh) | 一种基于spi总线的设备间通信方法及装置 | |
JPWO2006035738A1 (ja) | ホストコントローラ | |
CN110765058A (zh) | Gpio实现spi从机功能方法、系统、设备及介质 | |
WO2005106689A1 (en) | Bus system for selectively controlling a plurality of identical slave circuits connected to the bus and method therefore | |
CN112463702B (zh) | 一种级联背板的cpld i2c通道地址分配方法及系统 | |
US20170177538A1 (en) | Communication system with serial ports for automatically identifying device types and communication protocols and method thereof | |
US11630796B2 (en) | Serial peripheral interface (SPI) automatic register address incrementation across data frames | |
MX2007005812A (es) | Metodo, producto de programa de computadora y aparato de interfaz de tarjeta multimedia. | |
CN115033515A (zh) | 一种主从spi通信方法 | |
CN113132198B (zh) | 一种多主一从的spi安全通信装置及通信方法 | |
KR20080080799A (ko) | 메모리의 직렬 인터페이스 방법 및 장치 | |
CN113722261A (zh) | Spi扩展片选数目和增强读写响应时间灵活性的方法 | |
US10176133B2 (en) | Smart device with no AP | |
CN112988637A (zh) | 促进与i2c的向后兼容性的i3c集线器 | |
CN115328845B (zh) | 一种四线串行外设接口通信协议设计的方法 | |
CN117176499A (zh) | 一种主从设备的通信传输方法、装置、系统、设备及介质 | |
CN117149693A (zh) | 一种基于主设备实现spi接口与i2c接口复用的电路及方法 | |
CN112559402B (zh) | 一种基于fpga的pci从接口控制电路及fpga | |
CN111579973B (zh) | 芯片同步测试方法、芯片、电子设备及存储介质 | |
CN111913904B (zh) | 向利用主从通信协议的多个从属装置自动分配互不相同地址的方法及用于其的装置 | |
CN101261585A (zh) | 更新微控制器的韧体的方法及系统 | |
CN217718675U (zh) | Pcie接口、主板以及pcie扩展模块 | |
CN110750476A (zh) | 一种spi总线与并行总线的桥接方法、设备、系统及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |