数据发送方法及接收方法与流程

文档序号:33387324发布日期:2023-03-08 08:52阅读:26来源:国知局
数据发送方法及接收方法与流程

1.本技术涉及计算机技术领域,尤其涉及一种数据发送方法及接收方法。


背景技术:

2.复杂的可编程逻辑元件(complex programmable logic device,cpld)广泛应用于各种电子设备中。例如,电子设备可以为服务器、电脑等。电子设备中的多个cpld之间可以进行数据传输。
3.相关技术中,电子设备中的cpld之间可以通过串行通用输入输出(serial general purpose input/output,sgpio)协议、或者两线式串行总线(inter-integrated circuit,i2c)协议进行通信,以实现数据传输。然而,基于sgpio协议进行通信的两个cpld需要通过4根信号线连接,基于i2c协议进行通信的两个cpld需要通过2根信号线连接。因此,cpld可使用管脚较少时,两个cpld之间无法进行通信,使得cpld之间的可通信场景较少。


技术实现要素:

4.本技术提供了一种数据发送方法及接收方法,上述方法可以减少两个cpld之间通信时需要的信号线,使得cpld的数据传输适用于更多的场景。
5.第一方面,本技术提供一种数据发送方法,应用于第一复杂可编程逻辑器件cpld,所述第一cpld通过单线与第二cpld传输数据,所述方法包括:
6.获取待发送的多位有效数据;
7.将所述多位有效数据打包成第一数据包;
8.以所述第一cpld的主时钟为基准时钟,基于预设的通讯协议,确定所述第一数据包中各数据的电平信号;
9.并向所述第二cpld发送各数据的电平信号;其中,所述第一cpld的主时钟与所述第二cpld的主时钟相同。
10.上述技术方案中,第一cpld可以将要发送的有效数据打包成第一数据包;可以确定第一数据包中各数据的电平信号;并可以通过第一cpld与第二cpld之间的1根信号线,向第二cpld发送第一数据包中各数据的电平信号。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。
11.一种可能的实现方式中,针对所述第一数据包中的任意一位数据;确定所述第一数据包中的所述数据的电平信号,包括:
12.若所述数据为第一数据,则按照第一数据打包方式确定所述数据的电平信号;
13.若所述数据为第二数据,则按照第二数据打包方式确定所述数据的电平信号;
14.其中,所述第一数据打包方式和所述第二数据打包方式对应的波形不同。
15.上述技术方案中,可以通过不同的方式分别对第一数据和第二数据进行打包,使得第二cpld可以准确识别接收的数据。
16.一种可能的实现方式中,所述基于预设的通讯协议,确定所述第一数据包中各数据的电平信号,包括:
17.当所述数据为第一数据时,所述第一数据对应的波形包括:
18.在前x个主时钟周期为第一电平信号,在第x+1个主时钟周期为第二电平信号,在第x+2至n个主时钟周期为第一电平信号;其中,所述x为大于或等于1的整数,所述x小于所述n。
19.上述技术方案中,可以通过特定的方式对第一数据进行打包,实现了对第一数据打包的目的。
20.一种可能的实现方式中,所述基于预设的通讯协议,确定所述第一数据包中各数据的电平信号,包括:
21.当所述数据为第二数据时,所述第二数据对应的波形包括:
22.在前x个主时钟周期为第一电平信号,在第x+1至n个主时钟周期为第二电平信号;其中,所述x为大于或等于1的整数,所述x小于所述n。
23.上述技术方案中,可以通过特定的方式对第二数据进行打包,实现了对第二数据打包的目的。
24.一种可能的实现方式中,所述第一数据包包括包头和至少一组数据,相邻的两组数据之间包括用于隔离的分割数据;
25.所述将所述多位有效数据打包成第一数据包,包括:
26.将预设包头确定为所述第一数据包的包头;
27.按照预设长度k,对所述多位有效数据进行分组处理,得到所述至少一组数据,并在相邻的两组数据之间插入所述分割数据,得到所述第一数据包,一组数据中包括k位数据,所述k为大于或等于1的整数。
28.上述技术方案中,可以通过特定的方式将多位有效数据打包成第一数据包,以实现通过数据包的形式传输数据的目的,提高了数据传输效率。
29.一种可能的实现方式中,所述预设包头包括k+2位数据,其中,所述预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据;
30.所述分割数据为所述第一数据。
31.上述技术方案中,提供了包头和分割数据的结构形式,以便于对有效数据进行结构化处理。
32.一种可能的实现方式中,所述方法还包括:
33.接收所述第二cpld发送的异常信息,所述异常信息中包括异常组标识,所述异常信息用于指示所述第二cpld未接收成功异常数据组或对所述异常数据组接收错误;
34.根据所述异常信息,向所述第二cpld重新发送所述异常组标识对应的一组或多组数据。
35.上述技术方案中,若数据包中任意一组或多组数据发送失败,第一cpld可以根据异常信息,重新发送该一组或多组数据,避免了重新发送该数据包中所有数据,提高了数据发送效率。
36.第二方面,本技术提供一种数据接收方法,应用于第二复杂可编程逻辑器件cpld,所述第二cpld通过单线与第一cpld传输数据,所述方法包括:
37.以所述第二cpld的主时钟为基准时钟,基于预设的通讯协议,对接收到的电平信号进行采数据处理,得到多位采样数据;其中,所述第二cpld的主时钟与所述第一cpld的主时钟相同;
38.按照预设的数据包结构,对所述多个采样数据进行解析处理,以在所述多个采样数据中确定得到多位有效数据。
39.上述技术方案中,第二cpld可以通过第一cpld与第二cpld之间的1根信号线,从第一cpld获取多个电平信号;可以根据数据打包方式、以及多个电平信号,确定多个采样数据;并可以根据数据包的预设结构,在多个采样数据中确定多个有效数据。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld可通信场景较多。
40.一种可能的实现方式中,针对任意n个主时钟周期的电平信号;对接收到的n个主时钟周期的电平信号进行采数据处理,得到对应的采样数据,包括:
41.在所述n个主时钟中确定前x个主时钟周期的电平信号、以及第x+1至n个主时钟周期的电平信号;
42.根据所述前x个主时钟周期的电平信号、以及所述第x+1至n个主时钟周期的电平信号,确定所述采样数据。
43.上述技术方案中,可以根据数据的打包方式,解析n个主时钟周期中接收的电平信号所对应的数据。
44.一种可能的实现方式中,根据所述前x个主时钟周期的电平信号、以及所述第x+1至n个主时钟周期的电平信号,确定所述采样数据,包括:
45.若所述前x个主时钟周期为第一电平信号,第x+1个主时钟周期为第二电平信号,第x+2至n个主时钟周期为第一电平信号,则确定所述采样数据为第一数据;
46.若所述前x个主时钟周期为第一电平信号,第x+1至n个主时钟周期为第二电平信号,则确定所述采样数据为第二数据。
47.上述技术方案中,可以根据第一数据和第二数据的打包方式,解析第二cpld接收的多个电平信号对应的数据,使得第一数据和二数据的解析准确性较高。
48.一种可能的实现方式中,所述预设的数据包结构包括预设包头和至少一组数据,相邻的两组数据之间包括分割数据,一组数据包括k位有效数据,其中,
49.所述预设包头包括k+2位数据,其中,所述预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据,所述k为大于或等于1的整数;
50.所述分割数据为所述第一数据。
51.上述技术方案中,提供了包头和分割数据的结构形式,使得第二cpld可以根据包头和分割数据的结构形式,在多个采集数据中确定有效数据。
52.一种可能的实现方式中,所述多位有效数据包括多个数据组;在重复获取到p个多位有效数据之后,所述方法还包括:
53.对所述p个多位有效数据中的每个数据组进行校验,以确定所述p个多位有效数据中是否存在异常数据组;
54.在确定所述p个多位有效数据中存在至少一个异常数据组时,确定所述异常数据组对应的异常组标识;
55.向所述第一cpld发送异常信息,所述异常信息中包括所述异常组标识,所述异常
信息用于指示所示第二cpld未接收成功所述异常数据组或对所述异常数据组接收错误。
56.上述技术方案中,第二cpld可以向第一cpld发送未接收成功的异常数据组的异常组标识,以请求重新接收该异常数据组。
57.一种可能的实现方式中,针对所述数据包中的任意一个第一数据组;对所述p个多位有效数据中的所述第一数据组进行校验,包括:
58.在所述p个多位有效数据中分别获取所述第一数据组,得到p个第一数据组,所述第一数据组中包括l个数据;
59.在所述p个第一数据组中确定q个第一数据,所述p个第一数据组中的所述q个第一数据相同;
60.若所述q与所述l的比值大于或等于第一比值,则确定所述第一数据组为正确数据组;
61.若所述q与所述l的比值小于所述第一比值,则确定所述第一数据组为异常数据组。
62.上述技术方案中,第二cpld可以对接收的有效数据进行校验,以确定未接收成功的异常数据组,或接收错误的异常数据组,保证了接收到的数据包的准确性和完整性。
63.一种可能的实现方式中,所述向所述第一cpld发送异常信息后,所述方法还包括:
64.接收所述第一cpld重新发送的所述异常组标识对应的所述异常数据组。
65.上述技术方案中,第二cpld可以重新接收未成功接收的一组数据,避免了重新接收该组数据所在数据包中所有数据,提高了数据接收效率。
66.第三方面,本技术提供一种计算设备,所述计算设备包括第一cpld和第二cpld;
67.所述第一cpld用于执行第一方面任一项所述的方法,以向所述第二cpld发送数据;
68.所述第二cpld用于执行第二方面任一项所述的方法,以接收所述第一cpld发送的数据。
69.上述技术方案中,第一cpld可以将要发送的有效数据打包成第一数据包;可以确定第一数据包中各数据的电平信号;并可以通过第一cpld与第二cpld之间的1根信号线,向第二cpld发送第一数据包中各数据的电平信号。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。
70.第四方面,本技术提供一种数据发送装置,该装置包括获取模块、打包模块、确定模块和发送模块,其中,
71.所述获取模块用于,获取待发送的多位有效数据;
72.所述打包模块用于,将所述多位有效数据打包成第一数据包;
73.所述确定模块用于,以所述第一cpld的主时钟为基准时钟,基于预设的通讯协议,确定所述第一数据包中各数据的电平信号;
74.所述发送模块用于,向所述第二cpld发送各数据的电平信号;其中,所述第一cpld的主时钟与所述第二cpld的主时钟相同。
75.上述技术方案中,数据发送装置可以将要发送的有效数据打包成第一数据包;可以确定第一数据包中各数据的电平信号;并可以通过第一cpld与第二cpld之间的1根信号线,向第二cpld发送第一数据包中各数据的电平信号。通过上述方法,可以减少两个cpld之
间通信时需要的信号线,使得cpld的可通信场景较多。
76.在一种可能的实现方式中,一位数据对应n个主时钟周期的电平信号,所述n为大于1的整数;所针对所述第一数据包中的任意一位数据,所述确定模块具体用于,
77.若所述数据为第一数据,则按照第一数据打包方式确定所述数据的电平信号;
78.若所述数据为第二数据,则按照第二数据打包方式确定所述数据的电平信号;
79.其中,所述第一数据打包方式和所述第二数据打包方式对应的波形不同。
80.上述技术方案中,可以通过不同的方式分别对第一数据和第二数据进行打包,使得第二cpld可以准确识别接收的数据。
81.在一种可能的实现方式中,一位数据对应n个主时钟周期的电平信号,所述n为大于1的整数;针对所述第一数据包中的任意一位数据;所述确定模块具体用于,
82.当所述数据为第一数据时,所述第一数据对应的波形包括:
83.在前x个主时钟周期为第一电平信号,在第x+1个主时钟周期为第二电平信号,在第x+2至n个主时钟周期为第一电平信号;其中,所述x为大于或等于1的整数,所述x小于所述n。
84.上述技术方案中,可以通过特定的方式对第一数据进行打包,实现了对第一数据打包的目的。
85.在一种可能的实现方式中,一位数据对应n个主时钟周期的电平信号,所述n为大于1的整数;针对所述第一数据包中的任意一位数据;所述确定模块具体用于,
86.当所述数据为第二数据时,所述第二数据对应的波形包括:
87.在前x个主时钟周期为第一电平信号,在第x+1至n个主时钟周期为第二电平信号;其中,所述x为大于或等于1的整数,所述x小于所述n。
88.上述技术方案中,可以通过特定的方式对第二数据进行打包,实现了对第二数据打包的目的。
89.在一种可能的实现方式中,所述第一数据包包括包头和至少一组数据,相邻的两组数据之间包括用于隔离的分割数据;所述打包模块具体用于,
90.将预设包头确定为所述第一数据包的包头;
91.按照预设长度k,对所述多位有效数据进行分组处理,得到所述至少一组数据,并在相邻的两组数据之间插入所述分割数据,得到所述第一数据包,一组数据中包括k位数据,所述k为大于或等于1的整数。
92.上述技术方案中,可以通过特定的方式将多位有效数据打包成第一数据包,以实现通过数据包的形式传输数据的目的,提高了数据传输效率。
93.在一种可能的实现方式中,所述预设包头包括k+2位数据,其中,所述预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据;
94.所述分割数据为所述第一数据。
95.上述技术方案中,提供了包头和分割数据的结构形式,以便于对有效数据进行结构化处理。
96.在一种可能的实现方式中,所述装置还包括接收模块,其中,
97.所述接收模块用于,接收所述第二cpld发送的异常信息,所述异常信息中包括异常组标识,所述异常信息用于指示所述第二cpld未接收成功异常数据组或对所述异常数据
组;
98.所述发送模块还用于,根据所述异常信息,向所述第二cpld重新发送所述异常组标识对应的所述异常数据组。
99.上述技术方案中,若数据包中任意一组或多组数据发送失败,第一cpld可以根据异常信息,重新发送该一组或多组数据,避免了重新发送该数据包中所有数据,提高了数据发送效率。
100.第五方面,本技术提供一种数据接收装置,该装置包括采数据模块和解析模块,其中,
101.所述采数据模块用于,以所述第二cpld的主时钟为基准时钟,基于预设的通讯协议,对接收到的电平信号进行采数据处理,得到多位采样数据;其中,所述第二cpld的主时钟与所述第一cpld的主时钟相同;
102.所述解析模块用于,按照预设的数据包结构,对所述多个采样数据进行解析处理,以在所述多个采样数据中确定得到多位有效数据。
103.上述技术方案中,数据接收装置可以通过第一cpld与第二cpld之间的1根信号线,从第一cpld获取多个电平信号;可以根据数据打包方式、以及多个电平信号,确定多个采样数据;并可以根据数据包的预设结构,在多个采样数据中确定多个有效数据。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。
104.在一种可能的实现方式中,针对任意n个主时钟周期的电平信号;所述采数据模块具体用于,
105.在所述n个主时钟中确定前x个主时钟周期的电平信号、以及第x+1至n个主时钟周期的电平信号;
106.根据所述前x个主时钟周期的电平信号、以及所述第x+1至n个主时钟周期的电平信号,确定所述采样数据。
107.上述技术方案中,可以根据数据的打包方式,解析n个主时钟周期中接收的电平信号所对应的数据。
108.在一种可能的实现方式中,所述采数据模块具体用于,
109.若所述前x个主时钟周期为第一电平信号,第x+1个主时钟周期为第二电平信号,第x+2至n个主时钟周期为第一电平信号,则确定所述采样数据为第一数据;
110.若所述前x个主时钟周期为第一电平信号,第x+1至n个主时钟周期为第二电平信号,则确定所述采样数据为第二数据。
111.上述技术方案中,可以根据第一数据和第二数据的打包方式,解析第二cpld接收的多个电平信号对应的数据,使得第一数据和二数据的解析准确性较高。
112.在一种可能的实现方式中,所述预设的数据包结构包括预设包头和至少一组数据,相邻的两组数据之间包括分割数据,一组数据包括k位有效数据,其中,
113.所述预设包头包括k+2位数据,其中,所述预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据,所述k为大于或等于1的整数;
114.所述分割数据为所述第一数据。
115.上述技术方案中,提供了包头和分割数据的结构形式,使得第二cpld可以根据包头和分割数据的结构形式,在多个采集数据中确定有效数据。
116.在一种可能的实现方式中,所述装置还包括校验模块、确定模块、发送模块和接收模块,其中,
117.所述校验模块用于,对所述p个多位有效数据中的每个数据组进行校验,以确定所述p个多位有效数据中是否存在异常数据组;
118.所述确定模块用于,对所述p个多位有效数据中的每个数据组进行校验,以确定所述p个多位有效数据中是否存在异常数据组;
119.所述发送模块用于,向所述第一cpld发送异常信息,所述异常信息中包括异常组标识,所述异常信息用于指示所示第二cpld未接收成功所述异常数据组或对所述异常数据组接收错误。
120.上述技术方案中,第二cpld可以向第一cpld发送未接收成功的一组或多组数据的异常组标识,以请求重新接收该组数据。
121.在一种可能的实现方式中,针对所述数据包中的任意一个第一数据组;所述校验模块具体用于,
122.在所述p个有效数据中分别获取所述第一数据组,得到p个第一数据组,所述第一数据组中包括l个数据;
123.在所述p个第一数据组中确定q个第一数据,所述p个第一数据组中的所述q个第一数据相同;
124.若所述q与所述l的比值大于或等于第一比值,则确定所述第一数据组为正确数据组;
125.若所述q与所述l的比值小于所述第一比值,则确定所述第一数据组为异常数据组。
126.上述技术方案中,第二cpld可以对接收的有效数据进行校验,以确定未接收成功的异常数据组,或接收错误的异常数据组,保证了接收到的数据包的准确性和完整性。
127.在一种可能的实现方式中,
128.所述接收模块用于,接收所述第一cpld重新发送的所述异常组标识对应的所述异常数据组。
129.上述技术方案中,第二cpld可以重新接收未成功接收的一组或多组数据,避免了重新接收该一组或多组数据所在数据包中所有数据,提高了数据接收效率。第六方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被计算机执行时实现如第一方面中任一项所述的方法。
130.上述技术方案中,第一cpld可以将要发送的有效数据打包成第一数据包;可以确定第一数据包中各数据的电平信号;并可以通过第一cpld与第二cpld之间的1根信号线,向第二cpld发送第一数据包中各数据的电平信号。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。
131.第六方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被计算机执行时实现如第二方面中任一项所述的方法。
132.上述技术方案中,第一cpld可以将要发送的有效数据打包成第一数据包;可以确定第一数据包中各数据的电平信号;并可以通过第一cpld与第二cpld之间的1根信号线,向第二cpld发送第一数据包中各数据的电平信号。通过上述方法,可以减少两个cpld之间通
信时需要的信号线,使得cpld的可通信场景较多。
133.第七方面,本技术提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时实现如第一方面中任一项所述的方法。
134.上述技术方案中,第二cpld可以通过第一cpld与第二cpld之间的1根信号线,从第一cpld获取多个电平信号;可以根据数据打包方式、以及多个电平信号,确定多个采样数据;并可以根据数据包的预设结构,在多个采样数据中确定多个有效数据。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。
135.第八方面,本技术提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时实现如第二方面中任一项所述的方法。
136.上述技术方案中,第二cpld可以通过第一cpld与第二cpld之间的1根信号线,从第一cpld获取多个电平信号;可以根据数据打包方式、以及多个电平信号,确定多个采样数据;并可以根据数据包的预设结构,在多个采样数据中确定多个有效数据。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。
附图说明
137.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
138.图1为本技术实施例提供的一种通信系统架构示意图;
139.图2为本技术实施例提供的一种基于sgpio协议的cpld数据传输示意图;
140.图3为本技术实施例提供的一种基于i2c协议的数据传输示意图;
141.图4a为本技术实施例提供的一种数据传输示意图;
142.图4b为本技术实施例提供的另一种数据传输示意图;
143.图5为本技术实施例提供的一种数据发送方法的流程示意图;
144.图6为本技术实施例提供的另一种数据发送方法的流程示意图;
145.图7为本技术实施例提供的一种第一数据包结构的示意图;
146.图8a为本技术实施例提供的一种第一数据的打包方式示意图;
147.图8b为本技术实施例提供的一种第二数据的打包方式示意图;
148.图9为本技术实施例提供的一种数据接收方法的流程示意图;
149.图10为本技术实施例提供的另一种数据接收方法的流程示意图;
150.图11为本技术实施例提供的一种确定采样数据的示意图;
151.图12为本技术实施例提供的一种数据包结构示意图;
152.图13为本技术实施例提供的一种数据发送装置的结构示意图;
153.图14为本技术实施例提供的另一种数据发送装置的结构示意图;
154.图15为本技术实施例提供的一种数据接收装置的结构示意图;
155.图16为本技术实施例提供的另一种数据接收装置的结构示意图;
156.图17为本技术实施例提供的一种数据传输设备的结构示意图。
具体实施方式
157.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
158.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
159.本技术实施例提供的数据发送方法和数据接收方法,可以应用于cpld通信系统中。
160.为便于理解,首先结合图1,对本技术实施例涉及的通信系统进行说明。
161.图1为本技术实施例提供的一种通信系统架构示意图。如图1所示,电子设备100可以包括第一cpld101、第二cpld102及信号线103。
162.电子设备100可以是物理服务器,也可以是多个物理服务器构成的服务器集群,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content deliverynetwork,cdn)以及大数据和人工智能平台等基础云计算服务的云服务器,还可以是移动电话、平板电脑、手提电脑、多媒体播放器、电子阅读器、智能车载设备、智能家电、人工智能设备、穿戴式设备、物联网设备、台式计算机、膝上型便携计算机、或虚拟现实/增强现实/混合现实设备等。
163.需要说明的是,本技术实施例示意的电子设备100的结构并不构成对电子设备100的具体限定。在一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不停的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
164.第一cpld101和第二cpld102可以为电子设备100中的数字逻辑器件。第一cpld101与第二cpld102可以通过信号线103进行通信。信号线103的数量可以为一根或多根。
165.本技术实施例中,第一cpld101可以通过信号线103向第二cpld102发送数据,相应的,第二cpld102可以从第一cpld101获取数据;或者,第二cpld102可以通过信号线103向第一cpld101发送数据,相应的,第一cpld101可以从第二cpld102获取数据
166.应该理解的是,电子设备100中还可以包括其他第一cpld,或者还可以包括其他第二cpld,图中未予以示出。
167.需要说明的是,本技术实施例描述的通信系统架构是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定。
168.下面,示例性的示出2种cpld之间传输数据的方法:
169.方法1、cpld之间基于sgpio协议传输数据。
170.方法2、cpld之间基于i2c协议传输数据。
171.下面,结合图2,对上述方法1进行说明。
172.图2为本技术实施例提供的一种基于sgpio协议的cpld数据传输示意图。请参见图
2,电子设备200包括主cpld201和从cpld202。
173.主cpld201和从cpld202之间设置有4根信号线。4根信号线分别为时钟(clock,clk)信号线、数据同步(load)信号线、主设备输出给从设备的数据(dataout)信号线和从设备输出给主设备的数据(datain)信号线。
174.clk信号可以由主cpld发出,可以由从cold接收。主cpld可以使用clk信号的上升沿发送load和dataout,可以使用clk信号的下降沿锁定datain。从cpld可以使用clk信号的上升沿发送datain,可以使用clk信号的下降沿锁定load和dataout。
175.该数据传输系统中,两个cpld之间需要通过4根信号线连接,若任意一个cpld的可用管脚较少,无法提供4个可用管脚,两个cpld之间无法进行通信,导致cpld的数据传输场景较少。另外,时钟信号通常采用33khz时钟,时钟速率较低,导致数据传输速率较低。
176.下面,结合图3,对上述方法2进行说明。
177.图3为本技术实施例提供的一种基于i2c协议的数据传输示意图。请参见图3,电子设备300包括主cpld301和从cpld302。
178.主cpld301和从cpld302之间设置有2根信号线。2根信号线分别为串行时钟线(i2c-scl),及串行数据线(i2c-sda)。
179.该数据传输系统中,两个cpld之间需要通过2根信号线连接,若任意一个cpld的可用管脚较少,无法提供2个可用管脚,两个cpld之间无法进行通信,导致cpld的数据传输场景较少。另外,时钟信号通常采用100khz时钟,时钟速率较低,导致数据传输速率较低。
180.有鉴于此,本技术实施例提供了一种数据发送方法和一种数据接收方法。本技术实施例提供的数据发送方法和数据接收方法中,两个cpld之间可以通过1根信号线连接。两个cpld没有主从设备之分。下面,结合图4a-图4b对本技术实施例提供的数据发送方法和数据接收方法进行说明。
181.图4a为本技术实施例提供的一种数据传输示意图。如图4a所示,第一cpld401与第二cpld402之间可以通过1根信号线连接。第一cpld401可以通过该信号线向第二cpld402发送数据。
182.图4b为本技术实施例提供的另一种数据传输示意图。如图4b所示,第一cpld401与第二cpld402之间可以通过1根信号线连接。第二cpld402可以通过该信号线向第一cpld401发送数据。
183.图4a-图4b所示的实施例中,可以以第一cpld401的内部主时钟作为数据发送的基准时钟,或者,可以以第二cpld402的内部主时钟作为数据接收的基准时钟。
184.需要说明的是,本实施例中,第一cpld401及第二cpld401可以与同一个晶体振荡器连接,以保证第一cpld401的内部主时钟与第二cpld402的内部主时钟相同;或者,第一cpld401及第二cpld401分别与两个不同的晶体振荡器连接,且该两个晶体振荡器的主频率相同,使得第一cpld401的内部主时钟与第二cpld402的内部主时钟相同。例如,晶体振荡器的主频率可以为25mhz。
185.由图4a-图4b可知,第一cpld401和第二cpld402之间的1根信号线,既可以承载第一cpld401向第二cpld402发送的数据,又可以承载第二cpld402向第一cpld401发送的数据。
186.图4a-图4b所示的数据传输方法,可以减少cpld的可用管脚的需求量,两个cpld之
间可以通过1根信号线传输数据,使得cpld的数据传输场景较多。
187.下面以具体的实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
188.图5为本技术实施例提供的一种数据发送方法的流程示意图。请参见图5,该方法可以包括:
189.s501、获取待发送的多位有效数据。
190.本实施例的执行主体可以为第一cpld,或者第一cpld中的数据发送设备。可选的,数据发送设备可以通过软件实现,也可以通过软件和硬件的结合实现。
191.本实施例提供的数据发送方法可以应用于第一cpld,第一cpld通过单线与第二cpld连接。
192.第一cpld可以为,用于向第二cpld发送数据的cpld。
193.第二cpld可以为,用于从第一cpld获取数据的cpld。
194.本实施例中,第一cpld和第二cpld的数量均可以为一个或多个,对此本技术不做限定。
195.本实施例中,第一cpld可以以数据包的形式向第二cpld发送业务数据。数据包中除了需要发送的业务数据外,还可以包括用于组成数据包包头的数据、或者数据包结构所需的其他数据。
196.有效数据可以为,第一cpld向第二cpld发送的业务数据。
197.示例性的,假设第一cpld向第二cpld发送的业务数据为“1101”,数据包的包头为“111110”,则第一cpld向第二cpld发送的数据包可以为“11111101101”。有效数据可以为“1101”。
198.s502、将多位有效数据打包成第一数据包。
199.第一数据包可以为第一cpld向第二cpld发送的数据包。
200.第一数据包可以包括包头和至少一组数据。
201.本实施例中,可以预先设置第一数据包的包头。包头可以包括多个数据。例如,包头可以为“111110”。
202.本实施例中,一个或多个有效数据可以组成一组数据。第一数据包中可以包括至少一组数据。
203.示例性的,假设第一数据包包括包头和2组数据,每组数据包括4个有效数据。包头为“111110”,两组数据依次为“0101”和“1100”。则将多位有效数据打包成第一数据包可以为
“‘
111110
’‘
0101
’‘
1100
’”

204.本实施例中,可以将有效数据分为一组或多组数据,使得第一数据包的长度可以扩展。具体实施过程中,可以根据数据传输需要确定第一数据包中数据组的数量。
205.s503、以第一cpld的主时钟为基准时钟,基于预设的通讯协议,确定第一数据包中各数据的电平信号。
206.第一cpld的主时钟可以为第一cpld所属电子设备的系统时钟。
207.电平信号可以包括低电平信号和高电平信号。
208.应该理解的是,第一数据包中可以包括若干个第一数据和若干个第二数据。第一数据可以为“0”,第二数据可以为“1”。
209.本实施例中,可以通过多个主时钟周期对应的电平信号表示第一数据,同时可以通过多个主时钟周期对应的电平信号表示第二数据。
210.示例性的,可以通过连续n个主时钟周期对应的n个高电平信号表示第一数据/第二数据;或者,可以通过连续n个主时钟周期对应的n个低电平信号表示第一数据/第二数据;或者,可以通过连续n个主时钟周期对应的n个低电平信号和高电平信号的组合表示第一数据/第二数据。其中,n为大于1的整数。
211.应该理解的是,用于表示第一数据的n个电平信号,与用于表示第二数据的n个电平信息不同,即第一数据打包方式和第二数据打包方式对应的波形不同。
212.s504、向第二cpld发送各数据的电平信号。
213.本实施例中,第一cpld可以向第二cpld发送各数据的电平信号,以实现有效数据的发送。
214.本实施例提供的数据发送方法中,第一cpld可以通过1根信号线与第二cpld连接,第一cpld可以将要发送的有效数据打包成第一数据包;可以以主时钟为基准,通过不同的电平信号表示第一数据包中的第一数据和第二数据;并可以通过第一cpld与第二cpld之间的1根信号线向第二cpld发送各数据的电平信号。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。另外,对有效数据打包及分组可以提高数据的传输效率。
215.在图5实施例的基础上,可以通过相应的电平信号表示第一数据/第二数据,并可以通过相应的数据包结构对有效数据进行结构化处理。下面,结合图6对上述方案进行详细说明。
216.图6为本技术实施例提供的另一种数据发送方法的流程示意图。请参见图6,该方法可以包括:
217.s601、确定待发送的多位有效数据。
218.需要说明的是,s601的具体实施方式可以参见s501,此处不再赘述。
219.s602、将多位有效数据打包成第一数据包。
220.本实施例中,可以将预设包头确定为第一数据包的包头;按照预设长度k,对多位有效数据进行分组处理,得到至少一组数据,并在相邻的两组数据之间插入用于隔离的分割数据,得到第一数据包,一组数据中包括k位数据,k为大于或等于1的整数。
221.具体而言,可以按照每组k位有效数据的方式,将多位有效数据分为若干组数据,并可以在相邻两组数据之间插入第一数据作为分割数据。第一数据包可以包括包头、若干组数据,以及若干个分割数据。
222.本实施例中,分割数据可以将第一数据包中各组数据有效隔离,使得有效数据的分组准确性较高。第一cpld和/或第二cpld可以根据相邻两组数据之前的分割数据,准确区分各数据组。
223.下面,以分割数据为“0”为例,结合图7,对第一数据包结构进行说明。
224.图7为本技术实施例提供的一种第一数据包结构的示意图。请参见图7,第一数据包可以包括包头、若干组数据,以及若干个分割数据“0”。其中,每组数据包括k位有效数据。
225.本实施例中,预设包头包括k+2位数据,其中,预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据;分割数据为第一数据。
226.第一数据可以为“0”,第二数据可以为“1”。
227.示例性的,假设k等于4,则第一数据包的包头可以包括6位数据,其中前5位可以为“1”,第6位可以为“0”。即,第一数据包的包头可以为“111110”。
228.本实施例中,对有效数据进行结构化处理时,应该尽量提高第一数据包中数据的有效率。下面,以有效数据为m位为例,对第一数据包中数据的有效率进行说明。
229.假设第一cpld需要发送的有效数据有m位,按照每组k位有效数据的方式,将m位有效数据分为y组。即m=k
×
y。
230.第一数据包的总长度=k+2+(k+1)
×
y。
[0231][0232]
则,若第一数据包中数据的有效率可以达到最大值。
[0233]
根据以及m=k
×
y可得,若k=y,则第一数据包中数据的有效率可以达到最大值。
[0234]
由此可知,对多位有效数据打包时,可以将多位有效数据分为k组,每组包含k位有效数据,以使第一数据包的数据有效率达到最大值。另外,可以根据需要发送的有效数据的数量、以及k值,对第一数据包的长度进行调整,使得第一数据包的长度可扩展。
[0235]
s603、基于预设的通讯协议,按照第一数据打包方式确定第一数据的电平信号。
[0236]
第一数据可以为“0”。
[0237]
基于预设的通讯协议,第一数据打包方式可以为:前x个主时钟周期为第一电平信号,第x+1个主时钟周期为第二电平信号,第x+2至n个主时钟周期为第一电平信号;其中,x为大于或等于1的整数,x小于n。
[0238]
第一电平信号可以为低电平信号,第二电平信号可以为高电平信号。
[0239]
具体而言,可以通过连续n个主时钟周期对应的电平信号表示第一数据。n个主时钟周期中,前x个主时钟周期可以为低电平信号,第x+1个主时钟周期可以为高电平信号,第x+2至n个主时钟周期为低电平信号。
[0240]
本实施例的通信协议中,n个主时钟周期中,仅有一个电平信号上升沿。x可以大于或等于2。x等于2时,可以避免第二cpld将数据传输过程中的电平信号扰动误判为电平信号上升沿;x大于2时,可以提高第二cpld确认数据的准确性。
[0241]
下面,以x等于3为例,结合图8a,对第一数据的打包方式进行说明。
[0242]
图8a为本技术实施例提供的一种第一数据的打包方式示意图。请参见图8a,第一cpld可以在前3个主时钟周期输出低电平信号,在第4个主时钟周期输出高电平信号,在第5个主时钟周期至第n个主时钟周期输出低电平信号。通过上述连续n个电平信号,可以表示第一数据。即,通过上述连续n个电平信号可以表示“0”。其中,n大于等于5。
[0243]
s604、基于预设的通讯协议,按照第二数据打包方式确定第二数据的电平信号。
[0244]
第二数据可以为“1”。
[0245]
基于预设的通讯协议,第二数据打包方式可以为:前x个主时钟周期为第一电平信号,第x+1至n个主时钟周期为第二电平信号;其中,x为大于或等于1的整数,x小于n。
[0246]
具体而言,可以通过连续n个主时钟周期对应的电平信号表示第一数据。n个主时钟周期中,前x个主时钟周期可以为低电平信号,其余主时钟周期可以为高电平信号。
[0247]
本实施例的通信协议中,n个主时钟周期中,仅有一个电平信号上升沿。x可以大于或等于2。x等于2时,可以避免第二cpld将数据传输过程中的电平信号扰动误判为电平信号上升沿;x大于2时,可以提高第二cpld确认数据的准确性。
[0248]
下面,以x等于3为例,结合图8b,对第二数据的打包方式进行说明。
[0249]
图8b为本技术实施例提供的一种第二数据的打包方式示意图。请参见图8b,第一cpld可以在前3个主时钟周期输出低电平信号,在第4个主时钟周期至第n个主时钟周期输出高电平信号。通过上述连续n个电平信号,可以表示第二数据。即,通过上述连续n个电平信号可以表示“1”。其中,n大于等于5。
[0250]
需要说明的是,s603可以在s604前面执行;或者,s603可以在s604后面执行;或者,s603可以与s604同时执行。本技术对s603与s604的执行顺序不作限定。
[0251]
s605、向第二cpld发送各数据的电平信号。
[0252]
需要说明的是,s605的具体实施方式可以参见s504,此处不再赘述。
[0253]
本实施例中,第一cpld还可以接收第二cpld发送的异常信息,异常信息中包括异常组标识,异常信息用于指示第二cpld未接收成功异常数据组或对异常数据组接收错误;根据异常信息,向第二cpld重新发送异常组标识对应的所述异常数据组。
[0254]
具体而言,若第二cpld未成功接收第一数据包中的任意一组或多组数据,即异常数据组,第二cpld可以将用于表示异常数据组在第一数据包中的位置的标识,即异常组标识,发送给第一cpld。第一cpld可以根据异常组标识重新向第二cpld发送异常数据组。
[0255]
示例性的,可以从第一数据中包头后第一组数据开、从小到大依次对第一数据包中各数据组编号;异常组标识可以为各数据组的编号。
[0256]
一种可能的实现方式中,若异常数据组为一组数据,即第一cpld接收的异常信息中包括一组数据的数据组编号,则第一cpld可以将该组数据打包成数据包的形式,并向第二cpld发送该数据包。
[0257]
另一种可能的实现方式中,若异常数据组为多组数据,即第一cpld接收的异常信息中包括多组数据的数据组编号,则第一cpld可以将该多组数据打包成数据包的形式,并向第二cpld发送该数据包。
[0258]
通过上述方式重新发送第二cpld未成功接收的数据组,可以避免重新发送第二cpld未成功接收的数据组所在的数据包中所有数据,提高了数据发送效率。
[0259]
本实施例提供的数据发送方法中,第一cpld可以将要发送的有效数据打包成第一数据包;可以以第一cpld的主时钟为基准,通过不同的打包方式打包第一数据包中的第一数据和第二数据;并可以通过第一cpld与第二cpld之间的1根信号线,向第二cpld发送各数据的电平信号。若第二cpld未成功接收第一数据包中的一组或多组数据,第一cpld还可以根据异常信息,重新向第二cpld发送该一组或多组数据。通过上述方法,可以减少多个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。另外,对有效数据打包及分组可以提高数据的传输效率。
[0260]
在上述任一实施例的基础上,第二cpld可以接收第一cpld发送的数据。下面,结合图9,对本技术实施例提供的数据接收方法进行说明。
[0261]
图9为本技术实施例提供的一种数据接收方法的流程示意图。请参见图9,该方法可以包括:
[0262]
s901、以第二cpld的主时钟为基准时钟,对接收到的电平信号进行采数据处理,得到多位采样数据。
[0263]
本实施例的执行主体可以为第二cpld,或者第二cpld中的数据接收设备。可选的,数据接收设备可以通过软件实现,也可以通过软件和硬件的结合实现。
[0264]
本实施例提供的数据接收方法可以应用于第二cpld,第二cpld通过单线与第一cpld连接。
[0265]
本实施例中,第二cpld可以通过数据包的形式从第一cpld获取业务数据。数据包中除了需要发送的业务数据外,还可以包括用于组成数据包包头的数据、或者数据包结构所需的其他数据。
[0266]
多位采样数据可以包括,第二cpld从第一cpld获取的数据包中包括的所有数据。
[0267]
示例性的,假设第二cpld从第一cpld获取的数据包包括:4位业务数据“1101”,以及由6位数据组成的包头“111110”。则采样数据可以包括“1111101101”。
[0268]
本实施例中,第二cpld的主时钟与第一cpld的主时钟相同,n个主时钟周期的电平信号对应一位采样数据。即可以通过n个主时钟周期对应的电平信号表示数据包中的“0”,同时可以通过n个主时钟周期对应的电平信号表示数据包中的“1”。
[0269]
具体实施过程中,第二cpld可以对接收到的多个电平信号进行采样,并根据预设的通信协议,对接收的电平信号进行解析,以将多个电平信号解析为多个采样数据。
[0270]
示例性的,假设连续n个主时钟周期对应的n个高电平信号表示“0”/“1”,则第二cpld可以将连续n个主时钟周期对应的n个高电平信号,解析为“0”/“1”;假设连续n个主时钟周期对应的n个低电平信号表示“0”/“1”,则第二cpld可以将连续n个主时钟周期对应的n个低电平信号,解析为“0”/“1”;假设连续n个主时钟周期对应的n个低电平信号和高电平信号的组合表示“0”/“1”,则第二cpld可以将n个低电平信号和高电平信号的组合解析为“0”/“1”。
[0271]
s902、按照预设的数据包结构,对多个采样数据进行解析处理,以在多个采样数据中确定得到多个有效数据。
[0272]
本实施例中,可以预先设置第二cpld获取的数据包的结构。例如,数据包可以包括包头,和多位有效数据。
[0273]
具体实施过程中,第二cpld可以按照预设的数据包结构,从多位采样数据中获取有效数据。例如,若预设的数据包包括包头和有效数据,且包头有预设结构,则第二cpld可以按照数据包的预设结构以及包头的预设结构,在多个采样数据中确定至少一位有效数据。
[0274]
示例性的,假设数据包包括包头和4位有效数据。包头为“111110”,4位有效数据为“0101”。则第二cpld可以确定10位采样数据“1111100101”,且可以根据数据包的预设结构以及包头的预设结构,从10位采样数据中确定4位有效数据“0101”。
[0275]
本实施例提供的数据接收方法中,第二cpld可以通过第二cpld与第一cpld之间的1根信号线,从第一cpld获取多个电平信号;可以以第二cpld的主时钟为基准,基于预设的通讯协议,对接收到的电平信号进行处理得到多位采样数据;可以根据预设的数据包结构,对多个采样数据进行处理,得到多个有效数据。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。另外,通过数据包的方式获取数据可以提高
数据的接收效率。
[0276]
在上述任一实施例的基础上,下面结合图10,对本技术提供的另一种数据接收方法进行说明。
[0277]
图10为本技术实施例提供的另一种数据接收方法的流程示意图。请参见图10,该方法可以包括:
[0278]
s1001、根据n个主时钟周期中第x+2个主时钟周期的电平信号,确定n个主时钟周期对应的采样数据。
[0279]
本实施例中,第二cpld可以以第二cpld的主时钟为基准,接收多个电平信号;并可以基于预设的通讯协议,以n个主时钟周期为一个采样周期,确定该n个主时钟周期中接收的电平信号所对应的一位采样数据。
[0280]
需要说明的是,根据任意一个采样周期中接收的电平信号,确定该采样周期对应的采样数据的方法是一样的。本实施例中,仅以一个采样周期为例,对采样数据的确定方法进行说明。
[0281]
本实施例中,若前x个主时钟周期为第一电平信号,第x+1个主时钟周期为第二电平信号,第x+2至n个主时钟周期为第一电平信号,则确定采样数据为第一数据;若前x个主时钟周期为第一电平信号,第x+1至n个主时钟周期为第二电平信号,则确定采样数据为第二数据。
[0282]
第一电平信号为低电平信号,第二电平信号为高电平信号;第一数据为“0”,第二数据为“1”。
[0283]
具体而言,n个主时钟周期中,若前x个主时钟为低电平信号,第x+1个主时钟周期为高电平信号,第x+2至n个主时钟周期为低电平信号,则采样数据为“0”;若前x个主时钟周期为低电平信号,第x+1至n个主时钟周期为高电平信号,则采样数据为“1”。由此可知,n个主时钟周期中,仅有一个由低电平信号到高电平信号的信号上升沿。
[0284]
本实施例的通信协议中,n个主时钟周期中,仅有一个电平信号上升沿。x可以大于或等于2。x等于2时,可以避免第二cpld将数据传输过程中的电平信号扰动误判为电平信号上升沿;x大于2时,可以提高第二cpld确认数据的准确性。
[0285]
实际实施过程中,第二cpld可以在检测到信号上升沿后开始计数,并采集计数开始后,第c个主时钟周期接收的电平信号。若第c个主时钟周期的电平信号为低电平信号,则采样数据为“0”;若第c个主时钟周期的电平信号为高电平信号,则采样数据为“1”。其中,2≤c≤(n-x)。
[0286]
下面,以x等于3为例,结合图11,对确定采样数据的方法进行说明。
[0287]
图11为本技术实施例提供的一种确定采样数据的示意图。请参见图11,数据“0”对应的n个主时钟周期中,前3个主时钟周期接收低电平信号,在第4个主时钟周期接收高电平信号,在第5个主时钟周期至第n个主时钟周期接收低电平信号。数据“1”对应的n个主时钟周期中,前3个主时钟周期接收低电平信号,在第4个主时钟周期至第n个主时钟周期接收高电平信号。
[0288]
第二cpld可以在检测到信号上升沿时开始计数,并采集第c个主时钟周期接收的电平信号。若第c个主时钟周期的电平信号为低电平信号,则采样数据为“0”;若第c个主时钟周期的电平信号为高电平信号,则采样数据为“1”。其中,2≤c≤(n-3)。
[0289]
s1002、根据数据包结构,在采样数据中确定有效数据。
[0290]
本实施例中,预设的数据包结构包括预设包头和至少一组数据,相邻的两组数据之间包括分割数据,一组数据包括k位有效数据。预设包头包括k+2位数据,其中,预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据,k为大于或等于1的整数。分割数据为第一数据。
[0291]
本实施例中,分割数据可以将数据包中各组数据有效隔离,使得有效数据的分组准确性较高。第二cpld可以根据相邻两组数据之前的分割数据,准确区分各数据组。
[0292]
下面,以k等于4为例,结合图12对数据包结构进行说明。
[0293]
图12为本技术实施例提供的一种数据包结构示意图。请参见图12,数据包包括包头、两组数据,以及两个分割数据。
[0294]
包头包括6位数据,其中,前5位数据为“1”,第6位数据为“0”。
[0295]
第一组数据为“0101”,第二组数据为“1100”。
[0296]
则数据包可以为
“‘
111110
’‘
0101
’‘0’‘
1100
’‘0’”

