著录项信息
专利名称 | 一种SPI数据传输方法及装置 |
申请号 | CN201910698023.7 | 申请日期 | 2019-07-29 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2019-11-12 | 公开/公告号 | CN110445578A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L1/00 | IPC分类号 | H;0;4;L;1;/;0;0;;;H;0;4;L;1;/;2;2;;;H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 广芯微电子(广州)股份有限公司 | 申请人地址 | 广东省广州市中新广州知识城九佛建设路333号378房
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 广芯微电子(广州)股份有限公司 | 当前权利人 | 广芯微电子(广州)股份有限公司 |
发明人 | 严海华;汪江剑;王锐;莫军 |
代理机构 | 广州三环专利商标代理有限公司 | 代理人 | 颜希文;麦小婵 |
摘要
本发明公开了一种SPI数据传输方法及装置。在一个实施例中:将待发送数据分发给N个数据发送缓冲区,其中N为大于1的整数;将每个数据发送缓冲区的待发送数据,发送至与之对应的数据接收缓冲区,以使接收端从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。基于上述实施例的教导,实施本发明的技术方案能够在保证数据传输的完整性的前提下,提高数据传输效率。
一种SPI数据传输方法及装置\n技术领域\n[0001] 本发明涉及数据传输技术领域,尤其涉及一种SPI数据传输方法及装置。\n背景技术\n[0002] 在SPI(Serial Peripheral Interface,串行外设接口)数据传输过程中,常常会出现数据丢包的现象。为解决这个问题,现有技术基于SPI连接的数据传输过程,通过指定流控制,即应答机制,确认是否正确接收到数据帧。这种做法虽然在一定程度上保证了数据的完整性,可一旦出现某一帧数据校验错误,则需要请求重发该帧数据,如此循环,直至全部数据发送完整,从而导致SPI数据传输的效率低下。\n发明内容\n[0003] 本发明的目的在于,提供一种SPI数据传输方法及装置,能够在保证数据传输的完整性的前提下,提高数据传输效率。\n[0004] 为了解决上述技术问题,本发明实施例提供了一种SPI数据传输方法,包括:\n[0005] 将待发送数据分发给N个数据发送缓冲区,其中N为大于1的整数;\n[0006] 将每个数据发送缓冲区的待发送数据,发送至与之对应的数据接收缓冲区,以使接收端从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。\n[0007] 在所述将待发送数据分发给N个数据发送缓冲区之前,还包括:\n[0008] 给待发送数据的每一帧数据生成检验码,并给每一帧数据添加帧序号,其中所述帧序号用M表示,M为大于0的整数;\n[0009] 在所述将每个数据发送缓冲区的待发送数据,发送至与之对应的数据接收缓冲区之后,还包括:\n[0010] 以使接收端对每个数据接收缓冲区所接收的每一帧数据的检验码进行校验,并将校验失败的数据帧丢弃。\n[0011] 所述以使接收端从至少一个数据接收缓冲区中筛选数据,包括:以使接收端从第一个数据接收缓冲区中取出已缓存的数据帧,然后按照从第N个数据接收缓冲区中取出第N-1个数据接收缓冲区中缺失的数据帧的方式筛选数据。\n[0012] 在所述以使接收端从至少一个数据接收缓冲区中筛选数据,还包括:以使接收端在前一数据接收缓冲区取出数据并跳转后一数据接收缓冲区时,将前一个数据接收缓冲区的所有数据清除;当以使接收端依序从第一个数据接收缓冲区至第N个数据接收缓冲区筛选数据后,仍不能获得一份与所述待发送数据一致的完整数据时,则重复执行上述步骤,直至获得一份与所述待发送数据一致的完整数据。\n[0013] 所述数据发送缓冲区和所述数据接收缓冲区的每一帧数据均按照帧序号升序排列。\n[0014] 为解决相同的技术问题,本发明实施例另提供了一种SPI数据传输方法,包括:接收发送端的N个数据发送缓冲区发送的待发送数据,并缓存于与每个数据发送缓冲区对应的数据接收缓冲区;\n[0015] 从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。\n[0016] 对每个数据接收缓冲区所接收的每一帧数据的检验码进行校验,并将校验失败的数据帧丢弃。\n[0017] 所述从至少一个数据接收缓冲区中筛选数据,包括:从第一个数据接收缓冲区中取出已缓存的数据帧,然后按照从第N个数据接收缓冲区中取出第N-1个数据接收缓冲区中缺失的数据帧的方式筛选数据。\n[0018] 在所述从至少一个数据接收缓冲区中筛选数据,还包括:在前一数据接收缓冲区取出数据并跳转后一数据接收缓冲区时,将前一个数据接收缓冲区的所有数据清除;当依序从第一个数据接收缓冲区至第N个数据接收缓冲区筛选数据后,仍不能获得一份与所述待发送数据一致的完整数据时,则重复执行上述步骤,直至获得一份与所述待发送数据一致的完整数据。\n[0019] 作为上述方案的改进,本发明另一实施例对应提供了一种SPI数据传输装置,包括:\n[0020] 数据分发单元,用于将待发送数据分发给N个数据发送缓冲区,其中N为大于1的整数;\n[0021] 数据发送单元,用于将每个数据发送缓冲区的待发送数据,发送至与之对应的数据接收缓冲区,以使接收端从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。\n[0022] 预处理单元,用于给待发送数据的每一帧数据生成检验码,并给每一帧数据添加帧序号,其中所述帧序号用M表示,M为大于0的整数;\n[0023] 所述数据发送单元,还用于使接收端对每个数据接收缓冲区所接收的每一帧数据的检验码进行校验,并将校验失败的数据帧丢弃。\n[0024] 作为上述方案的改进,本发明另一实施例对应提供了一种SPI数据传输装置,包括:\n[0025] 数据接收单元,用于接收发送端的N个数据发送缓冲区发送的待发送数据,并缓存于与每个数据发送缓冲区对应的数据接收缓冲区;\n[0026] 数据筛选单元,用于从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。\n[0027] 数据校验单元,用于对每个数据接收缓冲区所接收的每一帧数据的检验码进行校验,并将校验失败的数据帧丢弃。\n[0028] 相比于现有技术,本发明实施例的有益效果在于,本发明实施例提供的SPI数据传输方法及装置,通过采用N个数据发送缓冲区与数据接收缓冲区以实现双缓冲机制,并使接收端从至少一个数据接收缓冲区中筛选数据直至获得一份与所述待发送数据一致的完整数据,从而保证数据传输的完整性;当出现数据丢包情况时,可采用从备用数据接收缓冲区中筛选所丢包数据,以解决现有技术在丢包情况下的采用应答机制导致的效率低下的问题,进而提高了数据传输的效率。\n[0029] 本发明另一实施例提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述的SPI数据传输方法。\n[0030] 本发明另一实施例提供了一种服务器,包括:\n[0031] 一个或多个处理器;\n[0032] 存储装置,用于存储一个或多个程序;\n[0033] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一项所述的SPI数据传输方法。\n[0034] 本发明另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任一项所述的SPI数据传输方法。\n附图说明\n[0035] 图1是本发明一实施例提供的一种SPI数据传输方法的流程示意图;\n[0036] 图2是本发明另一实施例提供的一种SPI数据传输方法的流程示意图;\n[0037] 图3是本发明实施例提供的一种SPI数据传输方法的一流程框图;\n[0038] 图4是本发明实施例提供的一种SPI数据传输方法的另一流程框图;\n[0039] 图5是本发明实施例提供的一种SPI数据传输方法的又一流程框图;\n[0040] 图6是本发明一实施例提供的一种SPI数据传输装置的流程框图;\n[0041] 图7是本发明另一实施例提供的一种SPI数据传输装置的流程框图;\n具体实施方式\n[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0043] 参见图1、3和4,所述方法包括:\n[0044] S001:将待发送数据分发给N个数据发送缓冲区,其中N为大于1的整数;\n[0045] S002:将每个数据发送缓冲区的待发送数据,发送至与之对应的数据接收缓冲区,以使接收端从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区,其中循环缓冲即按照数据先进先出的方式进行数据的发送、接收、校验等。\n[0046] 在本实施例中,在步骤S001之前,给待发送数据的每一帧数据生成检验码,以使接收端根据所述验证码进行校验所接收数据是否正确;并给每一帧数据添加帧序号,其中所述帧序号用M表示,M为大于0的整数。\n[0047] 在本实施例中,所述步骤S002还包括:在所述将每个数据发送缓冲区的待发送数据,发送至与之对应的数据接收缓冲区之后,以使接收端对每个数据接收缓冲区所接收的每一帧数据的检验码按照帧序号升序进行校验,并将校验失败的数据帧丢弃。\n[0048] 在本实施例中,所述步骤S002还包括:以使接收端从第一个数据接收缓冲区中取出已缓存的数据帧,然后按照从第N个数据接收缓冲区中取出第N-1个数据接收缓冲区中缺失的数据帧的方式筛选数据,以实现出现丢包情况时,可在下一个数据接收缓冲区中筛选所丢包数据,从而实现数据传输的完整性,并且无需实行应答机制,进而提高的数据传输的效率。\n[0049] 在本实施例中,所述步骤S002还包括:以使接收端在前一数据接收缓冲区取出数据并跳转后一数据接收缓冲区时,将前一个数据接收缓冲区的所有数据清除,以实现循环缓存,从而保证数据传输完整性;当以使接收端依序从第一个数据接收缓冲区至第N个数据接收缓冲区筛选数据后,仍不能获得一份与所述待发送数据一致的完整数据时,则重复执行上述步骤,直至获得一份与所述待发送数据一致的完整数据,从而保证了数据传输的完整性,并且利用双缓冲机制,进一步提高了数据传输的效率。\n[0050] 在本实施例中,所述数据发送缓冲区和所述数据接收缓冲区的每一帧数据均按照帧序号升序排列,以实现数据传输过程有序进行,从而提高传输的效率的。\n[0051] 本发明实施例提供的一种SPI数据传输方法,具有如下有益效果:通过将待发送数据分发给N个数据发送缓冲区,以实现N条路径进行SPI数据传输的方式,并且所述数据发送缓冲区起到缓冲作用,从而提高数据传输的效率;同时,通过使接收端从至少一个数据接收缓冲区中筛选数据,以获得一份与所述待发送数据一致的完整数据,从而保证了数据传输的完整性,并通过设置N个数据接收缓冲区以实现缓冲作用,进一步的提高了数据传输的效率。\n[0052] 参见图2、3和5,所述方法包括:\n[0053] S011:接收发送端的N个数据发送缓冲区发送的待发送数据,并缓存于与每个数据发送缓冲区对应的数据接收缓冲区;\n[0054] S012:从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。\n[0055] 在本实施例中,通过数据发送缓冲区和数据接收缓冲区实现双缓冲机制,以实现缓冲作用,从而提高了数据传输过程的效率;并且通过从N个数据接收缓冲区的至少一个筛选数据,以获得一份与所述待发数据一致的完整数据,以保证数据传输的完整性,进而能够在保证数据传输完整性的前提下,提高数据传输的效率。\n[0056] 在本实施例中,对每个数据接收缓冲区所接收的每一帧数据的检验码进行校验,并将校验失败的数据帧丢弃,以确保所接收的数据与所述待发送数据一致。\n[0057] 在本实施例中,所述步骤S012还包括:从第一个数据接收缓冲区中取出已缓存的数据帧,然后按照从第N个数据接收缓冲区中取出第N-1个数据接收缓冲区中缺失的数据帧的方式筛选数据;以实现出现丢包情况时,可在下一个数据接收缓冲区中筛选所丢包数据,从而实现数据传输的完整性,并且无需实行应答机制,进而提高的数据传输的效率。\n[0058] 在本实施例中,所述步骤S012还包括:在前一数据接收缓冲区取出数据并跳转后一数据接收缓冲区时,将前一个数据接收缓冲区的所有数据清除;当依序从第一个数据接收缓冲区至第N个数据接收缓冲区筛选数据后,仍不能获得一份与所述待发送数据一致的完整数据时,则重复执行上述步骤,直至获得一份与所述待发送数据一致的完整数据,从而保证了数据传输的完整性,并且利用双缓冲机制,进一步提高了数据传输的效率。\n[0059] 本发明实施例提供的一种SPI数据传输方法,具有如下有益效果:通过接收发送端的N个数据发送缓冲区发送的待发数据,以实现通过多条路径进行SPI数据传输的方式,当多条路径中主路路径出现丢包时,可从备用路径中进行对丢包数据的帅选,从而在保证数据传输完整的前提下,提高数据传输的效率;并且所述数据发送缓冲区起到缓冲作用,进一步地提高数据传输的效率。\n[0060] 参见图6,本发明一实施例提供的一种SPI数据传输装置的流程框图,包括:\n[0061] 预处理单元61,用于给待发送数据的每一帧数据生成检验码,并给每一帧数据添加帧序号,其中所述帧序号用M表示,M为大于0的整数。\n[0062] 数据分发单元62,用于将待发送数据分发给N个数据发送缓冲区,其中N为大于1的整数。\n[0063] 数据发送单元63,用于将每个数据发送缓冲区的待发送数据,发送至与之对应的数据接收缓冲区,以使接收端从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。\n[0064] 其中,所述数据发送单元63,还用于使接收端对每个数据接收缓冲区所接收的每一帧数据的检验码进行校验,并将校验失败的数据帧丢弃。\n[0065] 本发明实施例提供的一种SPI数据传输装置,具有如下有益效果:通过处理单元61给待发数据每一帧生成检验码并添加帧序号,使得接收端根据帧序号顺序对所接收到的数据进行按序进行校验,以验证所接收的数据与待发数据一致,从而保证数据的准确性和完整性;同时通过数据分发单元讲数据分发给N个数据发送缓冲区,以实现多路径的数据传输,并且通过数据发送单元从至少一条路径中的数据接收缓冲区筛选数据,当出现丢包时可从另外路径的数据接收缓冲区中筛选丢包数据,无需反馈给发送方重新发送丢包数据,从而提高了数据传输的效率,并且所述数据发送单元对所接收的数据进行校验,直至获得一份与所述待发送数据一致的完整数据,进而保证了数据传输的完整性。\n[0066] 参见图7,本发明另一实施例提供的一种SPI数据传输装置,包括:\n[0067] 数据接收单元71,用于接收发送端的N个数据发送缓冲区发送的待发送数据,并缓存于与每个数据发送缓冲区对应的数据接收缓冲区;\n[0068] 数据筛选单元72,用于从至少一个数据接收缓冲区中筛选数据,从而获得一份与所述待发送数据一致的完整数据;其中,所述数据发送缓冲区和所述数据接收缓冲区均为循环缓冲区。\n[0069] 数据校验单元73,用于对每个数据接收缓冲区所接收的每一帧数据的检验码进行校验,并将校验失败的数据帧丢弃。\n[0070] 本发明实施例提供的一种SPI数据传输装置,具有如下有益效果:通过数据接收单元接收发送端的N个数据发送缓冲区发送的数据,以实现多通道的数据传输方式,并通过缓存在所述数据发送缓冲区和所述数据接收缓冲区中,以实现缓冲作用,从而提高了数据传输的效率;同时通过数据筛选单元进行对多通道中的至少一个通道里的数据接收缓冲区进行数据筛选以获得一份与所述带发送数据一致的完整数据,当出现丢包情况下,可以从其他的数据接收缓冲区中筛选丢包数据,减少了应答机制,进而能够在保证数据传输完整性的前提下,提高数据传输的效率。\n[0071] 本发明实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一项所述的SPI数据传输方法。例如图1所示的步骤S001。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如数据发送单元。\n[0072] 示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在SPI数据传输终端设备中的执行过程。\n[0073] 所述SPI数据传输终端设备可以是桌上型计算机、笔记本、掌上电脑及智能平板等计算设备。所述SPI数据传输终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述部件仅仅是SPI数据传输终端设备的示例,并不构成对SPI数据传输终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述SPI数据传输终端设备还可以包括输入输出设备、网络接入设备、总线等。\n[0074] 本发明实施例还提供了一种服务器,包括:\n[0075] 一个或多个处理器;\n[0076] 存储装置,用于存储一个或多个程序;\n[0077] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一项所述的SPI数据传输方法。\n[0078] 所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述SPI数据传输终端设备的控制中心,利用各种接口和线路连接整个SPI数据传输设备的各个部分。\n[0079] 所述存储装置可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述语音端点检测设备的各种功能。所述存储装置可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。\n[0080] 其中,所述SPI数据传输终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。\n[0081] 需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。\n[0082] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |