CN112445741B - 基于spi协议的数据传输方法及其系统 - Google Patents
基于spi协议的数据传输方法及其系统 Download PDFInfo
- Publication number
- CN112445741B CN112445741B CN201910826017.5A CN201910826017A CN112445741B CN 112445741 B CN112445741 B CN 112445741B CN 201910826017 A CN201910826017 A CN 201910826017A CN 112445741 B CN112445741 B CN 112445741B
- Authority
- CN
- China
- Prior art keywords
- data
- spi
- slave
- host
- fpga
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 104
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004891 communication Methods 0.000 claims abstract description 22
- 239000000872 buffer Substances 0.000 claims description 6
- 239000011521 glass Substances 0.000 description 6
- 239000000463 material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
一基于SPI协议的数据传输方法及其系统。该基于SPI协议的数据传输方法,包括步骤:藉由一主机侧FPGA,接收通过一SPI主机读取的SPI主机数据,其中该SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;藉由一通讯链路,将该SPI主机数据从该主机侧FPGA传输至一从机侧FPGA;藉由该从机侧FPGA,基于该SPI主机数据中的该数据读取长度信息和该寄存器地址信息,缓存通过一SPI从机读取回的SPI从机数据;以及藉由该通讯链路,将该SPI从机数据从该从机侧FPGA传输至该主机侧FPGA,以回复给该SPI主机。
Description
技术领域
本发明涉及数据传输技术领域,更具体地涉及一基于SPI协议的数据传输方法及其系统。
背景技术
在如今信息技术高速发展的时代,数据传输一直是信息技术发展的基石。目前,常见的传输协议主要包括I2C(Inter-Integrated Circuit,集成电路总线)协议、SPI(Serial Peripheral Interface,串行外围设备接口)协议以及MIPI(Mobile IndustryProcessor Interface,移动行业处理器接口)协议等等。例如,在诸如AR/VR的分体式眼镜方案中,基于SLAM定位的需求,通常会在HMD(Head Mount Display,头戴式显示器)头戴侧设置IMU(惯性测量单元)器件。由于现有的IMU器件的接口多为SPI接口,并且SPI接口存在无法长距离传输的问题,因此现有的分体式AR/VR眼镜的HMD头戴侧与BOX盒子之间基本是通过FPGA(FieldProgrammable Gate Array,现场可编程门阵列)进行上下行数据封装和传输。
然而,对于采用SPI接口的IMU器件,由于SPI协议时钟信号由SPI主机产生,在读取数据过程中SPI从机需要在该SPI主机发送完寄存器地址信息后的下一个时钟周期就发送读取的数据,但是在分体式的设计方案中,该SPI主机和该SPI从机之间的信号需要通过FPGA编码传输,这将产生信号时延,导致该SPI主机无法及时读取到数据而出现数据错误。
为了解决这个问题,现有的分体式AR/VR眼镜在采集HMD头戴侧的SPI从机的数据时,通常会采用SPI主机读取两次的方式。具体地,该SPI主机在第一次读取操作时,BOX侧的FPGA传输读取的寄存器地址和读取的长度到该HMD头戴侧,与此同时,该HMD头戴侧读取IMU器件的数据并缓存;该SPI主机在第二次读取操作时,该SPI从机发送所缓存的数据,以完成数据的采集。这种两次读取的方式虽然能够在一定程度上解决数据出错的问题,但是会导致FPGA侧传输带宽的浪费,并且在读取数据时会产生较大的时延,而该时延会根据读取的数据长度发生变化,对实时性要求较高的场景会产生特别大的不利影响。
发明内容
本发明的一目的在于提供一基于SPI协议的数据传输方法及其系统,其能够缩短在通过FPGA传输SPI数据时引入的时延,有助于提升数据传输的实时性。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统能够解决在通过FPGA传输SPI数据时引入的时延而导致的读取出错问题的同时,也能够充分利用FPGA的传输带宽。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统通过对SPI协议的修改,配合FPGA的处理逻辑,解决了SPI数据读取问题。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统能够通过在原有正常时钟周期中插入读取时钟周期,用于FPGA的上下行传输,有助于完成SPI数据的读取,以防数据出错。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统能够在SPI主机发送完最后一比特数据到下一个时钟之间插入空隙,以便用于FPGA的传输时间消耗。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统能够采用在读取数据长度上增加预定数量字节,以增加时钟周期,有助于保证SPI数据的完整读取。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统能够从所述SPI主机侧读取的数据的前端剔除掉所述预定数量字节的无效数据,有助于确保SPI数据的准确。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统能够在SPI主机发送的寄存器地址前插入预定长度字节,使得从机侧FPGA能够同时获得所述寄存器地址和所要读取的数据长度,有助于避免FPGA传输带宽的浪费,并降低数据采集的时延。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中在本发明的一实施例中,所述基于SPI协议的数据传输系统仅需要对SPI主机侧进行小的改动,有助于增强所述基于SPI协议的数据传输系统的适应性。
本发明的另一目的在于提供一基于SPI协议的数据传输方法及其系统,其中为了达到上述目的,在本发明中不需要采用昂贵的材料或复杂的结构。因此,本发明成功和有效地提供一解决方案,不只提供一基于SPI协议的数据传输方法及其系统,同时还增加了所述基于SPI协议的数据传输方法及其系统的实用性和可靠性。
为了实现上述至少一发明目的或其他目的和优点,本发明提供了一基于SPI协议的数据传输方法,包括步骤:
藉由一主机侧FPGA,接收通过一SPI主机读取的SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;
藉由一通讯链路,将所述SPI主机数据从所述主机侧FPGA传输至一从机侧FPGA;
藉由所述从机侧FPGA,基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,缓存通过一SPI从机读取回的SPI从机数据;以及
藉由所述通讯链路,将所述SPI从机数据从所述从机侧FPGA传输至所述主机侧FPGA,以回复给所述SPI主机。
在本发明的一些实施例中,在所述SPI主机数据中,携带所述数据读取长度信息的字节位于携带所述寄存器地址信息的字节之前。
在本发明的一些实施例中,所述藉由所述通讯链路,将所述SPI从机数据从所述从机侧FPGA传输至所述主机侧FPGA,以回复给所述SPI主机的步骤,包括步骤:
藉由所述通讯链路,将一具有第二预定数量字节的无效数据和所述SPI从机数据一起从所述从机侧FPGA传输至所述主机侧FPGA,以使所述SPI主机读取从机侧数据;和
藉由所述SPI主机,从所读取的所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据。
在本发明的一些实施例中,与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。
在本发明的一些实施例中,在通过所述SPI主机读取的所述从机侧数据中,与所述无效数据对应的字节位于与所述SPI从机数据对应的字节之前
根据本发明的另一方面,本发明还提供了一基于SPI协议的主机侧数据传输方法,包括步骤:
藉由一主机侧FPGA,接收并发送通过一SPI主机读取的SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;和
藉由所述主机侧FPGA,接收并发送一从机侧数据至所述SPI主机。
在本发明的一些实施例中,所述藉由所述主机侧FPGA,接收并发送一从机侧数据至所述SPI主机的步骤,包括步骤:
藉由所述主机侧FPGA,接收所述从机侧数据,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据;和
藉由所述SPI主机,从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据。
根据本发明的另一方面,本发明还提供了一基于SPI协议的从机侧数据传输方法,包括步骤:
藉由一从机侧FPGA,接收一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;
藉由一SPI从机,基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,读取回的SPI从机数据;以及
藉由所述从机侧FPGA,缓存读取的所述SPI从机数据。
在本发明的一些实施例中,所述的从机侧数据传输方法,进一步包括步骤:
藉由所述从机侧FPGA,发送一从机侧数据至一主机侧FPGA,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和所述SPI从机数据。
根据本发明的另一方面,本发明还提供了一基于SPI协议的数据传输系统,包括:
一主机侧单元;
一从机侧单元;以及
一传输单元,其中所述传输单元将所述主机侧单元与所述从机侧单元可通信地连接;
其中所述主机侧单元包括相互可通信地连接的至少一SPI主机和至少一主机侧FPGA,其中所述SPI主机用于读取一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;其中所述主机侧FPGA用于接收所述SPI主机数据,以通过所述传输单元传输至所述从机侧单元,并且接收并发送来自所述从机侧单元的一从机侧数据至所述SPI主机。
在本发明的一些实施例中,所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据;其中所述SPI主机进一步用于从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据。
在本发明的一些实施例中,所述从机侧单元包括相互可通信地连接的一SPI从机和一从机侧FPGA,其中所述从机侧FPGA用于接收来自所述主机侧单元的所述SPI主机数据;其中所述SPI从机用于基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,读取回的所述SPI从机数据。
在本发明的一些实施例中,所述从机侧FPGA进一步用于缓存读取的所述SPI从机数据。
在本发明的一些实施例中,所述从机侧FPGA进一步用于发送所述从机侧数据至所述主机侧单元。
根据本发明的另一方面,本发明还提供了一主机侧单元,供通过一传输单元与一从机侧单元可通信地连接,其中所述主机侧单元包括:
至少一SPI主机,其中所述SPI主机用于读取一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;和
至少一主机侧FPGA,其中所述主机侧FPGA与所述SPI主机可通信地连接,用于接收所述SPI主机数据,以通过该传输单元传输至该从机侧单元,其中所述主机侧FPGA进一步用于接收并发送来自该从机侧单元的一从机侧数据至所述SPI主机。
在本发明的一些实施例中,所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据;其中所述SPI主机进一步用于从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据。
根据本发明的另一方面,本发明还提供了一从机侧单元,供通过一传输单元与一主机侧单元可通信地连接,其中所述从机侧单元包括:
至少一从机侧FPGA,其中所述从机侧FPGA用于接收来自该主机侧单元的所述SPI主机数据;和
至少一SPI从机,其中所述SPI从机与所述从机侧FPGA可通信地连接,用于基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,读取回的一SPI从机数据。
在本发明的一些实施例中,所述从机侧FPGA进一步用于缓存读取的所述SPI从机数据。
在本发明的一些实施例中,所述从机侧FPGA进一步用于发送一从机侧数据至该主机侧单元,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和所述SPI从机数据。
通过对随后的描述和附图的理解,本发明进一步的目的和优势将得以充分体现。
本发明的这些和其它目的、特点和优势,通过下述的详细说明,附图和权利要求得以充分体现。
附图说明
图1是根据本发明的一实施例的一基于SPI协议的数据传输方法的流程示意图。
图2是根据本发明的一实施例的一基于SPI协议的主机侧数据传输方法的流程示意图。
图3是根据本发明的一实施例的一基于SPI协议的从机侧数据传输方法的流程示意图。
图4是根据本发明的一实施例的一基于SPI协议的数据传输系统的结构示意图。
具体实施方式
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本发明的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本发明的精神和范围的其他技术方案。
在本发明中,权利要求和说明书中术语“一”应理解为“一个或多个”,即在一个实施例,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个。除非在本发明的揭露中明确示意该元件的数量只有一个,否则术语“一”并不能理解为唯一或单一,术语“一”不能理解为对数量的限制。
在本发明的描述中,需要理解的是,属于“第一”、“第二”等仅用于描述目的,而不能理解为指示或者暗示相对重要性。本发明的描述中,需要说明的是,除非另有明确的规定和限定,属于“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接或者一体地连接;可以是机械连接,也可以是电连接;可以是直接连接,也可以是通过媒介间接连结。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
在现有的诸如分体式AR/VR眼镜等等之类的分体式近眼显示设备中,位于HMD头戴侧的SPI从机与位于BOX盒子侧的SPI主机之间往往通过FPGA进行上下行数据封装和传输。因为基于SPI协议的时钟信号是由所述SPI主机产生的,所述在读取数据过程中所述SPI从机需要在主机发送完寄存器地址信息后的下一个时钟周期就发送读取的数据。而由于分体式的近眼显示设备的SPI主机和SPI从机之间的信号需要通过FPGA编码传输,会产生信号时延,因此会导致所述SPI主机无法及时读取到数据而出错。
目前,现有分体式的近眼显示设备在采集SPI从机的数据时,通常会采用所述SPI主机读取两次的方式。具体地,首先,现有分体式的近眼显示设备的所述SPI主机在第一次读取操作时,通过FPGA链路将所述SPI主机所要读取的寄存器地址和读取长度从所述BOX盒子侧传输到所述HMD头戴侧,与此同时所述HMD头戴侧的所述SPI从机读取数据后进行缓存;现有分体式的近眼显示设备的所述SPI主机在第二次读取操作时,发送所缓存的数据至所述BOX盒子侧,以完成数据的采集。
然而,由于现有分体式的近眼显示设备的所述SPI主机所要读取的数据长度需要以所述SPI主机的时钟周期次数的方式来传输至所述SPI从机,也就是说,所述SPI主机所要读取的数据长度越长,所述SPI主机在第一次读取操作时所需的时钟周期的次数也就越多,使得现有分体式的近眼显示设备在采集所述SPI从机的数据时的时延也就越大,因此采用所述SPI主机读取两次的方式会导致FPGA链路传输带宽的浪费,这对实时性要求较高的场景会产生比较大的影响。为了解决上述问题,本发明提供了一基于SPI协议的数据传输方法及其系统,其能够减小SPI数据传输的时延。
示意性方法
如图1所示,根据本发明的一实施例的一基于SPI协议的数据传输方法被阐明。具体地,所述基于SPI协议的数据传输方法,包括步骤:
S110:藉由一主机侧FPGA,接收通过一SPI主机读取的SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;
S120:藉由一通讯链路,将所述SPI主机数据从所述主机侧FPGA传输至一从机侧FPGA;
S130:藉由所述从机侧FPGA,基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,缓存通过一SPI从机读取回的SPI从机数据;以及
S140:藉由所述通讯链路,将所述SPI从机数据从所述从机侧FPGA传输至所述主机侧FPGA,以回复给所述SPI主机。
值得注意的是,由于所述SPI主机数据中直接包含有所述读取长度数据和所述寄存器地址数据,也就是说,所述从机侧FPGA能够从所述SPI主机数据中获得需要读取的数据长度和寄存器地址,以便通过所述SPI从机读取相应长度的数据,进而被缓存在所述从机侧FPGA。可以理解的是,在本发明的一实施例中,所述主机侧FPGA可以但不限于被实施为一与所述SPI主机一起被可通信地设置于所述BOX盒子侧的FPGA。
进一步地,所述第一预定数量字节可以但不限于根据所要读取的数据长度进行设定。优选地,所述第一预定数量字节被设定为两个字节。当然,在本发明的其他示例中,当需要读取的数据长度较小时,所述第一预定数量字节也可以被设定为一个字节;当需要读取的数据长度较大时,所述第一预定数量字节也可以被设定为大于两个字节。
更优选地,所述SPI主机数据中携带所述数据读取长度信息的字节位于携带所述寄存器地址信息的字节之前,以使所述SPI主机在发送完所述SPI主机数据中携带所述寄存器地址的字节之后的下一个时钟,就开始读取接收数据,进而无需修改SPI协议的实现逻辑。可以理解的是,SPI传输协议规定时钟信号由所述SPI主机产生,并且SPI从机需要按照所述SPI主机的时钟节拍传输数据。
值得一提的是,在本发明的上述实施例中,如图1所示,所述基于SPI协议的数据传输方法的所述步骤S140,包括步骤:
S141:藉由所述通讯链路,将一具有第二预定数量字节的无效数据和所述SPI从机数据一起从所述从机侧FPGA传输至所述主机侧FPGA,以使所述SPI主机读取从机侧数据;和
S142:藉由所述SPI主机,从所读取的所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据。
优选地,与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。换言之,所述基于SPI协议的数据传输方法能够采用在原有正常时钟周期中插入读取时钟周期,用于FPGA的上下行传输的方式,有助于完成SPI数据的读取,以防数据出错。可以理解的是,本发明提及的所述时钟长度可以由字节数量来表示。例如,与所述无效数据对应的时钟长度等于所述第二预定数量字节的数量。
更优选地,在本发明的一示例中,所述第二预定数量字节被实施为四个字节,以满足在所述主机侧FPGA和所述从机侧FPGA之间上下行传输的时间消耗需求。
最优选地,在通过所述SPI主机读取的所述从机侧数据中与所述无效数据对应的字节位于与所述SPI从机数据对应的字节之前,以使与所述无效数据对应的时钟长度被用于在所述主机侧FPGA和所述从机侧FPGA之间上下行传输的时间消耗。可以理解的是,正是由于与所述无效数据对应的字节位于与所述SPI从机数据对应的字节之前,因此本发明的所述基于SPI协议的数据传输方法在满足上下行传输的时间消耗的同时,还有助于后续基于字节数量和位置,从所读取的所述从机侧数据中剔除所述无效数据。
值得注意的是,在AR眼镜分体式方案的一个示例中,BOX盒子侧和HMD头戴侧之间需要经过FPGA转发数据,而FPGA传输需要时间,会导致SPI主机和SPI从机的无法在规定的时钟周期内完成数据读取。通过对FPGA的实现方式分析,所述BOX盒子侧的FPGA会按字节接收完所述SPI主机数据,然后通过通讯链路传输至所述HMD头戴侧,由所述HMD头戴侧的FPGA通过所述SPI从机发送到器件,然后读取回数据缓存,再通过所述通讯链路回传到所述BOX盒子侧的FPGA,由所述BOX盒子侧的FPGA回复给所述SPI主机,但所述通讯链路需要消耗时间。
此外,SPI标准协议实现读取数据时,所述SPI主机会在发送完最后一比特的寄存器地址后,在下一个时钟开始接收所述SPI从机的数据,并且读取数据长度由时钟长度控制。针对所述SPI标准协议进行分析后,发现可以在所述SPI主机发送完最后一比特数据到下一个时钟之间插入空隙,该空隙用于FPGA传输时间消耗。而因为嵌入式处理器SPI控制器一般为硬件实现,无法修改协议实现逻辑,所以本发明的一示例采用在读取数据长度上增加四字节,让硬件SPI控制器产生的时钟比原有多出四字节对应的时钟周期,所述四字节对应的时钟周期用于FPGA上下行传输,最后从所述SPI主机侧读取的数据剔除掉前面四字节无效数据。
进一步地,因为所述HMD头戴侧的FPGA不仅需要缓存数据,而且需要获取读取的数据长度,但标准SPI协议读取数据长度由所述SPI主机的时钟周期个数控制,并不需要缓存数据,因此本发明解决该问题的方法是采用提前将需要读取的数据长度发送至所述HMD头戴侧。例如,通过对SPI协议分析,可以在所述SPI主机发送需要读取的寄存器地址前插入二字节表示需要读取的数据长度,以便在所述HMD头戴侧的FPGA接收到后,先取出前二字节长度数据,再使所述HMD头戴侧的FPGA根据该长度和寄存器地址读取所述SPI从机的数据,以缓存数据。这样,本发明解决了AR眼镜分体式方案中头戴侧SPI器件数据读取问题,优化了现有方案所述SPI主机读取两次造成的FPGA传输带宽浪费和数据采集时延,且对所述SPI主机侧改动较小,适应性强。
根据本发明的另一方面,如图2所示,根据本发明的一实施例的基于SPI协议的主机侧数据传输方法被阐明。具体地,所述基于SPI协议的主机侧数据传输方法,包括步骤:
S210:藉由一主机侧FPGA,接收并发送通过一SPI主机读取的SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;和
S220:藉由所述主机侧FPGA,接收并发送一从机侧数据至所述SPI主机。
值得注意的是,在本发明的上述实施例中,如图2所示,所述基于SPI协议的主机侧数据传输方法的所述步骤S220,包括步骤:
S221:藉由所述主机侧FPGA,接收所述从机侧数据,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据;和
S222:藉由所述SPI主机,从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据。
根据本发明的另一方面,如图3所示,根据本发明的一实施例的基于SPI协议的从机侧数据传输方法被阐明。具体地,所述基于SPI协议的从机侧数据传输方法,包括步骤:
S310:藉由一从机侧FPGA,接收一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;
S320:藉由一SPI从机,基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,读取回的SPI从机数据;以及
S330:藉由所述从机侧FPGA,缓存读取的所述SPI从机数据。
进一步地,如图3所示,所述基于SPI协议的从机侧数据传输方法,进一步包括步骤:
S340:藉由所述从机侧FPGA,发送一从机侧数据至一主机侧FPGA,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和所述SPI从机数据。
示意性系统
参考说明书附图4,根据本发明的一实施例的一基于SPI协议的数据传输系统被阐明。具体地,所述基于SPI协议的数据传输系统10包括一主机侧单元11、一传输单元12以及一从机侧单元13,其中所述传输单元12将所述主机侧单元11与所述从机侧单元13可通信地连接,以便在所述主机侧单元11和所述从机侧单元13之间传输基于SPI协议的数据。可以理解的是,在本发明的一示例中,所述主机侧单元11可以但不限于被实施为分体式近眼显示设备的BOX盒子,相应地,所述从机侧单元13可以但不限于被实施为所述分体式近眼显示设备的HMD头戴器件。此外,所述传输单元12可以但不限于被实施为所述分体式近眼显示设备的通讯链路,例如数据线等等。
更具体地,如图4所示,所述基于SPI协议的数据传输系统10的所述主机侧单元11可以包括相互可通信地连接的至少一SPI主机111和至少一主机侧FPGA112,其中所述SPI主机111用于读取一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;其中所述主机侧FPGA112用于接收所述SPI主机数据,以通过所述传输单元12传输至所述从机侧单元13,并且接收并发送来自所述从机侧单元13的一从机侧数据至所述SPI主机111。
值得注意的时,所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据。
优选地,所述SPI主机111进一步用于从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据。
值得一提的是,根据本发明的上述实施例,如图4所示,所述基于SPI协议的数据传输系统10的所述从机侧单元13可以包括相互可通信地连接的至少一SPI从机131和至少一从机侧FPGA132,其中所述从机侧FPGA132用于接收来自所述主机侧单元11的所述SPI主机数据;其中所述SPI从机131用于基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,读取回的所述SPI从机数据。与此同时,所述从机侧FPGA进一步用于缓存读取的所述SPI从机数据。可以理解的是,所述主机侧单元11的所述主机侧FPGA112与所述从机侧单元13的所述从机侧FPGA132通过所述传输单元12可通信地连接。
优选地,所述从机侧FPGA进一步用于发送所述从机侧数据至所述主机侧单元11,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和所述SPI从机数据。
值得注意的是,在本发明的其他示例中,本发明可以仅提供所述基于SPI协议的数据传输系统10的所述主机侧单元11或所述从机侧单元13,并且所述主机侧单元11和所述从机侧单元13分别具有上述功能,本发明对此不在赘述。
还需要指出的是,在本发明的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整并有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。
Claims (11)
1.一基于SPI协议的数据传输方法,其特征在于,包括步骤:
藉由一主机侧FPGA,接收通过一SPI主机读取的SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;
藉由一通讯链路,将所述SPI主机数据从所述主机侧FPGA传输至一从机侧FPGA;
藉由所述从机侧FPGA,基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,缓存通过一SPI从机读取回的SPI从机数据;以及
藉由所述通讯链路,将所述SPI从机数据从所述从机侧FPGA传输至所述主机侧FPGA,以回复给所述SPI主机;
所述藉由所述通讯链路,将所述SPI从机数据从所述从机侧FPGA传输至所述主机侧FPGA,以回复给所述SPI主机的步骤,包括步骤:
藉由所述通讯链路,将一具有第二预定数量字节的无效数据和所述SPI从机数据一起从所述从机侧FPGA传输至所述主机侧FPGA,以使所述SPI主机读取从机侧数据;和
藉由所述SPI主机,从所读取的所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据;
与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。
2.如权利要求1所述的基于SPI协议的数据传输方法,其特征在于,在所述SPI主机数据中,携带所述数据读取长度信息的字节位于携带所述寄存器地址信息的字节之前。
3.如权利要求1或2所述的基于SPI协议的数据传输方法,其特征在于,在通过所述SPI主机读取的所述从机侧数据中,与所述无效数据对应的字节位于与所述SPI从机数据对应的字节之前。
4.一基于SPI协议的主机侧数据传输方法,其特征在于,包括步骤:
藉由一主机侧FPGA,接收并发送通过一SPI主机读取的SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;和
藉由所述主机侧FPGA,接收并发送一从机侧数据至所述SPI主机;
所述藉由所述主机侧FPGA,接收并发送一从机侧数据至所述SPI主机的步骤,包括步骤:
藉由所述主机侧FPGA,接收所述从机侧数据,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据;和
藉由所述SPI主机,从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据;
与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。
5.一基于SPI协议的从机侧数据传输方法,其特征在于,包括步骤:
藉由一从机侧FPGA,接收一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;
藉由一SPI从机,基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,读取回的SPI从机数据;以及
藉由所述从机侧FPGA,缓存读取的所述SPI从机数据;
进一步包括步骤:
藉由所述从机侧FPGA,发送一从机侧数据至一主机侧FPGA,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和所述SPI从机数据;
与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。
6.一基于SPI协议的数据传输系统,其特征在于,包括:
一主机侧单元;
一从机侧单元;以及
一传输单元,其中所述传输单元将所述主机侧单元与所述从机侧单元可通信地连接;
其中所述主机侧单元包括相互可通信地连接的至少一SPI主机和至少一主机侧FPGA,其中所述SPI主机用于读取一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;其中所述主机侧FPGA用于接收所述SPI主机数据,以通过所述传输单元传输至所述从机侧单元,并且接收并发送来自所述从机侧单元的一从机侧数据至所述SPI主机;
所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据;其中所述SPI主机进一步用于从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据;
与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。
7.如权利要求6所述的基于SPI协议的数据传输系统,其特征在于,所述从机侧单元包括相互可通信地连接的一SPI从机和一从机侧FPGA,其中所述从机侧FPGA用于接收来自所述主机侧单元的所述SPI主机数据;其中所述SPI从机用于基于所述SPI主机数据中的所述数据读取长度信息和所述寄存器地址信息,读取回的所述SPI从机数据。
8.如权利要求7所述的基于SPI协议的数据传输系统,其特征在于,所述从机侧FPGA进一步用于缓存读取的所述SPI从机数据。
9.如权利要求8所述的基于SPI协议的数据传输系统,其特征在于,所述从机侧FPGA进一步用于发送所述从机侧数据至所述主机侧单元。
10.一主机侧单元,供通过一传输单元与一从机侧单元可通信地连接,其特征在于,其中所述主机侧单元包括:
至少一SPI主机,其中所述SPI主机用于读取一SPI主机数据,其中所述SPI主机数据携带有一具有第一预定数量字节的数据读取长度信息和一需要读取的寄存器地址信息;和
至少一主机侧FPGA,其中所述主机侧FPGA与所述SPI主机可通信地连接,用于接收所述SPI主机数据,以通过该传输单元传输至该从机侧单元,其中所述主机侧FPGA进一步用于接收并发送来自该从机侧单元的一从机侧数据至所述SPI主机;
所述从机侧数据包括一具有第二预定数量字节的无效数据和一SPI从机数据;其中所述SPI主机进一步用于从所述从机侧数据中剔除所述无效数据,以获得所述SPI从机数据;
与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。
11.一从机侧单元,供通过一传输单元与一主机侧单元可通信地连接,其特征在于,其中所述从机侧单元包括:
至少一从机侧FPGA,其中所述从机侧FPGA用于接收来自该主机侧单元的SPI主机数据;和
至少一SPI从机,其中所述SPI从机与所述从机侧FPGA可通信地连接,用于基于所述SPI主机数据中的数据读取长度信息和寄存器地址信息,读取回的一SPI从机数据;
所述从机侧FPGA进一步用于缓存读取的所述SPI从机数据;
所述从机侧FPGA进一步用于发送一从机侧数据至该主机侧单元,其中所述从机侧数据包括一具有第二预定数量字节的无效数据和所述SPI从机数据;
与所述SPI主机数据中的所述数据读取长度信息对应的时钟长度等于与所述无效数据对应的时钟长度和与所述SPI从机数据对应的时钟长度之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910826017.5A CN112445741B (zh) | 2019-09-03 | 2019-09-03 | 基于spi协议的数据传输方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910826017.5A CN112445741B (zh) | 2019-09-03 | 2019-09-03 | 基于spi协议的数据传输方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445741A CN112445741A (zh) | 2021-03-05 |
CN112445741B true CN112445741B (zh) | 2022-04-26 |
Family
ID=74734344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910826017.5A Active CN112445741B (zh) | 2019-09-03 | 2019-09-03 | 基于spi协议的数据传输方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445741B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118152328B (zh) * | 2024-05-09 | 2024-09-27 | 浙江禾川科技股份有限公司 | 一种用于工业设备的通信方法、装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200638213A (en) * | 2005-04-26 | 2006-11-01 | Sunplus Technology Co Ltd | Slave and master of serial peripheral interface, system thereof, and method thereof |
CN102023956A (zh) * | 2009-09-23 | 2011-04-20 | 上海摩波彼克半导体有限公司 | 集成电路芯片中串行外设从器件接口结构及数据读写方法 |
CN103092806A (zh) * | 2013-01-18 | 2013-05-08 | 青岛海信宽带多媒体技术有限公司 | 基于spi数据传输时序的数据传输方法和系统 |
CN106055515A (zh) * | 2016-06-30 | 2016-10-26 | 上海斐讯数据通信技术有限公司 | 一种主从框级联系统及其时序补偿方法 |
CN107741915A (zh) * | 2017-10-25 | 2018-02-27 | 武汉精测电子集团股份有限公司 | 一种基于sdio接口的fpga板级通信装置及通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8928383B2 (en) * | 2013-03-15 | 2015-01-06 | Analog Devices, Inc. | Integrated delayed clock for high speed isolated SPI communication |
-
2019
- 2019-09-03 CN CN201910826017.5A patent/CN112445741B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200638213A (en) * | 2005-04-26 | 2006-11-01 | Sunplus Technology Co Ltd | Slave and master of serial peripheral interface, system thereof, and method thereof |
CN102023956A (zh) * | 2009-09-23 | 2011-04-20 | 上海摩波彼克半导体有限公司 | 集成电路芯片中串行外设从器件接口结构及数据读写方法 |
CN103092806A (zh) * | 2013-01-18 | 2013-05-08 | 青岛海信宽带多媒体技术有限公司 | 基于spi数据传输时序的数据传输方法和系统 |
CN106055515A (zh) * | 2016-06-30 | 2016-10-26 | 上海斐讯数据通信技术有限公司 | 一种主从框级联系统及其时序补偿方法 |
CN107741915A (zh) * | 2017-10-25 | 2018-02-27 | 武汉精测电子集团股份有限公司 | 一种基于sdio接口的fpga板级通信装置及通信方法 |
Non-Patent Citations (1)
Title |
---|
《一种嵌入式处理器间SPI总线通信优化方法》;白林亭;《航空计算技术》;20161130;1-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN112445741A (zh) | 2021-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101645502B1 (ko) | 다중―프로토콜 sereds phy 장치 | |
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信系统和方法 | |
JP4426249B2 (ja) | 信号伝送装置及び伝送方法 | |
US7634611B2 (en) | Multi-master, chained two-wire serial bus | |
CN101788972A (zh) | 一种数据传输的系统与方法 | |
CN111683252B (zh) | 一种服务器以及一种视频压缩图像的输出系统和方法 | |
CN111373382B (zh) | 高速外围组件互连(PCI)(PCIe)地址转译服务(ATS)中的快速失效 | |
CN107888976B (zh) | 一种基于lvds信号线的程序升级装置及升级方法 | |
CN101663657A (zh) | 无桥无交换的PCIe扩展 | |
CN112445741B (zh) | 基于spi协议的数据传输方法及其系统 | |
CN111182306B (zh) | 用于视频压缩的视频提取方法、系统、终端及存储介质 | |
CN113852533B (zh) | 一种多通道数据通信系统、方法及电子设备 | |
EP3671720B1 (en) | Real-time on-chip data transfer system | |
CN117009087A (zh) | 一种图像输出方法、装置、设备及存储介质 | |
CN111917752A (zh) | 通讯接口转换装置 | |
CN115794701A (zh) | 一种dma功能虚拟串口的bmc芯片及方法 | |
CN112395147B (zh) | Soc上的调试装置 | |
US20040213277A1 (en) | Method and related circuit for increasing network transmission efficiency by increasing a data updating rate of a memory | |
CN118411919A (zh) | 显示驱动装置、显示系统及数据传输方法 | |
CN116820867B (zh) | 一种芯片调试方法、装置及芯片 | |
CN116912079B (zh) | 数据处理系统、电子组件、电子设备及数据处理方法 | |
CN112217851B (zh) | 数据传输方法、数据传输装置以及电子设备 | |
CN116049059A (zh) | 一种信号桥接器及电子设备 | |
CN118642999A (zh) | 命令处理方法、装置、计算机设备及存储介质 | |
CN116701269A (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210305 Assignee: Zhejiang Shunwei Technology Co.,Ltd. Assignor: SUNNY OPTICAL (ZHEJIANG) RESEARCH INSTITUTE Co.,Ltd. Contract record no.: X2024330000055 Denomination of invention: Data transmission method and system based on SPI protocol Granted publication date: 20220426 License type: Common License Record date: 20240515 |
|
EE01 | Entry into force of recordation of patent licensing contract |