CN113886296B - 数据传输方法、装置、设备和存储介质 - Google Patents

数据传输方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN113886296B
CN113886296B CN202111154533.1A CN202111154533A CN113886296B CN 113886296 B CN113886296 B CN 113886296B CN 202111154533 A CN202111154533 A CN 202111154533A CN 113886296 B CN113886296 B CN 113886296B
Authority
CN
China
Prior art keywords
slave
data
transmission
equipment
data length
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
Application number
CN202111154533.1A
Other languages
English (en)
Other versions
CN113886296A (zh
Inventor
杨海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Mxchip Information Technology Co Ltd
Original Assignee
Shanghai Mxchip Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Mxchip Information Technology Co Ltd filed Critical Shanghai Mxchip Information Technology Co Ltd
Priority to CN202111154533.1A priority Critical patent/CN113886296B/zh
Publication of CN113886296A publication Critical patent/CN113886296A/zh
Application granted granted Critical
Publication of CN113886296B publication Critical patent/CN113886296B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本发明实施例公开了一种数据传输方法、装置、设备和存储介质。该方法包括:确定本次的从传输数据长度;进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据;当数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。本发明实施例通过采用上述技术方案,能够避免出现数据错误或数据丢失的情况,提高SPI通信的正确率和成功率。

Description

数据传输方法、装置、设备和存储介质
技术领域
本发明涉及SPI通信技术领域,尤其涉及一种数据传输方法、装置、设备和存储介质。
背景技术
串行外设接口(Serial Peripheral Interface,SPI)常用于两台设备之间传输数据,如用于两台设备的处理器之间传输数据,当传输数据时,可以将一台设备作为主设备(Master),将另一台设备作为从设备(Slave)。
目前,SPI通信通常是采用四线SPI,标准的四线SPI的连接方式如图1所示,其中,CS信号线(即片选信号线)用于供主设备发送片选信号;SCK信号线(即时钟信号线)用于供主设备向从设备的时钟信号;MOSI数据线(即主设备输出从设备输入数据线)用于供主设备向从设备发送数据;MISO数据线(即主设备输入从设备输出数据线)用于供从设备向主设备发送数据。
然而,现有的SPI通信方式,主设备在向从设备发送数据时会出现数据丢失或数据错误的情况,导致SPI通信的正确率和成功率较低。
发明内容
有鉴于此,本发明实施例提供一种数据传输方法、装置、设备和存储介质,以提供SPI通信的正确率和成功率。
第一方面,本发明实施例提供了一种数据传输方法,包括:
确定本次的从传输数据长度;
进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;
启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据;
当数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
第二方面,本发明实施例提供了一种数据传输方法,包括:
确定本次的主传输数据长度;
当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据;
当数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
第三方面,本发明实施例提供了一种数据传输装置,包括:
从确定模块,用于确定本次的从传输数据长度;
第一配置模块,用于进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;
第一传输模块,用于启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据;
第一关闭模块,用于在数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
第四方面,本发明实施例提供了一种数据传输装置,包括:
主确定模块,用于确定本次的主传输数据长度;
第二传输模块,用于在检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据;
第二关闭模块,用于在数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
第五方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例所述的数据传输方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所述的数据传输方法。
本发明实施例提供的数据传输方法、装置、设备和存储介质,确定本次的从传输数据长度;进行SPI配置和DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;启动从DMA控制器,通过该从DMA控制器采用SPI通信的方式,根据所确定的从传输数据长度在本设备与主设备之间传输数据;当数据传输完成时,关闭该从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。本发明实施例通过采用上述技术方案,进行SPI配置和DMA配置,并在配置完成时,通过切换自身的设备状态的方式通知主设备传输数据,不仅能够采用DMA的传输方式实现SPI通信,提高数据的传输效率,并避免对主设备的CPU的执行速度造成影响;还能够确保在从设备配置完成后再进行数据传输,避免出现数据错误或数据丢失的情况,提高SPI通信的正确率和成功率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为现有技术中主设备与从设备在进行SPI通信时的连接方式示意图;
图2为本发明实施例一提供的一种数据传输方法的流程示意图;
图3为本发明实施例一提供的一种主设备与从设备在进行SPI通信时的连接方式示意图;
图4为本发明实施例二提供的一种数据传输方法的流程示意图;
图5为本发明实施例三提供的一种数据传输方法的流程示意图;
图6为本发明实施例四提供的一种数据传输方法的流程示意图;
图7为本发明实施例五提供的一种数据传输装置的结构框图;
图8为本发明实施例六提供的一种数据传输装置的结构框图;
图9为本发明实施例七提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
图2为本发明实施例提供的一种数据传输方法的流程示意图。该方法可以由数据传输装置执行,其中,该装置可以由软件和/或硬件实现,可配置于电子设备中,典型的,可以配置在摄像头或无线网卡中。本发明实施例提供的数据传输方法适用于与主设备之间采用SPI通信的方式传输数据的场景。如图2所示,本实施例提供的数据传输方法可以包括:
S110、确定本次的从传输数据长度。
其中,从传输数据长度可以理解为本设备(即从设备)与主设备之间进行本次SPI通信的数据长度信息,其可以包括本次通信本设备与主设备之间的实际传输数据长度,还可以进一步包括本次通信主设备向本设备传输的有效数据的数据长度,其可以小于或等于本次的实际传输数据长度。
具体的,从设备在与主设备进行SPI通信时,可以首先确定本次通信的从传输数据长度,如获取主设备本次实际需要发送的有效数据的数据长度(即主有效数据长度)以及本次SPI通信的实际传输数据长度。在此,主有效数据长度和实际传输数据长度的获取方式可以根据需要进行设置,例如,可以自主设备或者预先设置的其他设备中获取主设备本次实际需要发送的有效数据的数据长度;和/或,将预先设置的数据长度作为本次的实际传输数据长度,或者,根据本次SPI通信的从有效数据长度和主有效数据长度确定本次的实际传输数据长度,等等。
在一个实施方式中,所述从传输数据长度包括主有效数据长度和实际传输数据长度;所述确定本次的从传输数据长度,包括:获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度;将从有效数据长度和所述主有效数据长度中的最大数据长度,作为本次的实际传输数据长度,其中,所述从有效数据长度为本设备本次向主设备发送的有效数据的数据长度。
在上述实施方式中,可以根据本次的从有效数据长度和主有效数据长度,将该从有效数据长度和主有效数据长度中较大的数据长度作为本次的实际传输数据长度,从而无需预先设置一个较大的数据长度作为每次进行SPI通信的实际传输数据长度,能够避免将预先设置的数据长度作为实际传输数据长度而出现的冗余,在保证实际传输数据长度能够满足本次的传输需求的前提下提高SPI通信的数据传输效率。
其中,主有效数据长度可以为本设备本次需要接收的有效数据的数据长度,即主设备本次需要向本设备发送的有效数据的数据长度。从有效数据长度可以为本设备本次需要向主设备发送的有效数据的数据长度,即主设备本次需要自本设备接收的有效数据的数据长度。实际传输数据长度可以为本设备本次与主设备之间进行数据传输时的交互长度。
示例性的,从设备可以首先与主设备进行通信,获取主设备本次需要向从设备发送的有效数据的数据长度,作为本次的主有效数据长度。然后,判断从设备自身本次需要向主设备发送的有效数据的数据长度(即从有效数据长度)与该主有效数据长度的相对大小,并选择二者中较大的数据长度作为本次的实际传输数据长度,即若从有效数据长度大于主有效数据长度,则将该从有效数据长度作为本次的实际传输数据长度;若从有效数据长度小于主有效数据长度,则将该主有效数据长度作为本次的实际传输数据长度;若从有效数据长度等于主有效数据长度,则可以将该从有效数据长度,亦即将该主有效数据长度,作为本次的实际传输数据长度。
S120、进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据。
在本实施例中,从设备可以具有非传输状态与传输状态两种设备状态,当处于非传输状态时,说明从设备无法基于DMA采用SPI通信方式传输数据,当处于传输状态时,说明从设备可以基于DMA采用SPI通信的方式传输数据。相应的,从设备可以在自身尚且无法传输数据时,如SPI和/或DMA尚未配置完成时,将自身的设备状态设置为非传输状态,并在自身能够传输数据时,如在SPI和DMA均已经配置完成时,将自设的设备状态设置为传输状态。从而,主设备可以仅在检测到从设备处于传输状态时,与从设备传输数据,而在检测到从设备处于非传输状态时,不与从设备传输数据,进而避免出现在从设备尚未准备好传输数据的情况下即开始传输数据所导致的数据错误和/或数据丢失的情况,提高SPI通信的正确率和成功率。
示例性的,当处于非传输状态时,从设备可以进行SPI配置和DMA配置,如初始化SPI通信的相关接口、初始化SPI配置参数并使能SPI,以及,设置DMA外设地址、存储器地址和通道配置信息并使能DMA通道等,并在配置完成后,将自身的设备状态由非传输状态切换为传输状态,以通知主设备从设备已配置完成,可以开始传输数据。从而,主设备在检测到从设备切换为传输状态时,确定从设备已完成SPI配置和DMA配置,并可以开始通过主设备中的DMA控制器采用SPI通信的方式与该从设备传输数据。
S130、启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据。
其中,从DMA控制器可以理解为从设备中所配置的DMA控制器。
在本实施例中,从设备在将自身的设备状态由非传输状态切换为传输状态之后,可以基于主设备的控制与主设备传输数据。
示例性的,从设备可以启动自身所配置的DMA控制器,通过DMA控制器采用SPI通信的方式在本设备与主设备之间传输数据,如基于主设备通过SCK信号线发送的时钟信号,采用MOSI数据线接收主设备发送的、数据长度为实际传输数据长度的数据,并对所接收到的该数据长度为实际传输数据长度的数据中的、数据长度为主有效数据长度的有效数据进行存储;以及,基于主设备通过SCK信号线发送的时钟信号,采用MISO数据线向主设备发送数据长度为实际发送数据长度的、本设备本次需要发送的有效数据,并在发送完成后,继续发送设定的无效数据,直至实际发送的数据长度达到实际传输数据长度为止,从而,完成本次与主设备之间的数据传输。
S140、当数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
具体的,当主设备停止发送时钟信号后,即当本次传输的数据长度达到实际传输数据长度之后,从设备可以确定本次SPI通信完成,关闭本设备中所配置的DMA控制器,并将自身的设备状态由传输状态切换为非传输状态。
此外,当将自身有传输状态切换为非传输状态之后,从设备还可以向上层(如应用层)报告所接收到的数据,以便于上层对所接收到的数据进行处理。
在本实施例中,从设备切换自身设备状态的方式可以根据需要进行设置,优选可以通过调整自身的通知引脚的电平的方式切换自身的设备状态,此时,所述将本设备的设备状态由非传输状态切换为传输状态,包括:将本设备的通知引脚由高电平切换为低电平,其中,本设备的通知引脚与主设备的通知引脚相连;所述将本设备的设备状态由传输状态切换为非传输状态,包括:将本设备的通知引脚由低电平切换为高电平。
具体的,如图3所示,主设备与从设备之间可以设置除连接主设备的CS引脚和从设备的CS引脚的CS信号线、连接主设备的SCK引脚和从设备的SCK引脚的SCK信号线、连接主设备的输出引脚和从设备的输入引脚的MOSI数据线和连接主设备的输入引脚和从设备的输出引脚的MISO数据线之外的第五条连接线,即连接主设备的通知引脚和从设备的通知引脚的通知信号线(Notify信号线),通过该通知信号线通知主设备从设备的设备状态。
此时,以低电平有效为例,当从设备的通知引脚处于高电平时,可以认为从设备处于非数据传输状态,当从设备的通知引脚处于低电平时,可以认为从设备处于数据传输状态。相应的,从设备可以通过将自身的通知引脚由高电平切换为低电平的方式将自身的设备状态由非传输状态切换为传输状态,并通过将自身的通知引脚由低电平切换为高电平的方式将自身的设备状态由传输状态切换为非传输状态。
可以理解的是,当传输数据的双方为主设备的处理器与从设备的处理器时,上述所提及的主设备的CS引脚、SCK引脚、输入引脚、输出引脚和通知引脚可以为主设备的该处理器上的不同引脚,上述所提及的从设备的CS引脚、SCK引脚、输入引脚、输出引脚和通知引脚可以为从设备的该处理器上的不同引脚。
本发明实施例一提供的数据传输方法,确定本次的从传输数据长度;进行SPI配置和DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;启动从DMA控制器,通过该从DMA控制器采用SPI通信的方式,根据所确定的从传输数据长度在本设备与主设备之间传输数据;当数据传输完成时,关闭该从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。本实施例通过采用上述技术方案,进行SPI配置和DMA配置,并在配置完成时,通过切换自身的设备状态的方式通知主设备传输数据,不仅能够采用DMA的传输方式实现SPI通信,提高数据的传输效率,并避免对主设备的CPU的执行速度造成影响;还能够确保在从设备配置完成后再进行数据传输,避免出现数据错误或数据丢失的情况,提高SPI通信的正确率和成功率。
实施例二
图4为本发明实施例二提供的一种数据传输方法的流程示意图。本实施例在上述实施例的基础上,将“获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度”优化为:启动从DMA控制器,通过所述从DMA控制器接收主设备发送的主通知报文以确定本次的主有效数据长度,并将携带有所述从有效数据长度的从通知报文发送给所述主设备;其中,所述主通知报文中携带有主设备本次向本设备发送的有效数据的数据长度。
可选的,在所述获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度之后,还包括:将本设备的设备状态由传输状态切换为非传输状态。
可选的,在所述确定本次传输数据的数据长度之前,还包括:当满足预设数据发送条件时,或者,当检测到主设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的从有效数据长度的从通知报文,并进行串行外设接口SPI配置和直接存储器访问DMA配置;当配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备向本设备发送主通知报文。
相应的,如图4所示,本实施例提供的数据传输方法可以包括:
S210、当满足预设数据发送条件时,或者,当检测到主设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的从有效数据长度的从通知报文,并进行串行外设接口SPI配置和直接存储器访问DMA配置。
其中,该预设数据发送条件可以为从设备主动发送数据(即从设备主动启动SPI通信过程)的条件,其可以由工作人员预先根据需要进行设置,如可以设置为从设备存在需要向主设备发送的数据。从通知报文可以为从设备向主设备发送的通知报文,该通知报文可用于通知主设备从设备自身本次需要向主设备发送的有效数据的数据长度。
在本实施例中,从设备可以主动请求主设备与自身进行SPI通信。例如,从设备在存在需要向主设备发送的数据时,可以主动生成携带有自身需要向主设备发送的有效数据的数据长度的从通知报文,进行SPI配置和DMA配置,并在配置完成后,将自身的通知引脚由高电平切换为低电平,以通知主设备自身存在需要向主设备发送的数据并已准备好收发通知报文。相应地,主设备在检测到从设备的通知引脚切换为低电平时,可以生成携带有自身本次需要向该从设备发送的有效数据的数据长度的主通知报文,进行SPI配置和DMA配置,并将自身的设备状态由非传输状态切换为传输状态,如将自身的CS引脚由高电平切换为低电平,以与该从设备传输通知报文和数据。
从设备也可以基于主设备的控制与主设备进行SPI通信。例如,主设备可以在存在需要向该从设备发送的数据时,将自身的设备状态由非传输状态切换为传输状态,如将自身的CS引脚由高电平切换为低电平。从而,从设备在检测到主设备的CS引脚切换为低电平时,确定主设备存在需要向自身发送的数据,并可以生成携带有自身本次需要向主设备发送的有效数据的数据长度的从通知报文,进行SPI配置和DMA配置,并在配置完成后,将自身的通知引脚由高电平切换为低电平,以通知主设备自身已准备好收发通知报文。
S220、当配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备向本设备发送主通知报文。
其中,主通知报文可以为主设备向从设备发送的通知报文,该通知报文可用于通知从设备主设备本次需要向该从设备发送的有效数据的数据长度。
具体的,当配置完成后,从设备可以将自身的设备状态由非传输状态切换为传输状态,如将自身的通知引脚由高电平切换为低电平,以通知主设备从设备自身已准备好传输通知报文。
S230、启动从DMA控制器,通过所述从DMA控制器接收主设备发送的主通知报文以确定本次的主有效数据长度,并将携带有所述从有效数据长度的从通知报文发送给所述主设备,其中,所述主通知报文中携带有主设备本次向本设备发送的有效数据的数据长度。
在本实施例中,在进行SPI通信时,主设备和从设备可以首先通过通知报文通知对方自身本次需要发送的有效数据的数据长度,即主设备可以通过主通知报文通知从设备主设备自身本次需要发送的有效数据的数据长度,从设备可以通过从通知报文通知主设备从设备自身本次需要发送的有效数据的数据长度。其中,主通知报文和从通知报文可以设置为具有固定的长度,如可以将主通知报文和从通知报文的长度均设置为8字节,此时,可以通过第1字节来标注报文头;通过第2-3字节来标注本次需要发送的有效数据的数据长度;通过第4-5字节进行补码,以验证该数据长度的合法性;通过第6-8字节进行数据扩展。
示例性的,从设备可以启动自身所配置的DMA控制器,通过DMA控制器采用SPI通信的方式在本设备与主设备之间传输通知报文,如基于主设备通过SCK信号线发送的时钟信号,采用MOSI数据线接收主设备发送的主通知报文,以便于根据该主通知报文确定主设备本次需要发送的有效数据的数据长度,即确定本次的主有效数据长度;同时,基于主设备通过SCK信号线发送的时钟信号,采用MISO数据线向主设备发送自身所生成的从通知报文,以通过该从通知报文通知主设备从设备自身本次需要向主设备发送的有效数据的数据长度,即本次的从有效数据长度。
S240、将本设备的设备状态由传输状态切换为非传输状态。
在本实施例中,当通知报文传输完成后,即当主通知报文接收完成且从通知报文发送完成后,从设备可以将自身的通知引脚由低电平切换为高电平,从而将自身的设备状态由传输状态切换为非传输状态,以通知主设备当前时刻从设备自身尚未完成传输数据所的相应配置。从而,主设备在检测到从设备处于非传输状态时,可以不与从设备传输数据,并在检测到从设备处于传输状态时,即在再次检测到从设备由非传输状态切换为传输状态时,再与从设备传输需要进行传输的数据。
S250、将从有效数据长度和所述主有效数据长度中的最大数据长度,作为本次的实际传输数据长度,其中,所述从有效数据长度为本设备本次向主设备发送的有效数据的数据长度。
S260、进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据。
S270、启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据从传输数据长度在本设备与所述主设备之间传输数据,所述从传输数据长度包括主有效数据长度和实际传输数据长度。
S280、当数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
本发明实施例二提供的数据传输方法,主设备和从设备通知对方自身本次要发送的有效数据的数据长度,并根据自身本次需要发送的有效数据的数据长度以及对方本次要发送的有效数据的数据长度确定本次的实际传输数据长度,能够在提高SPI通信的正确率和成功率的前提下,降低SPI通信过程中所出现的数据冗余,提高SPI通信的数据传输效率。
实施例三
图5为本发明实施例提供的一种数据传输方法的流程示意图。该方法可以由数据传输装置执行,其中,该装置可以由软件和/或硬件实现,可配置于电子设备中,典型的,可以配置在计算机设备中。本发明实施例提供的数据传输方法适用于与从设备之间采用SPI通信的方式传输数据的场景。如图5所示,本实施例提供的数据传输方法可以包括:
S310、确定本次的主传输数据长度。
其中,主传输数据长度可以理解为本设备(即主设备)与从设备之间进行本次SPI通信的数据长度信息,其可以包括本次通信本设备与从设备之间的实际传输数据长度,还可以进一步包括本次通信从设备向本设备传输的有效数据的数据长度,其可以小于或等于本次的实际传输数据长度。
具体的,主设备在与从设备进行SPI通信时,可以首先确定本次通信的主传输数据长度,如获取从设备本次实际需要发送的有效数据的数据长度(即从有效数据长度)以及本次SPI通信的实际传输数据长度。在此,从有效数据长度和实际传输数据长度的获取方式可以根据需要进行设置,例如,可以自从设备或者预先设置的其他设备中获取从设备本次实际需要发送的有效数据的数据长度;和/或,将预先设置的数据长度作为本次的实际传输数据长度,或者,根据本次SPI通信的主有效数据长度和从有效数据长度确定本次的实际传输数据长度,等等。
在一个实施方式中,所述主传输数据长度包括从有效数据长度和实际传输数据长度;所述确定本次的主传输数据长度,包括:获取从设备本次向本设备发送的有效数据的数据长度,作为本次的从有效数据长度;将主有效数据长度和所述从有效数据长度和中的最大数据长度,作为本次的实际传输数据长度,其中,所述主有效数据长度为本设备本次向从设备发送的有效数据的数据长度。
在上述实施方式中,可以根据本次的主有效数据长度和从有效数据长度,将该主有效数据长度和从有效数据长度中较大的数据长度作为本次的实际传输数据长度,从而无需预先设置一个较大的数据长度作为每次进行SPI通信的实际传输数据长度,能够避免将预先设置的数据长度作为实际传输数据长度而出现的冗余,在保证实际传输数据长度能够满足本次的传输需求的前提下提高SPI通信的数据传输效率。
其中,从有效数据长度可以为本设备本次需要接收的有效数据的数据长度,即从设备本次需要向本设备发送的有效数据的数据长度。主有效数据长度可以为本设备本次需要向从设备发送的有效数据的数据长度,即从设备本次需要自本设备接收的有效数据的数据长度。实际传输数据长度可以为本设备本次与从设备之间进行数据传输的交互长度。
示例性的,主设备可以首先与从设备进行通信,获取从设备本次需要向主设备发送的有效数据的数据长度,作为本次的从有效数据长度。然后,判断主设备自身本次需要向从设备发送的有效数据的数据长度(即主有效数据长度)与该从有效数据长度的相对大小,并选择二者中较大的数据长度作为本次的实际传输数据长度,即若主有效数据长度大于从有效数据长度,则将主有效数据长度作为本次的实际传输数据长度;若主有效数据长度小于从有效数据长度,则将从有效数据长度作为本次的实际传输数据长度;若主有效数据长度等于从有效数据长度,则可以将该主有效数据长度,亦即将该从有效数据长度,作为本次的实际传输数据长度。
S320、当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据。
其中,主DMA控制器可以理解为主设备中所配置的DMA控制器。
在本实施例中,从设备可以具有非传输状态与传输状态两种设备状态,当处于非传输状态时,说明从设备无法基于DMA采用SPI通信方式传输数据,即从设备尚未准备好收发数据;当处于传输状态时,说明从设备可以基于DMA采用SPI通信的方式传输数据,即从设备已准备好收发数据。从而,主设备可以仅在检测到从设备处于传输状态时,与从设备传输数据,而在检测到从设备处于非传输状态时,不与从设备传输数据,进而避免出现在从设备尚未准备好传输数据的情况下即开始传输数据所导致的数据错误和/或数据丢失的情况,提高SPI通信的正确率和成功率。
示例性的,主设备在检测到从设备由非数据传输状态切换为数据传输状态时,可以启动自身所配置的DMA控制器,通过DMA控制器采用SPI通信的方式在本设备与从设备之间传输数据,如通过SCK信号线发送的时钟信号,并基于该时钟信号,采用MISO数据线接收主设备发送的、数据长度为实际传输数据长度的数据,并对所接收到的该数据长度为实际传输数据长度的数据中的、数据长度为从有效数据长度的有效数据进行存储;以及,基于该时钟信号,采用MOSI数据线向主设备发送数据长度为实际发送数据长度的、本设备本次需要发送的有效数据,并在发送完成后,继续发送设定的无效数据,直至实际发送的数据长度达到实际传输数据长度为止,从而,完成本次与从设备之间的数据传输。
S330、当数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
在本实施例中,主设备可以具有非传输状态与传输状态两种传输状态,当需要传输数据时或者当检测到从设备需要传输数据时(如检测到从设备由非传输状态切换为传输状态时),主设备可以将自身设置为传输状态,以通知从设备主设备存在需要传输的数据或者对从设备的传输数据状态进行响应。
具体的,当数据发送完成后,即当本次传输的数据长度达到实际传输数据长度之后,主设备可以停止发送时钟信号,关闭本设备中所配置的DMA控制器,并将自身的设备状态由传输状态切换为非传输状态。
此外,当将自身有传输状态切换为非传输状态之后,主设备还可以向上层(如应用层)报告所接收到的数据,以便于上层对所接收到的数据进行处理。
本发明实施例三提供的数据传输方法,确定本次的主传输数据长度;当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主DMA控制器,通过主DMA控制器采用SPI通信的方式,根据该主传输数据长度在本设备与从设备之间传输数据;当数据传输完成时,关闭该主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。本实施例通过采用上述技术方案,仅在从设备处于传输状态时,通过DMA控制器传输数据,不仅能够提高数据的传输效率,并避免对主设备的CPU的执行速度造成影响;还能够确保在从设备配置完成后再进行数据传输,避免出现数据错误或数据丢失的情况,提高SPI通信的正确率和成功率。
实施例四
图6为本发明实施例四提供的一种数据传输方法的流程示意图。本实施例在上述实施例的基础上,将“获取从设备本次向本设备发送的有效数据的数据长度,作为本次的从有效数据长度”优化为“当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主DMA控制器,通过所述主DMA控制器接收从设备发送的从通知报文以确定本次的从有效数据长度,并将携带有所述主有效数据长度的主通知报文发送给所述从设备;其中,所述从通知报文中携带有从设备本次向本设备发送的有效数据的数据长度”。
可选的,在所述确定本次传输数据的数据长度之前,还包括:当满足预设数据发送条件时,或者,当检测到从设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的主有效数据长度的主通知报文,进行串行外设接口SPI配置和直接存储器访问DMA配置,并将本设备的设备状态由非传输状态切换为传输状态。
相应的,如图6所示,本实施例提供的数据传输方法可以包括:
S410、当满足预设数据发送条件时,或者,当检测到从设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的主有效数据长度主通知报文,进行串行外设接口SPI配置和直接存储器访问DMA配置,并将本设备的设备状态由非传输状态切换为传输状态。
其中,该预设数据发送条件可以为主设备主动发送数据(即主设备主动启动SPI通信过程)的条件,其可以由工作人员预先根据需要进行设置,如可以设置为主设备存在需要向从设备发送的数据。主设备的预设数据发送条件和从设备的预设数据发送条件可以相同也可以不同,本实施不对此进行限制。
在本实施例中,主设备可以主动控制从设备与自身进行SPI通信。例如,主设备在存在需要向从设备发送的数据时,可以生成携带有自身需要向从设备发送的有效数据的数据长度的主通知报文,进行SPI配置和DMA配置,并将自身的CS引脚由高电平切换为低电平,以通知从设备自身存在需要向从设备发送的数据。相应地,从设备在检测到主设备的CS引脚切换为低电平时,可以生成携带有自身本次需要向该主设备发送的有效数据的数据长度的从通知报文,进行SPI配置和DMA配置,并在配置完成后将自身的设备状态由非传输状态切换为传输状态,如将自身的通知引脚由高电平切换为低电平,以与主设备传输通知报文和数据。
主设备也可以响应于从设备的请求与从设备进行SPI通信。例如,从设备可以在存在需要向主设备发送的数据时,生成携带有自身需要向该主设备发送的有效数据的数据长度的从通知报文,进行SPI配置和DMA配置,并在配置完成后将自身的设备状态由非传输状态切换为传输状态,如将自身的通知引脚由高电平切换为低电平。从而,主设备在检测到从设备的通知引脚切换为低电平时,确定从设备存在需要向自身发送的数据,并可以生成携带有自身需要向从设备发送的有效数据的数据长度的从通知报文,进行SPI配置和DMA配置,以及,将自身的CS引脚由高电平切换为低电平。
S420、当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主DMA控制器,通过所述主DMA控制器接收从设备发送的从通知报文以确定本次的从有效数据长度,并将携带有所述主有效数据长度的主通知报文发送给所述从设备;其中,所述从通知报文中携带有从设备本次向本设备发送的有效数据的数据长度,当所述从通知报文发送完成时,所述从设备的设备状态由传输状态切换为非传输状态。
在本实施例中,在进行SPI通信时,主设备和从设备可以首先通过通知报文通知对方自身本次需要发送的有效数据的数据长度,即主设备可以通过主通知报文通知从设备主设备自身本次需要发送的有效数据的数据长度,从设备可以通过从通知报文通知主设备从设备自身本次需要发送的有效数据的数据长度。
示例性的,主设备可以在检测到从设备由非传输状态切换为传输状态后,即在确定从设备已准备好收发通知报文时,启动自身所配置的DMA控制器,通过DMA控制器采用SPI通信的方式在本设备与从设备之间传输通知报文,如通过SCK信号线发送的时钟信号,采用MISO数据线接收从设备发送的从通知报文,以便于根据该从通知报文确定从设备本次需要发送的有效数据的数据长度,即确定本次的从有效数据长度;同时,基于该时钟信号,采用MOSI数据线向从设备发送自身所生成的主通知报文,以通过该主通知报文通知从设备主设备自身本次需要向从设备发送的有效数据的数据长度,即本次的主有效数据长度。
S430、将主有效数据长度和所述从有效数据长度和中的最大数据长度,作为本次的实际传输数据长度,其中,所述主有效数据长度为本设备本次向从设备发送的有效数据的数据长度。
S440、当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据,所述主传输数据长度包括从有效数据长度和实际传输数据长度。
S450、当数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
在本实施例中,主设备切换自身设备状态的方式可以根据需要进行设置,优选可以通过调整自身的CS引脚的电平的方式切换自身的设备状态,此时,所述将本设备的设备状态由非传输状态切换为传输状态,包括:将本设备的片选引脚由高电平切换为低电平,其中,本设备的片选引脚与从设备的片选引脚相连;所述将本设备的设备状态由传输状态切换为非传输状态,包括:将本设备的片选引脚由低电平切换为高电平。
以低电平有效为例,当主设备的CS引脚处于高电平时,可以认为主设备处于非数据传输状态,当主设备的CS引脚处于低电平时,可以认为主设备处于数据传输状态。相应的,主设备可以通过将自身的CS引脚由高电平切换为低电平的方式将自身的设备状态由非传输状态切换为传输状态,并通过将自身的CS引脚由低电平切换为高电平的方式将自身的设备状态由传输状态切换为非传输状态。
本发明实施例四提供的数据传输方法,主设备和从设备通知对方自身本次要发送的有效数据的数据长度,并根据自身本次需要发送的有效数据的数据长度以及对方本次要发送的有效数据的数据长度确定本次的实际传输数据长度,能够在提高SPI通信的正确率和成功率的前提下,降低SPI通信过程中所出现的数据冗余,提高SPI通信的数据传输效率。
实施例五
图7为本发明实施例五提供的一种数据传输装置的结构框图。该装置可以由软件和/或硬件实现,可配置于电子设备中,典型的,可以配置在摄像头或无线网卡中,可通过执行数据传输方法实现主设备与从设备之间的SPI通信。如图7所示,本实施例提供的数据传输装置可以包括:从确定模块701、第一配置模块702、第一传输模块703和第一关闭模块704,其中,
从确定模块701,用于确定本次的从传输数据长度;
第一配置模块702,用于进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;
第一传输模块703,用于启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据;
第一关闭模块704,用于在数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
本发明实施例五提供的数据传输装置,通过从确定模块确定本次的从传输数据长度;通过第一配置模块进行SPI配置和DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;通过第一传输模块启动从DMA控制器,通过该从DMA控制器采用SPI通信的方式,根据所确定的从传输数据长度在本设备与主设备之间传输数据;通过第一关闭模块在数据传输完成时,关闭该从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。本实施例通过采用上述技术方案,进行SPI配置和DMA配置,并在配置完成时,通过切换自身的设备状态的方式通知主设备传输数据,不仅能够采用DMA的传输方式实现SPI通信,提高数据的传输效率,并避免对主设备的CPU的执行速度造成影响;还能够确保在从设备配置完成后再进行数据传输,避免出现数据错误或数据丢失的情况,提高SPI通信的正确率和成功率。
在上述方案中,所述从传输数据长度可以包括主有效数据长度和实际传输数据长度;所述从确定模块701可以包括:第一长度获取单元,用于获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度;第一长度确定单元,用于将从有效数据长度和所述主有效数据长度中的最大数据长度,作为本次的实际传输数据长度,其中,所述从有效数据长度为本设备本次向主设备发送的有效数据的数据长度。
在上述方案中,所述第一长度获取单元具体可以用于:启动从DMA控制器,通过所述从DMA控制器接收主设备发送的主通知报文以确定本次的主有效数据长度,并将携带有所述从有效数据长度的从通知报文发送给所述主设备;其中,所述主通知报文中携带有主设备本次向本设备发送的有效数据的数据长度。
在上述方案中,所述从确定模块701还可以包括:状态切换单元,用于在所述获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度之后,将本设备的设备状态由传输状态切换为非传输状态。
进一步地,本实施例提供的数据传输装置还可以包括:第二配置模块,用于在所述确定本次传输数据的数据长度之前,当满足预设数据发送条件时,或者,当检测到主设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的从有效数据长度的从通知报文,并进行串行外设接口SPI配置和直接存储器访问DMA配置;状态切换模块,用于在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备向本设备发送主通知报文。
在上述方案中,所述第一配置模块702可用于:将本设备的通知引脚由高电平切换为低电平,其中,本设备的通知引脚与主设备的通知引脚相连;所述第一关闭模块704可用于:将本设备的通知引脚由低电平切换为高电平。
本发明实施例数据传输提供的数据传输装置可执行本发明任意实施例提供的数据传输方法,具备执行数据传输方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据传输方法。
实施例六
图8为本发明实施例六提供的一种数据传输装置的结构框图。该装置可以由软件和/或硬件实现,可配置于电子设备中,典型的,可以配置在摄像头或无线网卡中,可通过执行数据传输方法实现主设备与从设备之间的SPI通信。如图8所示,本实施例提供的数据传输装置可以包括:主确定模块801、第二传输模块802和第二关闭模块803,其中,
主确定模块801,用于确定本次的主传输数据长度;
第二传输模块802,用于在检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据;
第二关闭模块803,用于在数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
本发明实施例六提供的数据传输装置,通过主确定模块确定本次的主传输数据长度;通过第二传输模块在检测到从设备的设备状态由非传输状态切换为传输状态时,启动主DMA控制器,通过主DMA控制器采用SPI通信的方式,根据该主传输数据长度在本设备与从设备之间传输数据;通过第二关闭模块在数据传输完成时,关闭该主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。本实施例通过采用上述技术方案,仅在从设备处于传输状态时,通过DMA控制器传输数据,不仅能够提高数据的传输效率,并避免对主设备的CPU的执行速度造成影响;还能够确保在从设备配置完成后再进行数据传输,避免出现数据错误或数据丢失的情况,提高SPI通信的正确率和成功率。
在上述方案中,所述主传输数据长度可以包括从有效数据长度和实际传输数据长度;所述主确定模块801可以包括:第二长度获取单元,用于获取从设备本次向本设备发送的有效数据的数据长度,作为本次的从有效数据长度;第二长度确定单元,用于将主有效数据长度和所述从有效数据长度和中的最大数据长度,作为本次的实际传输数据长度,其中,所述主有效数据长度为本设备本次向从设备发送的有效数据的数据长度。
在上述方案中,所述第二长度获取单元具体可以用于:当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主DMA控制器,通过所述主DMA控制器接收从设备发送的从通知报文以确定本次的从有效数据长度,并将携带有所述主有效数据长度的主通知报文发送给所述从设备;其中,所述从通知报文中携带有从设备本次向本设备发送的有效数据的数据长度,当所述从通知报文发送完成时,所述从设备的设备状态由传输状态切换为非传输状态。
进一步地,本实施例提供的数据传输装置还可以包括:第三配置模块,用于在所述确定本次传输数据的数据长度之前,当满足预设数据发送条件时,或者,当检测到从设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的主有效数据长度的主通知报文,进行串行外设接口SPI配置和直接存储器访问DMA配置,并将本设备的设备状态由非传输状态切换为传输状态。
在上述方案中,所述第三配置模块可以用于:将本设备的片选引脚由高电平切换为低电平,其中,本设备的片选引脚与从设备的片选引脚相连;所述第二关闭模块803可以用于:将本设备的片选引脚由低电平切换为高电平。
本发明实施例数据传输提供的数据传输装置可执行本发明任意实施例提供的数据传输方法,具备执行数据传输方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的数据传输方法。
实施例七
图9为本发明实施例七提供的一种电子设备的结构示意图,如图9所示,该电子设备包括处理器90和存储器91,还可以包括输入装置92和输出装置93;电子设备中处理器90的数量可以是一个或多个,图9中以一个处理器90为例;电子设备中的处理器90、存储器91、输入装置92和输出装置93可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器91作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据传输方法对应的程序指令/模块(例如,数据传输装置中的从确定模块701、第一配置模块702、第一传输模块703和第一关闭模块704,或者,数据传输装置中的主确定模块801、第二传输模块802和第二关闭模块803)。处理器90通过运行存储在存储器91中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的数据传输方法。
存储器91可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器91可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器91可进一步包括相对于处理器90远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置92可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置93可包括显示屏等显示设备。
本发明实施例七还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种数据传输方法,该方法包括:
确定本次的从传输数据长度;进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据;当数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。或者,
确定本次的主传输数据长度;当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据;当数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据传输方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据传输装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (11)

1.一种数据传输方法,其特征在于,包括:
当满足预设数据发送条件时,或者,当检测到主设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的从有效数据长度的从通知报文,并进行串行外设接口SPI配置和直接存储器访问DMA配置;
当配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备向本设备发送主通知报文;
确定本次的从传输数据长度;
进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;
启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据;
当数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态;
其中,所述从传输数据长度包括主有效数据长度和实际传输数据长度;所述确定本次的从传输数据长度,包括:
获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度;
将从有效数据长度和所述主有效数据长度中的最大数据长度,作为本次的实际传输数据长度,其中,所述从有效数据长度为本设备本次向主设备发送的有效数据的数据长度。
2.根据权利要求1所述的方法,其特征在于,所述获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度,包括:
启动从DMA控制器,通过所述从DMA控制器接收主设备发送的主通知报文以确定本次的主有效数据长度,并将携带有所述从有效数据长度的从通知报文发送给所述主设备;其中,所述主通知报文中携带有主设备本次向本设备发送的有效数据的数据长度。
3.根据权利要求2所述的方法,其特征在于,在所述获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度之后,还包括:
将本设备的设备状态由传输状态切换为非传输状态。
4.根据权利要求1-3任一所述的方法,其特征在于,所述将本设备的设备状态由非传输状态切换为传输状态,包括:
将本设备的通知引脚由高电平切换为低电平,其中,本设备的通知引脚与主设备的通知引脚相连;
所述将本设备的设备状态由传输状态切换为非传输状态,包括:
将本设备的通知引脚由低电平切换为高电平。
5.一种数据传输方法,其特征在于,包括:
当满足预设数据发送条件时,或者,当检测到从设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的主有效数据长度的主通知报文,进行串行外设接口SPI配置和直接存储器访问DMA配置,并将本设备的设备状态由非传输状态切换为传输状态;
确定本次的主传输数据长度;
当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据;
当数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态;
其中,所述主传输数据长度包括从有效数据长度和实际传输数据长度;所述确定本次的主传输数据长度,包括:
获取从设备本次向本设备发送的有效数据的数据长度,作为本次的从有效数据长度;
将主有效数据长度和所述从有效数据长度和中的最大数据长度,作为本次的实际传输数据长度,其中,所述主有效数据长度为本设备本次向从设备发送的有效数据的数据长度。
6.根据权利要求5所述的方法,其特征在于,所述获取从设备本次向本设备发送的有效数据的数据长度,作为本次的从有效数据长度,包括:
当检测到从设备的设备状态由非传输状态切换为传输状态时,启动主DMA控制器,通过所述主DMA控制器接收从设备发送的从通知报文以确定本次的从有效数据长度,并将携带有所述主有效数据长度的主通知报文发送给所述从设备;其中,所述从通知报文中携带有从设备本次向本设备发送的有效数据的数据长度,当所述从通知报文发送完成时,所述从设备的设备状态由传输状态切换为非传输状态。
7.根据权利要求6所述的方法,其特征在于,所述将本设备的设备状态由非传输状态切换为传输状态,包括:
将本设备的片选引脚由高电平切换为低电平,其中,本设备的片选引脚与从设备的片选引脚相连;
所述将本设备的设备状态由传输状态切换为非传输状态,包括:
将本设备的片选引脚由低电平切换为高电平。
8.一种数据传输装置,其特征在于,包括:
从确定模块,用于确定本次的从传输数据长度;
第一配置模块,用于进行串行外设接口SPI配置和直接存储器访问DMA配置,并在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备传输数据;
第一传输模块,用于启动从DMA控制器,通过所述从DMA控制器采用SPI通信的方式,根据所述从传输数据长度在本设备与所述主设备之间传输数据;
第一关闭模块,用于在数据传输完成时,关闭所述从DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态;
其中,所述从传输数据长度包括主有效数据长度和实际传输数据长度;所述从确定模块可以包括:第一长度获取单元,用于获取主设备本次向本设备发送的有效数据的数据长度,作为本次的主有效数据长度;第一长度确定单元,用于将从有效数据长度和所述主有效数据长度中的最大数据长度,作为本次的实际传输数据长度,其中,所述从有效数据长度为本设备本次向主设备发送的有效数据的数据长度;
所述数据传输装置还包括:第二配置模块,用于在所述确定本次传输数据的数据长度之前,当满足预设数据发送条件时,或者,当检测到主设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的从有效数据长度的从通知报文,并进行串行外设接口SPI配置和直接存储器访问DMA配置;状态切换模块,用于在配置完成时,将本设备的设备状态由非传输状态切换为传输状态,以通知主设备向本设备发送主通知报文。
9.一种数据传输装置,其特征在于,包括:
主确定模块,用于确定本次的主传输数据长度;
第二传输模块,用于在检测到从设备的设备状态由非传输状态切换为传输状态时,启动主直接存储器访问DMA控制器,通过主DMA控制器采用SPI通信的方式,根据所述主传输数据长度在本设备与所述从设备之间传输数据;
第二关闭模块,用于在数据传输完成时,关闭所述主DMA控制器,并将本设备的设备状态由传输状态切换为非传输状态;
其中,所述主传输数据长度包括从有效数据长度和实际传输数据长度;所述主确定模块包括:第二长度获取单元,用于获取从设备本次向本设备发送的有效数据的数据长度,作为本次的从有效数据长度;第二长度确定单元,用于将主有效数据长度和所述从有效数据长度和中的最大数据长度,作为本次的实际传输数据长度,其中,所述主有效数据长度为本设备本次向从设备发送的有效数据的数据长度;
所述数据传输装置还包括:第三配置模块,用于在所述确定本次传输数据的数据长度之前,当满足预设数据发送条件时,或者,当检测到从设备的设备状态由非传输状态切换为传输状态时,生成携带有本次的主有效数据长度的主通知报文,进行串行外设接口SPI配置和直接存储器访问DMA配置,并将本设备的设备状态由非传输状态切换为传输状态。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据传输方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据传输方法。
CN202111154533.1A 2021-09-29 2021-09-29 数据传输方法、装置、设备和存储介质 Active CN113886296B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111154533.1A CN113886296B (zh) 2021-09-29 2021-09-29 数据传输方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111154533.1A CN113886296B (zh) 2021-09-29 2021-09-29 数据传输方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN113886296A CN113886296A (zh) 2022-01-04
CN113886296B true CN113886296B (zh) 2023-10-20

Family

ID=79008460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111154533.1A Active CN113886296B (zh) 2021-09-29 2021-09-29 数据传输方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN113886296B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023956A (zh) * 2009-09-23 2011-04-20 上海摩波彼克半导体有限公司 集成电路芯片中串行外设从器件接口结构及数据读写方法
CN105468563A (zh) * 2015-12-28 2016-04-06 杭州士兰控股有限公司 Spi从设备、spi通信系统及spi通信方法
CN108009107A (zh) * 2017-07-20 2018-05-08 北京车和家信息技术有限责任公司 数据传输的方法、装置、存储介质及系统
CN111737175A (zh) * 2020-06-12 2020-10-02 明见(厦门)技术有限公司 一种高速spi主从机通信方法、终端设备及存储介质
CN112100100A (zh) * 2020-08-26 2020-12-18 广州华欣电子科技有限公司 Spi通信方法及spi设备
CN112272824A (zh) * 2020-01-13 2021-01-26 深圳市大疆创新科技有限公司 数据传输方法、装置、设备、mcu和存储介质
CN113312284A (zh) * 2021-06-03 2021-08-27 杭州华橙软件技术有限公司 数据传输方法、装置、系统、存储介质及电子装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2466982B (en) * 2009-01-16 2013-07-17 Nvidia Technology Uk Ltd DMA Engine
EP3644192B1 (en) * 2018-08-23 2022-04-20 Shenzhen Goodix Technology Co., Ltd. Master chip, slave chip, and dma transfer system between chips

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023956A (zh) * 2009-09-23 2011-04-20 上海摩波彼克半导体有限公司 集成电路芯片中串行外设从器件接口结构及数据读写方法
CN105468563A (zh) * 2015-12-28 2016-04-06 杭州士兰控股有限公司 Spi从设备、spi通信系统及spi通信方法
CN108009107A (zh) * 2017-07-20 2018-05-08 北京车和家信息技术有限责任公司 数据传输的方法、装置、存储介质及系统
CN112272824A (zh) * 2020-01-13 2021-01-26 深圳市大疆创新科技有限公司 数据传输方法、装置、设备、mcu和存储介质
CN111737175A (zh) * 2020-06-12 2020-10-02 明见(厦门)技术有限公司 一种高速spi主从机通信方法、终端设备及存储介质
CN112100100A (zh) * 2020-08-26 2020-12-18 广州华欣电子科技有限公司 Spi通信方法及spi设备
CN113312284A (zh) * 2021-06-03 2021-08-27 杭州华橙软件技术有限公司 数据传输方法、装置、系统、存储介质及电子装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于DMA方式SPI接口的通信方法;芮正新;《仪器仪表与分析监测》;第1-4页 *

Also Published As

Publication number Publication date
CN113886296A (zh) 2022-01-04

Similar Documents

Publication Publication Date Title
US11246168B2 (en) Method for random access and terminal device
CN112422485B (zh) 一种传输控制协议的通信方法及装置
JP7359061B2 (ja) 中継装置
CN110912805B (zh) 消息读取状态的同步方法、终端、服务端及系统
CN105786734A (zh) 数据传输的方法、扩展装置、外围设备及系统
CN103650401A (zh) 一种移动终端内部通信方法
CN113886296B (zh) 数据传输方法、装置、设备和存储介质
EP3796693B1 (en) Method, apparatus, terminal and storage medium for sending measurement report
CN110597643B (zh) 核间通信方法、处理器以及电子设备
US20230378767A1 (en) Charging control method and apparatus, electronic device, and charger
CN112039835B (zh) 自适应轮询时间估算方法、装置、设备及存储介质
US20230198648A1 (en) Time synchronization method, device and apparatus, and storage medium
CN115065966B (zh) 终端和通信方法
WO2021184797A1 (zh) 状态切换控制方法、装置、电子设备和存储介质
JP2011015024A (ja) 通信制御方法及び通信システム
CN111200789B (zh) 一种业务数据的传输方法及装置
WO2020249083A1 (zh) 安全激活状态确定方法及相关产品
CN115397033B (zh) 无线通信方法、装置、无线通信模组、介质及程序产品
CN115525935B (zh) 多安全芯片的并发数据运算方法、装置、设备及存储介质
CN116185936B (zh) 一种spi通信数据收发异常检测控制系统及检测方法
CN114817100B (zh) 一种用于单板的数据读取方法和装置
CN112566082B (zh) 数据传输方法、装置、设备及介质
CN109165099B (zh) 一种电子设备、内存拷贝方法及装置
CN117545039A (zh) 路径转换方法、装置和系统
CN116244254A (zh) Rsmc芯片、芯片信道自适应加载方法以及北斗通信导航设备

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