一种空中下载方法、装置、存储介质及电子设备与流程

文档序号:31054224发布日期:2022-08-06 10:49阅读:175来源:国知局
一种空中下载方法、装置、存储介质及电子设备与流程

1.本说明书涉及互联网技术领域,尤其涉及一种空中下载方法、装置、存储介质及电子设备。


背景技术:

2.空中下载(over-the-air technology,ota)技术是一种通过移动通信的空中接口实现对移动终端设备进行远程管理的技术。经过不断地发展,如今的ota已经应用于多个领域之中,通过ota可以对移动终端设备上的软件进行更新。尽管ota技术已经发展的十分成熟,但在网络环境不稳定、网络质量较差的环境中使用ota时,仍存在一些不足。
3.目前,ota主要的下载方式有两种。一种是全量更新,在集中的一个时间段内将需要的软件的全部数据下载下来;另一种是分片下载,将需要下载的软件的数据分为多个数据分片,每次空闲时下载其中的若干数据分片。然而,无论是上述两种方式中的哪一种,当在网络质量较差的环境下进行下载时,都无法避免在下载时因为信号不佳而导致丢失连接,重新下载,也就是数据重传。
4.对于全量更新来说,如果下载过程中发生数据重传,将会使之前下载的所有数据全部作废,重新下载,会造成大量的流量浪费;而相比之下,分片下载发生数据重传时,只需要将正在下载的数据分片进行重新下载即可,虽然造成的流量浪费比全量更新更少,但不断地断线重连依旧会大量增加设备的网络交互时间,使设备的耗电量急剧上升,缩短设备的电池寿命,并使设备的性能受到影响。


技术实现要素:

