CN113407478A - 一种实现spi从设备主动申请传输的方法 - Google Patents
一种实现spi从设备主动申请传输的方法 Download PDFInfo
- Publication number
- CN113407478A CN113407478A CN202110964497.9A CN202110964497A CN113407478A CN 113407478 A CN113407478 A CN 113407478A CN 202110964497 A CN202110964497 A CN 202110964497A CN 113407478 A CN113407478 A CN 113407478A
- Authority
- CN
- China
- Prior art keywords
- spi
- master device
- slave device
- spi master
- data transmission
- 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
Links
Images
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
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- 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/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种实现SPI从设备主动申请传输的方法,包括:当SPI主设备处于SPI数据传输空闲状态时,所述从设备准备好传输数据或准备好接收数据后主动拉低片选信号来请求SPI数据传输;当SPI主设备通过第一查询响应检测到所述从设备主动发送SPI数据传输请求信号后,所述SPI主设备开始准备传输;当SPI主设备发送了时钟信号并开始准备传输后,从设备释放片选信号,且所述片选信号的驱动由从设备切换到SPI主设备,开始数据传输;当SPI主设备检测到所述从设备完成了数据传输时,所述SPI主设备不再驱动片选信号,片选信号由上拉电阻上拉到高电平;本发明不需要任何外设接口实现了SPI从设备的主动申请数据传输,节省了大量的成本。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种实现SPI从设备主动申请传输的方法。
背景技术
SPI接口本身存在的缺陷是所有传输请求必须由SPI主设备发起,通过SPI主设备周期性地查询SPI从设备来实现数据传输,SPI从设备不能发起任何传输请求,当需要SPI从设备处理数据或SPI主设备被动获取数据时,SPI主设备与SPI从设备之间需要频繁交互,进而使系统性能降低,对实际应用产生较大限制。
公布号为CN108475241A的发明专利公开了一种基于SPI的数据传输方法及装置,该方案中,第一设备通过UART接口向第二设备发送查询和建立连接请求,需要额外增加UART接口作为辅助通讯接口,结构复杂,增加了成本。
公布号为CN112214440A发明专利申请公开了一种基于SPI通信的通信方法,在该方案中,SPI主设备和SPI从设备之间通过READY脉冲线电连接,SPI从设备处理数据,然后缓存数据,并经过READY脉冲线发出500HZ的脉冲信号,SPI主设备监听到此信号,并读取数据。该方案需要额外增加一根READY信号作为请求信号,额外增加了成本。
公布号为CN107832250A的专利申请公开了一种基于SPI的主从通讯系统及可靠传输方法。该方案通过在从SPI设备上增加握手线,并且需要从SPI设备关闭SPI模块以解决SPI接口通信双方时序匹配困难的问题,独立的SPI模块不能实现对SPI主设备的数据请求,成本较高且实现起来较为麻烦。
研究发现,目前的从设备通过SPI向SPI主设备发送数据传输请求时,都需要额外的数据接口或者额外的控制线,大大增加了数据的传输成本,例如上述的公布号为CN108475241A额外增加UART接口;公布号为CN112214440A发明专利额外设计READY脉冲线,公布号为CN107832250A的专利从SPI设备上增加握手线;现有技术已经不能满足现阶段人们的需求,基于现状,急需对现有技术进行改革。
发明内容
本发明实施例提供了一种实现SPI从设备主动申请传输的方法,用以解决背景技术存在的结构复杂、成本高的缺陷。
本发明提供如下技术方案:一种实现SPI从设备主动申请传输的方法,该方法的实现步骤包括:
S101:当SPI主设备处于SPI数据传输空闲状态时,所述从设备准备好传输数据或准备好接收数据后主动拉低片选信号来请求SPI数据传输,当SPI主设备处于非SPI数据传输空闲状态时,从设备不再主动申请数据传输;
S102:当SPI主设备通过第一查询响应检测到所述从设备主动发送SPI数据传输请求信号后,所述SPI主设备开始准备传输;
S103:当SPI主设备发送了时钟信号并开始准备传输后,从设备释放片选信号,且所述片选信号的驱动由从设备切换到SPI主设备,开始数据传输;
S104:当SPI主设备检测到所述从设备完成了数据传输时,所述SPI主设备不再驱动片选信号,片选信号由上拉电阻上拉到高电平。
有益效果:
(1)在不需要借助额外的其他通信协议和外设接口的情况下,SPI从设备能够实现主动发起数据传输请求或数据获取请求,减少了增加的接口数目、面积和功耗,降低了成本。
(2)SPI主设备在空闲期间可以通过休眠等方式来减少功耗,避免了周期性的查询。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于SPI协议的SPI主设备与SPI从设备传输结构示意图;
图2为本发明实施例提供的整体方法结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图和具体实施例对本发明作具体的介绍。
参考图2,本发明提供如下技术方案一种实现SPI从设备主动申请传输的方法,该方法的实现步骤包括:
S101:从设备向SPI主设备发送第一查询请求,该第一查询请求用于查询所述SPI主设备是否处于SPI数据传输空闲状态,当所述从设备根据返回的第一查询请求确定所述SPI主设备处于非SPI数据传输空闲状态时,从设备不再主动申请数据传输;
当所述从设备根据返回的第一查询请求确定所述SPI主设备处于SPI数据传输空闲状态时,所述从设备准备好传输数据或准备好接收数据后主动拉低片选信号来请求SPI数据传输,其中,所述片选信号为双向信号SS,且所述片选信号是通过漏极开路电路转换为双向信号SS;
参考图1,所述漏极开路电路以MOSFET的漏极为输出的电路,完整的漏极开路电路由MOSFET管和上拉电阻组成,该漏极开路电路利用外部电路的驱动能力,能够降低对芯片驱动能力的要求以及驱动比芯片电源电压高的负载,一般来说,漏极开路电路是用于连接不同电平的元器件以及匹配电平,可以将漏极开路电路的各个输出引脚连接到一条线上,通过上拉电阻,在不增加任何元器件的情况下,形成“与逻辑”关系,这也是I2C、SMBus等总线判断占用状态的原理。
S102:所述SPI主设备接收来自从设备的第一查询响应,该第一查询响应用于检测所述从设备是否主动发出了SPI数据传输请求,当所述SPI主设备通过第一查询响应检测到所述从设备主动发送SPI数据传输请求信号后,所述SPI主设备开始准备传输;且所述SPI主设备处于SPI传输空闲状态期间,所述SPI主设备通过休眠来实现低功耗输出,当所述SPI主设备通过第一查询响应检测到所述从设备主动发送SPI数据传输请求信号时,若所述SPI主设备处于低功耗状态,则先唤醒SPI主设备后再开始准备传输,若所述SPI主设备处于非休眠状态,则SPI主设备随时开始准备传输。
S103:所述从设备向SPI主设备发送第二查询请求,该第二查询请求用于查询所述SPI主设备是否发送了串行时钟信号,当所述从设备通过返回的第二查询请求检测到所述SPI主设备发送了时钟信号并开始准备传输后,所述从设备释放片选信号,且所述片选信号的驱动由从设备切换到SPI主设备,开始数据传输;所述片选信号为双向信号SS,且所述片选信号由从设备到SPI主设备驱动的切换过程中无需额外处理。
S104:所述SPI主设备接收来自从设备的第二查询响应,该第二查询响应用于检测所述从设备是否完成了数据传输,当所述SPI主设备通过第二查询响应检测到所述从设备完成了数据传输时,所述SPI主设备不再驱动片选信号,片选信号由上拉电阻上拉到高电平。
参考图1,作为本发明的一种可选实施例,所述SPI主设备与从设备之间具有SPI协议,在遵守SPI协议的同时,并采用漏极开路(open drain)技术,使得SPI主设备与从设备存在如下的关系:
(1)SPI主设备具有发送到从设备的时钟信号SCK,在本发明中,若所述SPI主设备发送了时钟信号给从设备,则表示开始准备传输数据;
(2)SPI主设备通过MOSI信号发送查询请求到从设备,且从设备通过MISO信号发送查询相应到SPI主设备;且在SPI主设备向从设备发送查询请求之前或者在从设备向SPI主设备发送查询响应之前,SPI主设备与从设备之间已经建立了SPI通信连接。
(3)SPI主设备与从设备都可以实现驱动和释放片选信号,且在本发明中,片选信号通过漏极开路电路转换为双向信号SS(SS);从设备通过主动拉低该双向信号SS(SS)来请求SPI数据传输,SPI主设备通过驱动该该双向信号SS(SS)开始数据传输。
需要特别说明的是,目前的从设备通过SPI向SPI主设备发送数据传输请求时,都需要额外的数据接口或者额外的控制线,大大增加了数据的传输成本,公布号为CN108475241A额外增加UART接口;公布号为CN112214440A发明专利额外设计READY脉冲线,公布号为CN107832250A的专利从SPI设备上增加握手线,本发明在不需要借助额外的其他通信协议和握手接口的情况下,从设备能够实现主动发起数据传输请求或数据获取请求,减少了增加的接口数目、面积和功耗,降低了成本。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种实现SPI从设备主动申请传输的方法,其特征在于,包括:
从设备向SPI主设备发送第一查询请求,该第一查询请求用于查询所述SPI主设备是否处于SPI数据传输空闲状态,当所述从设备根据返回的第一查询请求确定所述SPI主设备处于SPI数据传输空闲状态时,所述从设备准备好传输数据或准备好接收数据后主动拉低片选信号来请求SPI数据传输;
所述SPI主设备接收来自从设备的第一查询响应,该第一查询响应用于检测所述从设备是否主动发出了SPI数据传输请求,当所述SPI主设备通过第一查询响应检测到所述从设备主动发送SPI数据传输请求信号后,所述SPI主设备开始准备传输;
所述从设备向SPI主设备发送第二查询请求,该第二查询请求用于查询所述SPI主设备是否发送了串行时钟信号,当所述从设备通过返回的第二查询请求检测到所述SPI主设备发送了时钟信号并开始准备传输后,所述从设备释放片选信号,且所述片选信号的驱动由从设备切换到SPI主设备,开始数据传输;
所述SPI主设备接收来自从设备的第二查询响应,该第二查询响应用于检测所述从设备是否完成了数据传输,当所述SPI主设备通过第二查询响应检测到所述从设备完成了数据传输时,所述SPI主设备不再驱动片选信号,片选信号由上拉电阻上拉到高电平。
2.根据权利要求1所述的一种实现SPI从设备主动申请传输的方法,其特征在于:当所述从设备根据返回的第一查询请求确定所述SPI主设备处于非SPI数据传输空闲状态时,所述从设备不再主动发起数据传输请求。
3.根据权利要求1所述的一种实现SPI从设备主动申请传输的方法,其特征在于:当所述SPI主设备通过第一查询响应检测到所述从设备主动发送SPI数据传输请求信号时,若所述SPI主设备处于低功耗状态,则先唤醒再开始准备传输。
4.根据权利要求1所述的一种实现SPI从设备主动申请传输的方法,其特征在于:所述SPI主设备处于SPI传输空闲状态期间,所述SPI主设备通过休眠来实现低功耗输出。
5.根据权利要求1所述的一种实现SPI从设备主动申请传输的方法,其特征在于:所述片选信号为双向信号SS,且所述片选信号由从设备到SPI主设备驱动的切换过程中无需额外处理。
6.根据权利要求5所述的一种实现SPI从设备主动申请传输的方法,其特征在于:所述片选信号通过漏极开路电路转换为双向信号SS。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110964497.9A CN113407478B (zh) | 2021-08-23 | 2021-08-23 | 一种实现spi从设备主动申请传输的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110964497.9A CN113407478B (zh) | 2021-08-23 | 2021-08-23 | 一种实现spi从设备主动申请传输的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113407478A true CN113407478A (zh) | 2021-09-17 |
CN113407478B CN113407478B (zh) | 2021-11-30 |
Family
ID=77674472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110964497.9A Active CN113407478B (zh) | 2021-08-23 | 2021-08-23 | 一种实现spi从设备主动申请传输的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113407478B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116069698A (zh) * | 2023-03-10 | 2023-05-05 | 苏州萨沙迈半导体有限公司 | Spi数据传输方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552733A (zh) * | 2009-05-15 | 2009-10-07 | 深圳华为通信技术有限公司 | 一种基于spi实现数据传输的方法和系统 |
CN102354305A (zh) * | 2011-09-27 | 2012-02-15 | 青岛海信电器股份有限公司 | 设备间串行通信系统及方法 |
EP3001323A1 (en) * | 2014-09-26 | 2016-03-30 | Oberthur Technologies | Serial peripheral interface |
CN107967227A (zh) * | 2017-12-22 | 2018-04-27 | 苏州国芯科技有限公司 | 一种基于spi的通信方法及spi主机、spi从机 |
CN108446243A (zh) * | 2018-03-20 | 2018-08-24 | 上海奉天电子股份有限公司 | 一种基于串行外设接口的双向通信方法与系统 |
CN108475241A (zh) * | 2016-09-29 | 2018-08-31 | 华为技术有限公司 | 一种基于spi的数据传输方法及装置 |
CN107346294B (zh) * | 2016-05-04 | 2020-11-20 | 上海商米科技集团股份有限公司 | 基于spi协议的数据流控系统及方法 |
CN111984581A (zh) * | 2020-08-14 | 2020-11-24 | 广州邦讯信息系统有限公司 | 一种基于Linux的SPI总线主从设备通讯系统、方法及装置 |
CN112100100A (zh) * | 2020-08-26 | 2020-12-18 | 广州华欣电子科技有限公司 | Spi通信方法及spi设备 |
EP3859542A1 (en) * | 2020-01-31 | 2021-08-04 | Infineon Technologies AG | Spi broadcast mode |
-
2021
- 2021-08-23 CN CN202110964497.9A patent/CN113407478B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101552733A (zh) * | 2009-05-15 | 2009-10-07 | 深圳华为通信技术有限公司 | 一种基于spi实现数据传输的方法和系统 |
CN102354305A (zh) * | 2011-09-27 | 2012-02-15 | 青岛海信电器股份有限公司 | 设备间串行通信系统及方法 |
EP3001323A1 (en) * | 2014-09-26 | 2016-03-30 | Oberthur Technologies | Serial peripheral interface |
CN107346294B (zh) * | 2016-05-04 | 2020-11-20 | 上海商米科技集团股份有限公司 | 基于spi协议的数据流控系统及方法 |
CN108475241A (zh) * | 2016-09-29 | 2018-08-31 | 华为技术有限公司 | 一种基于spi的数据传输方法及装置 |
EP3502908A1 (en) * | 2016-09-29 | 2019-06-26 | Huawei Technologies Co., Ltd. | Spi-based data transmission method and device |
CN108475241B (zh) * | 2016-09-29 | 2021-01-05 | 华为技术有限公司 | 一种基于spi的数据传输方法及装置 |
CN107967227A (zh) * | 2017-12-22 | 2018-04-27 | 苏州国芯科技有限公司 | 一种基于spi的通信方法及spi主机、spi从机 |
CN108446243A (zh) * | 2018-03-20 | 2018-08-24 | 上海奉天电子股份有限公司 | 一种基于串行外设接口的双向通信方法与系统 |
EP3859542A1 (en) * | 2020-01-31 | 2021-08-04 | Infineon Technologies AG | Spi broadcast mode |
CN111984581A (zh) * | 2020-08-14 | 2020-11-24 | 广州邦讯信息系统有限公司 | 一种基于Linux的SPI总线主从设备通讯系统、方法及装置 |
CN112100100A (zh) * | 2020-08-26 | 2020-12-18 | 广州华欣电子科技有限公司 | Spi通信方法及spi设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116069698A (zh) * | 2023-03-10 | 2023-05-05 | 苏州萨沙迈半导体有限公司 | Spi数据传输方法和装置 |
CN116069698B (zh) * | 2023-03-10 | 2023-10-31 | 苏州萨沙迈半导体有限公司 | Spi数据传输方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113407478B (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102778943B (zh) | 状态控制方法、装置及便携终端 | |
US20110072284A1 (en) | Methods of preparing a power saving state, universal serial bus device and universal serial bus host | |
JP3150567U (ja) | コンピューターマザーボードのシャットダウン時の電力消費を減少させる電子装置 | |
WO2011113349A1 (zh) | 上网模块电源管理的方法和装置 | |
JP5259410B2 (ja) | 電力の節約 | |
EP4137955A1 (en) | Slave-to-slave direct communication | |
CN113407478B (zh) | 一种实现spi从设备主动申请传输的方法 | |
CN110568921A (zh) | 一种降低芯片功耗的方法 | |
JP2003515765A (ja) | ディスプレイシステム | |
US11372470B2 (en) | Control system for controlling intelligent system to reduce power consumption based on bluetooth device | |
US6529748B1 (en) | Bilateral power management system | |
CN103514837B (zh) | 终端屏幕背光的控制方法及装置 | |
CN113093899A (zh) | 一种跨电源域数据传输方法 | |
US9098259B1 (en) | Secure digital input/output low-power mode | |
CN113939001B (zh) | 一种mcu和ble芯片间超低功耗通信方法 | |
TW201012189A (en) | Reciprocal wake-up system for handheld devices with insert type wireless communication module and a method therefore | |
CN211826941U (zh) | 一种基于fpd-link的唤醒电路 | |
CN114076963A (zh) | 北斗设备的控制装置及控制系统 | |
CN107168924B (zh) | 功能芯片的控制方法和装置 | |
CN109901696B (zh) | Usb集成电路省电方法及usb集成电路 | |
CN111625484A (zh) | 一种通信装置 | |
WO2018116450A1 (ja) | 無線通信装置及び制御プログラム | |
CN103632518A (zh) | Usb无线网络连接设备、车载系统及其唤醒方法 | |
CN111124976A (zh) | 一种具有通信和防止漏电功能的智能卡及其工作方法 | |
CN114333683B (zh) | 一种降低显示设备静态电流的系统及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |