CN109450912A - 数据传输方法、装置和设备 - Google Patents

数据传输方法、装置和设备 Download PDF

Info

Publication number
CN109450912A
CN109450912A CN201811422828.0A CN201811422828A CN109450912A CN 109450912 A CN109450912 A CN 109450912A CN 201811422828 A CN201811422828 A CN 201811422828A CN 109450912 A CN109450912 A CN 109450912A
Authority
CN
China
Prior art keywords
data
equipment
request order
data transfer
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
Application number
CN201811422828.0A
Other languages
English (en)
Other versions
CN109450912B (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.)
Beijing Megvii Technology Co Ltd
Original Assignee
Beijing Megvii 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 Beijing Megvii Technology Co Ltd filed Critical Beijing Megvii Technology Co Ltd
Priority to CN201811422828.0A priority Critical patent/CN109450912B/zh
Publication of CN109450912A publication Critical patent/CN109450912A/zh
Application granted granted Critical
Publication of CN109450912B publication Critical patent/CN109450912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种数据传输方法、装置和设备;其中,该方法包括:当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;当接收到从设备返回的回复数据时,根据回复数据判断从设备是否允许进行数据传输操作;如果允许,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾。本发明通过数据传输请求命令和回复数据可以在数据传输之前确定从设备是否允许进行数据传输,通过数据包头和数据包尾确认数据传输的正确性,从而提高了SPI数据传输的可靠性,扩展了SPI总线的应用范围。

Description