5.本说明书提供一种空中下载方法、装置、存储介质及电子设备,以至少部分的解决现有技术存在的上述问题。
6.本说明书采用下述技术方案:
7.本说明书提供了一种空中下载方法,包括:
8.获取待下载数据的信息;
9.根据所述待下载数据的信息,确定所述待下载数据中包含的各数据分片;
10.对各数据分片进行分组;
11.确定当前下载的数据分片所在的组,作为当前组,记录所述当前组中各数据分片在下载过程中的下载状态信息;
12.根据所述当前组中各数据分片的下载状态信息,确定当前的网络质量;
13.根据当前的网络质量,确定下一组的下载参数;
14.采用确定出的所述下载参数对下一组中的各数据分片进行下载,直到所述待下载数据中包含的所有数据分片下载完成。
15.可选的,所述下载状态信息包括数据分片下载成功的次数、数据分片重传次数、数据分片下载总次数、天线信号质量中的至少一种。
16.可选的,当前的网络质量与第一比值正相关,所述第一比值为所述数据分片下载成功的次数与所述数据分片重传次数之间的比值;
17.当前的网络质量与第二比值正相关,所述第二比值为所述数据分片下载成功的次数与所述数据分片下载总次数之间的比值;
18.当前的网络质量与所述天线信号质量正相关。
19.可选的,根据所述当前组中各数据分片的下载状态信息,确定当前的网络质量,具体包括:
20.根据所述当前组中各数据分片的下载状态信息以及在所述当前组之前下载的指定数量的组中各数据分片的下载状态信息,确定当前的网络质量。
21.可选的,所述下一组的下载参数包括下一组中各数据分片之间的下载时间间隔、不同组之间的下载时间间隔中的至少一种。
22.可选的,根据当前的网络质量,确定下一组的下载参数,具体包括:
23.当前网络质量大于或等于指定阈值时,将所述当前组的下载参数进行减小,作为下一组数据的下载参数;
24.当前网络质量小于指定阈值时,将所述当前组的下载参数进行增大,作为下一组数据的下载参数。
25.可选的,将所述当前组的下载参数进行减小,作为下一组数据的下载参数,具体包括:
26.根据当前网络质量确定指定比例,所述指定比例不大于1;
27.将所述当前组的下载参数与所述指定比例的乘积作为下一组的下载参数;
28.将所述当前组的下载参数进行增大,作为下一组数据的下载参数,具体包括:
29.根据当前网络质量确定指定步长,所述指定步长大于0;
30.将所述当前组的下载参数与所述指定步长的和值作为下一组的下载参数。
31.本说明书提供的一种空中下载装置,所述装置包括:
32.获取模块,获取待下载数据的信息;
33.数据分片确定模块,根据所述待下载数据的信息,确定所述待下载数据中包含的各数据分片;
34.分组模块,对各数据分片进行分组;
35.记录模块,确定当前下载的数据分片所在的组,作为当前组,记录所述当前组中各数据分片在下载过程中的下载状态信息;
36.网络质量确定模块,根据所述当前组中各数据分片的下载状态信息,确定当前的网络质量;
37.下载参数确定模块,根据当前的网络质量,确定下一组的下载参数;
38.下载模块,采用确定出的所述下载参数对下一组中的各数据分片进行下载,直到所述待下载数据中包含的所有数据分片下载完成。
39.本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述空中下载方法。
40.本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述空中下载方法。
41.本说明书采用的上述至少一个技术方案能够达到以下有益效果:
42.在本说明书提供的空中下载方法中,在开始下载前根据待下载数据的信息将确定待下载数据中包含的各数据分片,并对各数据分片进行分组;开始下载后,将当前下载的数据分片所在的组确定为当前组,记录当前组中各数据分片在下载过程中的下载状态信息,根据下载状态信息确定当前的网络质量,根据当前的网络质量确定下一组的下载参数;随后,采用确定出的下载参数对下一组中的数据分片进行下载,直到所有数据分片下载完成。本说明书提供的空中下载方法根据当前的网络质量动态地调整下载下一组数据分片时的下载参数,防止设备在网络质量较差的情况下进行多次数据重传,从而减少了流量浪费,同时减轻设备电池的损耗,对设备的电池形成一定的保护。
附图说明
43.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
44.图1为本说明书中一种空中下载方法的流程示意图;
45.图2为本说明书中网络质量较差时下载情况示意图;
46.图3为本说明书中网络质量较优时下载情况示意图;
47.图4为本说明书提供的一种空中下载装置的示意图;
48.图5为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
49.在现有的空中下载技术中,相比于全量更新,分片下载虽然已经能够减少流量的浪费,但下载方式仍然不够灵活。目前,分片下载技术下载每一个数据分片之间的时间间隔通常是固定的,即在整个下载过程中,会采用相同的时间间隔来下载每一个数据分片。其中,下载时间间隔不仅指一个数据分片下载成功后,另一个数据分片开始下载之前的时间间隔,还表示一个数据分片下载失败,重新开始下载前等待的时间间隔。
50.如果在网络质量较差的环境下进行分片下载的话,由于数据重传的存在,固定的下载时间间隔会带来非常大的弊端。一方面,在网络质量较差时,很有可能会不停地进行数据重传,在此期间进行网络交互与数据下载所消耗掉的流量依然是完全浪费的;另一方面,每当发生数据重传时,设备都要重新向服务器请求下载,而这种网络交互的耗电量极大,数据重传的次数越多,对设备电池寿命的损耗也就越大。
51.为了解决上述问题,本方案提出了一种能够动态规划下载时间间隔的空中下载方法。
52.以下结合附图,详细说明本说明书各实施例提供的技术方案。
53.图1为本说明书中一种空中下载方法的流程示意图,具体包括以下步骤:
54.s100:获取待下载数据的信息。
55.本说明书所提供的空中下载方法中的所有步骤均可由任何具有计算功能的无人设备或电子设备来实现,所述无人设备可以是无人机、无人车等设备,所述电子设备可以是终端或无人车上的可用于下载的硬件,其中,无人车可包括但不限于用于配送服务的无人
车、用于勘探或巡逻的无人车等。
56.对于任何下载方法来说,在开始下载之前获取需要下载的待下载数据的信息都是必不可少的。其中,待下载数据的信息可以包括待下载数据的类型、大小、长度等信息。
57.s102:根据所述待下载数据的信息,确定所述待下载数据中包含的各数据分片。
58.根据待下载数据的信息对待下载数据进行分片的方法有许多种,例如,可将每指定长度的数据作为一个数据分片,也可将待下载数据平均分为指定数量个长度相等的数据分片。
59.在此步骤中,既可以由执行此步骤的设备自行对待下载数据进行分片,也可以由服务器预先对待下载数据进行分片。当由执行此步骤的设备对待下载数据进行分片时,可根据待下载数据的信息按上述方法对待下载数据进行分片;当由服务器预先对待下载数据进行分片时,可由服务器按上述方法对待下载数据进行分片,此时待下载数据的信息中还可包含待下载数据的分片信息。
60.s104:对各数据分片进行分组。
61.为了能够在后续更好地调整数据分片的下载参数,可对各数据分片进行分组,并在后续步骤中以组为单位对下载参数进行调整。其中,每组包含的数据分片的数量可以根据需求进行设定,并且每组包含的数据分片的数量可以相同,也可以不同。
62.s106:确定当前下载的数据分片所在的组,作为当前组,记录所述当前组中各数据分片在下载过程中的下载状态信息。
63.在完成对数据分片的分组后,可以组为单位对数据分片的下载状态信息进行记录,为了便于理解与说明,将当前正在下载的数据分片所在的组确定为当前组,将当前组中各数据分片在下载过程中的下载状态信息记录在一起,以便在后续步骤中使用。
64.s108:根据所述当前组中各数据分片的下载状态信息,确定当前的网络质量。
65.通常情况下,数据分片的下载状态信息可以较为直观地反应出当前的网络质量,若前的网络质量良好,则当前组中各数据分片的下载状态也应较好,反之,若当前的网络质量较差,那么当前组中各数据分片的下载状态也很可能较差。因此,可根据当前组中个数据分片的下载状态信息来较为准确地判断当前的网络质量。
66.s110:根据当前的网络质量,确定下一组的下载参数。
67.可以根据当前的网络质量实时确定下一组的下载参数,由此来实现在不同网络质量下动态地规划下载参数。根据当前的网络质量确定下一组的下载参数的方法也有很多种,例如,可通过网络质量表征值来表示当前的网络质量,并预先设定出网络质量表征值与下载参数的对应关系,每个不同的网络质量表征值都存在一个对应的下载参数,根据网络质量表征值与预先设定的对应关系,即可直接查找到对应的下载参数,作为下一组的下载参数。
68.s112:采用确定出的所述下载参数对下一组中的各数据分片进行下载,直到所述待下载数据中包含的所有数据分片下载完成。
69.在步骤s110中得到下一组的下载参数后,即可采用下一组的下载参数对下一组的数据分片进行下载。值得一提的是,在对下一组数据分片进行下载时,可回到步骤s106,并重新执行步骤s106~s112,直到待下载数据中包含的所有数据分片都下载完成后,结束本次下载。
70.本说明书提供的空中下载方法在对待下载数据进行分片下载的基础上,将数据分片进行分组,通过实时记录当前组数据分片的下载状态信息,来实时更新当前的网络质量,并根据当前的网络质量来确定下一组的下载参数,采用确定出的下一组的下载参数来对下一组数据分片进行下载。采用本方法对待下载数据进行下载时,可根据网络质量来动态调整每一组数据分片的下载参数,大幅减少了网络质量不佳时造成的流量浪费,同时有效减轻了设备的电池损耗,对设备起到一定程度的保护作用。
71.在本说明书提供的空中下载方法中,下载状态信息可包括多种不同的信息,具体的,下载状态信息可包括数据分片下载成功的次数、数据分片重传次数、数据分片下载总次数、天线信号质量等信息。其中,数据分片下载成功的次数指每一组中下载成功的数据分片的个数;数据分片重传次数指在下载发生中断后重新开始下载的次数;天线信号质量可通过多种方法获取,例如根据测量得到的天线接收到的信号的功率或信号强度,得到天线信号质量。需要说明的是,每个数据分片的重传次数存在上限,此上限可根据对下载的具体要求进行设定,当一个数据分片的重传次数达到上限后,仍未完成对该数据分片的下载,则认为该数据分片下载失败,在本次下载中取消对该数据分片的下载。
72.在步骤s108中,确定当前的网络质量的方法可以有多种,具体的,当下载状态信息包括数据分片下载成功的次数、数据分片重传次数、数据分片下载总次数、天线信号质量等信息时,可按照网络质量与数据分片下载成功的次数正相关、与数据分片重传次数负相关、数据分片下载总次数负相关、天线信号质量正相关的方式来确定网络质量。
73.更进一步的,可将数据分片下载成功的次数与数据分片重传次数之间的比值确定为第一比值,将数据分片下载成功的次数与数据分片下载总次数之间的比值确定为第二比值,按当前的网络质量与第一比值正相关、与第二比值正相关、与天线信号质量正相关的方式来确定当前的网络质量。具体公式可如下:
74.δ=csq*f(dns/(dnt*retry))
75.其中,δ表示当前的网络质量,csq表示天线信号质量,dns表示数据分片下载成功的次数,dnt表示数据分片下载总次数,retry表示数据分片重传次数;f(x)可表示任一个与x正相关的函数,即x的值越大,f(x)的值越大,在此公式中可理解为dns/(dnt*retry)的值越大,f(dns/(dnt*retry))的值就越大。
76.有时,可能会出现网络质量不稳定,时好时坏的情况,在这种情况下,仅凭下载一组数据分片的下载状态信息得到的网络质量可信度并不是很高,因此,可额外统计指定数量组的下载状态信息,并根据多组数据分片的下载状态信息来确定当前的网络质量,具体的,可根据所述当前组中各数据分片的下载状态信息以及在当前组之前下载的指定数量的组中各数据分片的下载状态信息,确定当前的网络质量;其中,指定数量可根据具体要求进行设定。具体公式如下:
[0077][0078]
其中,n表示指定数量的值,i表示第i组,其中,当i=0时,即第0组为当前组;此时的f(x)仍可表示任一个与x正相关的函数,即x的值越大,f(x)的值越大,但由于存在多组网络质量,因此需要在f(x)内对每个网络质量进行对应的调整,例如,可在原本的f(x)加入随
i变化的权重,i越小,权重越大,即完成下载的时间越靠近当前时刻的组的网络质量所占的权重越大。由此,即可较为合理地根据多组数据分片的下载状态信息确定当前的网络质量。
[0079]
在本说明书所提供的空中下载方法中,下载参数可以指组内各数据分片之间的下载时间间隔、不同组之间的下载时间间隔等参数。其中,不同组之间的下载时间间隔具体指该组与该组之后的一组之间的下载时间间隔,例如,对于当前组来说,指当前组与下一组之间的下载时间间隔;对于下一组来说,指下一组与下一组之后的一组之间的下载时间间隔。
[0080]
在步骤s110中,根据当前的网络质量确定下一组的下载参数的方法也有多种,除了步骤s110中提出的根据不同的网络质量表征值和预先设定的对应关系直接确定对应的下载参数外,还可以根据当前组的下载参数对下一组的下载参数进行调整,具体的,当下一组的下载参数为下一组内各数据分片之间的下载时间间隔以及下一组和下一组之后的一组之间的下载时间间隔时,若当前网络质量大于或等于指定阈值时,可将当前组的下载参数进行减小,作为下一组数据的下载参数;若当前网络质量小于指定阈值时,可将当前组的下载参数进行增大,作为下一组数据的下载参数。
[0081]
其中,对当前组的下载参数进行增大或减小的方法可根据不同的需求进行不同的设置,本说明书在此给出一种以加性增大,乘性减小为基础的方法作为具体实施例。在当前网络质量大于或等于指定阈值时,可认为当前网络质量良好,因此可减小下载时间间隔,具体的,可根据当前网络质量确定指定比例,其中,指定比例不大于1,将当前组各数据分片之间的下载时间间隔与指定比例的乘积作为下一组各数据分片之间的下载时间间隔,将当前组与下一组之间的下载时间间隔与指定比例的乘积作为下一组与下一组之后的一组之间的下载时间间隔。具体可按如下公式进行计算:
[0082]
t
dcal
=β(δ)*t
cal
[0083]
其中,t
dcal
表示减小后,即下一组各数据分片之间的下载时间间隔和下一组与下一组之后的一组之间的下载时间间隔,t
cal
表示当前组各数据分片之间的下载时间间隔和当前组与下一组之间的下载时间间隔,δ表示网络质量,β(δ)表示根据网络质量得到的指定比例。
[0084]
相反的,在当前网络质量小于指定阈值时,可认为当前网络质量较差,因此可增大下载时间间隔,具体的,可根据当前网络质量确定指定步长,其中,指定步长大0,将当前组各数据分片之间的下载间隔与指定步长的和值作为下一组各数据分片之间的下载间隔,将当前组与下一组之间的下载间隔与指定步长的和值作为下一组与下一组之后的一组之间的下载间隔。具体可按如下公式进行计算:
[0085]
t
ical
=α(δ)+t
cal
[0086]
其中,t
ical
表示增大后,即下一组各数据分片之间的下载时间间隔和下一组与下一组之后的一组之间的下载时间间隔,t
cal
表示当前组各数据分片之间的下载时间间隔和当前组与下一组之间的下载时间间隔,δ表示网络质量,α(δ)表示根据网络质量得到的指定步长。
[0087]
在上述方法中,可以采用任意方法根据网络质量确定指定比例和指定步长,本说明书在此不做限制。值得一提的是,组内各数据分片之间的下载时间间隔以及每个组之间的下载时间间隔都是存在最大值与最小值的。当组内各数据分片之间的下载时间间隔以及每个组之间的下载时间间隔已经达到最大值,即时当前网络质量再差,也不会再对组内各
数据分片之间的下载时间间隔以及每个组之间的下载时间间隔进行增大;反之亦如此,当组内各数据分片之间的下载时间间隔以及每个组之间的下载时间间隔已经达到最小值时,即时当前网络质量再好,也不会再对组内各数据分片之间的下载时间间隔以及每个组之间的下载时间间隔进行减小。
[0088]
正如背景技术中提到的,当网络质量较差时,很可能会发生网络断线的情况,导致数据重传。若此时各组组内各数据分片之间的下载时间间隔以及每一组之间的下载时间间隔较小,会在下载过程中非常频繁地发生数据重传,造成大量的数据浪费,同时会造成设备频繁地进行网络交互,使设备电池受到严重的损耗。而采用上述方法即可有效解决这些问题。而当网络质量较好时,可自动减少组内各数据分片的下载时间间隔以及每一组之间的下载时间间隔,从而使设备在网络质量良好时快速完成下载;而当当网络质量较差时,可自动将组内各数据分片的下载时间间隔以及每一组之间的下载时间间隔上调,减少数据重传的次数,以达到减少流量浪费以及减轻设备电池损耗的效果。
[0089]
图2和图3给出了一般情况下采用本说明书所提供的空中下载方法进行下载时,下载情况的示意图,其中,图2为网络质量较差时,下载情况的示意图;图3为网络质量较优时,下载情况的示意图。
[0090]
图2给出了网络质量较差时的下载情况示意图,其中矩形表示数据分片,t1表示单组内各数据分片之间的下载时间间隔,t2表示每个组之间的下载时间间隔,在此示例中以每3个数据分片为一组进行下载。可以看出,图中第一组、第二组、第三组各数据分片之间的下载时间间隔越来越大,而第二组与第三组之间的下载时间间隔也比第一组与第二组之间的下载时间间隔更大,即,当网络质量较差时,设备会将每组内各数据分片之间的下载时间间隔与每个组之间的下载时间间隔不断增大,以减少发生数据重传的次数。
[0091]
图2给出了网络质量较优时的下载情况示意图,其中矩形表示数据分片,t1表示单组内各数据分片之间的下载时间间隔,t2表示每个组之间的下载时间间隔,在此示例中以每3个数据分片为一组进行下载。可以看出,图中第一组、第二组、第三组各数据分片之间的下载时间间隔越来越小,而第二组与第三组之间的下载时间间隔也比第一组与第二组之间的下载时间间隔更小,即,当网络质量较差优,设备会将每组内各数据分片之间的下载时间间隔与每个组之间的下载时间间隔不断减小,以加快下载的进度,使设备在网络质量较优时尽量完成对更多数据分片的下载。
[0092]
以上是本说明书提供的空中下载方法,基于同样的思路,本说明书还提供了相应的空中下载装置,如图4所示。
[0093]
图4为本说明书提供的一种空中下载装置示意图,具体包括:
[0094]
获取模块200,获取待下载数据的信息;
[0095]
数据分片确定模块202,根据所述待下载数据的信息,确定所述待下载数据中包含的各数据分片;
[0096]
分组模块204,对各数据分片进行分组;
[0097]
记录模块206,确定当前下载的数据分片所在的组,作为当前组,记录所述当前组中各数据分片在下载过程中的下载状态信息;
[0098]
网络质量确定模块208,根据所述当前组中各数据分片的下载状态信息,确定当前的网络质量;
[0099]
下载参数确定模块210,根据当前的网络质量,确定下一组的下载参数;
[0100]
下载模块212,采用确定出的所述下载参数对下一组中的各数据分片进行下载,直到所述待下载数据中包含的所有数据分片下载完成。
[0101]
在一可选的实施例:
[0102]
所述下载状态信息包括数据分片下载成功的次数、数据分片重传次数、数据分片下载总次数、天线信号质量中的至少一种。
[0103]
在一可选的实施例:
[0104]
当前的网络质量与第一比值正相关,所述第一比值为所述数据分片下载成功的次数与所述数据分片重传次数之间的比值;当前的网络质量与第二比值正相关,所述第二比值为所述数据分片下载成功的次数与所述数据分片下载总次数之间的比值;当前的网络质量与所述天线信号质量正相关。
[0105]
在一可选的实施例:
[0106]
所述网络质量确定模块208,具体用于根据所述当前组中各数据分片的下载状态信息以及在所述当前组之前下载的指定数量的组中各数据分片的下载状态信息,确定当前的网络质量。
[0107]
在一可选的实施例:
[0108]
所述下一组的下载参数包括下一组中各数据分片之间的下载时间间隔、不同组之间的下载时间间隔中的至少一种。
[0109]
在一可选的实施例:
[0110]
所述下载参数确定模块210,具体用于当前网络质量大于或等于指定阈值时,将所述当前组的下载参数进行减小,作为下一组数据的下载参数;当前网络质量小于指定阈值时,将所述当前组的下载参数进行增大,作为下一组数据的下载参数。
[0111]
在一可选的实施例:
[0112]
所述下载参数确定模块210,具体用于当前网络质量大于或等于指定阈值时,根据当前网络质量确定指定比例,所述指定比例不大于1,将所述当前组的下载参数与所述指定比例的乘积作为下一组的下载参数;当前网络质量小于指定阈值时,根据当前网络质量确定指定步长,所述指定步长大于0,将所述当前组的下载参数与所述指定步长的和值作为下一组的下载参数。
[0113]
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的空中下载方法。
[0114]
本说明书还提供了图5所示的电子设备的示意结构图。如图5所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的空中下载方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0115]
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。
设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0116]
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0117]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0118]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0119]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0120]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0121]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0122]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0123]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0124]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0125]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0126]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0127]
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0128]
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、
组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0129]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0130]
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1