[0297]
具体实施过程中,第二cpld可以逐位接收数据,判断接收到包头后,可以按照数据包的结构,依次确定有效数据为“01011100”。
[0298]
本实施例中,第二cpld还可以对接收到多位有效数据进行校验,以保证接收的数据包的完整性和准确性。
[0299]
针对多位有效数据,第二cpld可以重复接收p次,即第二cpld可以重复获取p个多位有效数据。其中,p为大于1的整数。
[0300]
本实施方式中,第二cpld可以对p个多位有效数据中的每个数据组进行校验,以确定p个多位有效数据中是否存在异常数据组;在确定p个多位有效数据中存在至少一个异常数据组时,确定异常数据组对应的异常组标识;向第一cpld发送异常信息,异常信息中包括异常组标识,异常信息用于指示所示第二cpld未接收成功异常数据组或对异常数据组接收错误。
[0301]
具体而言,若第二cpld确定接收的有效数据中存在异常数据组时,第二cpld可以确定用于异常数据组在数据包中的位置的标识,即异常组标识,并可以以异常信息的形式向第一cpld发送异常组标识,以请求第一cpld重新发送异常数据组。其中,异常数据组可以为,第二cpld未接收成功的数据组,或者,第二cpld接收的存在错误或异常的数据组。
[0302]
一种可能的实现方式中,若异常数据组为一组数据,即第二cpld确定一组数据未接收成功,可以向第一cpld发送该组数据在所属数据包中的编号,并可以以数据包的形式重新接收该组数据。
[0303]
另一种可能的实现方式中,若异常数据组为多组数据,即第二cpld确定多组数据未接收成功,可以向第一cpld发送该多组数据在所属数据包中的编号,并可以以数据包的形式重新接收该多组数据。
[0304]
向第一cpld发送异常信息后,第二cpld还可以接收第一cpld重新发送的异常组标识对应的异常数据组。
[0305]
本实施例中,第二cpld对数据包中每组数据进行校验的方法一样,下面仅以第二cpld对数据包中任意一组数据进行校验为例,对数据组的校验方法进行说明。
[0306]
针对数据包中的任意一个第一数据组;第二cpld可以对p个多位有效数据中的第
一数据组进行校验,包括:在p个有效数据中分别获取第一数据组,得到p个第一数据组,第一数据组中包括l个数据;在p个第一数据组中确定q个第一数据,p个第一数据组中的q个第一数据相同;若q与l的比值大于或等于第一比值,则确定第一数据组为正确数据组;若q与l的比值小于第一比值,则确定第一数据组为异常数据组。
[0307]
第一数据组可以为,数据包中任意一组数据,第一数据组中包括的数据的总个数为l。
[0308]
第一数据可以为,第一数据组中成功接收的数据,第一数据的总数量为q。
[0309]
正确数据组可以为,第二cpld接收成功的数据组。
[0310]
具体而言,若q与l的比值大于或等于第一比值,则第一数据组为正确数据组;若q与l的比值小于第一比值,则第一数据组为异常数据组。例如,第一比值可以为50%-99%之间任意一个数值。
[0311]
需要说明的是,本实施例中也可以采用其他校验方式对数据包进行校验。例如,校验方式可以为循环冗余校验码(cyclic redundancy check,crc)、或者错误检查和纠正(error correcting code,ecc)等方式,对此本技术不做限定。
[0312]
通过上述方式,可以使第二cpld重新接收未成功接收的数据组、或者接收的数据包中有错误的数据组,而避免重新接收该数据组所在的数据包,提高了数据发送效率,保证了第二cpld接收的数据包的完整性。本实施例提供的数据接收方法中,第二cpld可以通过第二cpld与第一cpld之间的1根信号线,从第一cpld获取多个电平信号;可以以第二cpld的主时钟为基准,依次对接收到的电平信号进行处理得到多位采样数据;可以在判断接收到包头后,按照数据包的结构,依次确定多个有效数据。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的可通信场景较多。另外,通过数据包的方式获取数据可以提高数据的传输效率。
[0313]
下面,通过具体的示例,对上述方法实施例所示的技术方案进行详细说明。
[0314]
假设第一cpld向第二cpld发送的有效数据包括16位数据,16位数据依次为“0110110001010100”。
[0315]
根据数据包中有效数据率最大原则,可以将16位有效数据分为4组,每组4位数据。分组后的4组数据可以依次为“0110”“1100”“0101”“0100”。
[0316]
数据包的包头可以包括6为数据,其中前5位数据为“1”,最后一位数据为“0”,数据包的包头可以为“111110”。
[0317]
相邻两组有效数据之间可以采用数据“0”进行分割。
[0318]
第一cpld可以对4组有效数据结构化处理,得到第一数据包。第一数据包可以为
“‘
111110
’‘
0110
’‘0’‘
1100
’‘0’‘
0101
’‘0’‘
0100
’‘0’”

