数据传输方法、装置、存储介质及通信系统与流程

文档序号:24403963发布日期:2021-03-26 16:16阅读:58来源:国知局
数据传输方法、装置、存储介质及通信系统与流程

1.本公开涉及通信领域,具体地,涉及一种数据传输方法、装置、存储介质及通信系统。


背景技术:

2.嵌入式设备(也可称作嵌入式系统)调试时往往需要记录大量的调试数据,如线程的调度、定时器的处理等。目前,通常使用传统的串口打印方式进行调试。然而,一些嵌入式设备(例如,蓝牙控制器)对代码执行时序要求较高,且中断产生频繁,每秒可能有上千次中断,从而调试过程中所需记录数据的数据量也较大。因此,若仍使用串口打印的方式,一方面,该方式传输速度慢,无法满足大量数据的传输需求,另一方面,容易影响数据传输时序,例如,由于没有同步时钟,在波特率超过一定数值(例如,1m)时容易出现乱码,无法完整记录设备的执行流程,不便于调试。


技术实现要素:

3.本公开的目的是提供一种数据传输方法、装置、存储介质及通信系统,以高效、快速地传输数据。
4.为了实现上述目的,根据本公开的第一方面,提供一种数据传输方法,应用于第一设备,所述第一设备设置有串行外设接口spi总线,且所述第一设备通过spi总线与第二设备通信,所述方法包括:
5.判断是否接收到所述第二设备发送的数据获取指令;
6.若接收到所述数据获取指令,对所述数据获取指令进行解析,得到解析结果;
7.若所述解析结果指示所述数据获取指令用于获取所述第一设备中指定模块的调试信息,确定所述数据获取指令所指示的目标模块,并对所述目标模块进行调试,得到目标调试信息;
8.将所述目标调试信息通过所述spi总线发送至所述第二设备。
9.可选地,所述将所述目标调试信息通过所述spi总线发送至所述第二设备,包括:
10.将所述目标调试信息写入所述第一设备中的目标存储空间;
11.通过目标线程调用spi驱动,以将所述目标存储空间中的所述目标调试信息发送至所述第二设备。
12.可选地,所述将所述目标调试信息通过所述spi总线发送至所述第二设备,包括:
13.根据spi总线当前的时钟频率,确定提升后的目标时钟频率;
14.按照所述目标时钟频率,采用直接存储器访问的方式将所述目标调试信息通过所述spi总线发送至所述第二设备。
15.可选地,在所述将所述目标调试信息通过所述spi总线发送至所述第二设备的步骤之前,所述方法还包括:
16.将所述第一设备作为所述spi总线的主设备,并将所述第二设备作为所述spi总线
的从设备。
17.可选地,所述方法还包括:
18.若所述解析结果指示所述数据获取指令用于获取所述第一设备的设备信息,获取所述第一设备的设备信息,作为目标设备信息;
19.将所述目标设备信息通过所述spi总线发送至所述第二设备;
20.其中,所述第一设备的设备信息包括以下中的至少一者:
21.所述第一设备当前的线程列表、所述第一设备中各模块的信息。
22.根据本公开的第二方面,提供一种数据传输方法,应用于第二设备,所述第二设备分别与第一设备和第三设备通信,且所述的第二设备通过spi总线与第一设备通信,所述方法包括:
23.向所述第一设备发送数据获取指令;
24.接收所述第一设备响应于所述数据获取指令所发送的响应内容;
25.将所述响应内容发送至所述第三设备。
26.可选地,所述第二设备通过usb接口或mmc接口与所述第三设备通信;
27.若所述第二设备通过usb接口与所述第三设备通信,所述将所述响应内容发送至所述第三设备,包括:
28.通过所述usb接口将所述响应内容发送至所述第三设备;
29.若所述第二设备通过mmc接口与所述第三设备通信,所述将所述响应内容发送至所述第三设备,包括:
30.通过所述mmc接口将所述响应内容发送至所述第三设备。
31.根据本公开的第三方面,提供一种数据传输装置,应用于第一设备,所述第一设备设置有串行外设接口spi总线,且所述第一设备通过spi总线与第二设备通信,所述装置包括:
32.判断模块,用于判断是否接收到所述第二设备发送的数据获取指令;
33.解析模块,用于若接收到所述数据获取指令,对所述数据获取指令进行解析,得到解析结果;
34.第一确定模块,用于若所述解析结果指示所述数据获取指令用于获取所述第一设备中指定模块的调试信息,确定所述数据获取指令所指示的目标模块,并对所述目标模块进行调试,得到目标调试信息;
35.第一发送模块,用于将所述目标调试信息通过所述spi总线发送至所述第二设备。
36.可选地,所述第一发送模块包括:
37.存储子模块,用于将所述目标调试信息写入所述第一设备中的目标存储空间;
38.第一发送子模块,用于通过目标线程调用spi驱动,以将所述目标存储空间中的所述目标调试信息发送至所述第二设备。
39.可选地,所述第一发送模块包括:
40.确定子模块,用于根据spi总线当前的时钟频率,确定提升后的目标时钟频率;
41.第二发送子模块,用于按照所述目标时钟频率,采用直接存储器访问的方式将所述目标调试信息通过所述spi总线发送至所述第二设备。
42.可选地,所述装置还包括:
43.在所述第一发送模块将所述目标调试信息通过所述spi总线发送至所述第二设备之前,将所述第一设备作为所述spi总线的主设备,并将所述第二设备作为所述spi总线的从设备。
44.可选地,所述装置还包括:
45.获取模块,用于若所述解析结果指示所述数据获取指令用于获取所述第一设备的设备信息,获取所述第一设备的设备信息,作为目标设备信息;
46.第二发送模块,用于将所述目标设备信息通过所述spi总线发送至所述第二设备;
47.其中,所述第一设备的设备信息包括以下中的至少一者:
48.所述第一设备当前的线程列表、所述第一设备中各模块的信息。
49.根据本公开的第四方面,提供一种数据传输装置,应用于第二设备,所述第二设备分别与第一设备和第三设备通信,且所述的第二设备通过spi总线与第一设备通信,所述装置包括:
50.第三发送模块,用于向所述第一设备发送数据获取指令;
51.接收模块,用于接收所述第一设备响应于所述数据获取指令所发送的响应内容;
52.第四发送模块,用于将所述响应内容发送至所述第三设备。
53.可选地,所述第二设备通过usb接口或mmc接口与所述第三设备通信;
54.若所述第二设备通过usb接口与所述第三设备通信,所述第四发送模块用于通过所述usb接口将所述响应内容发送至所述第三设备;
55.若所述第二设备通过mmc接口与所述第三设备通信,所述第四发送模块用于通过所述mmc接口将所述响应内容发送至所述第三设备。
56.根据本公开的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所述方法的步骤,或者,该程序被处理器执行时实现本公开第二方面所述方法的步骤。
57.根据本公开的第六方面,提供一种通信系统,所述通信系统包括第一设备和第二设备,所述第一设备和所述第二设备均设置有串行外设接口spi总线,且所述第一设备和所述第二设备通过spi总线通信,其中,所述第一设备用于执行本公开第一方面所述方法的步骤,所述第二设备用于执行本公开第二方面所述方法的步骤。
58.可选地,所述通信系统还包括第三设备,所述第二设备通过usb接口或mmc接口与所述第三设备通信。
59.通过上述技术方案,在第一设备设置spi总线,并使第一设备通过spi总线与第二设备通信,进而,第一设备判断是否接收到第二设备发送的数据获取指令,若接收到数据获取指令,对数据获取指令进行解析,得到解析结果,若解析结果指示数据获取指令用于获取第一设备中指定模块的调试信息,确定数据获取指令所指示的目标模块,并对目标模块进行调试,得到目标调试信息,将目标调试信息通过spi总线发送至第二设备。由此,使用通用的高速spi接口来传输第一设备中各个模块的调试信息,无需额外开发专用的硬件,方便对设备进行调试,并能够快速传输大量的调试数据,有利于调试性能的提升。
60.本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
61.附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
62.图1是根据本公开的一种实施方式提供的数据传输方法的流程图;
63.图2是根据本公开提供的数据传输方法中,spi总线的数据传输示意图;
64.图3是根据本公开提供的数据传输方法中,第一设备判断是否接收到数据获取指令过程中发送查询命令的时序过程;
65.图4是根据本公开提供的数据传输方法中,目标调试信息的数据构成示意图;
66.图5是根据本公开的一种实施方式提供的数据传输方法的流程图;
67.图6是根据本公开的一种实施方式提供的数据传输装置的框图;
68.图7是根据本公开的一种实施方式提供的数据传输装置的框图。
具体实施方式
69.以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
70.图1是根据本公开的一种实施方式提供的数据传输方法的流程图。该方法可以应用于第一设备,第一设备设置有spi(serial peripheral interface,串行外设接口/串行外围设备接口)总线,且第一设备通过spi总线与第二设备通信。
71.其中,第一设备可以为任意一种嵌入式设备,示例地,第一设备可以为蓝牙控制器。第二设备用于记录数据,可以为具有记录数据能力的设备,例如,数据记录仪。
72.下面对spi总线进行简单介绍。spi总线是一种同步串行双向传输接口,具有使用简单、数据传输速度快的优点。spi总线采用主从模式结构,一般包含一个主机(也可称作主设备),以及一个或多个从机(也可称作从设备),在主设备的移位时钟脉冲下,数据按位传输,可以以高位在前(msb first,most significant bit first)、低位在后的顺序发送,也可以以低位在前、高位在后的顺序发送。spi总线共有4根信号线,分别是设备选择线(片选)、时钟线、串行数据输出线、串行数据输入线,如图2所示:
73.sclk(spi clock)表征时钟信号,只能由主设备产生;ss#表征设备选择线(片选),由主设备控制,当从设备片选信号输入低电平时为选中状态,ss#是针对从设备而言的;mosi(master out slave in)表征主设备数据输出、从设备数据输入,用于主设备到从设备的数据传输;miso(master in slave out)表征主设备数据输入、从设备数据输出,用于从设备到主设备的数据传输。
74.在本公开提供的方法中,根据数据传输需求的不同,第一设备或第二设备均可能会作为主设备。
75.如图1所示,该方法可以包括以下步骤:
76.在步骤11中,判断是否接收到第二设备发送的数据获取指令;
77.在步骤12中,若接收到数据获取指令,对数据获取指令进行解析,得到解析结果;
78.在步骤13中,若解析结果指示数据获取指令用于获取第一设备中指定模块的调试信息,确定数据获取指令所指示的目标模块,并对目标模块进行调试,得到目标调试信息;
79.在步骤14中,将目标调试信息通过spi总线发送至第二设备。
80.可选地,步骤11中,第一设备可以向spi总线发送查询命令,以判断是否接收到第二设备发送的数据获取指令。其中,第一设备可以以轮询的方式定期发送查询命令,或者,第一设备可以以中断的方式发送查询命令。
81.示例地,在发送查询命令时,第一设备可以首先发送1字节的poll命令0x5a,再跟随发送1字节的填充数据,以实现查询命令的发送,进而判断是否接收到第二设备发送的数据获取指令。
82.另外,可选地,第一设备箱spi总线发送查询命令的过程中,由于第一设备无需向第二设备发送数据,因此,第一设备可以作为spi总线主从模式中的从设备,同时,用于向第一设备发送数据获取指令的第二设备可以作为spi中心主从模式中的主设备。
83.其中,数据获取指令可以用于获取第一设备中指定模块的调试信息或用于获取第一设备的设备信息。示例地,数据获取指令中可以包括1字节的命令和4字节的参数,通过数据获取指令所包含的5字节数据,可以确定出数据获取指令所获取的是哪些数据。
84.例如,若数据获取指令用于获取第一设备中指定模块的调试信息,则第二设备可以根据相关人员的指示或者预先的设置指定第一设备中的一个或多个模块,并且,第二设备向第一设备发送的数据获取指令可以包含针对指定的模块的调试开启指令,用以触发相应模块的调试。示例地,在这一过程中,数据获取指令所包含的参数可以为32位的模块掩码,且模块对应bit为1表征使能该模块的调试。这样,第二设备能够根据相关人员的选择或实际需求动态使能调试的模块,避免记录和传输不必要的调试信息,进而节省带宽和资源。
85.可选地,考虑到使用开销,可以默认第一设备中的调试功能是不使能的,而通过向spi接口发送查询命令判断是否接收到第二设备的数据获取指令,当第一设备端接收到第二设备发送的数据获取指令用于获取第一设备中指定模块的调试信息时,才会调试并向第二设备发送调试信息。
86.图3示出了第一设备判断是否接收到数据获取指令过程中发送查询命令的时序过程,其中,mosi一行表征第一设备向spi总线发送查询命令,miso一行表征第二设备向第一设备发送数据获取指令。
87.回到图2,在步骤12中,若接收到数据获取指令,对数据获取指令进行解析,得到解析结果。
88.这一步骤中,按照预先设置的解析方式对数据获取指令进行解析,以确定数据获取指令是何种指令,用于获取何种数据,以获得解析结果。其中,解析数据获取指令的方式可以根据第一设备和第二设备预先约定。
89.在步骤13中,若解析结果指示数据获取指令用于获取第一设备中指定模块的调试信息,确定数据获取指令所指示的目标模块,并对目标模块进行调试,得到目标调试信息。
90.如上所述,数据获取指令可以用于获取第一设备中指定模块的调试信息,因此,若针对数据获取指令的解析结果指示数据获取指令用于获取第一设备中指定模块的调试信息,则可以将数据获取指令所指定的模块作为目标模块,进而,针对目标模块进行调试,以得到目标调试信息。
91.示例地,目标调试信息可以由8个字节的包头,以及0~247bytes的数据组成,其数据构成可以如图4所示。包头中可以记录有当前的线程id和当前时间戳,便于分析时序相关问题。目标调试信息可以是二进制原始数据直接输出,相比串口打印需转换到ascii字符的
方式,可以节省带宽和格式化处理的开销。
92.可选地,在确定数据获取指令用于获取第一设备中指定模块的调试信息后,第一设备可以停止判断是否接收到第二设备发送的数据获取指令。例如,参照前文给出的实施例,第一设备可以在确定数据获取指令用于获取第一设备中指定模块的调试信息后,停止向spi总线发送查询命令。
93.可选地,在步骤14之前,还可以对第一设备(以及第二设备)进行主从切换,以使第一设备作为spi总线主从模式中的主设备,同时,第二设备作为spi中心主从模式中的从设备。这样,第一设备可以随时向第二设备发送调试信息,而不必等待第二设备的轮询。
94.在步骤14中,将目标调试信息通过spi总线发送至第二设备。
95.在获得目标调试信息后,即可将目标调试信息通过spi总线发送至第二设备。并且,由于调试可能是循环的过程,因此,可以循环向第二设备发送目标调试信息。
96.在一种可能的实施方式中,步骤14可以包括以下步骤:
97.将目标调试信息写入第一设备中的目标存储空间;
98.通过目标线程调用spi驱动,以将目标存储空间中的目标调试信息发送至第二设备。
99.示例地,可以在第一设备中开辟一公用存储空间,作为目标存储空间。之后,用另外的独立线程(目标线程)调用spi驱动已将目标存储空间中的数据发送到第二设备。这一实施方式相当于异步输出。其中,目标存储空间可以命名为trace buffer,且trace buffer可以使用ring buffer方式管理,通过读写指针来处理有效数据,避免回绕覆盖。
100.采用上述方式,调用者只需要一次内存拷贝的开销,适用于实时性要求较高的使用场景。
101.上述异步输出的方式需要一块存储空间以及一个线程栈的开销,对于内存紧张的设备较难满足。因此,在另一种可能的实施方式中,步骤14可以包括以下步骤:
102.根据spi总线当前的时钟频率,确定提升后的目标时钟频率;
103.按照目标时钟频率,采用直接存储器访问的方式将目标调试信息通过spi总线发送至第二设备。
104.也就是说,采用在调用上下文直接通过spi接口输出的方式,通过提高spi的时钟频率以及采用dma(direct memory access,直接存储器访问)方式进行传输。这一实施方式相当于同步输出。
105.采用上述方式,能够减少cpu开销,提高传输速度。
106.这样,通过步骤11~步骤14,能够通过spi接口将第一设备的调试信息输出至第二设备,以便第二设备接收、记录及进行后续处理。
107.通过上述技术方案,在第一设备设置spi总线,并使第一设备通过spi总线与第二设备通信,进而,第一设备判断是否接收到第二设备发送的数据获取指令,若接收到数据获取指令,对数据获取指令进行解析,得到解析结果,若解析结果指示数据获取指令用于获取第一设备中指定模块的调试信息,确定数据获取指令所指示的目标模块,并对目标模块进行调试,得到目标调试信息,将目标调试信息通过spi总线发送至第二设备。由此,使用通用的高速spi接口来传输第一设备中各个模块的调试信息,无需额外开发专用的硬件,方便对设备进行调试,并能够快速传输大量的调试数据,有利于调试性能的提升。
108.可选地,在图1所示各步骤的基础上,本公开提供的方法还可以包括以下步骤:
109.若解析结果指示数据获取指令用于获取第一设备的设备信息,获取第一设备的设备信息,作为目标设备信息;
110.将目标设备信息通过spi总线发送至第二设备。
111.其中,第一设备的设备信息包括以下中的至少一者:
112.第一设备当前的线程列表、第一设备中各模块的信息。
113.示例地,第二设备可以先向第一设备发送用于获取第一设备的设备信息的数据获取指令,以获取第一设备的设备信息,进而,根据设备信息中各模块的信息,确定要使能的模块,并在待发送的新的数据获取指令中指定,再向第一设备发送该新的数据获取指令,以获得指定模块的调试信息。
114.图5是根据本公开的一种实施方式提供的数据传输方法的流程图。该方法可以应用于第二设备,第二设备分别与第一设备和第三设备通信,且第二设备通过spi总线与第一设备通信。
115.如图5所示,该方法可以包括以下步骤:
116.在步骤51中,向第一设备发送数据获取指令;
117.在步骤52中,接收第一设备响应于数据获取指令所发送的响应内容;
118.在步骤53中,将响应内容发送至第三设备。
119.第二设备向第一设备发送数据获取指令的方式在前文中已经给出,此处不赘述。
120.第一设备在接收到第二设备发送的数据获取指令后,会按照前文中给出的方式对数据获取指令进行响应,并将响应内容返回至第二设备,第二设备即可接收到该响应内容。如前文所述,该响应内容可以为第一设备的设备信息,或者,可以为第一设备中目标模块的目标调试信息。
121.第二设备接收到上述响应内容后,即可将该响应内容发送至第三设备。
122.在一种可能的实施方式中,第三设备可以为pc(personal computer,个人计算机),相应地,第二设备可以通过usb(universal serial bus,通用串行总线)接口与第三设备通信。
123.若第二设备通过usb接口与第三设备通信,将响应内容发送至第三设备,可以为:
124.通过usb接口将响应内容发送至第三设备。
125.这样,可以通过第二设备的usb接口将响应内容(例如,目标调试信息)实时转发到pc上进行同步记录和分析,以通过pc解析并显示响应内容。
126.在另一种可能的实施方式中,第三设备可以为sd卡(secure digital memory card,安全数码卡),相应地,第二设备可以通过mmc(multimedia card,多媒体记忆卡)接口与第三设备通信。
127.若第二设备通过mmc接口与第三设备通信,将响应内容发送至第三设备,可以为:
128.通过mmc接口将响应内容发送至第三设备。
129.这样,第二设备可以将调试信息离线保存到sd卡,以便于后续分析。
130.图6是根据本公开的一种实施方式提供的数据传输装置的框图。该装置60应用于第一设备,所述第一设备设置有串行外设接口spi总线,且所述第一设备通过spi总线与第二设备通信,所述装置60包括:
131.判断模块61,用于判断是否接收到所述第二设备发送的数据获取指令;
132.解析模块62,用于若接收到所述数据获取指令,对所述数据获取指令进行解析,得到解析结果;
133.第一确定模块63,用于若所述解析结果指示所述数据获取指令用于获取所述第一设备中指定模块的调试信息,确定所述数据获取指令所指示的目标模块,并对所述目标模块进行调试,得到目标调试信息;
134.第一发送模块64,用于将所述目标调试信息通过所述spi总线发送至所述第二设备。
135.可选地,所述第一发送模块64包括:
136.存储子模块,用于将所述目标调试信息写入所述第一设备中的目标存储空间;
137.第一发送子模块,用于通过目标线程调用spi驱动,以将所述目标存储空间中的所述目标调试信息发送至所述第二设备。
138.可选地,所述第一发送模块64包括:
139.确定子模块,用于根据spi总线当前的时钟频率,确定提升后的目标时钟频率;
140.第二发送子模块,用于按照所述目标时钟频率,采用直接存储器访问的方式将所述目标调试信息通过所述spi总线发送至所述第二设备。
141.可选地,所述装置60还包括:
142.在所述第一发送模块64将所述目标调试信息通过所述spi总线发送至所述第二设备之前,将所述第一设备作为所述spi总线的主设备,并将所述第二设备作为所述spi总线的从设备。
143.可选地,所述装置60还包括:
144.获取模块,用于若所述解析结果指示所述数据获取指令用于获取所述第一设备的设备信息,获取所述第一设备的设备信息,作为目标设备信息;
145.第二发送模块,用于将所述目标设备信息通过所述spi总线发送至所述第二设备;
146.其中,所述第一设备的设备信息包括以下中的至少一者:
147.所述第一设备当前的线程列表、所述第一设备中各模块的信息。
148.图7是根据本公开的一种实施方式提供的数据传输装置的框图。该装置应用于第二设备,所述第二设备分别与第一设备和第三设备通信,且所述的第二设备通过spi总线与第一设备通信,所述装置70包括:
149.第三发送模块71,用于向所述第一设备发送数据获取指令;
150.接收模块72,用于接收所述第一设备响应于所述数据获取指令所发送的响应内容;
151.第四发送模块73,用于将所述响应内容发送至所述第三设备。
152.可选地,所述第二设备通过usb接口或mmc接口与所述第三设备通信;
153.若所述第二设备通过usb接口与所述第三设备通信,所述第四发送模块73用于通过所述usb接口将所述响应内容发送至所述第三设备;
154.若所述第二设备通过mmc接口与所述第三设备通信,所述第四发送模块73用于通过所述mmc接口将所述响应内容发送至所述第三设备。
155.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法
的实施例中进行了详细描述,此处将不做详细阐述说明。
156.本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任意实施例所提供的应用于第一设备的数据传输方法的步骤,或者,该程序被处理器执行时实现本公开任意实施例所提供的应用于第二设备的数据传输方法的步骤。
157.本公开还提供一种通信系统,所述通信系统包括第一设备和第二设备,所述第一设备和所述第二设备均设置有串行外设接口spi总线,且所述第一设备和所述第二设备通过spi总线通信,其中,所述第一设备用于执行本公开任意实施例所提供的应用于第一设备的数据传输方法的步骤,所述第二设备用于执行本公开任意实施例所提供的应用于第二设备的数据传输方法的步骤。
158.可选地,所述通信系统还包括第三设备,所述第二设备通过usb接口或mmc接口与所述第三设备通信。
159.以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
160.另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
161.此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1