发明内容
本说明书实施例提供物联网设备联网方法、装置及设备,用于解决如下问题:需要更便利的物联网设备连接服务端的方案。
基于此,本说明书实施例提供一种关于物联网设备的信息交互方法,包括:
获取用户信息和物联网设备的标识信息;
发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证;
接收服务端返回的认证信息;
生成并发送携带所述认证信息的数据包,以便所述物联网设备从所述数据包获取所述认证信息用于连接服务端。
同时,本说明书实施例还提供另一种关于物联网设备的信息交互方法,包括:
接收客户端所发送的用户信息和物联网设备的标识信息;
对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息并返回所述客户端。
同时,本说明书实施例还提供再一种关于物联网设备的信息交互方法,包括
获取客户端发送的携带认证信息的数据包,以及获取目标网络信息;
根据所述目标网络信息进行网络配置,以接入所述目标网络;
根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
对应的,本说明书实施例还提供一种关于物联网设备的信息交互装置,所述装置包括:
获取模块,获取用户信息和物联网设备的标识信息;
发送模块,发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证;
接收模块,接收服务端返回的认证信息;
生成模块,生成携带所述认证信息的数据包;
所述发送模块还用于,发送所述数据包,以便所述物联网设备从所述数据包获取所述认证信息用于连接服务端。
对应的,本说明书实施例还提供另一种关于物联网设备的信息交互装置,包括:
接收模块,接收客户端所发送的物联网设备的标识信息和用户信息;
认证模块,对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息;
发送模块,发送所述认证信息至客户端。
对应的,本说明书实施例还提供再一种关于物联网设备的信息交互装置,包括:
获取模块,获取客户端发送的携带认证信息的数据包,以及获取目标网络信息;
网络配置模块,根据所述目标网络信息进行网络配置,以接入所述目标网络;
连接模块,根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
本说明书实施例还提供一种关于物联网设备的信息交互设备,包括:
存储器,用于存储物联网设备联网程序;
处理器,调用存储设备中的物联网设备联网程序,并执行:
获取用户信息和物联网设备的标识信息;
发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证;
接收服务端返回的认证信息;
生成并发送携带所述认证信息的数据包,以便所述物联网设备从所述数据包获取所述认证信息用于连接服务端。
同时,本说明书实施例还提供另一种关于物联网设备的信息交互设备,包括:
存储器,用于存储物联网设备联网程序;
处理器,调用存储器中的物联网设备联网程序,并执行:
接收客户端所发送的用户信息和物联网设备的标识信息;
对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息并返回所述客户端。
同时,本说明书实施例还提供再一种关于物联网设备的信息交互设备,所述设备为物联网设备本身,包括:
存储器,用于存储物联网设备联网程序;
处理器,调用存储设备中的物联网设备联网程序,并执行
获取客户端发送的携带认证信息的数据包,以及获取目标网络信息;
根据所述目标网络信息进行网络配置,以接入所述目标网络;
根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
对应的,本说明书实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证;
接收服务端返回的认证信息;
生成并发送携带所述认证信息的数据包,以便所述物联网设备从所述数据包获取所述认证信息用于连接服务端。
对应的,本说明书实施例还提供另一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收客户端所发送的用户信息和物联网设备的标识信息;
对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息并返回所述客户端。
对应的,本说明书实施例还提供另一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取客户端发送的携带认证信息的数据包,以及获取目标网络信息;
根据所述目标网络信息进行网络配置,以接入所述目标网络;
根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
客户端获取物联网设备的标识信息,并将物联网设备的标识信息和用户信息上传服务端,服务端进行设备认证和账号绑定,生成认证信息并下发用户的客户端,客户端将目标网络标识(如无线网络的服务集标识SSID)、密码和该认证信息以数据包为载体在网络中广播,设备通过轮询周围网络,接收数据包,解析获取目标网络标识、密码和认证信息,进而实现从目标网络接入,与服务端建立可信网络连接。
本说明书实施例中,通过客户端上传物联网设备的标识信息和用户信息,服务端绑定并认证,进而,客户端将认证信息传递给物联网设备,实现物联网设备联网,降低了物联网设备配置过程中的交互次数,使得整个配置过程更加简洁,减少用户的操作量,提升用户的使用体验。此外,客户端还可以将目标网络信息和认证信息一次性同时传递给物联网设备,进一步简化了用户的操作。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
基于前述内容,所述的物联网设备通常是物联网智能物品,可包括各种可随身携带的智能物品(例如智能手环、智能手表等等)以及各种智能家居物品等。为保障物联网设备质量及后续服务,物联网设备通常携带唯一对应的标识信息以便识别。为防止冒连,服务端通常事先需要对试图连接它的物联网设备进行认证。
在本说明书实施例中,关于物联网设备的信息交互方案可采用如图1所示的架构,在该架构中,其中的服务端可包括各种集群式、分布式的服务器;其中的网络接入点可包括各种无线接入点(Access Point,AP),比如,路由器、手机热点等。在实际应用中,物联网设备与服务端的交互、客户端与服务端的交互均可通过网络接入点实现,这种交互对于网络接入点而言优选地是一种数据透传过程。
下面将基于如图1所示的架构,详细说明本说明书实施例提供的关于物联网设备的信息交互过程,该过程具体包括以下三方面的步骤:客户端方面,服务端方面,和物联网设备方面,分别进行说明。对于客户端方面,包括以下步骤,如图2所示,图2为本说明书实施例提供的信息交互方案中客户端方面执行步骤的流程示意图:
步骤S201,获取用户信息和物联网设备的标识信息。
所述的用户信息通常可包括用户的账号信息、用户的设备唯一识别码、用户的身份证信息、或者用户的手机号码等等。用户信息可以由客户端从本地终端自动获取,或者,通过用户手动输入至客户端。
所述物联网设备的标识信息通常由服务商事先定义,在实际应用场景中可以有多种具体表现形式,例如:各种字符组合形成的字符串,用户得到可直接输入至客户端;或者,数字对象唯一标识(Digital Object Unique Identifier,DOI),包括各种条码、二维码;或者,可被识别的通信芯片等。
在实际应用中,获取物联网设备的标识信息,可包括以下多种实施方式,列举其中两种:
第一种,利用终端(具体比如,终端上的摄像头或者标签读取器等模块)对物联网设备进行扫描,获取物联网设备的标识信息。例如,当物联网设备携带有DOI、射频识别标签(Radio Frequency Identification,RFID)或者近场通讯(Near Field Communication,NFC)芯片时,可以通过终端的相应模块扫描获取。
第二种,接收用户在客户端上输入的物联网设备的标识信息,例如,物联网设备的标识信息为各种字符组合形成的字符串时,可通过用户调取输入法,将该字符串手动输入至客户端。
步骤S203,发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证。
服务端可采用预设的算法,根据物联网设备的标识信息和用户信息生成认证信息。例如,以某种算法根据物联网设备的标识信息和用户信息生成唯一哈希值,以所述哈希值作为认证信息;再例如,根据物联网设备的标识信息和用户信息生成安全证书作为认证信息;等等。而后发送认证信息至客户端,以便于客户端传递认证信息给物联网设备。
服务端后续可基于认证信息,验证试图连接的物联网设备是否合法。
步骤S205,接收服务端返回的认证信息。
步骤S207,生成并发送携带所述认证信息的数据包,以便所述物联网设备从所述数据包获取所述认证信息用于连接服务端。
所述的数据包可包括:用户数据报协议(User Datagram Protocol,UDP)数据包、传输控制协议(Transmission Control Protocol,TCP)数据包、或者自定义格式的数据包等。
数据包通常包括头部和数据体。以UDP数据包为例,其头部包括源IP地址、目标IP地址、数据包长度以及校验和等字段。尚未配置的物联网设备未必能够解析UDP数据包的数据体内容,但是能够比较迅速地解析UDP数据包的头部内容,基于此,可将认证信息写入UDP数据包的头部,以保证物联网设备通过迅速解析,进而确实获取到认证信息。
例如,UDP数据包的目标IP字段中,正常情形下应写入接收方的IP地址,以实现点对点传输。但在本实施例中,不再写入接收方的IP地址,而是将认证信息写入数据包的目标IP地址字段,以便物联网设备接收并解析该目标IP地址字段的内容,得到认证信息。
对于自定义格式的数据包,还可以预先将支持该自定义格式的协议写入物联网设备的协议栈中,以支持自定义格式数据包解析过程。在这种应用场景中,客户端根据需求将认证信息写入该数据包的头部和/或数据体中。
在实际应用中,单个数据包所能携带的信息量有限。当需要传输的认证信息较长时,可将认证信息拆分后写入数据包的指定字段(例如长度或者目标IP地址),生成多个携带部分认证信息的数据包。
进一步地,客户端可以在所连接的无线网络中的一个或者多个频道,对生成的数据包进行广播。在数据包广播过程中,探测这些频道的物联网设备可接收到该数据包。
在一种具体实施方式下,在生成携带所述认证信息的数据包之前,还可以执行:获取目标网络信息。进而,对于步骤S207,生成携带所述认证信息的数据包,包括:生成携带所述认证信息和目标网络信息的数据包。
所述的目标网络指物联网设备连接服务端时所基于的网络。目标网络可以由用户通过客户端进行指定,也可以由物联网设备基于预设规则自行确定(比如,自动扫描到可用的无密码WiFi网络作为目标网络)。以下各实施例主要基于前一种方式进行说明。
目标网络比如是客户端当前所连接的无线网络,或者是用户指定的另一无线网络等。
目标网络信息一般包括目标网络的身份标识以及密码。对于WiFi网络,该身份标识具体为服务集标识(Service Set Identifier,SSID),即通常所说的WiFi名。当然,目标网络也可能没有密码。
例如,用户终端本身通过WiFi网络M1连接至网络,但是希望购买的某智能家居电器通过WiFi网络M5连接上网,网络M5的密码为000000。在这种场景下,目标网络信息包括目标网络的身份标识M5及其密码000000。
若连接网络M5不需要密码,此时,目标网络信息包括目标网络身份标识M5即可。
目标网络信息的获取方式可包括:客户端从本地获取,或者,由用户预先设定,输入至客户端等。
通过上述方案,客户端可将目标网络信息和认证信息一次性传递给物联网设备,简化了用户的操作。
在一种具体实施方式下,对于步骤S207,生成携带所述认证信息的数据包,可采用如下方法,如图3所示,图3为本说明书实施例提供的数据包生成方法流程示意图:
步骤S301,按照指定数据包字段的格式,对所述认证信息进行格式转换。
数据包字段均有预设的格式,例如UDP数据包中的长度字段为0至255之间的数字。但是对于认证信息而言,其本身未必全都是数字,基于此,需要将认证信息转换为数据包指定字段所能接受的格式,才可写入该字段。
具体地,可以利用一定的规则,将认证信息所对应的字节序列中的每个字节转换为该指定字段可接受的格式,再将转换格式后的认证信息写入所述数据包的长度或者目标IP地址字段。
例如,假定该规则为美国信息交换标准代码(American Standard Code fo rInformation Interchange,ASCII)表。若认证信息为字符串“K2”,为将该认证信息写入UDP数据包的长度字段,则首先需要将“K2”转换为符合格式的数字。查询ASCII表可知,“K2”中包含的字符“K”对应的字节为01001011(二进制),用十进制表示为75,则75即为“K”转换得到的数字;类似地,“K2”中包含的字符“2”所对应的字节为00000010,用十进制数据表示为2,则2即为字符“2”转换得到的数字;因此,“K2”被转换为数字串752。
步骤S303,通过将格式转换后的认证信息写入相应的数据包字段,得到携带所述认证信息的数据包;其中,所以指定数据包字段包括:数据包长度字段和/或目标IP地址字段。
延续前例,若指定位置为长度位置,则可将75写入某个数据包的长度位置,将2写入下一个的数据包的长度位置。并依次发出。
若指定位置为目标IP地址,由于目标IP地址一般的格式为a.b.c.d,其中a、b、c、d均为0至255之间的数字(例如192.168.0.11),在实际应用中,还可采用如下的处理方式:将所述的数字,写入目标IP地址中的指定位置,例如:将数字写入目标IP地址的最后一位。
上面对客户端方面进行了说明,基于同样的思路,本说明书实施例提供的关于物联网设备的信息交互过程,对于服务端方面,如图4所示,图4为本说明书实施例提供的信息交互方案中服务端方面执行步骤的流程示意图,包括以下步骤:
步骤S401,接收客户端所发送的用户信息和物联网设备的标识信息;
步骤S403,对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息并返回所述客户端。
在实际应用场景中,服务端还可以执行:建立并存储所述物联网设备的标识信息和用户信息的绑定关系。例如,以键值对的形式建立所述物联网设备的标识信息和用户信息的一一对应关系,生成绑定记录并存储至服务端本地。
进一步地,可以基于存储的绑定关系,执行相关的物联网业务。
例如,某物联网设备正常联网工作时,可通过其携带的传感器收集信号并上传至服务端,服务端进行信号分析,并根据信号分析结果和存储的绑定关系,向所绑定的用户信息对应的客户端进行反馈。假定该物联网设备为智能手环,服务端接收该智能手环收集并发送的脉搏信号进行分析,发送脉搏信号分析结果至绑定的用户手机号,从而,用户可以随时了解佩戴该智能手环的人员的健康状态。
作为一种具体的实施方式,在所述得到认证信息并返回所述客户端之后,还可以执行:接收所述物联网设备所发送的所述认证信息;基于所述认证信息,与所述物联网设备建立可信网络连接。
具体地,服务端对物联网设备所发送的认证信息进行验证,验证通过后,与物联网设备建立可信网络连接。例如,对于认证信息,若生成后即保存于服务端,则在接收到物联网设备所发送的认证信息后,通过对接收的认证信息与本地存储的认证信息进行匹配,完成验证。又例如,若认证信息并未在服务端保存,可以根据预设的算法(比如,哈希算法等)验证该认证信息是否合法。
在实际应用中,验证认证信息可能只是建立可信网络连接的前提之一,除此之外,可能还要进行其他的信息处理动作,才能够建立可信网络连接。这些动作可能需要物联网设备和/或客户端提供其他信息。
所述的其他信息比如是:物联网设备的标识信息、位置信息等。通过识别物联网设备的标识信息,服务端在验证过程中能够同时识别出物联网设备是什么,并依据绑定关系获得该物联网设备对应的用户信息;类似地,通过获取物联网设备的位置信息,服务端能够对了解物联网设备在哪里,并基于位置执行业务。
上面对服务端方面进行了说明,基于同样的思路,本说明书实施例提供的物联网物品信息交互方法,对于所述的服务端方面,如图5所示,图5为本说明书实施例提供的信息交互方案中物联网设备方面执行步骤的流程示意图,包括如下步骤:
步骤S501,获取客户端发送的携带认证信息的数据包,以及获取目标网络信息。
具体而言,可采用如下实施方式:对多个无线网络信号广播频道进行监听;当监听到客户端发送的携带认证信息的数据包时,获取该数据包。
例如,物联网设备首先获取周围的多个无线网络信号广播频道,然后进行轮询(若只有一个则无需进行轮询),监听各频道中的数据包以确定所述无线网络信号广播频道。当数据包满足预设的条件时,即在当前的无线网络信号广播频道中获取所述的数据包。例如,监听接收到的数据包头部是否含有预设的标记,若有,即确定为所述携带认证信息的数据包,并获取所述数据包。具体的确定条件可以有多种,此处不再一一列举。
对于所述获取目标网络信息,在实际应用场景中,作为一种可实施方式,物联网设备可从周围环境的WiFi网络中自行获取目标网络。例如,物联网设备轮询周围环境的WiFi网络,发现有某个公用WiFi网络不需要密码即可联网,此时,该公用WiFi网络即为所述的目标网络。
作为另一种可实施方式,可通过获取客户端发送的携带认证信息和目标网络信息的数据包,从而获取所述目标网络信息。
例如,用户通过家庭网络WiFi连接网络,并且指定物联网设备也从家庭网络WiFi联网,客户端自行获取所述的家庭网络的WiFi信息作为目标网络信息并写入数据包进行广播。此时,物联网设备可从接收到的数据包中获取目标网络信息(即所述家庭网络的WiFi信息)。
步骤S503,根据所述目标网络信息进行网络配置,以接入所述目标网络。
步骤S505,根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
即在已连接的目标网络中,发送所述认证信息至服务端,服务端验证该认证信息合法后,双方建立可信网络连接。
作为一种具体的实施方式,在所述步骤S503,根据所述目标网络信息进行网络配置之前,还包括:基于预设的规则,对所述数据包的指定字段进行格式转换,获取所述认证信息。
例如,依次查询接收到的数据包的长度字段,获得数字75和2,按照ASCII表进行转换,并依次拼接起来获得认证信息为“K2”。
本说明书实施例中,通过客户端上传物联网设备的标识信息和用户信息,服务端绑定并认证,进而,客户端将认证信息传递给物联网设备,实现物联网设备联网,降低了物联网设备配置过程中的交互次数,使得整个配置过程更加简洁,减少用户的操作量,提升用户的使用体验。此外,客户端还可以将目标网络信息和认证信息一次性同时传递给物联网设备,进一步简化了用户的操作。
基于同样的思路,本说明书实施例还提供一种关于物联网设备的信息交互装置,如图6所示,图6为本说明书实施例提供的客户端方面的信息交互装置结构示意图,包括:
获取模块601,获取用户信息和物联网设备的标识信息;
发送模块603,发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证;
接收模块605,接收服务端返回的认证信息;
生成模块607,生成携带所述认证信息的数据包;
所述发送模块603还用于,发送数据包,以便物联网设备从数据包获取认证信息用于连接服务端。
进一步地,所述获取模块601,通过对物联网设备进行扫描,获取物联网设备的标识信息;或者,接收用户手动输入的物联网设备的标识信息。
进一步地,在生成携带所述认证信息的数据包之前,所述获取模块601还用于,获取目标网络信息;所述生成模块还用于,生成携带认证信息和目标网络信息的数据包。
进一步地,所述生成模块607,按照指定数据包字段的格式,对认证信息进行格式转换;通过将格式转换后的认证信息写入相应的数据包字段,得到携带所述认证信息的数据包;其中,所以指定数据包字段包括:数据包长度字段和/或目标IP地址字段
进一步地,所述发送模块603,通过当前连接的无线网络广播所述数据包。
同时,本说明书实施例还提供一种关于物联网设备的信息交互装置,如图7所示,图7为本说明书实施例提供的服务端方面的信息交互装置结构示意图,包括:
接收模块701,接收客户端所发送的物联网设备的标识信息和用户信息;
认证模块703,对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息;
发送模块705,发送所述认证信息至客户端。
进一步的,所述装置还包括:建立模块707,建立所述物联网设备的标识信息和用户信息的绑定关系,以用于执行涉及所述物联网设备和所述用户信息的物联网业务;存储模块709,存储所述绑定关系。
进一步地,所述得到认证信息并返回所述客户端之后,所述接收模块701,接收所述物联网设备所发送的所述认证信息,基于所述认证信息,与所述物联网设备建立可信网络连接。
同时,本说明书实施例还提供一种关于物联网设备的信息交互装置,如图8所示,图8为本说明书实施例提供的物联网设备方面的信息交互装置结构示意图,包括:
获取模块801,获取客户端发送的携带认证信息的数据包,以及获取目标网络信息;
网络配置模块803,根据所述目标网络信息进行网络配置,以接入所述目标网络;
连接模块805,根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
进一步地,所述获取模块801,获取客户端发送的携带认证信息和目标网络信息的数据包,所述目标网络信息包括客户端当前连接的WiFi网络的信息
进一步地,所述获取模块801,对多个无线网络信号广播频道进行监听,当监听到客户端发送的携带认证信息的数据包时,获取该数据包。
进一步地,所述获取模块801,基于预设的规则,对所述数据包的指定字段进行格式转换,获取所述认证信息。
对应地,本说明书还提供一种关于物联网设备的信息交互设备,包括:
存储器,用于存储物联网设备联网程序;
处理器,调用存储器中的物联网设备联网程序,并执行:
获取用户信息和物联网设备的标识信息;
发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证;
接收服务端返回的认证信息;
生成并发送携带所述认证信息的数据包,以便所述物联网设备从所述数据包获取所述认证信息用于连接服务端。
对应地,本说明书还提供另一种关于物联网设备的信息交互设备,所述设备包括:
存储器,用于存储物联网设备联网程序;
处理器,调用存储器中的物联网设备联网程序,并执行:
接收客户端所发送的用户信息和物联网设备的标识信息;
对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息并返回所述客户端。
对应地,本说明书还提供再一种关于物联网设备的信息交互设备,所述设备为物联网物品本身,包括:
存储器,用于存储物联网设备联网程序;
处理器,调用存储器中的物联网设备联网程序,并执行
获取客户端发送的携带认证信息的数据包,以及获取目标网络信息;
根据所述目标网络信息进行网络配置,以接入所述目标网络;
根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
基于同样的思路,本说明书实施例还提供一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
发送所述用户信息和物联网设备的标识信息至服务端,以便服务端认证;
接收服务端返回的认证信息;
生成并发送携带所述认证信息的数据包,以便所述物联网设备从所述数据包获取所述认证信息用于连接服务端。
对应的,本说明书实施例还提供另一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
接收客户端所发送的用户信息和物联网设备的标识信息;
对所述用户信息和/或物联网设备的标识信息进行认证,得到认证信息并返回所述客户端。
对应的,本说明书实施例还提供再一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取客户端发送的携带认证信息的数据包,以及获取目标网络信息;
根据所述目标网络信息进行网络配置,以接入所述目标网络;
根据所述认证信息和已接入的所述目标网络,与服务端建立可信网络连接。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可,这里就不再一一赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤或模块可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信编号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书中一个或多个的实施例可提供为方法、***或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书实施例而已,并不用于限制本申请。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利范围之中。