本发明专利技术公开了一种SPI数据传输方法和装置,用于主从设备间的数据传输,方法包括:主设备检测CS端口的电平和输出使能信号的电平;当CS端口的电平为第一电平且输出使能信号为第一电平时,主设备将CS端口的电平由第一电平变为第二电平,并生成第一数据传输时钟,基于第一数据传输时钟通过MOSI端口与从设备进行数据传输;当CS端口的电平为第二电平时,主设备确定从设备发出传输申请,继续检测,待检测到CS端口的电平为第一电平时,主设备将CS端口的电平由第一电平变为第二电平,并生成第二数据传输时钟,使从设备基于第二数据传输时钟通过MISO端口与主设备进行数据传输。该方法能够避免无效数据的发送或数据的丢失。免无效数据的发送或数据的丢失。免无效数据的发送或数据的丢失。
【技术实现步骤摘要】
SPI数据传输方法和装置
[0001]本专利技术涉及数据传输
,特别涉及一种SPI数据传输方法和一种SPI数据传输装置。
技术介绍
[0002]SPI(Serial Peripheral Interface, 串行外围接口)是一种同步串行外围接口,通常由SCK (Serial Clock,同步时钟)、MOSI (Master out Slave in, 主输出从输入)、MISO (Master in Slave out,主输入从输出)以及CS (Chip Select,片选信号)组成。由主设备(Master)发起,在主设备和从设备(Slave)之间进行高速数据传输。虽然SPI具备数据传输速率快、协议简单且支持全双工通讯等优点,但SPI也有明显的缺点:1、从设备不能主动发起传输申请,所有传输均由主设备发起,从设备只能被动接收,可能导致无效发送或者信息丢失。2、通讯过程中没有应答机制,无法判断传输状态。
[0003]目前,从设备可主动申请传输的SPI设计主要包括以下两种:1、根据SPI的工作状态,利用SPI本身的端口或者额外增加的端口,形成主设备可识别的信号,向主设备发送传输申请。然而,该方法中SPI本身的端口需要增加很多额外的握手逻辑,而增加的端口则会让SPI占用更多的IO资源。2、主设备周期性从MOSI发送查询帧,根据MISO端口反馈确定是否开始或者结束传输,然而,该方法将影响SPI性能,增加系统负担。同时,在SPI中增加应答机制的方法主要包括以下两种:1、在主设备和从设备之间增加IO资源,以支持接收端可以为每个数据帧传输提供应答。无论是增加1个GPIO(General
‑
Purpose Input /Output Ports,通用I/O端口)、从设备可传输状态标志或者脉冲形式的READY状态标志,还是通过UART(异步收发传输器,Universal Asynchronous Receiver/Transmitter)通知从设备状态,都需要使用更多的IO资源,这将导致资源浪费。2、形成特殊的应答帧,从设备通过MISO反馈到主设备,然而这种方法会影响SPI正常的全双工通讯,降低SPI性能。
技术实现思路
[0004]本专利技术旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的目的在于提出一种SPI数据传输方法和装置,以避免无效数据的发送或数据的丢失。
[0005]为达到上述目的,本专利技术第一方面实施例提出了一种SPI数据传输方法,用于主设备和从设备间的数据传输,所述方法包括:所述主设备检测CS端口的电平和输出使能信号的电平;当所述CS端口的电平为第一电平且输出使能信号为第一电平时,所述主设备将所述CS端口的电平由第一电平变为第二电平,并生成第一数据传输时钟,基于所述第一数据传输时钟通过MOSI端口与所述从设备进行数据传输;当所述CS端口的电平为第二电平时,所述主设备确定所述从设备发出传输申请,继续检测所述CS端口的电平,直至检测所述CS端口的电平为第一电平时,将所述CS端口的电平由第一电平变为第二电平,并生成第二数据传输时钟,以使所述从设备基于所述第二数据传输时钟通过MISO端口与所述主设备进行数据传输。
[0006]另外,本专利技术实施例的SPI数据传输方法还可以具有如下附加技术特征:根据本专利技术的一个实施例,当所述上下拉电阻使能控制信号为第一电平、所述上下拉电阻选择控制信号为第一电平时,端口的电平为第一电平;当所述上下拉电阻使能控制信号为第一电平、所述上下拉电阻选择控制信号为第二电平时,端口的电平为第二电平;当所述上下拉电阻使能控制信号为第二电平时,端口处于高阻态,其中,当所述输出使能信号为第一电平时,所述上下拉电阻使能控制信号和所述上下拉电阻选择控制信号对端口的控制无效;在所述主设备检测CS端口的电平之前,所述方法还包括:在所述主设备空闲时,所述主设备分别将所述CS端口、所述MOSI端口和所述MISO端口的上下拉电阻使能控制信号置为第一电平、上下拉电阻选择控制信号置为第一电平;在所述从设备空闲时,所述从设备分别将所述CS端口、所述MOSI端口和所述MISO端口的上下拉电阻使能控制信号置为第一电平、上下拉电阻选择控制信号置为第一电平。
[0007]根据本专利技术的一个实施例,在所述从设备向所述主设备发送传输申请时,所述从设备对所述CS端口的控制过程,包括:所述从设备检测所述CS端口为第一电平,确定所述主设备处于空闲状态;所述从设备在一个内在时钟周期内将所述CS端口置为第二电平;所述从设备在下个内在时钟周期内将所述CS端口的电平由第二电平变为第一电平。
[0008]根据本专利技术的一个实施例,当所述输出使能信号为第一电平、所述输出电平信号为第一电平时,端口的电平为第一电平;当所述输出使能信号为第一电平、所述输出电平信号为第二电平时,端口的电平为第二电平;当所述输出使能信号为第二电平时,端口处于高阻态;所述从设备在一个内在时钟周期内将所述CS端口置为第二电平,包括:所述从设备将所述CS端口的输出使能信号置为第一电平、输出电平信号置为第二电平,以使所述CS端口的电平为第二电平;所述从设备在下个内在时钟周期内将所述CS端口的电平由第二电平变为第一电平,包括:所述从设备将所述CS端口的输出使能信号置为第二电平、上下拉电阻使能控制信号置为第一电平、上下拉电阻选择控制信号置为第一电平,以使所述CS端口电平为第一电平。
[0009]根据本专利技术的一个实施例,所述主设备将所述CS端口的电平由第一电平变为第二电平,包括:所述主设备将所述CS端口的输出使能信号置为第一电平、输出电平信号置为第二电平,以将所述CS端口的电平由第一电平变为第二电平。
[0010]根据本专利技术的一个实施例,所述主设备基于所述第一数据传输时钟通过MOSI端口与所述从设备进行数据传输,包括:所述主设备根据传输数据的内容,将输出电平信号置为对应电平,并通过所述MOSI端口将所述对应电平传输至所述从设备。
[0011]根据本专利技术的一个实施例,在确定发送数据完成后,所述方法还包括:所述主设备将所述MOSI端口的输出使能信号置为第二电平,所述从设备将所述MISO端口的输出使能信号置为第一电平,所述从设备通过所述MISO端口发送第一应答信号,其中,所述第一应答信号由所述从设备根据数据传输状态得到;其中,所述数据传输状态还包括所述主设备所发数据是否错误和/或所述从设备是否继续发送数据。
[0012]根据本专利技术的一个实施例,所述从设备基于所述第二数据传输时钟通过MISO端口与所述主设备进行数据传输,包括:所述从设备根据传输数据的内容,将输出电平信号置为对应电平,并通过所述MISO端口将所述对应电平传输至所述主设备。
[0013]根据本专利技术的一个实施例,在确定发送数据完成后,所述方法还包括:所述从设备
将所述MISO端口的输出使能信号置为第二电平,所述主设备将所述MOSI端口的输出使能信号置为第一电平,所述主设备通过所述MOSI端口发送第二应答信号,其中,所述第二应答信号由所述主设备根据数据传输状态本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种SPI数据传输方法,其特征在于,用于主设备和从设备间的数据传输,所述方法包括:所述主设备检测CS端口的电平和输出使能信号的电平;当所述CS端口的电平为第一电平且输出使能信号为第一电平时,所述主设备将所述CS端口的电平由第一电平变为第二电平,并生成第一数据传输时钟,基于所述第一数据传输时钟通过MOSI端口与所述从设备进行数据传输;当所述CS端口的电平为第二电平时,所述主设备确定所述从设备发出传输申请,继续检测所述CS端口的电平,直至检测所述CS端口的电平为第一电平时,将所述CS端口的电平由第一电平变为第二电平,并生成第二数据传输时钟,以使所述从设备基于所述第二数据传输时钟通过MISO端口与所述主设备进行数据传输。2.根据权利要求1所述的SPI数据传输方法,其特征在于,当上下拉电阻使能控制信号为第一电平、上下拉电阻选择控制信号为第一电平时,端口的电平为第一电平;当所述上下拉电阻使能控制信号为第一电平、所述上下拉电阻选择控制信号为第二电平时,端口的电平为第二电平;当所述上下拉电阻使能控制信号为第二电平时,端口处于高阻态,其中,当所述输出使能信号为第一电平时,所述上下拉电阻使能控制信号和所述上下拉电阻选择控制信号对端口的控制无效;在所述主设备检测CS端口的电平之前,所述方法还包括:在所述主设备空闲时,所述主设备分别将所述CS端口、所述MOSI端口和所述MISO端口的上下拉电阻使能控制信号置为第一电平、上下拉电阻选择控制信号置为第一电平;在所述从设备空闲时,所述从设备分别将所述CS端口、所述MOSI端口和所述MISO端口的上下拉电阻使能控制信号置为第一电平、上下拉电阻选择控制信号置为第一电平。3.根据权利要求2所述的SPI数据传输方法,其特征在于,在所述从设备向所述主设备发送传输申请时,所述从设备对所述CS端口的控制过程,包括:所述从设备检测所述CS端口为第一电平,确定所述主设备处于空闲状态;所述从设备在一个内在时钟周期内将所述CS端口置为第二电平;所述从设备在下个内在时钟周期内将所述CS端口的电平由第二电平变为第一电平。4.根据权利要求3所述的SPI数据传输方法,其特征在于,当所述输出使能信号为第一电平、输出电平信号为第一电平时,端口的电平为第一电平;当所述输出使能信号为第一电平、所述输出电平信号为第二电平时,端口的电平为第二电平;当所述输出使能信号为第二电平时,端口处于高阻态;所述从设备在一个内在时钟周期内将所述CS端口置为第二电平,包括:所述从设备将所述CS端口的输出使能信号置为第一电平、输出电平信号置为第二电平,以使所述CS端口的电平为第二电平;所述从设备在下个内在时钟周期内将所述CS端口的电平由第二电平变为第一电平,包括:所述从设备将所述CS端口的输出使能信号置为第二电平、上下拉电阻使...
【专利技术属性】
技术研发人员:张坤,何学文,刘鹏伟,
申请(专利权)人:上海萨沙迈半导体有限公司天津智芯半导体科技有限公司合肥智芯半导体有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。