一种实现spi从设备主动申请传输的方法

文档序号:7480 发布日期:2021-09-17 浏览:48次 英文

一种实现SPI从设备主动申请传输的方法

技术领域

本发明涉及通信

技术领域

,具体涉及一种实现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设备上增加握手线,本发明在不需要借助额外的其他通信协议和握手接口的情况下,从设备能够实现主动发起数据传输请求或数据获取请求,减少了增加的接口数目、面积和功耗,降低了成本。

尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种内嵌FPGA的众核架构及其数据处理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!