数据通信方法、基带芯片及终端设备与流程

文档序号:31930911发布日期:2022-10-26 00:22阅读:173来源:国知局
数据通信方法、基带芯片及终端设备与流程

1.本发明涉及芯片设计领域,尤其涉及一种数据通信方法、基带芯片及终端设备。


背景技术:

2.邻居感知网络(neighbor awareness networking,nan)同时也被称为wi-fi感知(wi-fi aware)。其中,nan设备在加入nan网络之后,可以和多个邻居nan设备进行数据通信。为了保证两个设备之间顺利进行数据通信,两个nan设备之间会协商好周期性的可用时间窗口,即可用窗口(availability window,aw),两个nan设备只有在aw期间才会进行数据通信。
3.然而,通过aw进行设备之间的数据通信的时间调度,一方面,可能会因为在非aw期间接收到上层下发的数据包导致功耗的增大;另一方面,数据包传输过程、信道接入处理等会占用aw的时间,降低了aw的利用率。


技术实现要素:

4.本技术实施例提供了一种数据通信方法、基带芯片及终端设备,可以在提升aw的有效利用率的同时,最大程度的降低设备功耗。
5.本技术实施例的技术方案是这样实现的:
6.第一方面,本技术实施例提供了一种数据通信方法,所述数据通信方法应用于基带芯片,所述基带芯片包括驱动层、固件层以及硬件层;所述方法包括:
7.所述固件层向所述驱动层发送第一时间调度表;其中,所述第一时间调度表用于指示与目标设备之间的数据收发时间;
8.当在第一时刻接收到所述目标设备对应的发送指令时,所述驱动层按照所述第一时间调度表对应的第二时间调度表传输所述发送指令携带的数据包,其中,第二时间调度表用于指示所述驱动层与所述固件层之间的数据传输时间。
9.第二方面,本技术实施例提供了一种基带芯片,所述基带芯片包括驱动层、固件层以及硬件层;
10.所述固件层,用于向所述驱动层发送第一时间调度表;其中,所述第一时间调度表用于指示与目标设备之间的数据收发时间;
11.所述驱动层,用于当在第一时刻接收到所述目标设备对应的发送指令时,按照所述第一时间调度表对应的第二时间调度表传输所述发送指令携带的数据包;其中,所述第二时间调度表用于指示所述驱动层与所述固件层之间的数据传输时间。
12.第三方面,本技术实施例提供了一种终端设备,所述终端设备配置有如第二方面所述的基带芯片,所述终端设备用于实现如第一方面所述的方法。
13.本技术实施例提供了一种数据通信方法、基带芯片及终端设备,数据通信方法应用于基带芯片,其中,基带芯片包括驱动层、固件层以及硬件层;固件层向驱动层发送第一时间调度表;其中,第一时间调度表用于指示与目标设备之间的数据收发时间;当在第一时
刻接收到目标设备对应的发送指令时,驱动层按照第一时间调度对应的第二时间调度表传输发送指令携带的数据包;其中,第二时间调度表用于指示驱动层与固件层之间的数据传输时间。由此可见,在本技术的实施例中,驱动层在固件层所使用的第一时间调度表(aw)的基础上维护第二时间调度表(daw),该第二时间调度表可以对驱动层与固件层之间的数据传输时间进行指示,使得驱动层在按照第二时间调度表所指示的数据传输周期向固件层发送数据包时,既可以确保固件层恰好在第一时间调度表所指示的数据收发周期的起始时刻向目标设备发送数据包,从而减少过早唤醒芯片所产生的功耗,提升了数据传输周期的利用率;也可以确保固件层能够在第一时间调度表所指示的数据收发周期的结束时刻之前停止发包处理,从而解决了数据包无法被目标设备成功接收的问题,克服了重传处理所导致的功耗增大的缺陷。也就是说,本技术实施例提出的数据通信方法,由于驱动层能够维护基于aw生成的daw,并使用daw控制数据包的传输时机,从而可以在提升aw的有效利用率的同时,最大程度的降低设备功耗。
附图说明
14.图1为nan集群的示意图;
15.图2为数据通信的时序示意图一;
16.图3为数据通信的时序示意图二;
17.图4为本技术实施例提出的数据通信方法的实现流程示意图一;
18.图5为本技术实施例提出的数据通信方法的实现流程示意图二;
19.图6为本技术实施例提出的数据通信方法所对应的时序示意图一;
20.图7为本技术实施例提出的数据通信方法所对应的时序示意图二;
21.图8为驱动芯片的组成结构示意图;
22.图9为终端设备的组成结构示意图。
具体实施方式
23.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
24.邻居感知网络(neighbor awareness networking,nan)同时也被称为wi-fi感知(wi-fi aware)。图1为nan集群的示意图,如图1所示,可以使用集群(cluster)描述nan网络和网络里所有设备(device)的集合。其中,nan设备在加入nan网络之后,可以和多个邻居nan设备进行数据通信,图中的双箭头代表两个nan设备之间相互通信。
25.为了让两个nan设备之间成功的进行数据通信,两个nan设备之间会协商好周期性的可用时间窗口,即可用窗口(availability window,aw),两个nan设备只有在aw期间才会进行数据通信,在非aw期间则无法收发数据。
26.图2为数据通信的时序示意图一,如图2所示,如下图所示时序图,深灰色方块所占用的时间用于表征设备1(device1)和设备2(device2)协商的共同的可用时间窗口aw,箭头代表device1和device2在空口(air)的数据通信,两个nan设备只有在周期性的aw期间进行数据交换才可以保证数据交互的成功性。
27.可以理解的是,在本技术的实施例中,每一个nan设备可以划分为三层,分别为驱动(driver,drv)层、固件(firmware,fw)层、硬件(hardware,hw)层。driver层是wi-fi驱动层,负责把上层发来的指令、数据发送给fw层,以及向上层转发来自于fw层的数据;fw层是固件层,处于driver层和hw层中间,负责管理、调度并向hw层发送从driver层来的数据,同时也向driver层发送来自于hw层的数据;hw层是硬件层,负责信道接入、向空口收发数据,具体为向空口发送来自于fw层的数据以及向fw层发送从空口收到的数据。
28.图3为数据通信的时序示意图二,如图3所示,在一个时刻t(t指时间戳),两个nan设备中的一个设备可以作为发送(transmit,tx)设备,即tx device,另一个设备可以作为接收(receive,rx)设备,即rx device,在图3所示的tx device向rx device发送数据的时序图中,tx device只有在aw期间才会给rx device发送数据,rx device在非aw期间无法接收数据。
29.目前,tx device的driver层在任意时刻收到来自上层的数据,例如,在aw之外收到数据包#1,在aw期间收到数据包#2、数据包#3;driver层收到包后会立刻传输给fw层,driver层向fw层传输一个数据包所需要的时间为delay_drv_fw;fw层收到driver层的数据包之后,可以根据存储的aw的时间调度表(schedule)确定当前时刻是否在aw期间,从而决定是否把书包通过空口(air)发给rx device。其中,在非aw期间收到的来自driver层的数据包会被fw层存储,直到aw起始时刻才会被fw层的scheduler调度发送给rx device,例如,数据包#1在非aw期间被fw层接收,但是直到aw开始的时刻才会被调度发送,经过信道接入时间channel_access_time之后发送到空口,以使得rx device接收到该数据包。在aw期间来自driver层的数据包#2、数据包#3被fw层立刻调度发送,同样经过channel_access_time之后发送到空口。但是,仅有数据包#1、数据包#2能被rx device成功接收,数据包#3则会发送失败,即rx device无法成功接收到数据包#3。这是因为完全发送完数据包#3的时刻落在了aw之外,即数据包#3的发送时间(tx_time)的结束时刻晚于aw的结束时刻。其中,可以通过以下公式确定tx_time:
30.tx_time=channel_access_time+pkt_duration
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
31.其中,pkt_duration是指硬件层发送数据包需要的时间,可以由数据包的长度和发送速率决定。
32.需要说明的是,常见的数据通信方法,在非aw期间,因为fw层收到来自driver层的数据包,wi-fi芯片会被唤醒,但是fw层却不能发送数据包,因为存储有数据包,wi-fi芯片会保持唤醒状态直到aw期间发送完数据包才会休眠。可见,由于在非aw期间设备既不能发送数据也不会接收到数据,因此非aw期间唤醒wi-fi芯片在一定程度上会增大功耗。
33.另一方面,常见的数据通信方法也存在aw的有效利用率较低的问题,这是由于在aw期间发送的第一个数据包的后退时间(backoff time)比较耗时,进而使得信道接入时间channel_access_time比较长,特别是当环境干扰较严重时,需要更长的backoff time(或channel_access_time),这样,对于有限的aw而言,尤其是对于而协商的aw的窗口时间比较小的情况,第一个数据包的backoff time会降低单位时间发送的数据所占时间,进而降低aw的有效利用率。
34.再一方面,常见的数据通信方法,fw层一般会在aw结束的时刻停止给rx device发送数据包,而aw结束之前的最后一个数据包,可能会因为完成发送的时间落在aw窗口之外
而导致无法被rx device成功接收,增大了误包率(packet error rate,per),而由于无法被rx device成功接收所产生数据包的重传处理又进一步增大了终端设备的功耗。
35.可见,常见的数据通信方法存在功耗大、aw利用率低的问题。
36.为了解决上述问题,在本技术的实施例中,驱动层在固件层所使用的第一时间调度表(aw)的基础上维护第二时间调度表(daw),该第二时间调度表可以对驱动层与固件层之间的数据传输时间进行指示,使得驱动层在按照第二时间调度表所指示的数据传输周期向固件层发送数据包时,既可以确保固件层恰好在第一时间调度表所指示的数据收发周期的起始时刻向目标设备发送数据包,从而减少过早唤醒芯片所产生的功耗,提升了数据传输周期的利用率;也可以确保固件层能够在第一时间调度表所指示的数据收发周期的结束时刻之前停止发包处理,从而解决了数据包无法被目标设备成功接收的问题,克服了重传处理所导致的功耗增大的缺陷。也就是说,本技术实施例提出的数据通信方法,由于驱动层能够维护基于aw生成的daw,并使用daw控制数据包的传输时机,从而可以在提升aw的有效利用率的同时,最大程度的降低设备功耗。
37.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
38.本技术一实施例提供了一种数据通信方法,该数据通信方法可以应用于基带芯片。基带芯片可以包括驱动层、固件层以及硬件层。其中,驱动层主要负责将上层发来的指令、数据发送给固件层,以及向上层转发来自于固件层的数据;固件层处于驱动层和硬件层中间,负责管理、调度并向硬件层发送从驱动层来的数据,同时也向驱动层发送来自于硬件层的数据;硬件层主要负责信道接入,以及向空口发送来自于固件层的数据,以及向固件层发送从空口收到的数据。
39.图4为本技术实施例提出的数据通信方法的实现流程示意图一,如图4所示,基带芯片进行数据通信的方法可以包括以下步骤:
40.步骤101、固件层向驱动层发送第一时间调度表;其中,第一时间调度表用于指示与目标设备之间的数据收发时间。
41.在本技术的实施例中,固件层可以先向驱动层发送第一时间调度表。其中,第一时间调度表用于对目标设备对应的可用窗口aw进行确定,即第一时间调度表可以用于指示与目标设备之间的数据收发时间。
42.可以理解的是,在本技术的实施例中,可以预先与目标设备建立通信连接,从而可以通过与目标设备的通信连接确定对应的第一时间调度表。
43.需要说明的是,在本技术的实施例中,配置有该基带芯片的终端设备与目标设备可以属于相同的nan集群,其中,配置有该基带芯片的终端设备与目标设备之间可以进行数据通信,为了确保两者之间成功的进行数据通信,两个设备可以提前建立通信连接并协商好周期性的可用窗口aw,即建立对应的第一时间调度表。
44.进一步地,在本技术的实施例中,第一时间调度表用于指示该基带芯片与目标设备之间的数据收发时间,也就是说,配置有该基带芯片的终端设备与目标设备只有在第一时间调度表所指示的数据收发周期之内才可以进行数据通信,而在第一时间调度表所指示的数据收发周期以外则不会进行数据通信,即这两个nan设备只有在aw期间才会进行数据通信,在非aw期间则不会收发数据。
45.需要说明的是,在本技术的实施例中,与目标设备协商确定的第一时间调度表可以存储在基带芯片的固件层,固件层可以向驱动层发送该第一时间调度表,从而可以使得驱动层能够获知固件层执行数据收发处理的数据收发时间。
46.步骤102、当在第一时刻接收到目标设备对应的发送指令时,驱动层按照第一时间调度对应的第二时间调度表传输发送指令携带的数据包;其中,第二时间调度表用于指示驱动层与固件层之间的数据传输时间。
47.在本技术的实施例中,当在第一时刻接收到目标设备对应的发送指令时,驱动层便可以按照第二时间调度表传输发送指令携带的数据包,从而可以使固件层和硬件层按照第一时间调度表向目标设备发送数据包。其中,第二时间调度表用于指示驱动层与固件层之间的数据传输时间,该第二时间调度表可以为驱动层根据第一时间调度表、预设传输时间、信道接入时间、预设发包时间生成的。
48.也就是说,在本技术的实施例中,固件层在向驱动层发送第一时间调度表之后,驱动层可以根据第一时间调度表、预设传输时间、信道接入时间、预设发包时间生成第二时间调度表。其中,第二时间调度表可以用于对驱动层与固件层之间的数据传输时间进行指示。
49.可以理解的是,在本技术的实施例中,第二时间调度表用于对目标设备对应的、驱动层端的可用窗口(driver’s availability window,daw)进行确定,即第二时间调度表可以用于指示驱动层与固件层之间的数据传输时间。
50.需要说明的是,在本技术的实施例中,配置有该基带芯片的终端设备与目标设备可以提前建立通信连接并协商好周期性的可用窗口aw,即建立对应的第一时间调度表,基于该第一时间调度表,基带芯片的驱动层可以建立对应的、用于指示驱动层与固件层之间的数据传输时间的第二时间调度表。从而可以确保只有在第二时间调度表所指示的数据传输周期之内才可以向固件层发送数据包,而在第二时间调度表所指示的数据传输周期以外则不会向固件层发送数据包,从而保证终端设备与目标设备这两个nan设备只有在aw期间才会进行数据通信。
51.需要说明的是,在本技术的实施例中,预设传输时间可以对驱动层向固件层传输一个数据包所需要的时间进行确定。其中,预设传输时间可以为驱动层直接确定的,也可以为驱动层从固件层获取的。另一方面,预设传输时间可以为驱动层和/或固件层预先设置的,也可以为驱动层和/或固件层实时确定的。
52.需要说明的是,在本技术的实施例中,信道接入时间可以对硬件层进行信道接入所需要的时间进行确定。其中,信道接入时间可以为驱动层直接确定的,也可以为驱动层从固件层获取的。其中,另一方面,信道接入时间可以为驱动层和/或固件层预先设置的,也可以为驱动层和/或固件层基于网络环境实时确定的。
53.需要说明的是,在本技术的实施例中,预设发包时间可以对硬件层发送数据包所需要的时间进行确定。其中,预设发包时间可以为驱动层直接确定的,也可以为驱动层从固件层获取的。其中,另一方面,预设发包时间可以为驱动层和/或固件层预先设置的,也可以为驱动层和/或固件层基于数据包的长度和发送速率实时确定的。
54.也就是说,在本技术的实施例中,固件层可以向驱动层发送以下信息的至少一个信息:预设传输时间、信道接入时间、预设发包时间。即预设传输时间、信道接入时间、预设发包时间中的至少一个信息可以由固件层同步至驱动层。
55.当然,驱动层也可以预先存储以下信息中的至少一个信息:预设传输时间、信道接入时间、预设发包时间。即预设传输时间、信道接入时间、预设发包时间中的至少一个信息也可以是由驱动层确定并存储的。
56.例如,一种实施方式为:预设传输时间和信道接入时间是由固件层同步至驱动层的,而预设发包时间是由驱动层确定的。又一种实施方式为:预设传输时间是由固件层同步至驱动层的,而预设发包时间和信道接入时间是由驱动层确定的。另一种实施方式为:预设传输时间和信道接入时间、预设发包时间均是由固件层同步至驱动层的。再一种实施方式为:预设传输时间、信道接入时间、预设发包时间均是由驱动层确定并存储的。
57.可以理解的是,在本技术的实施例中,在根据第一时间调度表、预设传输时间、信道接入时间、预设发包时间生成第二时间调度表时,驱动层可以先根据第一时间调度表确定与目标设备之间的、每一个数据收发周期的第一起始时刻和第一结束时刻;接着,驱动层可以根据预设传输时间、信道接入时间以及每一个数据收发周期的第一起始时刻,确定每一个数据传输周期的第二起始时刻;同时,驱动层可以根据预设传输时间、信道接入时间、预设发包时间以及每一个数据收发周期的第一结束时刻,确定每一个数据传输周期的第二结束时刻;最后,驱动层便可以根据每一个数据传输周期的第二起始时刻和第二结束时刻,进一步生成第二时间调度表。
58.也就是说,在本技术的实施例中,驱动层在获取到与目标设备对应的第一时间调度表之后,可以基于第一时间调度表确定出与目标设备进行数据通信的每一个数据收发周期。然后可以针对每一个数据收发周期的第一起始时刻与第一结束时刻,使用数据通信时相关的时间参数,如预设传输时间、信道接入时间、预设发包时间等,分别对第一起始时刻与第一结束时刻进行不同程度的调整,进而获得与第一起始时刻对应的第二起始时刻,与第一结束时刻对应的第二结束时刻,最终便可以根据第二起始时刻与第二结束时刻获得每一个数据收发周期对应的每一个数据传输周期,进而可以基于每一个数据传输周期生成对应的第二时间调度表。
59.其中,在进行第二时间调度表的生成时,驱动层可以根据预设传输时间、信道接入时间以及每一个数据收发周期的第一起始时刻,确定第二时间调度表中的每一个数据传输周期的第二起始时刻;驱动层还可以根据预设传输时间、信道接入时间、预设发包时间以及每一个数据收发周期的第一结束时刻,确定第二时间调度表中的每一个数据传输周期的第二结束时刻。
60.进一步地,在本技术的实施例中,驱动层在根据预设传输时间、信道接入时间以及每一个数据收发周期的第一起始时刻,确定每一个数据传输周期的第二起始时刻时,可以先对预设传输时间和信道接入时间进行加法运算,获得第一提前时间;然后再根据第一提前时间和每一个数据收发周期的第一起始时刻,确定每一个数据传输周期的第二起始时刻。
61.需要说明的是,在本技术的实施例中,考虑到进行数据通信过程中硬件层进行信道接入处理所需要的信道接入时间、驱动层向固件层发送数据的预设传输时间等时间参数,驱动层可以选择在第一时间调度表所指示的一个数据收发周期的第一起始时刻之前就向固件层传输数据包,即提前进行数据包的传输,因此在确定第二时间调度表时,需要按照预设传输时间、信道接入时间来确定具体的提前开始的时间,即第一提前时间。
62.示例性的,在本技术的实施例中,第一提前时间可以表示为start_margin_drv,预设传输时间可以表示为delay_drv_fw、信道接入时间可以表示为channel_access_time,那么可以通过如下公式计算获得第一提前时间start_margin_drv:
63.start_margin_drv=delay_drv_fw+channel_access_time
ꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
64.进而可以再根据第一提前时间确定出与第一起始时刻对应的第二起始时刻,其中,第一起始时刻表示为taw1,第二起始时刻表示为tdaw1,那么可以通过如下公式计算获得第二起始时刻tdaw1:
65.tdaw1=taw1-start_margin_drv
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
66.进一步地,在本技术的实施例中,驱动层在根据预设传输时间、信道接入时间、预设发包时间以及每一个数据收发周期的第一结束时刻,确定每一个数据传输周期的第二结束时刻时,可以先对预设传输时间和预设预留时间进行加法运算,获得第二提前时间;然后再根据第二提前时间和每一个数据收发周期的第一结束时刻,确定每一个数据传输周期的第二结束时刻。
67.需要说明的是,在本技术的实施例中,考虑到进行数据通信过程中硬件层进行信道接入处理所需要的信道接入时间、驱动层向固件层发送数据的预设传输时间、硬件层发送数据所需要的预设发包时间等时间参数,驱动层可以选择在第一时间调度表所指示的一个数据收发周期的第一结束时刻之前就不在向固件层传输数据包,即提前结束数据包的传输,因此在确定第二时间调度表时,需要按照预设传输时间、信道接入时间、预设发包时间来确定具体的提前结束的时间,即第二提前时间。
68.示例性的,在本技术的实施例中,第二提前时间可以表示为end_margin_drv,预设传输时间可以表示为delay_drv_fw、信道接入时间可以表示为channel_access_time,预设发包时间可以表示为pkt_duration,那么可以通过如下公式计算获得第二提前时间end_margin_drv:
69.end_margin_drv=delay_drv_fw+channel_access_time+pkt_duration
ꢀꢀꢀꢀ
(4)
70.进而可以再根据第二提前时间确定出与第一结束时刻对应的第二结束时刻,其中,第一结束时刻表示为taw2,第二结束时刻表示为tdaw2,那么可以通过如下公式计算获得第二结束时刻tdaw2:
71.tdaw2=taw2-end_margin_drv
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
72.可以理解的是,在本技术的实施例中,基于第一时间调度表完成的第二时间调度表的建立,驱动层便可以按照第二时间调度表所指示的数据传输周期向固件层进行数据包的传输。
73.示例性的,在本技术的实施例中,驱动层按照在第二时间调度表向固件层发送数据包时,可以选择在第一时间调度表所指示的一个数据收发周期的第一起始时刻taw1之前的第二起始时刻tdaw1向固件层传输数据包,经过预设传输时间delay_drv_fw之后,固件层接收到该数据包,然后固件层和硬件层在通过信道接入时间channel_access_time完成信道接入处理之后,便可以在第一起始时刻taw1发出该数据包。
74.由此可见,基于第一时间调度表所建立的第二时间调度表,驱动层在按照第二时间调度表向固件层进行数据传输时,既不会过早的将数据包发送给固件层,避免过早唤醒芯片所造成的功耗的增大,还可以控制发送时机,使得数据包恰好可以在第一时间调度表
所指示的第一起始时刻被发送向目标设备,减少对aw的时间浪费,提升数据收发效率。
75.示例性的,在本技术的实施例中,驱动层按照在第二时间调度表向固件层发送数据包时,可以选择在第一时间调度表所指示的一个数据收发周期的第一结束时刻taw2之前的第二结束时刻tdaw2便不再向固件层传输数据包,从而可以保证向目标设备发送的数据包均可以被成功接收。这是由于如果驱动层在第二结束时刻tdaw2之后向固件层传输数据包,那么考虑到从驱动层至固件层的预设传输时间delay_drv_fw、进行信道接入处理的信道接入时间channel_access_time以及硬件层将完整数据包发送至目标设备的预设发包时间pkt_duration,完全发送完数据包的时刻可能会落第一时间调度表所指示的数据收发周期之外,即数据包的发送时间的结束时刻晚于aw的结束时刻,使得数据包无法被目标设备成功接收。
76.由此可见,基于第一时间调度表所建立的第二时间调度表,驱动层在按照第二时间调度表向固件层进行数据传输时,会提前停止将数据包发送给固件层,从而避免了发送完数据包的时刻不在aw之内导致的数据包接收失败的情况的产生,有效降低了误包率,解决了由于数据包的重传处理而增大终端设备功耗的问题。
77.需要说明的是,在本技术的实施例中,驱动层在第一时刻接收到上层下发的发送指令,其中,该发送指令携带有待发送的数据包,该发送指令用于指示向目标设备发送该数据包。
78.可以理解的是,在本技术的实施例中,驱动层已经完成了基于第一时间调度表的第二时间调度表的建立,因此,对应在第一时刻接收到的发送指令,驱动层可以按照第二时间调度表所指示的数据传输周期向固件层传输该发送指令所携带的数据包,从而使得固件层能够按照第一时间调度表所指示的数据收发周期将数据包发送至目标设备。
79.进一步地,在本技术的是实施例中,驱动层在按照第二时间调度表传输发送指令携带的数据包时,可以先判断接收到发送指令的第一时刻是否在第二时间调度表所指示的数据传输周期之内,即先确定第一时刻是否属于第二时间调度表中的任一个数据传输周期。如果第一时刻属于第二时间调度表中的一个数据传输周期,那么可以允许驱动层在第一时刻向固件层发送数据包,因此,驱动层可以直接在所属的数据传输周期中向固件层发送该数据包。
80.进一步地,在本技术的是实施例中,驱动层在按照第二时间调度表传输发送指令携带的数据包时,可以先判断接收到发送指令的第一时刻是否在第二时间调度表所指示的数据传输周期之内,即先确定第一时刻是否属于第二时间调度表中的任一个数据传输周期。如果第一时刻不属于第二时间调度表中的任何一个数据传输周期,那么可以确定不允许驱动层在第一时刻向固件层发送数据包,因此,驱动层需要先存储该数据包,同时,驱动层可以将第二时间调度表中的、在第一时刻之后的第一个数据传输周期确定为发送该数据包的目标数据传输周期,进而驱动层便可以在接下来的该目标数据传输周期的第三起始时刻向固件层传输数据包。
81.需要说明的是,在本技术的实施例中,当第一时刻不属于第二时间调度表所指示的数据传输周期时,如果在第一时刻向固件层传输数据包,一种可能是,固件层接收到数据包的时刻也不属于第一时间调度表所指示的数据收发周期,此时就会产生由于过早唤醒芯片而导致的功耗增大的问题。
82.需要说明的是,在本技术的实施例中,当第一时刻不属于第二时间调度表所指示的数据传输周期时,如果在第一时刻向固件层传输数据包,另一种可能是,固件层接收到数据包的时刻虽然属于第一时间调度表所指示的数据收发周期,但是,固件层和硬件层在完成完整的数据包发送的结束时刻落在了第一时间调度表所指示的数据收发周期之外,这样目标设备便不能成功的接收到该数据包,此时,由于发送失败而进行重传处理也会在一定程度上增加功耗。
83.需要说明的是,在本技术的实施例中,当第一时刻不属于第二时间调度表所指示的数据传输周期时,如果在第一时刻向固件层传输数据包,再一种可能是,固件层接收到数据包的时刻虽然属于第一时间调度表所指示的数据收发周期,但是,固件层和硬件层还没有完成信道接入处理,因此需要在经过信道接入时间之后才能进行数据包的发送,这样就会占用有限的数据收发周期的时间,从而降低了aw的利用率,影响了数据通信效率。
84.由此可将,在本技术的实施例中,驱动层在按照第二时间调度表向固件层传输数据包,能够在充分提升对aw的利用率的基础上,最大程度的降低终端设备的功耗。
85.进一步地,在本技术的实施例中,图5为本技术实施例提出的数据通信方法的实现流程示意图二,如图5所示,基带芯片进行数据通信的方法还可以包括以下步骤:
86.步骤201、当在第二时刻接收到驱动层传输的目标设备对应的数据包时,固件层根据第一时间调度表确定当前数据收发周期的第三结束时刻。
87.在本技术的实施例中,固件层在第二时刻接收到驱动层传输的、需要发送至目标设备的数据包时,可以先根据与目标设备协商好的第一时间调度表确定目前所属于的当前数据收发周期的结束时间,即确定出第三结束时刻。
88.可以理解的是,在本技术的实施例中,由于驱动层是基于第二时间调度表所指示的数据传输周期向固件层传输数据的,因此,固件层接收数据包的第二时刻是属于第一时间调度表所指示的一个数据收发周期的,即第二时刻在当前数据收发周期之内。
89.步骤202、若第二时刻与第三结束时刻之间的时间差小于或者等于预设预留时间,则固件层停止向目标设备发送数据包。
90.在本技术的实施例中,固件层在根据第一时间调度表确定目前所属于的当前数据收发周期的第三结束时刻之后,可以进一步确定第二时刻与第三结束时刻之间的时间差与预设预留时间之间的大小关系,然后再根据两者的大小关系选择向目标设备发送该数据包的发送时机。
91.需要说明的是,在本技术的实施例中,预设预留时间可以通过信道接入时间和预设发包时间计算获得。
92.示例性的,在本技术的实施例中,预设预留时间可以表示为end_margin,信道接入时间可以表示为channel_access_time,预设发包时间可以表示为pkt_duration,那么可以通过如下公式计算获得预设预留时间end_margin:
93.end_margin=channel_access_time+pkt_duration
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
94.可见,预设预留时间即为信道接入时间与预设发包时间之和,即预设预留时间表征发送数据时进行信道接入处理和数据发送处理所需要的时间。
95.进一步地,在本技术的实施例中,如果第二时刻与第三结束时刻之间的时间差小于或者等于预设预留时间,那么可以认为当前数据收发周期所剩余的时间并不足以完全发
送完整的数据包,因此固件层可以选择停止向目标设备发送数据包。
96.可以理解的是,在本技术的实施例中,对于在第二时刻接收到的数据包,在第二时刻与第三结束时刻之间的时间差小于或者等于预设预留时间的情况下,如果固件层依然向目标设备发送该数据包,那么经过信道接入时间和预设发包时间之后,固件层和硬件层在完成完整的数据包发送的结束时刻可能会落在当前数据收发周期之外,这样目标设备便不能成功的接收到该数据包。因此,当第二时刻与第三结束时刻之间的时间差小于或者等于预设预留时间时,固件层停止进行数据包的发送处理,从而解决了发送失败之后的重传处理造成功耗增加的问题。
97.步骤203、若第二时刻与第三结束时刻之间的时间差大于预设预留时间,则固件层在第二时刻向目标设备发送数据包。
98.在本技术的实施例中,固件层在根据第一时间调度表确定目前所属于的当前数据收发周期的第三结束时刻之后,可以进一步确定第二时刻与第三结束时刻之间的时间差与预设预留时间之间的大小关系,然后再根据两者的大小关系选择向目标设备发送该数据包的发送时机。
99.进一步地,在本技术的实施例中,如果第二时刻与第三结束时刻之间的时间差大于预设预留时间,那么可以认为当前数据收发周期所剩余的时间能够保证完全发送完整的数据包,因此固件层可以直接在第二时刻向目标设备发送数据包。
100.综上所述,在本技术的实施例中,步骤101至步骤103,和步骤201至步骤203所提出的数据通信方法,一方面,驱动层可以基于aw时间调度表维护一个daw时间调度表,即基于第一时间调度表构建第二时间调度表,并且可以选择在第二时间调度表所指示的数据传输周期以内向固件层发送数据包,而在第二时间调度表所指示的数据传输周期以外不允许向固件层发送数据包。其中,即使驱动层在第二时间调度表所指示的数据传输周期以外接收到上层发送的数据包,也并不会将数据包传输至固件层,因此不会过早的唤醒芯片。而是按照第二时间调度表,在第一时间调度表所指示的数据收发周期的第一起始时刻之前向固件层发送数据包,相应的,固件层也并不是在aw的起始时刻进行数据包的调度,而是提前一段时间调度数据包,即在第一时间调度表所指示的数据收发周期的第一起始时刻之前的信道接入时间(channel_access_time)调度包进行发送,从而可以使得固件层恰好在第一起始时刻发送数据包,即恰好在第一起始时刻唤醒芯片,减少了信道接入处理和数据包传输过程对aw的占用,进而可以在提高aw的利用率的基础上,最大限度的降低了功耗。
101.另一方面,本技术实施例提出的数据通信方法,固件层停止发送数据包的时间也不再是第一时间调度表所指示的数据收发周期的第一结束时刻,即固件层并不是按照aw的结束时刻选择停止发送数据包,而是在aw的结束时刻之前的一段时间就停止发包处理,其中,可以选择在第一结束时刻之前的预设预留时间(end_margin)以前允许向硬件层发送数据包,而在第一结束时刻之前的预设预留时间(end_margin)以后则不允许向硬件层发送数据包,从而可以降低误包率,进一步减少重传处理所产生的功耗。
102.本技术实施例提供了一种数据通信方法,数据通信方法应用于基带芯片,其中,基带芯片包括驱动层、固件层以及硬件层;固件层向驱动层发送第一时间调度表;其中,第一时间调度表用于指示与目标设备之间的数据收发时间;当在第一时刻接收到目标设备对应的发送指令时,驱动层按照第一时间调度对应的第二时间调度表传输发送指令携带的数据
包;其中,第二时间调度表用于指示驱动层与固件层之间的数据传输时间。由此可见,在本技术的实施例中,驱动层在固件层所使用的第一时间调度表(aw)的基础上维护第二时间调度表(daw),该第二时间调度表可以对驱动层与固件层之间的数据传输时间进行指示,使得驱动层在按照第二时间调度表所指示的数据传输周期向固件层发送数据包时,既可以确保固件层恰好在第一时间调度表所指示的数据收发周期的起始时刻向目标设备发送数据包,从而减少过早唤醒芯片所产生的功耗,提升了数据传输周期的利用率;也可以确保固件层能够在第一时间调度表所指示的数据收发周期的结束时刻之前停止发包处理,从而解决了数据包无法被目标设备成功接收的问题,克服了重传处理所导致的功耗增大的缺陷。也就是说,本技术实施例提出的数据通信方法,由于驱动层能够维护基于aw生成的daw,并使用daw控制数据包的传输时机,从而可以在提升aw的有效利用率的同时,最大程度的降低设备功耗。
103.基于上述实施例,在本技术的再一实施例提出一种数据通信方法,其中,该数据通信方法可以应用于基带芯片。基带芯片可以包括驱动层(driver层)、固件层(fw层)以及硬件层(hw层)。其中,driver层主要负责将上层发来的指令、数据发送给fw层,以及向上层转发来自于fw层的数据;fw层处于driver层和硬件层中间,负责管理、调度并向硬件层发送从driver层来的数据,同时也向driver层发送来自于硬件层的数据;硬件层主要负责信道接入,以及向空口发送来自于fw层的数据,以及向fw层发送从空口收到的数据。
104.为了解决相关技术在非aw期间唤醒芯片导致功耗的增大的问题、最后一个数据包可能无法被成功接收而进行重传处理所导致的功耗的增大的问题,以及aw利用率低的问题,本技术实施例提出的数据通信方法,主要包括以下几个方面:
105.一方面,driver层维护一个daw时间调度表(第二时间调度表),该daw时间调度表描述了driver层上的发包时间窗口。其中,在daw期间driver层向fw层发送数据包,在非daw期间driver层不会给fw层发送数据包。daw是基于fw层更新给driver层的aw表(第一时间调度表)产生的新的时间调度表。
106.另一方面,当在非daw期间,即使driver层接收到上层来的数据包也不会向fw层发送数据包,从而不会过早的唤醒芯片,而是选择在aw开始之前提前一段时间(如第一提前时间start_margin_drv)driver层开始给fw层发送数据包并唤醒芯片进行数据传输。
107.可以理解的是,在本技术的实施例中,正是由于driver层在第二时间调度表所指示的数据传输周期以外(即非daw期间)接收到上层发送的数据包时,并不会将数据包传输至fw层,因此不会过早的唤醒芯片。而是按照第二时间调度表,在第一时间调度表所指示的数据收发周期的第一起始时刻之前向fw层发送数据包,从而减少了数据包传输过程对aw的占用,在提高aw的利用率的基础上,最大限度的降低了功耗。
108.又一方面,fw层不再在aw起始时刻进行数据包的调度发送,而是选择在提前一段时间(如信道接入时间channel_access_time)调度数据包进行发送。
109.可以理解的是,在本技术的实施例中,由于driver层是按照第二时间调度表,在第一时间调度表所指示的数据收发周期的第一起始时刻之前向fw层发送数据包,相应的,fw层也并不是在aw的起始时刻进行数据包的调度,而是提前一段时间调度数据包,即在第一时间调度表所指示的数据收发周期的第一起始时刻之前的信道接入时间(channel_access_time)调度包进行发送,从而可以使得fw层恰好在第一起始时刻发送数据包,即恰
好在第一起始时刻唤醒芯片,减少了信道接入处理对aw的占用,进而可以提高aw的利用率。
110.也就是说,在本技术的实施例中,对于aw期间发送的第一个包,fw层不是在aw开始的时刻往空口发送包,而是在aw开始前channel_access_time的时刻就发送,这样第一个包在aw起始时刻已经完成信道接入,第一个包的信道接入时间没有占用aw,从而提高了aw的有效利用率。
111.再一方面,fw层不再是在aw结束时刻停止发包,而是在aw结束时刻前提前一段时间(如预设预备时间end_margin)就停止向hw层发包,并且,driver层也在aw结束时刻前提前一段时间(如第二提前时间end_margin_drv)就停止向fw层发包。
112.可以理解的是,在本技术的实施例中,由于fw层并不是按照aw的结束时刻选择停止发送数据包,而是在aw的结束时刻之前的一段时间就停止发包处理,例如,可以选择在第一结束时刻之前的预设预留时间(end_margin)以前允许向硬件层发送数据包,而在第一结束时刻之前的预设预留时间(end_margin)以后则不允许向硬件层发送数据包,从而可以降低误包率,进一步减少重传处理所产生的功耗。
113.也就是说,在本技术的实施例中,fw层不再在aw结束时刻停止给目标设备(如rx device)发包,而是在aw结束前提前一段时间(如end_margin)就停止给rx device发包,并且driver层在daw结束时刻停止给fw层发包,这样避免了aw结束时刻之前最后一个包无法被rx device接收,降低了per,也节省了因接收失败而进行包重传的功耗。
114.图6为本技术实施例提出的数据通信方法所对应的时序示意图一,如图6所示,在配置有基带芯片的终端设备(tx device)端,driver层需要存储一个基于fw层的第一时间调度表(aw)产生的第二时间调度表(daw)。首先tx device和目标设备(rx device)协商aw,在aw协商好之后,fw层把协商好的aw调度表发送给driver层,driver层基于aw产生daw,其中,daw的起始时刻(tdaw1)可以通过aw的起始时刻(taw1)和第一提前时间(start_margin_drv)确定,如上述公式(3);而daw的结束时刻(tdaw2)可以通过aw的结束时刻(taw2)和第二提前时间(end_margin_drv)确定,如上述公式(5)。
115.可以理解的是,在本技术的实施例中,start_margin_drv可以通过预设传输时间(delay_drv_fw)和信道接入时间(channel_access_time)确定,如上述公式(2);end_margin_drv可以通过预设传输时间(delay_drv_fw)、信道接入时间(channel_access_time)以及预设发包时间(pkt_duration)确定,如上述公式(4)。
116.进一步地,在本技术的实施例中,对于tx device端,driver层在非daw期间接收到数据包,例如数据包#1,不再立刻发给fw层,而是先存储在driver层上,直到daw的起始时刻driver层再向fw层发送数据包,经过delay_drv_fw时间之后,fw层接收到手机包,然后立刻往空口调度发送,此时与aw起始时刻的时间差为channel_access_time,由hw层经过信道接入处理之后发送给rx device,即数据包的发送时刻恰好为aw起始时刻。既解决了在非aw期间唤醒芯片造成的功耗增大的问题,也克服了aw利用率低的缺陷。
117.图7为本技术实施例提出的数据通信方法所对应的时序示意图二,如图7所示,针对目前在aw结束之前最后一个数据包可能无法被rx device成功接收的问题,在本技术的实施例中,对于tx device端,在aw期间,fw层可以选择在aw结束之前提前一段时间(如预设预留时间end_margin)停止向hw层发包。end_margin是指在aw结束之前能成功发送一个包(被rx device接收到)所需的时间,其中,end_margin可以通过channel_access_time和
pkt_duration确定,如上述公式(6)。
118.进一步地,在本技术的实施例中,对于tx device端,driver层接收到上层发送的数据包之后,可以先确定是否要向fw层发送数据包。如果收到数据包的时刻在daw期间内,则立刻由driver层发送给fw层;如果收到数据包的时刻在非daw,如数据包#3,driver层会先存储该数据包,并在下一个daw窗口发送,比如,虽然收到数据包#3的时刻在aw期间,但是在非daw期间,所以数据包#3并没有在当前的aw期间被driver层发送给fw层,而是被延迟到下一个daw窗口发送,从而可以确保数据包#3能够被rx device成功接收。
119.本技术实施例提供了一种数据通信方法,驱动层在固件层所使用的第一时间调度表(aw)的基础上维护第二时间调度表(daw),该第二时间调度表可以对驱动层与固件层之间的数据传输时间进行指示,使得驱动层在按照第二时间调度表所指示的数据传输周期向固件层发送数据包时,既可以确保固件层恰好在第一时间调度表所指示的数据收发周期的起始时刻向目标设备发送数据包,从而减少过早唤醒芯片所产生的功耗,提升了数据传输周期的利用率;也可以确保固件层能够在第一时间调度表所指示的数据收发周期的结束时刻之前停止发包处理,从而解决了数据包无法被目标设备成功接收的问题,克服了重传处理所导致的功耗增大的缺陷。也就是说,本技术实施例提出的数据通信方法,由于驱动层能够维护基于aw生成的daw,并使用daw控制数据包的传输时机,从而可以在提升aw的有效利用率的同时,最大程度的降低设备功耗。
120.基于上述实施例,本技术一实施例提供了一种基带芯片,图8为驱动芯片的组成结构示意图,如图8所示,基带芯片10可以包括驱动层11、固件层12以及硬件层13。其中,驱动层主要负责将上层发来的指令、数据发送给固件层,以及向上层转发来自于固件层的数据;固件层处于驱动层和硬件层中间,负责管理、调度并向硬件层发送从驱动层来的数据,同时也向驱动层发送来自于硬件层的数据;硬件层主要负责信道接入,以及向空口发送来自于固件层的数据,以及向固件层发送从空口收到的数据。
121.需要说明的是,在本技术的实施例中,固件层,用于向驱动层发送第一时间调度表;其中,第一时间调度表用于指示与目标设备之间的数据收发时间。
122.可以理解的是,在本技术的实施例中,可以预先与目标设备建立通信连接,从而可以通过与目标设备的通信连接确定对应的第一时间调度表。其中,第一时间调度表用于对目标设备对应的可用窗口aw进行确定,即第一时间调度表可以用于指示与目标设备之间的数据收发时间。
123.需要说明的是,在本技术的实施例中,配置有该基带芯片的终端设备与目标设备可以属于相同的nan集群,其中,配置有该基带芯片的终端设备与目标设备之间可以进行数据通信,为了确保两者之间成功的进行数据通信,两个设备可以提前建立通信连接并协商好周期性的可用窗口aw,即建立对应的第一时间调度表。
124.进一步地,在本技术的实施例中,第一时间调度表用于指示该基带芯片与目标设备之间的数据收发时间,也就是说,配置有该基带芯片的终端设备与目标设备只有在第一时间调度表所指示的数据收发周期之内才可以进行数据通信,而在第一时间调度表所指示的数据收发周期以外则不会进行数据通信,即这两个nan设备只有在aw期间才会进行数据通信,在非aw期间则不会收发数据。
125.需要说明的是,在本技术的实施例中,与目标设备协商确定的第一时间调度表可
以存储在基带芯片的固件层,固件层可以向驱动层发送该第一时间调度表,从而可以使得驱动层能够获知固件层执行数据收发处理的数据收发时间。
126.进一步地,在本技术的实施例中,所述驱动层,用于根据所述第一时间调度表、预设传输时间、信道接入时间、预设发包时间生成第二时间调度表;其中,第二时间调度表用于指示所述驱动层与所述固件层之间的数据传输时间。
127.进一步地,在本技术的实施例中,所述驱动层,还用于根据所述第一时间调度表确定与所述目标设备之间的、每一个数据收发周期的第一起始时刻和第一结束时刻;根据所述预设传输时间、所述信道接入时间以及所述每一个数据收发周期的第一起始时刻,确定每一个数据传输周期的第二起始时刻;根据所述预设传输时间、所述信道接入时间、所述预设发包时间以及所述每一个数据收发周期的第一结束时刻,确定所述每一个数据传输周期的第二结束时刻;根据所述每一个数据传输周期的所述第二起始时刻和所述第二结束时刻,生成所述第二时间调度表。
128.进一步地,在本技术的实施例中,所述驱动层,还用于对所述预设传输时间和所述信道接入时间进行加法运算,获得第一提前时间;根据所述第一提前时间和所述每一个数据收发周期的第一起始时刻,确定所述每一个数据传输周期的第二起始时刻。
129.进一步地,在本技术的实施例中,所述驱动层,还用于对所述预设传输时间、所述信道接入时间以及所述预设发包时间进行加法运算,获得第二提前时间;根据所述第二提前时间和所述每一个数据收发周期的第一结束时刻,确定所述每一个数据传输周期的第二结束时刻。
130.可以理解的是,在本技术的实施例中,第二时间调度表用于对目标设备对应的、驱动层端的可用窗口daw进行确定,即第二时间调度表可以用于指示驱动层与固件层之间的数据传输时间。
131.需要说明的是,在本技术的实施例中,基于第一时间调度表,基带芯片的驱动层可以建立对应的、用于指示驱动层与固件层之间的数据传输时间的第二时间调度表。从而可以确保只有在第二时间调度表所指示的数据传输周期之内才可以向固件层发送数据包,而在第二时间调度表所指示的数据传输周期以外则不会向固件层发送数据包,从而保证终端设备与目标设备这两个nan设备只有在aw期间才会进行数据通信。
132.需要说明的是,在本技术的实施例中,预设传输时间可以对驱动层向固件层传输一个数据包所需要的时间进行确定。其中,预设传输时间可以为驱动层直接确定的,也可以为驱动层从固件层获取的。另一方面,预设传输时间可以为驱动层和/或固件层预先设置的,也可以为驱动层和/或固件层实时确定的。
133.需要说明的是,在本技术的实施例中,信道接入时间可以对硬件层进行信道接入所需要的时间进行确定。其中,信道接入时间可以为驱动层直接确定的,也可以为驱动层从固件层获取的。其中,另一方面,信道接入时间可以为驱动层和/或固件层预先设置的,也可以为驱动层和/或固件层基于网络环境实时确定的。
134.需要说明的是,在本技术的实施例中,预设发包时间可以对硬件层发送数据包所需要的时间进行确定。其中,预设发包时间可以为驱动层直接确定的,也可以为驱动层从固件层获取的。其中,另一方面,预设发包时间可以为驱动层和/或固件层预先设置的,也可以为驱动层和/或固件层基于数据包的长度和发送速率实时确定的。
135.也就是说,在本技术的实施例中,固件层可以向所述驱动层发送以下信息的至少一个信息:预设传输时间、信道接入时间、预设发包时间。即预设传输时间、信道接入时间、预设发包时间中的至少一个信息可以由固件层同步至驱动层。
136.当然,驱动层也可以预先存储以下信息中的至少一个信息:预设传输时间、信道接入时间、预设发包时间。即预设传输时间、信道接入时间、预设发包时间中的至少一个信息也可以是由驱动层确定并存储的。
137.可以理解的是,在本技术的实施例中,驱动层在获取到与目标设备对应的第一时间调度表之后,可以基于第一时间调度表确定出与目标设备进行数据通信的每一个数据收发周期。然后可以针对每一个数据收发周期的第一起始时刻与第一结束时刻,使用数据通信时相关的时间参数,如预设传输时间、信道接入时间、预设发包时间等,分别对第一起始时刻与第一结束时刻进行不同程度的调整,进而获得与第一起始时刻对应的第二起始时刻,与第一结束时刻对应的第二结束时刻,最终便可以根据第二起始时刻与第二结束时刻获得每一个数据收发周期对应的每一个数据传输周期,进而可以基于每一个数据传输周期生成对应的第二时间调度表。
138.需要说明的是,在本技术的实施例中,考虑到进行数据通信过程中硬件层进行信道接入处理所需要的信道接入时间、驱动层向固件层发送数据的预设传输时间等时间参数,驱动层可以选择在第一时间调度表所指示的一个数据收发周期的第一起始时刻之前就向固件层传输数据包,即提前进行数据包的传输,因此在确定第二时间调度表时,需要按照预设传输时间、信道接入时间来确定具体的提前开始的时间,即第一提前时间。
139.需要说明的是,在本技术的实施例中,考虑到进行数据通信过程中硬件层进行信道接入处理所需要的信道接入时间、驱动层向固件层发送数据的预设传输时间、硬件层发送数据所需要的预设发包时间等时间参数,驱动层可以选择在第一时间调度表所指示的一个数据收发周期的第一结束时刻之前就不在向固件层传输数据包,即提前结束数据包的传输,因此在确定第二时间调度表时,需要按照预设传输时间、信道接入时间、预设发包时间来确定具体的提前结束的时间,即第二提前时间。
140.示例性的,在本技术的实施例中,驱动层按照在第二时间调度表向固件层发送数据包时,可以选择在第一时间调度表所指示的一个数据收发周期的第一起始时刻taw1之前的第二起始时刻tdaw1向固件层传输数据包,经过预设传输时间delay_drv_fw之后,固件层接收到该数据包,然后固件层和硬件层在通过信道接入时间channel_access_time完成信道接入处理之后,便可以在第一起始时刻taw1发出该数据包。
141.由此可见,基于第一时间调度表所建立的第二时间调度表,驱动层在按照第二时间调度表向固件层进行数据传输时,既不会过早的将数据包发送给固件层,避免过早唤醒芯片所造成的功耗的增大,还可以控制发送时机,使得数据包恰好可以在第一时间调度表所指示的第一起始时刻被发送向目标设备,减少对aw的时间浪费,提升数据收发效率。
142.示例性的,在本技术的实施例中,驱动层按照在第二时间调度表向固件层发送数据包时,可以选择在第一时间调度表所指示的一个数据收发周期的第一结束时刻taw2之前的第二结束时刻tdaw2便不再向固件层传输数据包,从而可以保证向目标设备发送的数据包均可以被成功接收。这是由于如果驱动层在第二结束时刻tdaw2之后向固件层传输数据包,那么考虑到从驱动层至固件层的预设传输时间delay_drv_fw、进行信道接入处理的信
道接入时间channel_access_time以及硬件层将完整数据包发送至目标设备的预设发包时间pkt_duration,完全发送完数据包的时刻可能会落第一时间调度表所指示的数据收发周期之外,即数据包的发送时间的结束时刻晚于aw的结束时刻,使得数据包无法被目标设备成功接收。
143.由此可见,基于第一时间调度表所建立的第二时间调度表,驱动层在按照第二时间调度表向固件层进行数据传输时,会提前停止将数据包发送给固件层,从而避免了发送完数据包的时刻不在aw之内导致的数据包接收失败的情况的产生,有效降低了误包率,解决了由于数据包的重传处理而增大终端设备功耗的问题。
144.进一步地,在本技术的实施例中,所述驱动层,还用于当在第一时刻接收到所述目标设备对应的发送指令时,按照所述第二时间调度表传输所述发送指令携带的数据包,以使所述固件层和所述硬件层按照所述第一时间调度表向所述目标设备发送所述数据包。
145.进一步地,在本技术的实施例中,所述驱动层,还用于若所述第一时刻不属于所述第二时间调度表中的任一个数据传输周期,则存储所述数据包,同时将所述第二时间调度表中的、所述第一时刻之后的第一个数据传输周期确定为所述数据包对应的目标数据传输周期;在所述目标数据传输周期的第三起始时刻向所述固件层传输所述数据包。
146.进一步地,在本技术的实施例中,所述驱动层,还用于若所述第一时刻属于所述第二时间调度表中的一个数据传输周期,则所述驱动层在所述第一时刻向所述固件层传输所述数据包。
147.需要说明的是,在本技术的实施例中,驱动层在第一时刻接收到上层下发的发送指令,其中,该发送指令携带有待发送的数据包,该发送指令用于指示向目标设备发送该数据包。
148.进一步地,在本技术的是实施例中,驱动层在按照第二时间调度表传输发送指令携带的数据包时,可以先判断接收到发送指令的第一时刻是否在第二时间调度表所指示的数据传输周期之内,即先确定第一时刻是否属于第二时间调度表中的任一个数据传输周期。如果第一时刻属于第二时间调度表中的一个数据传输周期,那么可以允许驱动层在第一时刻向固件层发送数据包,因此,驱动层可以直接在所属的数据传输周期中向固件层发送该数据包。如果第一时刻不属于第二时间调度表中的任何一个数据传输周期,那么可以确定不允许驱动层在第一时刻向固件层发送数据包,因此,驱动层需要先存储该数据包,同时,驱动层可以将第二时间调度表中的、在第一时刻之后的第一个数据传输周期确定为发送该数据包的目标数据传输周期,进而驱动层便可以在接下来的该目标数据传输周期的第三起始时刻向所述固件层传输数据包。
149.需要说明的是,在本技术的实施例中,当第一时刻不属于第二时间调度表所指示的数据传输周期时,如果在第一时刻向固件层传输数据包,一种可能是,固件层接收到数据包的时刻也不属于第一时间调度表所指示的数据收发周期,此时就会产生由于过早唤醒芯片而导致的功耗增大的问题。另一种可能是,固件层接收到数据包的时刻虽然属于第一时间调度表所指示的数据收发周期,但是,固件层和硬件层在完成完整的数据包发送的结束时刻落在了第一时间调度表所指示的数据收发周期之外,这样目标设备便不能成功的接收到该数据包,此时,由于发送失败而进行重传处理也会在一定程度上增加功耗。再一种可能是,固件层接收到数据包的时刻虽然属于第一时间调度表所指示的数据收发周期,但是,固
件层和硬件层还没有完成信道接入处理,因此需要在经过信道接入时间之后才能进行数据包的发送,这样就会占用有限的数据收发周期的时间,从而降低了aw的利用率,影响了数据通信效率。
150.由此可将,在本技术的实施例中,驱动层在按照第二时间调度表向固件层传输数据包,能够在充分提升对aw的利用率的基础上,最大程度的降低终端设备的功耗。
151.进一步地,在本技术的实施例中,所述固件层,还用于当在第二时刻接收到所述驱动层传输的所述目标设备对应的数据包时,根据所述第一时间调度表确定当前数据收发周期的第三结束时刻;若所述第二时刻与所述第三结束时刻之间的时间差小于或者等于所述预设预留时间,则停止向所述目标设备发送所述数据包;若所述第二时刻与所述第三结束时刻之间的时间差大于所述预设预留时间,则在所述第二时刻向所述目标设备发送所述数据包;其中,所述预设预留时间为所述信道接入时间与预设发包时间之和。
152.可以理解的是,在本技术的实施例中,由于驱动层是基于第二时间调度表所指示的数据传输周期向固件层传输数据的,因此,固件层接收数据包的第二时刻是属于第一时间调度表所指示的一个数据收发周期的,即第二时刻在当前数据收发周期之内。
153.需要说明的是,在本技术的实施例中,预设预留时间可以通过信道接入时间和预设发包时间计算获得。预设预留时间即为信道接入时间与预设发包时间之和,即预设预留时间表征发送数据时进行信道接入处理和数据发送处理所需要的时间。
154.进一步地,在本技术的实施例中,如果第二时刻与所述第三结束时刻之间的时间差小于或者等于预设预留时间,那么可以认为当前数据收发周期所剩余的时间并不足以完全发送完整的数据包,因此固件层可以选择停止向所述目标设备发送所述数据包。
155.可以理解的是,在本技术的实施例中,对于在第二时刻接收到的数据包,在第二时刻与所述第三结束时刻之间的时间差小于或者等于预设预留时间的情况下,如果固件层依然向目标设备发送该数据包,那么经过信道接入时间和预设发包时间之后,固件层和硬件层在完成完整的数据包发送的结束时刻可能会落在当前数据收发周期之外,这样目标设备便不能成功的接收到该数据包。因此,当第二时刻与所述第三结束时刻之间的时间差小于或者等于预设预留时间时,固件层停止进行数据包的发送处理,从而解决了发送失败之后的重传处理造成功耗增加的问题。
156.进一步地,在本技术的实施例中,如果第二时刻与所述第三结束时刻之间的时间差大于预设预留时间,那么可以认为当前数据收发周期所剩余的时间能够保证完全发送完整的数据包,因此固件层可以直接在第二时刻向目标设备发送数据包。
157.本技术的实施例还提供了一种终端设备,图9为终端设备的组成结构示意图,如图9所示,终端设备20可以配置有基带芯片10,基带芯片10可以包括驱动层11、固件层12以及硬件层13。其中,驱动层主要负责将上层发来的指令、数据发送给固件层,以及向上层转发来自于固件层的数据;固件层处于驱动层和硬件层中间,负责管理、调度并向硬件层发送从驱动层来的数据,同时也向驱动层发送来自于硬件层的数据;硬件层主要负责信道接入,以及向空口发送来自于固件层的数据,以及向固件层发送从空口收到的数据。
158.综上所述,本技术实施例提出的基带芯片和配置有基带芯片的终端设备,一方面,驱动层可以基于aw时间调度表维护一个daw时间调度表,即基于第一时间调度表构建第二时间调度表,并且可以选择在第二时间调度表所指示的数据传输周期以内向固件层发送数
据包,而在第二时间调度表所指示的数据传输周期以外不允许向固件层发送数据包。其中,即使驱动层在第二时间调度表所指示的数据传输周期以外接收到上层发送的数据包,也并不会将数据包传输至固件层,因此不会过早的唤醒芯片。而是按照第二时间调度表,在第一时间调度表所指示的数据收发周期的第一起始时刻之前向固件层发送数据包,相应的,固件层也并不是在aw的起始时刻进行数据包的调度,而是提前一段时间调度数据包,即在第一时间调度表所指示的数据收发周期的第一起始时刻之前的信道接入时间(channel_access_time)调度包进行发送,从而可以使得固件层恰好在第一起始时刻发送数据包,即恰好在第一起始时刻唤醒芯片,减少了信道接入处理和数据包传输过程对aw的占用,进而可以在提高aw的利用率的基础上,最大限度的降低了功耗。
159.另一方面,本技术实施例提出的数据通信方法,固件层停止发送数据包的时间也不再是第一时间调度表所指示的数据收发周期的第一结束时刻,即固件层并不是按照aw的结束时刻选择停止发送数据包,而是在aw的结束时刻之前的一段时间就停止发包处理,其中,可以选择在第一结束时刻之前的预设预留时间(end_margin)以前允许向硬件层发送数据包,而在第一结束时刻之前的预设预留时间(end_margin)以后则不允许向硬件层发送数据包,从而可以降低误包率,进一步减少重传处理所产生的功耗。
160.本技术实施例提供了一种基带芯片和配置有基带芯片的终端设备,该基带芯片包括驱动层、固件层以及硬件层;固件层向驱动层发送第一时间调度表;其中,第一时间调度表用于指示与目标设备之间的数据收发时间;当在第一时刻接收到目标设备对应的发送指令时,驱动层按照第一时间调度对应的第二时间调度表传输发送指令携带的数据包;其中,第二时间调度表用于指示驱动层与固件层之间的数据传输时间。由此可见,在本技术的实施例中,驱动层在固件层所使用的第一时间调度表(aw)的基础上维护第二时间调度表(daw),该第二时间调度表可以对驱动层与固件层之间的数据传输时间进行指示,使得驱动层在按照第二时间调度表所指示的数据传输周期向固件层发送数据包时,既可以确保固件层恰好在第一时间调度表所指示的数据收发周期的起始时刻向目标设备发送数据包,从而减少过早唤醒芯片所产生的功耗,提升了数据传输周期的利用率;也可以确保固件层能够在第一时间调度表所指示的数据收发周期的结束时刻之前停止发包处理,从而解决了数据包无法被目标设备成功接收的问题,克服了重传处理所导致的功耗增大的缺陷。也就是说,本技术实施例提出的数据通信方法,由于驱动层能够维护基于aw生成的daw,并使用daw控制数据包的传输时机,从而可以在提升aw的有效利用率的同时,最大程度的降低设备功耗。
161.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
162.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能的装置。
163.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
164.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
165.以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1