[0319]
数据“0”可以通过n个主时钟周期的电平信号表示,其中,前3个主时钟周期为低电平信号,第4个主时钟周期为高电平信号,第5个主时钟周期至第n个主时钟周期为低电平信号。
[0320]
数据“1”可以通过n个主时钟周期的电平信号表示,其中,前3个主时钟周期为低电平信号,第4个主时钟周期至第n个主时钟周期为高电平信号。
[0321]
第一cpld可以根据数据“0”和数据“1”的打包规则,依次向第二cpld发送表示第一数据包的多个电平信号。
[0322]
相应的,第二cpld可以从第一cpld获取多个电平信号;并可以根据数据“0”和数据“1”的打包规则,将多个电平信号转换为多个采集数据。
[0323]
第二cpld根据数据包结构,判断接收到包头“111110”后,可以以4位数据为一组数据、每组数据后设有一位分割数据“0”的规则,依次确定采样数据中的4组有效数据“0110”“1100”“0101”“0100”。
[0324]
在该示例中,假设主时钟的频率为25mhz,n等于16,则即数据传输速率为1.563mhz。该数据传输速率远高于相关技术中的数据传输速率33khz和100khz。
[0325]
在上述示例中,第一cpld可以对需要传输的有效数据结构化处理得到数据包,可以通过n个连续的电平信号表示数据包中的每一位数据,并可以通过第一cpld与第二cpld之间的1根信号线向第二cpld发送多个电平信号。第二cpld可以根据n个连续的电平信号与每一位数据的对应关系,将接收的多个电平信号转换为多个采集数据,可以根据数据包的结构,在多个采集数据中确定多个有效数据。通过上述方法,可以减少两个cpld之间通信时需要的信号线,使得cpld的数据传输场景较多,且可以提高数据的传输效率。
[0326]
图13为本技术实施例提供的一种数据发送装置的结构示意图。本实施例提供的数据发送装置可以为软件和/或硬件的形式。本实施提供的数据发送装置可以为第一cpld,或者,为第一cpld中的模块、单元、芯片或芯片模组等。
[0327]
如图13所示,本实施例提供的数据发送装置10包括获取模块11、打包模块12、确定模块13和发送模块14,其中,
[0328]
所述获取模块11用于,获取待发送的多位有效数据;
[0329]
所述打包模块12用于,将所述多位有效数据打包成第一数据包;
[0330]
所述确定模块13用于,以所述第一cpld的主时钟为基准时钟,基于预设的通讯协议,确定所述第一数据包中各数据的电平信号;
[0331]
所述发送模块14用于,向所述第二cpld发送各数据的电平信号;其中,所述第一cpld的主时钟与所述第二cpld的主时钟相同。
[0332]
本技术实施例提供的数据发送装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0333]
在一种可能的实现方式中,一位数据对应n个主时钟周期的电平信号,所述n为大于1的整数;所针对所述第一数据包中的任意一位数据,所述确定模块13具体用于,
[0334]
若所述数据为第一数据,则按照第一数据打包方式确定所述数据的电平信号;
[0335]
若所述数据为第二数据,则按照第二数据打包方式确定所述数据的电平信号;
[0336]
其中,所述第一数据打包方式和所述第二数据打包方式对应的波形不同。
[0337]
在一种可能的实现方式中,一位数据对应n个主时钟周期的电平信号,所述n为大于1的整数;针对所述第一数据包中的任意一位数据;所述确定模块13具体用于,
[0338]
前x个主时钟周期为第一电平信号,第x+1个主时钟周期为第二电平信号,第x+2至n个主时钟周期为第一电平信号;其中,所述x为大于或等于1的整数,所述x小于所述n。
[0339]
在一种可能的实现方式中,一位数据对应n个主时钟周期的电平信号,所述n为大于1的整数;针对所述第一数据包中的任意一位数据;所述确定模块13具体用于,
[0340]
前x个主时钟周期为第一电平信号,第x+1至n个主时钟周期为第二电平信号;其中,所述x为大于或等于1的整数,所述x小于所述n。
[0341]
在一种可能的实现方式中,所述第一数据包包括包头和至少一组数据,相邻的两组数据之间包括用于隔离的分割数据;所述打包模块12具体用于,
[0342]
将预设包头确定为所述第一数据包的包头;
[0343]
按照预设长度k,对所述多位有效数据进行分组处理,得到所述至少一组数据,并在相邻的两组数据之间插入所述分割数据,得到所述第一数据包,一组数据中包括k位数据,所述k为大于或等于1的整数。
[0344]
在一种可能的实现方式中,
[0345]
所述预设包头包括k+2位数据,其中,所述预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据;
[0346]
所述分割数据为所述第一数据。
[0347]
图14为本技术实施例提供的另一种数据发送装置的结构示意图。在图13的基础上,请参见图14,数据发送装置10还包括接收模块15,其中,
[0348]
所述接收模块15用于,接收所述第二cpld发送的异常信息,所述异常信息中包括异常组标识,所述异常信息用于指示所述第二cpld未接收成功异常数据组或对所述异常数据组接收错误;
[0349]
所述发送模块14还用于,根据所述异常信息,向所述第二cpld重新发送所述异常组标识对应的所述异常数据组。
[0350]
本技术实施例提供的数据发送装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0351]
图15为本技术实施例提供的一种数据接收装置的结构示意图。本实施例提供的数据接收装置可以为软件和/或硬件的形式。本实施提供的数据接收装置可以为第二cpld,或者,为第二cpld中的模块、单元、芯片或芯片模组等。
[0352]
如图15所示,本实施例提供的数据接收装置20包括采数据模块21和解析模块22,其中,
[0353]
所述采数据模块21用于,以所述第二cpld的主时钟为基准时钟,基于预设的通讯协议,对接收到的电平信号进行采数据处理,得到多位采样数据;所述第二cpld的主时钟与所述第一cpld的主时钟相同,n个主时钟周期的电平信号对应一位采样数据;
[0354]
所述解析模块22用于,按照预设的数据包结构,对所述多个采样数据进行解析处理,以在所述多个采样数据中确定得到多位有效数据。
[0355]
本技术实施例提供的数据接收装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0356]
在一种可能的实现方式中,针对任意n个主时钟周期的电平信号;所述采数据模块21具体用于,
[0357]
在所述n个主时钟周期中确定前x个主时钟周期的电平信号、以及第x+1至n个主时钟周期的电平信号;
[0358]
根据所述前x个主时钟周期的电平信号、以及所述第x+1至n个主时钟周期的电平信号,确定所述采样数据。
[0359]
在一种可能的实现方式中,所述采数据模块21具体用于,
[0360]
若所述前x个主时钟周期为第一电平信号,第x+1个主时钟周期为第二电平信号,第x+2至n个主时钟周期为第一电平信号,则确定所述采样数据为第一数据;
[0361]
若所述前x个主时钟周期为第一电平信号,第x+1至n个主时钟周期为第二电平信号,则确定所述采样数据为第二数据。
[0362]
在一种可能的实现方式中,所述预设的数据包结构包括预设包头和至少一组数据,相邻的两组数据之间包括分割数据,一组数据包括k位有效数据,其中,
[0363]
所述预设包头包括k+2位数据,其中,所述预设包头的前k+1位数据为第二数据,第k+2位数据为第一数据,所述k为大于或等于1的整数;
[0364]
所述分割数据为所述第一数据。
[0365]
图16为本技术实施例提供的另一种数据接收装置的结构示意图。在图15的基础上,请参见图16,数据接收装置20还包括校验模块23、确定模块24、发送模块25和接收模块26,其中,
[0366]
所述校验模块23用于,对所述p个多位有效数据中的每个数据组进行校验,以确定所述p个多位有效数据中是否存在异常数据组;
[0367]
所述确定模块24用于,在确定所述p个多位有效数据中存在至少一个异常数据组时,确定所述异常数据组对应的异常组标识;
[0368]
所述发送模块25用于,向所述第一cpld发送异常信息,所述异常信息中包括异常组标识,所述异常信息用于指示所示第二cpld未接收成功所述异常数据组或对所述异常数据组接收错误。
[0369]
在一种可能的实现方式中,针对所述数据包中的任意一个第一数据组;所述校验模块23具体用于,
[0370]
在所述p个多位有效数据中分别获取所述第一数据组,得到p个第一数据组,所述第一数据组中包括l个数据;
[0371]
在所述p个第一数据组中确定q个第一数据,所述p个第一数据组中的所述q个第一数据相同;
[0372]
若所述q与所述l的比值大于或等于第一比值,则确定所述第一数据组为正确数据组;
[0373]
若所述q与所述l的比值小于所述第一比值,则确定所述第一数据组为异常数据组。
[0374]
在一种可能的实现方式中,向所述第一cpld发送异常信息后,
[0375]
所述接收模块26用于,接收所述第一cpld重新发送的所述异常组标识对应的所述异常数据组。
[0376]
本技术实施例提供的数据接收装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
[0377]
图17为本技术实施例提供的一种数据传输设备的结构示意图。该数据传输设备可以为第一cpld,或者,为第一cpld中的芯片或芯片模组等。该数据传输设备还可以为第二cpld,或者,为第二cpld中的芯片或芯片模组等。如图17所示,本实施例提供的数据传输设备30包括,
[0378]
收发器31、存储器32、处理器33。收发器31可包括:发射器和/或接收器。该发射器还可称为发送器、发射机、发送端口或发送接口等类似描述,接收器还可称为接收器、接收机、接收端口或接收接口等类似描述。示例性地,收发器31、存储器32、处理器33,各部分之间通过总线34相互连接。
[0379]
存储器32用于存储计算机程序;
[0380]
处理器33用于执行该存储器所存储的计算机程序,用以实现上述任意方法实施例中由第一cpld、或者第二cpld执行的通信方法。
[0381]
其中,收发器31中的接收器,可用于执行上述方法实施例中数据传输设备的接收功能。收发器31中的发送器,可用于执行上述方法实施例中数据传输设备的发送功能。处理器33可用于执行上述方法实施例中数据传输设备的处理功能。
[0382]
本实施例提供的数据传输设备可用于执行上述任一方法实施例中由第一cpld执行的数据发送方法,或者第二cpld执行的数据接收方法,其实现原理和技术效果类似,此处不作赘述。
[0383]
本实施例还提供一种计算设备,所述计算设备包括第一cpld和第二cpld;
[0384]
所述第一cpld用于执行如上任一方法实施例中由第一cpld执行的数据发送方法,以向所述第二cpld发送数据;其实现原理和技术效果类似,此处不作赘述。
[0385]
所述第二cpld用于执行如上任一方法实施例中由第二cpld执行的数据接收方法,以接收所述第一cpld发送的数据。其实现原理和技术效果类似,此处不作赘述。
[0386]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被计算机执行时,实现如上任一方法实施例中由第一cpld执行的数据发送方法,或者,实现如上任一方法实施例中由第二cpld执行的数据接收方法,其实现原理和技术效果类似,此处不作赘述。
[0387]
本技术实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被计算机执行时实现如上任一方法实施例中由第一cpld执行的数据发送方法,或者,实现如上任一方法实施例中由第二cpld执行的数据接收方法,其实现原理和技术效果类似,此处不作赘述。
[0388]
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,缩写:rom)、ram、快闪存储器、硬盘、固态硬盘、磁带(英文:magnetic tape)、软盘(英文:floppy disk)、光盘(英文:optical disc)及其任意组合。
[0389]
本技术实施例是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程终端设备的处理单元以产生一个机器,使得通过计算机或其他可编程终端设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0390]
这些计算机程序指令也可存储在能引导计算机或其他可编程终端设备以特定方
式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0391]
这些计算机程序指令也可装载到计算机或其他可编程终端设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0392]
显然,本领域的技术人员可以对本技术实施例进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术实施例的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
[0393]
在本技术中,术语“包括”及其变形可以指非限制性的包括;术语“或”及其变形可以指“和/或”。本技术中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。本技术中,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1