数据传输方法、装置和设备
技术领域
本发明涉及数据传输技术领域,尤其是涉及一种数据传输方法、装置和设备。
背景技术
SPI(Serial Peripheral Interface,串行外设接口)是一种高速的、全双工、同步的通信总线。由于SPI总线占用的芯片管脚较少,且成本较低,简单易用,其广泛应用于各种多芯片的集成系统中。但是,芯片在通过SPI协议进行数据传输时,并没有指定的流控制,也没有应答机制以确认对方是否接收到数据,因此,数据传输的可靠性较低,尤其不利于多芯片交互的应用层程序开发过程中的数据传输,限制了SPI总线协议的应用范围。
发明内容
有鉴于此,本发明的目的在于提供一种数据传输方法、装置和设备,以提高SPI数据传输的可靠性,扩展SPI总线的应用范围
第一方面,本发明实施例提供了一种数据传输方法,该方法应用于主设备,主设备通过SPI总线与从设备连接;方法包括:当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;数据传输请求命令包括写请求命令或读请求命令;当接收到从设备返回的数据传输请求命令对应的回复数据时,根据回复数据判断从设备是否允许进行数据传输操作;如果允许,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾;数据包头用于从设备确认数据传输操作是否允许;数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
在本发明较佳的实施例中,上述如果数据传输请求命令包括写请求命令,写请求命令中包括主设备向从设备写入数据的数据总量;如果数据传输请求命令包括读请求命令,读请求命令中包括待读取的数据标识。
在本发明较佳的实施例中,上述进行数据传输请求命令对应的数据传输操作的步骤,包括:如果数据传输请求命令包括写请求命令,主设备向从设备发送第一数据包头,以使从设备确认是否允许写请求命令对应的数据传输操作;向从设备发送写请求命令对应的数据和第一数据包尾,以使从设备根据第一数据包尾确认接收到的数据是否正确,并根据接收到的数据生成第二数据包尾,将第二数据包尾发送至主设备;接收从设备发送的第二数据包尾,根据第二数据包尾确认从设备接收到的数据是否正确。
在本发明较佳的实施例中,上述第一数据包尾中包含有主设备预先根据发送的数据生成的校验值;第二数据包尾中包含有从设备根据接收到的数据生成的校验值。
在本发明较佳的实施例中,上述进行数据传输请求命令对应的数据传输操作的步骤,包括:如果数据传输请求命令包括读请求命令,主设备向从设备发送第二数据包头,以使从设备确认是否允许读请求命令对应的数据传输操作,并发送读请求命令对应的数据和第三数据包尾;接收从设备发送的数据和第三数据包尾;根据第三数据包尾确认接收到的数据是否正确;根据接收到的数据生成第四数据包尾,将第四数据包尾发送至从设备,以使从设备根据第四数据包尾确认主设备接收到的数据是否正确。
在本发明较佳的实施例中,上述第三数据包尾包含有从设备预先根据发送的数据生成的校验值;第四数据包尾包含有主设备根据接收到的数据生成的校验值。
在本发明较佳的实施例中,上述数据传输请求命令、回复数据和数据传输操作传输的数据中均设置有协议格式,协议格式包含协议包头和协议包尾;协议包头包括第一指定字符串、协议包头对应的数据传输请求命令、回复数据或数据传输操作传输的数据的数据标识和数据长度;协议包尾包括第二指定字符串、协议包尾对应的数据传输请求命令、回复数据和数据传输操作传输的数据的数据标识。
第二方面,本发明实施例提供了一种数据传输方法,该方法应用于从设备,从设备通过SPI总线与主设备连接;方法包括:当接收到主设备发送的数据传输请求命令时,根据数据传输请求命令生成回复数据;数据传输请求命令包括对从设备的写请求命令或读请求命令;将回复数据返回至主设备,以使主设备根据回复数据判断从设备是否允许进行数据传输操作;如果允许,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾;数据包头用于从设备确认数据传输操作是否允许;数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
在本发明较佳的实施例中,上述根据数据传输请求命令生成回复数据的步骤,包括:如果数据传输请求命令包括对从设备的写请求命令,判断从设备当前的存储空间是否大于或等于写请求命令对应的数据总量;如果是,生成第一回复数据,以告知主设备允许写请求命令对应的数据传输操作;如果否,生成第二回复数据,以告知主设备拒绝写请求命令对应的数据传输操作。
在本发明较佳的实施例中,上述根据数据传输请求命令生成回复数据的步骤,包括:如果数据传输请求命令包括对从设备的读请求命令,根据从设备的当前工作状态,判断是否允许主设备读取数据;如果允许,从读请求命令中提取待读取的数据标识;查找数据标识对应的数据的数据总量;根据查找到的数据的数据总量,生成第三回复数据;如果不允许,生成第四回复数据,以告知主设备拒绝读请求命令对应的数据传输操作。
在本发明较佳的实施例中,上述进行数据传输请求命令对应的数据传输操作的步骤,包括:如果数据传输请求命令包括对从设备的写请求命令,接收主设备发送的第一数据包头;根据第一数据包头确认是否允许写请求命令对应的数据传输操作;如果允许,接收主设备发送的写请求命令对应的数据和第一数据包尾;根据第一数据包尾确认接收到的数据是否正确;根据接收到的数据生成第二数据包尾,将第二数据包尾发送至主设备,以使主设备根据第二数据包尾确认从设备接收到的数据是否正确。
在本发明较佳的实施例中,上述进行数据传输请求命令对应的数据传输操作的步骤,包括:如果数据传输请求命令包括对从设备的读请求命令,接收主设备发送的第二数据包头;根据第二数据包头确认是否允许读请求命令对应的数据传输操作;如果允许,发送读请求命令对应的数据和第三数据包尾,以使主设备根据第三数据包尾确认接收到的数据是否正确,根据接收到的数据生成第四数据包尾,将第四数据包尾发送至从设备;接收主设备发送的第四数据包尾,根据第四数据包尾确认主设备接收到的数据是否正确。
第三方面,本发明实施例提供了一种数据传输装置,装置设置于主设备,主设备通过SPI总线与从设备连接;装置包括:命令发送模块,用于当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;数据传输请求命令包括写请求命令或读请求命令;判断模块,用于当接收到从设备返回的数据传输请求命令对应的回复数据时,根据回复数据判断从设备是否允许进行数据传输操作;传输模块,用于如果进行数据传输操作,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾;数据包头用于从设备确认数据传输操作是否允许;数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
第四方面,本发明实施例提供了一种数据传输装置,装置设置于从设备,从设备通过SPI总线与主设备连接;装置包括:数据生成模块,用于当接收到主设备发送的数据传输请求命令时,根据数据传输请求命令生成回复数据;数据传输请求命令包括对从设备的写请求命令或读请求命令;数据返回模块,用于将回复数据返回至主设备,以使主设备根据回复数据判断从设备是否允许进行数据传输操作;如果允许,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾;数据包头用于从设备确认数据传输操作是否允许;数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
第五方面,本发明实施例提供了一种设备,设备包括处理设备和存储装置;存储装置上存储有计算机程序,计算机程序在被处理设备运行时执行上述数据传输方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行上述数据传输方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的上述数据传输方法、装置和设备,当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;主设备接收到从设备返回的对应的回复数据时,根据该回复数据判断从设备是否允许进行数据传输操作;如果允许,主设备则进行对应的数据传输操作;同时,通过数据传输操作传输的数据中携带的数据包头使从设备确认数据传输操作是否允许,通过数据包尾使主设备和从设备对数据传输操作传输的数据进行校验。该方式中,通过数据传输请求命令和回复数据可以在数据传输之前确定从设备是否允许进行数据传输,通过数据包头和数据包尾确认数据传输的正确性,从而提高了SPI数据传输的可靠性,扩展了SPI总线的应用范围。
本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种电子系统的结构示意图;
图2为本发明实施例提供的一种数据传输方法的流程图;
图3为本发明实施例提供的另一种数据传输方法的流程图;
图4为本发明实施例提供的一种数据传输装置的结构示意图;
图5为本发明实施例提供的另一种数据传输装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的SPI总线的数据传输的方式可靠性较低,不利于多芯片间进行软件开发时的数据交互。基于此,本发明实施例提供的一种数据传输方法、装置和设备,该技术可以应用于各种多设备或多芯片集成的系统中,如抓拍识别一体机,该技术可采用相应的软件和硬件实现,以下对本发明实施例进行详细介绍。
实施例一:
首先,参照图1来描述用于实现本发明实施例的数据传输方法、装置和设备的示例电子系统100。
如图1所示的一种电子系统的结构示意图,电子系统100包括一个或多个处理设备102、一个或多个存储装置104、输入装置106、输出装置108,当然根据电子系统的应用需求,还可以包括一个或多个图像采集设备110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子系统100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子系统也可以具有其他组件和结构。
所述处理设备102可以是网关,也可以为智能终端,或者是包含中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元的设备,可以对所述电子系统100中的其它组件的数据进行处理,还可以控制所述电子系统100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理设备102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理设备实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如,用户)输出各种信息(例如,图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述图像采集设备110可以采集预览帧图像或图像数据,并且将采集到的预览帧图像或图像数据存储在所述存储装置104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的数据传输方法、装置和设备的示例电子系统中的各器件可以集成设置,也可以分散设置,诸如将处理设备102、存储装置104、输入装置106和输出装置108集成设置于一体,而将图像采集设备110设置于可以采集到目标对象的指定位置。当上述电子系统中的各器件集成设置时,该电子系统可以被实现为诸如相机、智能手机、平板电脑、计算机、抓拍识别一体机等智能终端。
实施例二:
本实施例提供了一种数据传输方法,该方法由上述电子系统中的处理设备执行;当电子系统中的处理设备包括多个设备时,该方法应用于处理设备中的主设备,该主设备通过SPI总线与从设备连接;该从设备为除主设备以外的其他从设备,如专用于处理图像识别的设备;上述从设备也可以为处理设备以外其他设备,如上述存储装置、输入装置、输出装置、图像采集装置等。
如图2所示,该方法包括如下步骤:
步骤S202,当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;数据传输请求命令包括写请求命令或读请求命令;
主设备具体可以根据当前执行的任务,以及从设备的功能确定是否需要与该从设备进行数据传输;例如,从设备用于检测视频帧中的目标对象,当主设备当前执行的任务需要获取视频帧中的目标对象时,则确定该主设备需要与从设备进行数据传输。相关技术中,如主设备需要与从设备进行数据传输,则直接向从设备发送数据,或者告知从设备发送相关的数据;如果从设备的缓存较为紧张,不允许接收数据,或者从设备当前任务较多,不能发送数据,此时则易造成数据传输失败,或者数据传输发生错误的情况。
而上述步骤S202中,当主设备需要与从设备进行数据传输时,首先向从设备发送数据传输请求命令,该命令可以用于询问从设备当前是否允许数据传输。具体地,当该数据传输请求命令为写请求命令时,该命令中通常包含待写数据的数据量,当从设备接收到该命令时,根据当前从设备的存储空间(如缓存空间)确认是否允许接收上述数据量大小的数据,以避免数据量较大时,从设备难以承载导致数据写入错误或丢失。当该数据传输请求命令为读请求命令时,该命令中通常包含待读取数据的数据标识,以告知从设备需要读取哪些数据;当从设备接收到该命令时,根据当前从设备的工作状况(如从设备的繁忙程度,数据标识对应的数据是否正常等)确认是否允许读取该数据,以避免数据读取发生错误。
步骤S204,当接收到从设备返回的数据传输请求命令对应的回复数据时,根据回复数据判断从设备是否允许进行数据传输操作;
从设备接收到数据传输请求命令后,根据从设备的存储空间、工作状况、数据存储状况等因素判断是否允许该数据传输请求命令对应的数据传输操作,根据判断结果生成上述回复数据,该回复数据可以为“允许数据传输”或“拒绝数据传输”等相关内容;主设备收到该回复数据后,即可获知该从设备是否允许仅数据传输操作。如果回复数据表明从设备不允许数据传输操作,主设备可以立即或者间隔预设时间段,再次向从设备发送数据传输请求。
步骤S206,如果允许进行数据传输操作,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾;数据包头用于从设备确认数据传输操作是否允许;数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
如果该数据传输请求命令为写请求命令,该数据传输操作即为写数据操作;如果该数据传输请求命令为读请求命令,该数据传输操作即为读数据操作。前述主设备向从设备发送数据传输请求命令,从设备向主设备发送回复数据的过程,可以称为“握手过程”。
在传输数据之前,主设备还需要发送数据包头,该数据包头中可以包含前述从设备向主设备返回的回复数据,以使从设备在进行数据传输之前,确认前述“握手过程”是否已经完成;确认完成后,再进行正式的数据传输;数据传输完成后,为了进一步确认传输的数据是否正确,还需要传输一个数据包尾。例如,对于写数据的过程,主设备向从设备发送数据完毕后,再向从设备发送数据包尾,该数据包尾中包含向从设备发送数据的校验值;从设备接收数据完毕后,根据接收到数据也生成一个校验值,将该校验值与主设备发送的校验值进行匹配,确认接收到的数据是否正确;同时,从设备也将生成的校验值发送至主设备,以使主设备知晓从设备正确接收到了数据。
本发明实施例提供的上述数据传输方法,当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;主设备接收到从设备返回的对应的回复数据时,根据该回复数据判断从设备是否允许进行数据传输操作;如果允许,主设备则进行对应的数据传输操作;同时,通过数据传输操作传输的数据中携带的数据包头使从设备确认数据传输操作是否允许,通过数据包尾使主设备和从设备对数据传输操作传输的数据进行校验。该方式中,通过数据传输请求命令和回复数据可以在数据传输之前确定从设备是否允许进行数据传输,通过数据包头和数据包尾确认数据传输的正确性,从而提高了SPI数据传输的可靠性,扩展了SPI总线的应用范围。
实施例三:
本实施例提供了另一种数据传输方法,该方法在上述实施例的基础上实现;本实施例中,分别描述数据传输请求命令为写请求命令和读请求命令时,上述数据传输方法的实现过程。本实施例中,主设备作为master,用于发起写请求命令或读请求命令;从设备作为slave,用于响应master发起的写请求命令或读请求命令。
(一)如果数据传输请求命令包括写请求命令
当数据传输请求命令包括写请求命令时,数据传输操作即为写数据操作;写请求命令中包括主设备向从设备写入数据的数据总量;从设备接收到该写请求命令时,可以根据从设备当前的缓存或内存确认是否允许写入该数据总量大小的数据量,根据确认结果生成回复数据,将该回复数据发送至主设备。
基于上述描述,该数据传输方法包括下述步骤:
步骤302,当主设备需要与从设备进行写数据时,向从设备发送写请求命令;
作为一个写请求命令的示例,该写请求命令具体可以为:0x57,0x52,len0,len1,len2,len3,crc0,crc1;其中,len0、len1、len2、len3为主设备写数据的字节总数减1,len0为最低字节,len3为最高字节;crc0和crc 1为写请求前6个字节的校验值,crc0为低字节,crc1为高字节。
步骤304,当接收到从设备返回的写请求命令对应的回复数据时,根据该回复数据判断从设备是否允许进行数据传输操作;如果是,执行步骤306,如果否,结束;
作为一个写请求命令对应的回复数据的示例,该回复数据具体可以为:0x57,0x52,0x01,0x00,0x00,0x00,0xB5,0xD7;该回复数据从设备允许上述写请求命令对应的写操作;如果回复数据为其他数据,表示从设备拒绝上述写请求命令对应的写操作。
步骤306,主设备向从设备发送第一数据包头,以使从设备确认是否允许写请求命令对应的数据传输操作;
作为一个写请求命令对应第一数据包头的示例,该第一数据包头具体可以为:0x77,0x72,XX,XX;其中,“XX”可以为任意值。
步骤308,向从设备发送写请求命令对应的数据和第一数据包尾,以使从设备根据第一数据包尾确认接收到的数据是否正确,并根据接收到的数据生成第二数据包尾,将第二数据包尾发送至主设备;
通常,当主设备向从设备发送了数据包头后,可以等待从设备的确认回复,收到该确认回复后再发送写请求命令对应的数据和第一数据包尾;也可以无需等待从设备的回复,继续向从设备发送写请求命令对应的数据和第一数据包尾。另一种方式中,上述数据包头、写请求命令对应的数据和第一数据包尾可以同时发送至从设备。
上述第一数据包尾中包含有主设备预先根据发送的数据生成的校验值;作为一个上述第一数据包尾的示例,该第一数据包尾具体可以为0x57,0x77,crc0,crc1;其中,crc0和crc1为从设备收到的不包括数据包头的数据的校验值,crc0为低字节,crc1为高字节。
步骤310,接收从设备发送的第二数据包尾,根据第二数据包尾确认从设备接收到的数据是否正确。结束。
从设备接收到数据后,可以采用同样的算法生成校验值,并将该校验值与主设备发送的校验值进行比较,如果两个校验值相同,或者两个校验值的误差在预设范围内,说明从设备接收到的数据正确;如果两个校验值相同,或者两个校验值的误差超出预设范围,说明从设备接收到的数据错误。
上述第二数据包尾中包含有从设备根据接收到的数据生成的校验值;主设备接收到从设备发送的校验值后,与主设备自身根据数据计算的校验值进行比较,如果两个校验值相同,或者两个校验值的误差在预设范围内,说明从设备接收到的数据正确;如果两个校验值不同,或者两个校验值的误差超出预设范围,说明从设备接收到的数据错误。
如果主设备根据第二数据包尾确定从设备接收到的数据错误,可以重新执行上述步骤302-步骤310的过程,也可以直接重新发送数据,即执行步骤308的过程。
(二)如果数据传输请求命令包括读请求命令
当数据传输请求命令包括读请求命令时,数据传输操作即为读数据操作;读请求命令中包括待读取的数据标识。从设备接收到该读请求命令时,可以根据从设备当前的任务量,以及该数据标识对应数据的数据存储状态,确定是否允许读取该数据标识对应的数据;例如,如果从设备当前的数据处理任务非常多,从设备很繁忙,此时可以拒绝该读请求命令,如果从设备发现该数据标识对应的数据存储异常,如发生故障等,也可以拒绝该读请求命令。从设备根据上述确定结果生成回复数据,将该回复数据发送至主设备。
基于上述描述,该数据传输方法包括下述步骤:
步骤402,当主设备需要与从设备进行读数据时,向从设备发送读请求命令;
作为一个读请求命令的示例,该读请求命令具体可以为:0x52,0x44,0x00,0x00,0x00,0x00,0xFD,0xBD;该示例中的读请求命令中不包含待读取的数据标识;该数据标识可以包含在该读请求命令中的上层协议包头中,也可以包含在读请求命令的命令本身中。
步骤404,当接收到从设备返回的读请求命令对应的回复数据时,根据该回复数据判断从设备是否允许进行数据传输操作;如果是,执行步骤406,如果否,结束;
作为一个读请求命令对应的回复数据的示例,该回复数据具体可以为:0x52,0x44,len0,len1,len2,len3,crc0,crc1;其中,len0、len1、len2和len3为主设备需要读取数据的字节总数减1,len0为最低字节,len3为最高字节;crc0和crc1为上述回复数据前6个字节的crc16校验值,crc0为低字节,crc1为高字节;其他回复表示slave拒绝读操作。如果回复数据为其他数据,表示从设备拒绝上述读请求命令对应的读操作。
步骤406,主设备向从设备发送第二数据包头,以使从设备确认是否允许读请求命令对应的数据传输操作,并发送读请求命令对应的数据和第三数据包尾;
作为一个读请求命令对应的第二数据包头的示例,该第二数据包头具体可以为:0x72,0x64,XX,XX;其中,“XX”可以为任意值。
步骤408,接收从设备发送的数据和第三数据包尾;
步骤410,根据第三数据包尾确认接收到的数据是否正确;根据接收到的数据生成第四数据包尾,将第四数据包尾发送至从设备,以使从设备根据第四数据包尾确认主设备接收到的数据是否正确。
上述第三数据包尾包含有从设备预先根据发送的数据生成的校验值;作为一个第三数据包尾的示例,该第三数据包尾具体可以为0x52,0x72,crc0,crc1;其中,crc0和crc1为从设备发送的所有读出数据的校验值,crc0为低字节,crc1为高字节。
主设备接收到数据后,可以采用同样的算法生成校验值,并将该校验值与从设备发送的校验值进行比较,如果两个校验值相同,或者两个校验值的误差在预设范围内,说明主设备接收到的数据正确;如果两个校验值相同,或者两个校验值的误差超出预设范围,说明主设备接收到的数据错误。
上述第四数据包尾中包含有主设备根据接收到的数据生成的校验值;从设备接收到主设备发送的校验值后,与从设备自身根据数据计算的校验值进行比较,如果两个校验值相同,或者两个校验值的误差在预设范围内,说明主设备接收到的数据正确;如果两个校验值不同,或者两个校验值的误差超出预设范围,说明主设备接收到的数据错误。
如果从设备根据第四数据包尾确定主设备接收到的数据错误,可以通知主设备,以使主设备重新向从设备发送读请求命令,即重新执行上述步骤402-步骤410的过程,也可以直接重新发送数据,即执行步骤408的过程。
上述第一数据包尾、第二数据包尾、第三数据包尾和第四数据包尾中的校验值,具体可以为CRC(Cyclic Redundancy Check,循环冗余校验码)16校验值;该校验值也可以为奇偶校验码、海明校验码等。
另外,主设备和从设备在进行数据传输中,还需要设置上层协议格式,即上述数据传输请求命令、回复数据和数据传输操作传输的数据中均设置有协议格式,该协议格式包含协议包头和协议包尾;其中,协议包头包括第一指定字符串、协议包头对应的数据传输请求命令、回复数据或数据传输操作传输的数据的数据标识和数据长度;协议包尾包括第二指定字符串、协议包尾对应的数据传输请求命令、回复数据和数据传输操作传输的数据的数据标识。
具体而言,上述上层协议格式是包装在数据传输请求命令、回复数据和数据传输操作传输的数据上的,即在数据传输请求命令、回复数据和数据传输操作传输的数据的开头添加上上述协议包头,在数据传输请求命令、回复数据和数据传输操作传输的数据的结尾添加上上述协议包尾。上层协议格式的长度和具体内容可以根据需求进行设置,主设备和从设备均能够识别即可。
例如,协议包头的长度可以为8个字节,第一指定字符串可以为“FPP”,占协议包头的前3个字节;第4个字节为数据传输请求命令、回复数据或数据传输操作传输的数据的数据标识,用于指示后续数据的类型;协议包头的后4个字节为数据长度;通常,上述据传输请求命令、回复数据或数据传输操作传输的数据可能具有不同的存储格式,且不同存储格式的数据长度也会不同;本实施例中,协议包头中的数据长度可以为按照小端序存储的uint32-t类型的数据长度,且该数据长度不包括上述协议包头。
协议包尾的长度可以为4个字节,第二指定字符串可以为“END”,占协议包尾的前3个字节;第四个字节为数据传输请求命令、回复数据或数据传输操作传输的数据的数据标识,用于指示前述协议包头和协议包尾之间数据的类型。
基于上述协议格式,下面描述一种应用场景。主设备需要检测视频帧中的人脸时,向从设备发送视频帧;从设备通过第一神经网络对视频帧进行检测,将检测结果返回至主设备;该检测结果中通常包含人脸区域的坐标,以及对人脸区域的操作信息,如刷新主设备缓存中的图片等。当主设备需要识别视频帧中的人脸时,将识别请求发送至从设备;从设备通过第二神经网络对该识别请求对应的视频帧或者上述检测结果进行人脸识别;将识别应答数据返回至主设备。在上述过程中,涉及到多次读数据操作和写数据操作。
以从设备向主设备发送检测结果为例,该检测结果可以保存在从设备的FrameResult的proto buffer中,该检测结果作为FrameResult的proto buffer数据,需要在该数据前添加协议包头,在该数据后添加协议包尾;其中,该协议包头和协议包尾中的数据标识可以为0x10。以主设备向从设备发送识别请求为例,该识别请求可以保存在主设备的MegRequest的proto buffer中,该识别请求作为MegRequest的proto buffer数据,需要在该数据前添加协议包头,在该数据后添加协议包尾;其中,该协议包头和协议包尾中的数据标识可以为0x11。以从设备向主设备发送识别应答数据为例,该识别应答数据可以保存在从设备的MegReply的proto buffer数据中,该识别应答数据作为MegReply的protobuffer数据,需要在该数据前添加协议包头,在该数据后添加协议包尾;其中,该协议包头和协议包尾中的数据标识可以为0x11。
上述数据传输方法,通过数据传输请求命令和回复数据可以在数据传输之前确定从设备是否允许进行数据传输,通过数据包头和数据包尾确认数据传输的正确性,从而提高了SPI数据传输的可靠性,扩展了SPI总线的应用范围。
实施例四:
本实施例提供了另一种数据传输方法,该方法在上述实施例的基础上实现;本实施例中,从从设备的角度描述上述数据传输方法,该从设备通过SPI总线与主设备连接;如图3所示,该方法包括:
步骤S302,当接收到主设备发送的数据传输请求命令时,根据数据传输请求命令生成回复数据;该数据传输请求命令包括对从设备的写请求命令或读请求命令;
如上述实施例所述,从设备接收到数据传输请求命令后,可以根据从设备的存储空间、工作状况、数据存储状况等因素判断是否允许该数据传输请求命令对应的数据传输操作,根据判断结果生成上述回复数据,该回复数据可以为“允许数据传输”或“拒绝数据传输”等相关内容;主设备收到该回复数据后,即可获知该从设备是否允许仅数据传输操作。
步骤S304,将回复数据返回至主设备,以使主设备根据回复数据判断从设备是否允许进行数据传输操作;如果允许,进行数据传输请求命令对应的数据传输操作;该数据传输操作传输的数据中携带有预设的数据包头和数据包尾;该数据包头用于从设备确认数据传输操作是否允许;该数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
上述数据传输方法中,从设备接收到主设备发送的数据传输请求命令时,根据数据传输请求命令生成回复数据,进而将该回复数据返回至主设备,以使主设备根据回复数据判断从设备是否允许进行数据传输操作;通过数据传输操作传输的数据中携带的数据包头使从设备确认数据传输操作是否允许,通过数据包尾使主设备和从设备对数据传输操作传输的数据进行校验。该方式中,通过数据传输请求命令和回复数据可以在数据传输之前确定从设备是否允许进行数据传输,通过数据包头和数据包尾确认数据传输的正确性,从而提高了SPI数据传输的可靠性,扩展了SPI总线的应用范围。
实施例五:
本实施例提供了另一种数据传输方法,该方法在上述实施例的基础上实现;本实施例中,从从设备的角度具体描述上述数据传输方法中生成回复数据的过程以及进行数据传输操作的过程;该从设备具体可以为zynq芯片。
(一)如果数据传输请求命令包括对从设备的写请求命令
当数据传输请求命令包括对从设备的写请求命令时,该数据传输方法包括下述步骤:
步骤502,当接收到主设备发送的写请求命令时,判断从设备当前的存储空间是否大于或等于写请求命令对应的数据总量;如果是,执行步骤504;如果否,执行步骤506;
步骤504,生成第一回复数据,将该第一回复数据返回至主设备,以告知主设备允许写请求命令对应的数据传输操作;执行步骤508。
该第一回复数据具体可以为指定的字符串,如“YES”、“PERMINT WRITE”“0x57,0x52,0x01,0x00,0x00,0x00,0xB5,0xD7”等。
步骤506,生成第二回复数据,将该第二回复数据返回至主设备,以告知主设备拒绝写请求命令对应的数据传输操作。结束。
该第二回复数据具体可以为指定的字符串,如“NO”、“REJECT WRITE”等。
步骤508,接收主设备发送的数据包头;
步骤510,根据该数据包头确认是否允许写请求命令对应的数据传输操作;如果允许,执行步骤512;如果不允许,结束。
步骤512,接收主设备发送的写请求命令对应的数据和第一数据包尾;
步骤514,根据第一数据包尾确认接收到的数据是否正确;根据接收到的数据生成第二数据包尾,将第二数据包尾发送至主设备,以使主设备根据第二数据包尾确认从设备接收到的数据是否正确。
由上述实施例可知,上述第二数据包尾中包含有从设备根据接收到的数据生成的校验值;从设备发送至第二数据包尾后,还会向从设备(如zynq芯片,也可以称为PS)的arm核(也可以称为arm core)的linux驱动发送中断请求,以告知linux驱动写数据操作完成。
(二)如果数据传输请求命令包括对从设备的读请求命令
当数据传输请求命令包括对从设备的读请求命令时,该数据传输方法包括下述步骤:
步骤602,当接收到主设备发送的读请求命令时,根据从设备的当前工作状态,判断是否允许主设备读取数据;如果允许,执行步骤604;如果不允许,执行步骤606;
步骤604,从读请求命令中提取待读取的数据标识;查找数据标识对应的数据的数据总量;根据查找到的数据的数据总量,生成第三回复数据;执行步骤608;
该第三回复数据具体可以为指定的字符串,如0x52,0x44,len0,len1,len2,len3,crc0,crc1;其中,len0、len1、len2和len3为主设备需要读取数据的字节总数减1,len0为最低字节,len3为最高字节;crc0和crc1为上述回复数据前6个字节的crc16校验值,crc0为低字节,crc1为高字节。
步骤606,生成第四回复数据,以告知主设备拒绝读请求命令对应的数据传输操作。结束。
该第四回复数据具体可以为指定的字符串,如“NO”、“REJECT WRITE”等。
步骤608,接收主设备发送的数据包头;
步骤610,根据数据包头确认是否允许读请求命令对应的数据传输操作;如果允许,执行步骤612;如果不允许,结束。
步骤612,发送读请求命令对应的数据和第三数据包尾,以使主设备根据第三数据包尾确认接收到的数据是否正确,根据接收到的数据生成第四数据包尾,将第四数据包尾发送至从设备;
步骤614,接收主设备发送的第四数据包尾,根据第四数据包尾确认主设备接收到的数据是否正确。
该方式中,通过数据传输请求命令和回复数据可以在数据传输之前确定从设备是否允许进行数据传输,通过数据包头和数据包尾确认数据传输的正确性,从而提高了SPI数据传输的可靠性,扩展了SPI总线的应用范围。
实施例六:
对应于上述方法实施例,参见图4所示的一种数据传输装置的结构示意图,该装置设置于主设备,主设备通过SPI总线与从设备连接;该装置包括:
命令发送模块40,用于当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;数据传输请求命令包括写请求命令或读请求命令;
判断模块41,用于当接收到从设备返回的数据传输请求命令对应的回复数据时,根据回复数据判断从设备是否允许进行数据传输操作;
传输模块42,用于如果进行数据传输操作,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾;数据包头用于从设备确认数据传输操作是否允许;数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
本发明实施例提供的上述数据传输装置,当主设备需要与从设备进行数据传输时,向从设备发送数据传输请求命令;主设备接收到从设备返回的对应的回复数据时,根据该回复数据判断从设备是否允许进行数据传输操作;如果允许,主设备则进行对应的数据传输操作;同时,通过数据传输操作传输的数据中携带的数据包头使从设备确认数据传输操作是否允许,通过数据包尾使主设备和从设备对数据传输操作传输的数据进行校验。该方式中,通过数据传输请求命令和回复数据可以在数据传输之前确定从设备是否允许进行数据传输,通过数据包头和数据包尾确认数据传输的正确性,从而提高了SPI数据传输的可靠性,扩展了SPI总线的应用范围。
进一步地,上述如果数据传输请求命令包括写请求命令,写请求命令中包括主设备向从设备写入数据的数据总量;如果数据传输请求命令包括读请求命令,读请求命令中包括待读取的数据标识。
进一步地,上述传输模块用于:如果数据传输请求命令包括写请求命令,主设备向从设备发送第一数据包头,以使从设备确认是否允许写请求命令对应的数据传输操作;向从设备发送写请求命令对应的数据和第一数据包尾,以使从设备根据第一数据包尾确认接收到的数据是否正确,并根据接收到的数据生成第二数据包尾,将第二数据包尾发送至主设备;接收从设备发送的第二数据包尾,根据第二数据包尾确认从设备接收到的数据是否正确。
进一步地,上述第一数据包尾中包含有主设备预先根据发送的数据生成的校验值;第二数据包尾中包含有从设备根据接收到的数据生成的校验值。
进一步地,上述传输模块用于:如果数据传输请求命令包括读请求命令,主设备向从设备发送第二数据包头,以使从设备确认是否允许读请求命令对应的数据传输操作,并发送读请求命令对应的数据和第三数据包尾;接收从设备发送的数据和第三数据包尾;根据第三数据包尾确认接收到的数据是否正确;根据接收到的数据生成第四数据包尾,将第四数据包尾发送至从设备,以使从设备根据第四数据包尾确认主设备接收到的数据是否正确。
进一步地,上述第三数据包尾包含有从设备预先根据发送的数据生成的校验值;第四数据包尾包含有主设备根据接收到的数据生成的校验值。
进一步地,上述数据传输请求命令、回复数据和数据传输操作传输的数据中均设置有协议格式,协议格式包含协议包头和协议包尾;协议包头包括第一指定字符串、协议包头对应的数据传输请求命令、回复数据或数据传输操作传输的数据的数据标识和数据长度;协议包尾包括第二指定字符串、协议包尾对应的数据传输请求命令、回复数据和数据传输操作传输的数据的数据标识。
参见图5所示的一种数据传输装置的结构示意图,该装置设置于从设备,从设备通过SPI总线与主设备连接;该装置包括:
数据生成模块50,用于当接收到主设备发送的数据传输请求命令时,根据数据传输请求命令生成回复数据;数据传输请求命令包括对从设备的写请求命令或读请求命令;
数据返回模块51,用于将回复数据返回至主设备,以使主设备根据回复数据判断从设备是否允许进行数据传输操作;如果允许,进行数据传输请求命令对应的数据传输操作;数据传输操作传输的数据中携带有预设的数据包头和数据包尾;数据包头用于从设备确认数据传输操作是否允许;数据包尾用于主设备和从设备对数据传输操作传输的数据进行校验。
上述数据生成模块,用于:如果数据传输请求命令包括对从设备的写请求命令,判断从设备当前的存储空间是否大于或等于写请求命令对应的数据总量;如果是,生成第一回复数据,以告知主设备允许写请求命令对应的数据传输操作;如果否,生成第二回复数据,以告知主设备拒绝写请求命令对应的数据传输操作。
上述数据生成模块,用于:如果数据传输请求命令包括对从设备的读请求命令,根据从设备的当前工作状态,判断是否允许主设备读取数据;如果允许,从读请求命令中提取待读取的数据标识;查找数据标识对应的数据的数据总量;根据查找到的数据的数据总量,生成第三回复数据;如果不允许,生成第四回复数据,以告知主设备拒绝读请求命令对应的数据传输操作。
上述数据返回模块,用于:如果数据传输请求命令包括对从设备的写请求命令,接收主设备发送的第一数据包头;根据第一数据包头确认是否允许写请求命令对应的数据传输操作;如果允许,接收主设备发送的写请求命令对应的数据和第一数据包尾;根据第一数据包尾确认接收到的数据是否正确;根据接收到的数据生成第二数据包尾,将第二数据包尾发送至主设备,以使主设备根据第二数据包尾确认从设备接收到的数据是否正确。
上述数据返回模块,用于:进行数据传输请求命令对应的数据传输操作的步骤,包括:如果数据传输请求命令包括对从设备的读请求命令,接收主设备发送的第二数据包头;根据第二数据包头确认是否允许读请求命令对应的数据传输操作;如果允许,发送读请求命令对应的数据和第三数据包尾,以使主设备根据第三数据包尾确认接收到的数据是否正确,根据接收到的数据生成第四数据包尾,将第四数据包尾发送至从设备;接收主设备发送的第四数据包尾,根据第四数据包尾确认主设备接收到的数据是否正确。
本实施例所提供的装置,其实现原理及产生的技术效果和前述实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例七:
本发明实施例提供了设备,该设备包括处理设备和存储装置;存储装置上存储有计算机程序,计算机程序在被处理设备运行时执行上述数据传输方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
进一步地,本实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理设备运行时执行上述数据传输方法的步骤。
本发明实施例所提供的数据传输方法、装置和设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (16)

1.一种数据传输方法,其特征在于,所述方法应用于主设备,所述主设备通过SPI总线与从设备连接;所述方法包括:
当所述主设备需要与所述从设备进行数据传输时,向所述从设备发送数据传输请求命令;所述数据传输请求命令包括写请求命令或读请求命令;
当接收到所述从设备返回的所述数据传输请求命令对应的回复数据时,根据所述回复数据判断所述从设备是否允许进行数据传输操作;
如果允许,进行所述数据传输请求命令对应的数据传输操作;所述数据传输操作传输的数据中携带有预设的数据包头和数据包尾;所述数据包头用于所述从设备确认所述数据传输操作是否允许;所述数据包尾用于所述主设备和所述从设备对所述数据传输操作传输的数据进行校验。
2.根据权利要求1所述的方法,其特征在于,如果所述数据传输请求命令包括写请求命令,所述写请求命令中包括所述主设备向所述从设备写入数据的数据总量;
如果所述数据传输请求命令包括读请求命令,所述读请求命令中包括待读取的数据标识。
3.根据权利要求1所述的方法,其特征在于,进行所述数据传输请求命令对应的数据传输操作的步骤,包括:
如果所述数据传输请求命令包括写请求命令,所述主设备向所述从设备发送第一数据包头,以使所述从设备确认是否允许所述写请求命令对应的数据传输操作;
向所述从设备发送所述写请求命令对应的数据和第一数据包尾,以使所述从设备根据所述第一数据包尾确认接收到的数据是否正确,并根据接收到的数据生成第二数据包尾,将所述第二数据包尾发送至所述主设备;
接收所述从设备发送的第二数据包尾,根据所述第二数据包尾确认所述从设备接收到的数据是否正确。
4.根据权利要求3所述的方法,其特征在于,所述第一数据包尾中包含有所述主设备预先根据发送的所述数据生成的校验值;所述第二数据包尾中包含有所述从设备根据接收到的数据生成的校验值。
5.根据权利要求1所述的方法,其特征在于,进行所述数据传输请求命令对应的数据传输操作的步骤,包括:
如果所述数据传输请求命令包括读请求命令,所述主设备向所述从设备发送第二数据包头,以使所述从设备确认是否允许所述读请求命令对应的数据传输操作,并发送所述读请求命令对应的数据和第三数据包尾;
接收所述从设备发送的数据和第三数据包尾;
根据所述第三数据包尾确认接收到的数据是否正确;根据接收到的数据生成第四数据包尾,将所述第四数据包尾发送至所述从设备,以使所述从设备根据所述第四数据包尾确认所述主设备接收到的数据是否正确。
6.根据权利要求5所述的方法,其特征在于,所述第三数据包尾包含有所述从设备预先根据发送的所述数据生成的校验值;所述第四数据包尾包含有所述主设备根据接收到的数据生成的校验值。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述数据传输请求命令、所述回复数据和所述数据传输操作传输的数据中均设置有协议格式,所述协议格式包含协议包头和协议包尾;
所述协议包头包括第一指定字符串、所述协议包头对应的所述数据传输请求命令、所述回复数据或所述数据传输操作传输的数据的数据标识和数据长度;
所述协议包尾包括第二指定字符串、所述协议包尾对应的所述数据传输请求命令、所述回复数据和所述数据传输操作传输的数据的数据标识。
8.一种数据传输方法,其特征在于,所述方法应用于从设备,所述从设备通过SPI总线与主设备连接;所述方法包括:
当接收到主设备发送的数据传输请求命令时,根据所述数据传输请求命令生成回复数据;所述数据传输请求命令包括对从设备的写请求命令或读请求命令;
将所述回复数据返回至所述主设备,以使所述主设备根据所述回复数据判断所述从设备是否允许进行数据传输操作;如果允许,进行所述数据传输请求命令对应的数据传输操作;所述数据传输操作传输的数据中携带有预设的数据包头和数据包尾;所述数据包头用于所述从设备确认所述数据传输操作是否允许;所述数据包尾用于所述主设备和所述从设备对所述数据传输操作传输的数据进行校验。
9.根据权利要求8所述的方法,其特征在于,根据所述数据传输请求命令生成回复数据的步骤,包括:
如果所述数据传输请求命令包括对从设备的写请求命令,判断所述从设备当前的存储空间是否大于或等于所述写请求命令对应的数据总量;
如果是,生成第一回复数据,以告知所述主设备允许所述写请求命令对应的数据传输操作;
如果否,生成第二回复数据,以告知所述主设备拒绝所述写请求命令对应的数据传输操作。
10.根据权利要求8所述的方法,其特征在于,根据所述数据传输请求命令生成回复数据的步骤,包括:
如果所述数据传输请求命令包括对从设备的读请求命令,根据所述从设备的当前工作状态,判断是否允许所述主设备读取数据;
如果允许,从所述读请求命令中提取待读取的数据标识;查找所述数据标识对应的数据的数据总量;根据查找到的所述数据的数据总量,生成第三回复数据;
如果不允许,生成第四回复数据,以告知所述主设备拒绝所述读请求命令对应的数据传输操作。
11.根据权利要求8所述的方法,其特征在于,进行所述数据传输请求命令对应的数据传输操作的步骤,包括:
如果所述数据传输请求命令包括对从设备的写请求命令,接收所述主设备发送的第一数据包头;
根据所述第一数据包头确认是否允许所述写请求命令对应的数据传输操作;
如果允许,接收所述主设备发送的所述写请求命令对应的数据和第一数据包尾;
根据所述第一数据包尾确认接收到的数据是否正确;
根据接收到的数据生成第二数据包尾,将所述第二数据包尾发送至所述主设备,以使所述主设备根据所述第二数据包尾确认所述从设备接收到的数据是否正确。
12.根据权利要求8所述的方法,其特征在于,进行所述数据传输请求命令对应的数据传输操作的步骤,包括:
如果所述数据传输请求命令包括对从设备的读请求命令,接收所述主设备发送的第二数据包头;
根据所述第二数据包头确认是否允许所述读请求命令对应的数据传输操作;
如果允许,发送所述读请求命令对应的数据和第三数据包尾,以使所述主设备根据所述第三数据包尾确认接收到的数据是否正确,根据接收到的数据生成第四数据包尾,将所述第四数据包尾发送至所述从设备;
接收所述主设备发送的所述第四数据包尾,根据所述第四数据包尾确认所述主设备接收到的数据是否正确。
13.一种数据传输装置,其特征在于,所述装置设置于主设备,所述主设备通过SPI总线与从设备连接;所述装置包括:
命令发送模块,用于当所述主设备需要与所述从设备进行数据传输时,向所述从设备发送数据传输请求命令;所述数据传输请求命令包括写请求命令或读请求命令;
判断模块,用于当接收到所述从设备返回的所述数据传输请求命令对应的回复数据时,根据所述回复数据判断所述从设备是否允许进行数据传输操作;
传输模块,用于如果进行数据传输操作,进行所述数据传输请求命令对应的数据传输操作;所述数据传输操作传输的数据中携带有预设的数据包头和数据包尾;所述数据包头用于所述从设备确认所述数据传输操作是否允许;所述数据包尾用于所述主设备和所述从设备对所述数据传输操作传输的数据进行校验。
14.一种数据传输装置,其特征在于,所述装置设置于从设备,所述从设备通过SPI总线与主设备连接;所述装置包括:
数据生成模块,用于当接收到主设备发送的数据传输请求命令时,根据所述数据传输请求命令生成回复数据;所述数据传输请求命令包括对从设备的写请求命令或读请求命令;
数据返回模块,用于将所述回复数据返回至所述主设备,以使所述主设备根据所述回复数据判断所述从设备是否允许进行数据传输操作;如果允许,进行所述数据传输请求命令对应的数据传输操作;所述数据传输操作传输的数据中携带有预设的数据包头和数据包尾;所述数据包头用于所述从设备确认所述数据传输操作是否允许;所述数据包尾用于所述主设备和所述从设备对所述数据传输操作传输的数据进行校验。
15.一种设备,其特征在于,所述设备包括处理设备和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理设备运行时执行如权利要求1至7任一项所述的方法,或者8至12任一项所述的方法。
16.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理设备运行时执行上述权利要求1至7任一项所述的方法,或者8至12任一项所述的方法的步骤。
CN201811422828.0A 2018-11-26 2018-11-26 数据传输方法、装置和设备 Active CN109450912B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811422828.0A CN109450912B (zh) 2018-11-26 2018-11-26 数据传输方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811422828.0A CN109450912B (zh) 2018-11-26 2018-11-26 数据传输方法、装置和设备

Publications (2)

Publication Number Publication Date
CN109450912A true CN109450912A (zh) 2019-03-08
CN109450912B CN109450912B (zh) 2021-11-16

Family

ID=65556310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811422828.0A Active CN109450912B (zh) 2018-11-26 2018-11-26 数据传输方法、装置和设备

Country Status (1)

Country Link
CN (1) CN109450912B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008243A (zh) * 2019-03-22 2019-07-12 新华三大数据技术有限公司 一种数据表处理方法及装置
CN111427828A (zh) * 2020-03-02 2020-07-17 深圳震有科技股份有限公司 一种spi流控方法、系统、主设备、从设备及存储介质
CN113353123A (zh) * 2021-05-27 2021-09-07 国能朔黄铁路发展有限责任公司 联锁执行校验方法、装置、计算机设备及存储介质
WO2024037254A1 (zh) * 2022-08-17 2024-02-22 华为技术有限公司 一种通信方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488967A (zh) * 2009-01-14 2009-07-22 深圳市同洲电子股份有限公司 一种视频传输方法、嵌入式监控终端及监控平台服务器
KR101005933B1 (ko) * 2008-12-29 2011-01-03 강릉원주대학교산학협력단 마스터와 슬레이브 간의 데이터 전송방법 및 장치
CN102325146A (zh) * 2011-10-28 2012-01-18 武汉杰瑞诚光电科技有限公司 Udx协议栈、基于udx协议的数据传输系统及方法
CN105468563A (zh) * 2015-12-28 2016-04-06 杭州士兰控股有限公司 Spi从设备、spi通信系统及spi通信方法
CN106095694A (zh) * 2016-06-15 2016-11-09 华为技术有限公司 数据存储方法及装置
CN108075860A (zh) * 2016-11-15 2018-05-25 欧仕达听力科技(厦门)有限公司 与听力装置进行数据传输的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101005933B1 (ko) * 2008-12-29 2011-01-03 강릉원주대학교산학협력단 마스터와 슬레이브 간의 데이터 전송방법 및 장치
CN101488967A (zh) * 2009-01-14 2009-07-22 深圳市同洲电子股份有限公司 一种视频传输方法、嵌入式监控终端及监控平台服务器
CN102325146A (zh) * 2011-10-28 2012-01-18 武汉杰瑞诚光电科技有限公司 Udx协议栈、基于udx协议的数据传输系统及方法
CN105468563A (zh) * 2015-12-28 2016-04-06 杭州士兰控股有限公司 Spi从设备、spi通信系统及spi通信方法
CN106095694A (zh) * 2016-06-15 2016-11-09 华为技术有限公司 数据存储方法及装置
CN108075860A (zh) * 2016-11-15 2018-05-25 欧仕达听力科技(厦门)有限公司 与听力装置进行数据传输的方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110008243A (zh) * 2019-03-22 2019-07-12 新华三大数据技术有限公司 一种数据表处理方法及装置
CN110008243B (zh) * 2019-03-22 2021-05-07 新华三大数据技术有限公司 一种数据表处理方法及装置
CN111427828A (zh) * 2020-03-02 2020-07-17 深圳震有科技股份有限公司 一种spi流控方法、系统、主设备、从设备及存储介质
CN111427828B (zh) * 2020-03-02 2022-08-09 深圳震有科技股份有限公司 一种spi流控方法、系统、主设备、从设备及存储介质
CN113353123A (zh) * 2021-05-27 2021-09-07 国能朔黄铁路发展有限责任公司 联锁执行校验方法、装置、计算机设备及存储介质
WO2024037254A1 (zh) * 2022-08-17 2024-02-22 华为技术有限公司 一种通信方法及装置

Also Published As

Publication number Publication date
CN109450912B (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
CN109450912A (zh) 数据传输方法、装置和设备
CN104350808B (zh) 用于使用移动来将移动通信设备安全地配对的设备、方法和系统
CN112527705B (zh) 一种PCIe DMA数据通路的验证方法、装置及设备
CN102281121A (zh) 一种数据文件传输和校验的方法、设备及系统
CN104184543B (zh) 一种数据传输的方法、装置和系统
CN110175833B (zh) 一种绑定银行卡信息的计算机装置、方法、系统及介质
CN109587112A (zh) 一种发送数据的方法、接收数据的方法、设备及系统
CN110213020A (zh) 基于蓝牙外设的数据传输方法、终端、系统以及装置
CN105487937A (zh) 一种rdma实现方法和装置
CN112585927A (zh) 通信链路的检测方法、装置、系统和可移动平台
CN108268420A (zh) 处理器之间的通信方法、处理器和电子设备
WO2021134418A1 (zh) 一种数据校验方法及装置
US20220324395A1 (en) Apparatus for diagnostics communication error of vehicle, system having the same, and method thereof
CN104850989A (zh) 一种用于移动终端的支付设备及支付方法
CN106452679B (zh) 一种机器人开发系统及其通信方法
CN109800202B (zh) 一种基于pcie的数据传输系统、方法及装置
TWI472207B (zh) 多點擷取及跨層之重播系統
CN107645430B (zh) 一种数据处理方法、系统及相关设备
CN102195943B (zh) 安全性信息交互方法及系统
CN104298630B (zh) 基于串行外设接口的通信方法、装置和设备
CN115543755A (zh) 一种性能监管方法、装置、系统、设备和介质
CN113556210B (zh) 一种上位机和建立通信连接的方法
CN111711996B (zh) 一种tcp通信稳定传输的方法及装置
US20210014006A1 (en) System and method for implementing a hybrid automatic repeat request process
CN108173950A (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