用于网络层的数据处理方法

文档序号:7634522阅读:357来源:国知局
专利名称:用于网络层的数据处理方法
技术领域
本发明涉及一种数据处理方法,更具体地讲,是涉及一种在使用生活网络控制协议的家庭网络系统中的用于网络层的数据处理方法。
背景技术
家庭网络连接各种数字家庭设备,使得用户在室内或户外都能够一直享受到便捷、安全以及经济的生活服务。由于数字信号处理技术的发展,家庭设备操作系统技术以及高速多媒体通信技术已经被集成在数字家庭设备上,因此被称为白色家庭设备的电冰箱或洗衣机已经被逐步地数字化,并且已经开发出了新的信息家庭设备,用以改进家庭网络。
如表1中所示,家庭网络按照服务类型被分为数据网络,娱乐网络以及生活网络。
表1

这里,建立数据网络,用以在PC与外围装置之间交换数据或者提供互联网服务,并且在使用音频或视频信息的家庭设备之间建立娱乐网络。另外,建立生活网络仅仅是用于控制家庭设备,例如家庭自动化或远程仪表读数。
传统的家庭网络系统包括一个主装置,该主装置是电子装置,用于控制其他电子装置的操作或者监视其状态,以及一个从装置,该从装置也是一个电子装置,它的功能就是响应主装置的请求以及根据电子装置的特性或其他因素来通知状态变化。典型的电子装置包括用于生活网络服务的家庭设备例如洗衣机和电冰箱,用于数据网络服务以及娱乐网络服务的家庭设备,以及产品例如燃气阀控制装置,自动门装置以及电灯。
但是,传统技术没有提出一个通用的通信标准,用于提供对家庭网络系统中的电子装置进行控制和监视的功能。还有,传统技术家庭网络系统中的网络协议也没有提出一个有效的方法,用于发送以及接收信息包。

发明内容
本发明可解决上述问题。本发明的目的是提供一种使用控制协议的数据处理方法,所述的控制协议是一种用于为家庭网络系统中的电子装置提供控制和监视功能的通用通信标准。
本发明的另一个目的是提供一种使用生活网络协议作为通用通信标准的数据处理方法。
本发明的另一个目的提供一种用于网络层的数据处理方法,其通过在特定情况下重发数据的而具备高数据传输效率的特征。
本发明的另一个目的提供一种用于网络层的数据处理方法,通过其可使信息包从应用层传输至数据链路层。
本发明的另一个目的提供一种用于网络层的数据处理方法,通过其可使响应信息包或者通知信息包在主装置中从数据链路层传输至应用层。
本发明的另一个目的提供一种用于网络层的数据处理方法,通过其可使请求信息包在从装置中从数据链路层传输至应用层。
本发明的另一个目的提供一种用于网络层的数据处理方法,其用于通过搜索对应于已接收信息包的通信周期说明检查复制信息包。
本发明的另一个目的提供一种用于网络层的数据处理方法,通过其可使响应信息包在从装置中从应用层传输至数据链路层。
本发明的另一个目的提供一种用于网络层的数据处理方法,其通过完成对应于先期接收的请求信息包的通信周期说明而执行响应信息包传输。
为达到本发明的上述目标,本发明提供一种基于包含至少一个物理层,一个数据链路层,一个网络层以及一个应用层的协议的用于网络层的数据处理方法,该方法包含以下几个步骤在应用层协议数据单元(APDU)从应用层接收消息发送原语(MsgSend);根据该消息发送原语(MsgSend),生成通信周期说明;根据该消息发送原语(MsgSend)和/或该通信周期说明,在网络层协议数据单元(NPDU)生成信息包发送原语(PktSend);以及传输该信息包发送原语(PktSend)至数据链路层。


图1是示出根据本发明的家庭网络系统的结构图;图2是示出根据本发明的生活网络控制协议栈的结构图;图3和图4是示出图2中的各层间接口的结构图;图5至图10示出图3和图4中各接口的详细结构图;图11和图12是示出用于在各层间传输号据的原语的结构图;
图13是用于描述根据本发明的第一实施例的数据处理方法的流程图;图14是用于描述根据本发明的第二实施例的数据处理方法的流程图;图15是用于描述根据本发明的第三实施例的数据处理方法的流程图;图16和图17分别示出了主装置与多个从装置进行通信的情况,以及网络层处理连续通信周期的情况;图18是用于描述根据本发明的第四实施例的数据处理方法的流程图;图19是图形化示出了带有复制信息包的第一实施例;图20是用于描述根据本发明的第一实施例的复制信息包检查方法的流程图;图21和22分别示出了带有复制信息包的第二实施例;以及图23是用于描述根据本发明的第二实施例的复制信息包检查方法的流程图。
具体实施例方式
以下讲参考附图对本发明的用于网络层的数据处理方法进行更详细说明。
图1为说明根据本发明的家庭网络系统的结构图。
参看图1,该家庭网络系统1通过互联网2访问LnCP服务器3,并且客户端装置4通过互联网访问LnCP服务器3。也就是说,该家庭网络系统1与LnCP服务器3和/或客户端装置4相连并进行通信。
该家庭网络系统1的外部网络,例如互联网2包括根据客户端装置4种类的附加组成元件。例如,当客户端装置4为计算机时,该互联网2就包括Web服务器(未示出),并且当客户端装置4为互联网电话时,该互联网2就包括Wap服务器(未示出)。
该LnCP服务器3分别根据预定的登陆和退出过程对家庭网络系统1和客户端装置4进行访问,从客户端装置4接收监视和控制命令,并将该命令按照预定类型消息的形式通过互联网2传输给网络系统1。另外,该LnCP服务器3从家庭网络系统1接收预定类型的消息,并将该消息存储和/或传输至客户端装置4。该LnCP服务器3也存储或生成一个消息,并将该消息传输给家庭网络系统1。也就是说,该家庭网络系统1对LnCP服务器3进行访问并下载提供的内容。
该家庭网络系统1包括家庭网关10,用于接入互联网2,网络管理器20-23,用于设置环境以及管理电子装置40-49,LnCP路由器30和31,用于接入在传输介质之间,LnCP适配器35和36,用于将网络管理器22以及电子装置46连接至传输介质,以及多个电子装置40-49。
该家庭网络系统1的网络是通过利用共享传输介质将电子装置40-49连接在一块而形成的。数据链路层使用非标准化传输介质例如RS-485或更小的输出RF,或者标准化的传输介质例如电源线以及IEEE802.11作为传输介质。
该家庭网络系统1的网络与互联网2分离,用于组成一个独立的网络,通过有线或无线传输介质将电子装置连接在一块。这里,该独立的网络包括物理上连接、但逻辑上被分割的网络。
该家庭网络系统1包括主装置,用于控制其他电子装置40-49的操作或者监视其状态,以及从装置,用于响应于主装置的请求并通知它们的状态改变信息。该主装置包括网络管理器20-23,并且从装置包括电子装置40-49。该网络管理器20-23包括被控制电子装置40-49的信息以及控制代码,并根据编程方法或通过接收来自LnCP服务器3和/或客户端装置4的输入来控制电子装置40-49。仍旧参看图1,当连接有多个网络管理器20-23时,每个网络管理器20-23必须都是主装置和从装置,即物理上是一个装置,但逻辑上该装置(混合装置)同时进行主和从功能,以便于与其他网络管理器20-23进行信息交换,数据同步和控制。
另外,该网络管理器20-23以及电子装置40-49可以直接或者通过LnCP路由器30和31和/或LnCP适配器35和36与网络(电源线网络,RS-485网络以及RF网络)相连。
该电子装置40-49和/或LnCP路由器30和31和/或LnCP适配器35和36被登记在网络管理器20-23中,并且由产品提供内在逻辑地址(例如0x00,0x00等)。该逻辑地址与产品代码(例如空调0x02,洗衣机0x01)组合在一块,并被用作节点地址。例如,用节点地址例如0x0200(空调1)和0x0201(空调2)对电子装置40-49和/或LnCP路由器30和31和/或LnCP适配器35和36进行标识。根据预定的标准(全部相同的产品,产品的安装空间,用户等),一次可以使用一组地址,用于标识至少一个电子装置40-49和/或至少一个LnCP路由器30和31和/或至少一个LnCP适配器35和36。在该组地址中,显式组地址是一个簇,用于通过将地址选项值(将在下面提到的标记)设置为1来指定多个装置,隐式组地址通过将逻辑地址和/或产品代码的全部位值都添上1来指定多个装置。特别地,该隐式组地址被称为簇代码。
图2为说明根据本发明的生活网络控制协议堆栈的结构图。该家庭网络系统1使得网络管理器20-23,LnCP路由器30和31,LnCP适配器35和36以及电子装置40-49根据图2的生活网络控制协议(LnCP)彼此相互通信。因此,网络管理器20-23,LnCP路由器30和31,LnCP适配器35和36以及电子装置40-49根据该LnCP进行网络通信。
如图2中所示,该LnCP包括应用软件50,用于执行网络管理器20-23,LnCP路由器30和31,LnCP适配器35和36以及电子装置40-49的内部功能,并提供与应用层60的接口功能,用于远程控制和监视该网络,应用层60,用于向用户提供服务,并且还提供一个功能,用于以消息的形式从用户形成信息或命令并将该消息传输至下层,网络层70,用于可靠地将网络管理器20-23,LnCP路由器30和31,LnCP适配器35和36以及电子装置40-49网络连接在一块,数据链路层80,用于提供对共享传输介质进行访问的介质访问控制功能,物理层90,用于提供网络管理器20-23,LnCP路由器30和31,LnCP适配器35和36以及电子装置40-49之间的物理接口,以及被传输位的规则,以及参数管理层100,用于设置和管理在每层中使用的节点参数。
更详细地,该应用软件50进一步包括网络管理子层51,用于管理节点参数,以及对网络进行访问的网络管理器20-23,LnCP路由器30和31,LnCP适配器35和36以及电子装置40-49。也就是说,该网络管理子层51执行参数管理功能,用于通过参数管理层100设置或使用节点参数值,以及网络管理功能,用于当使用LnCP的装置为主装置时组成或管理该网络。
当网络管理器20-23,LnCP路由器30和31,LnCP适配器35和36以及电子装置40-49访问的网络是一个非独立传输介质例如电源线,IEEE 802.11以及无线(例如,当LnCP包括PLC协议和/或无线协议时)时,该网络层70还包括家庭代码控制子层71,用于设置、管理以及处理家庭代码,以在逻辑上划分每个单独的网络。当通过独立的传输介质例如RS-485在物理上划分单独的网络时,该家庭代码控制子层71并不包括在LnCP中。每个家庭代码都由64个字节组成,并且被设置作为用户的随机值或指定值。
图3和4分别为说明图2的各层之间的接口的结构图。
图3说明了当物理层90与非独立传输介质相连时各层之间的接口,图4说明了当物理层90与独立传输介质相连时各层之间的接口。
该家庭网络系统1将每层需要的报头和报尾加给来自上层的协议数据单元(PDU),并将它们传输给下层。
如图3和4所示,应用层PDU(APDU)就是在应用层60与网络层70之间传输的数据,网络层PDU(NPDU)就是在网络层70与数据链路层80或家庭代码控制子层71之间传输的数据,并且家庭代码控制子层PDU(HCNPDU)就是在网络层70(准确的说,家庭代码控制子层71)与数据链路层80之间传输的数据。在数据链路层80与物理层90之间的数据帧单元中形成该接口。
图5-10分别为说明图3和4的接口的详细结构图。
图5说明了应用层60中的APDU结构。
APDU长度(AL)字段示出了APDU的长度(从AL到消息字段的长度),并最小值为4,最大值为77。
APDU报头长度(AHL)字段示出了APDU报头的长度(从AL到AL0的长度),成功地具有3个字节并且可扩展至7个字节。在LnCP中,该APDU报头可以被扩展至7个字节,用于对消息字段进行编码以及改变应用协议。
应用层选项(ALO)字段扩展了消息集。例如,当ALO字段被设置为0时,如果ALO字段中含有不同值,则消息处理就被忽略掉。
消息字段对来自用户的控制消息或事件信息进行处理,并根据ALO字段的数值而被改变。
图6说明了网络层70中的NPDU结构,并且图7说明了NPDU的详细NLC结构。
LnCP信息包开始(SLP)字段表示信息包的开始,并且具有数值0x02。
目标地址(DA)和源地址(SA)字段分别为信息包的接收者和发送者的节点地址,并都是16位。最高有效1位包括一个标记,该标记表示组地址,随后的7位包括一种产品(产品代码),并且较低的8位包括逻辑地址,用于区分相同种类的多个网络管理器20-23以及相同种类的多个电子装置40-49。信息包长度(PL)字段示出了将要被传送的NPDU的整个长度,并且它的初始长度为15个字节,最大长度为120个字节。
服务优先权(SP)字段给出了传输消息的传输优先权并具有3位。表2示出了每个传输消息的优先权。
当从装置响应于主装置的请求时,该从装置从主装置获取请求消息的优先权。
表2

NPDU报头长度(NHL)字段扩展了NPDU报头(SLP的NLC字段),成功地具有9个字节,并且可扩展至最大值17个字节。
协议版本(PV)字段表示被采用的协议版本,并且其长度为1个字节。较高的4位示出了版本,并且较低的4位示出了子版本。版本和子版本分别使用HEX来表示它们的数值。
网络层信息包类型(NPT)字段为4位字段,用于区分网络层70中的一种信息包。该LnCP包括请求信息包,响应信息包,以及通知信息包。主装置的NPT字段必须被设置为请求信息包或通知信息包,从装置的NPT字段必须被设置为响应信息包或通知信息包。表3根据信息包的种类示出了NPT数值。
表3

传输计数器(TC)字段为2位字段,当网络层70中出现了通信错误,使其无法准确地传送请求信息包或响应信息包时,为了加强通知信息包的传输成功率,重新传输请求信息包或重复地传送通知信息包。表4根据NPT数值示出了TC字段的数值范围。
表4

信息包号(PN)字段由2个字节组成,其与TC一块使用,用于检测从装置中的复制信息包,并且被用于处理主装置中的多个通信周期。图5根据NPT数值示出了PN字段的数值范围。
表5

APDU字段为在应用层60和网络层70之间传输的应用层60的协议数据单元。该APDU字段的最小值为0字节,最大值为88个字节。
循环冗余检验(CRC)字段为16位字段,用于检查已接收的信息包(从SLP到APDU)的错误。
LnCP信息包结束(ELP)字段为信息包的末端,其数值为0x03。如果没有检测到该ELP字段,即使接收到的数据的字节长度与信息包的长度字段的数值相同,该信息包也将被认为是一个错误信息包。
图8说明了家庭代码控制子层71中的HCNPDU结构。
如图8中所示,家庭代码(HC)字段被加到NPDU的上部。
该家庭代码由4个字节组成,并且在信息包能够被传输的线路长度中具有唯一的数值。
图9说明了数据链路层80中的帧结构。
根据传输介质改变LnCP的数据链路层帧的报头和报尾结构。当数据链路层80使用非标准化传输介质时,该帧的报头和报尾必须为空字段,并且当数据链路层80使用标准化传输介质时,该帧的报头和报尾按照如协议所描述的形成。当物理层90为非独立的传输介质例如电源线IEEE 802.11时,NPDU字段为从上面的网络层70传输的数据单元,并且HCNPDU为通过将家庭代码的4个字节加到NPDU的前部而得到的数据单元。该数据链路层80按照相同的方式处理NPDU以及HCNPDU。
图10说明了物理层90中的帧结构。
该LnCP的物理层90的功能就是传输和接收物理信号至传输介质。该数据链路层80可以使用非标准化传输介质例如RS-482或更小的输出RF或者标准化的传输介质例如电源线或IEEE 802.11作为LnCP的物理层90。使用LnCP的家庭网络系统1采用通用异步收发器(UART)帧结构和RS-232信号电平,使得网络管理器20-23以及电子装置40-49能够与RS-485,LnCP路由器30和31或LnCP适配器35和36连接。当UART使用串行总线连接在装置之间时,该UART控制通信线路上的位信号流。在LnCP中,来自上层的信息包被转化为如图10所示的10位UART帧单元,并通过传输介质进行传输。该UART包括1位的开始位,8位的数据位,以及1位的结束位,没有任何校验位。首先传输该开始位,接着传输号据位和结束位。当使用LnCP的家庭网络系统1采用了UART时,它就不具有额外的帧报头和帧报尾。下面将对在前面的层中使用的节点参数进行说明。
下面提到的节点参数的数据类型相当于表6的少数几个数据类型之一。
表6

所述的网络层70执行以下功能。
首先,该网络层执行地址管理功能,即存储其地址,以及存储目的网络管理器20至23或者目的电子装置40至49的地址。这里,该网络层70可以通过包含在所述的地址中的网络管理器20至23的或者电子装置40至49的信息以及位置信息,指定簇地址,并支持组播和广播通信。
第二,该网络层70执行流控制功能,即管理通信周期,以及控制信息包流。
第三,该网络层70执行错误控制功能。也就是说,当该网络层70在设定时间内未收到响应信息包时,该网络层70重试数据。重试的最大计数值是3。
第四,该网络层70执行处理控制功能,即通过检查复制信息包,阻止同一消息的重复处理,以及控制同时的通信周期。
第五,该网络层70执行路由控制功能,即在至少两个独立传输介质间传输信息包,并且控制信息包流以阻止在LnCP路由器30和31以及LnCP适配器35和36间的无限循环。
该网络层70提供通信周期单元中的服务。该通信周期单元划分为{1-请求,1-响应},{1-请求,多响应},{1-通知}以及{重复-通知}。
在{1-请求,1-响应}通信周期,一个主装置传输一个请求信息包至一个从装置,并且该从装置传输一个响应信息包至该主装置作为响应。
在{1-请求,多响应}通信周期,一个主装置传输一个请求信息包至多个从装置,并且每个从装置依照顺序传输响应信息包至该请求信息包。
在{1-通知}通信周期,(主或从)装置传输一个通知信息包至一个或者多个(主或从)装置,并直接结束通信。
在{重复通知}通信周期,为了获得{1-通知}通信周期的传输稳定性,而重复传输同一个信息包并结束通信。
表7A显示了上述的通信周期,信息包类型以及传输服务(或者网络层服务)之间的关系。
表7A

表7B示出了在网络层70中使用的节点参数值。
表7B

图11和图12示出了原语的结构图,所述的原语用于传输在各层间的交换的数据。
图11示出了主装置的各层之间的原语的传输。
如图11所示,在应用软件50和应用层60之间的原语包括UserReq,UserDLReq,UserULReq,ALCompleted,UserRes以及UserEventRcv。以下会进一步解释这些原语。
如图所示,应用层60和网络层70之间的原语包括ReqMsgSend,NLCompleted以及MsgRev。
所述的请求消息发送原语ReqMsgSend是用于从主装置的应用层60传输消息至网络层70的原语,并包含表8A中各构成部分。
表8A

在这里,通过将应用服务代码ALSvcCode和接收器装置的节点地址进行组合而形成通信周期标识符CycleID。
所述的消息接收原语MsgRcv是用于从主装置的网络层70传输信息包至应用层60的原语,并包含表8B中的各构成部分。
表8B

以后会解释通信周期标识符CycleID的结构。
网络层完成原语NLCompleted是用于从网络层将信息包处理状态通知至应用层60的原语,并包括表8C中的构成部分。
表8C

如图11所示,网络层70和数据链路层80之间的原语包括PktSend,PktRcv,和DLLCompleted。
所述的信息包发送原语PktSend是用于从网路层70发送信息包至数据链路层80的原语,并包括表9A中的构成部分。
表9A

信息包接收原语PktRcv是用于从数据链路层80传输信息包至网络层70的原语,并包括表9B中的构成部分。
表9B

数据链路层完成原语DLLCompleted是从数据链路层80通知数据传输结果至网络层70的原语,并包括表9C中的构成部分。
表9C

最后,在数据链路层80和物理层90之间的原语包括FrameSend,FrameRcv,和RptLineStatus。以下对这些原语进行进一步的说明。
图12示出了从装置的各层之间的原语的传输。
应用软件50a和应用层60a之间的原语包括UserReqRcv,UserResSend和UserEventSend。以下进一步解释这些原语。
进一步参考图12,应用层60a和网络层70a之间的原语包括ReqMsgRcv,ResMsgSend,EventMsgSend和NLCompleted。
请求消息接收原语ReqMsgRcv是用于从网络层70a传输所接收的请求消息至应用层60a,并包括表10A中的构成部分。
表10A

请求消息发送原语ResMsgSend是从应用层60a传输响应消息至网络层70a的原语,并包括表10B中的构成部分。
表10B

事件消息发送原语EventMsgSend是从应用层60a传输事件消息至网络层70a的原语,并包括表10C中的构成部分。
表10C

网络层完成原语NLCompleted是用于从网络层70a通知信息包处理状态至应用层60a的原语,并包括表10D中的构成部分。
表10D

从装置的网络层70a和数据链路层80a之间的原语,以及从装置的数据链路层80a和物理层90a之间的原语,与图11中所示的主装置的原语采用同一方式进行使用。
图13是用于描述根据本发明的第一实施例的数据处理方法的流程图。
简单讲,该数据处理方法的第一实施例描述的是在网络层70和70a如何分别处理将从应用层60和60a传输至数据链路层80和80a的主装置的请求信息包和从装置的通知信息包。该方法对网络层70、70a和应用层60、60a之间的APDU接收,以及网络层70、70a和数据链路层80、80a之间的NPDU传输进行了处理。
在S61步骤,主装置的网络层70从应用层60接收请求消息发送原语ReqMsgSend(即,请求消息或者信息包)。另外,从装置的网络层70a从应用层60a接收事件消息发送原语EventMsgSend(即,通知消息或者信息包)。网络层70和70a估算从接收所述的原语那个时刻开始的耗用时间ElapsedTime。
在S62步骤,根据来自应用层60的请求消息发送原语ReqMsgSend,所述的主装置的网络层70生成具备如下表11所示的结构的通信周期说明。该通信周期说明中的变量设置如下。
一开始,是通信周期标识符CycleID,其是包含于请求消息发送原语ReqMsgSend中的通信周期ID。接下来,通信周期类型CycleType描述该通信周期的类型。例如,当包含在请求消息发送原语ReqMsgSend中的网络层服务NLService是否定应答的或者重复通知服务时,通信周期类型CycleType被分别设定为1-通知(2)或者重复-通知(3)。另外,当所述的网络层服务NLService是肯定应答服务时并且当目的地址DstAddress指定单个接收器时,所述的通信周期类型CycleType被设定为1-请求,1-响应(0)。进一步地,当网络层服务NLService是肯定应答的且当目的地址DstAddress指示组地址时,所述的通信周期类型CycleType被设定为1-请求,多-响应(1)。接下来,连接器地址ConnectorAddr是包含在请求消息发送原语ReqMsgSend中的目的地址DstAddress。在信息包(或者消息)传输期间,接收器的地址就是连接器地址ConnectorAddr,而在信息包(或者消息)接收期间,发送器的地址就是连接器地址ConnectorAddr。信息包号PacketNo是通过在最近完成的通信周期的值上加1所得到的值。如果加值结果大于4,所述的信息包号PacketNo设定为‘0’。网络层服务NLService是指包含在请求消息发送原语ReqMsgSend中的网络层服务。服务优先权SvcPriority(与所述的传输优先权相同)是指包含在所述的请求消息发送原语ReqMsgSend中的传输优先权。接着,是超时TimeOut,也包含在请求消息发送原语ReqMsgSend中。这里,该超时TimeOut一定比用于数据链路层完成原语DLLCompleted的等待时间即传输超时(SendTimeOut)(即,1000ms)要更长。假如通信周期类型是1-请求,1-响应,和重复-通知中的一个,则传输号目TransmissionNo描述的是传输相同的APDU的次数。传输号目TransmissionNo的初始值是‘1’。按照所述网络层70的参数之一,即最大重试时间SendRetries的定义,所述的APDU可以重传多达三次。接下来,耗用时间ElapsedTime是指所述的网络层70从应用层60接收到新通信周期标识符CycleID之后所耗用的时间量。耗用时间ElapsedTime的初始值是‘0’,并且该耗用时间ElapsedTime的值将连续更新直到所述的通信周期完成。最后,响应接收状态ResRcvState描述的是响应于传输的请求信息包,是否接收响应信息包。响应接收状态ResRcvState的初始值是NOT_RECEIVED,当接收所述的响应信息包时,其值是RES_RECEIVED.
表11


这里,可选择性的包含TransmissionNo,ElapsedTime,以及ResRcvState。取决于所适用的原语的种类,TimeOut描述的可以是ResponseTimeOut或者RepNotiInt。具体讲,在本实施例中的TimeOut描述Response TimeOut。
类似的,当从应用层60a传输事件消息发送原语EventMsgSend时,从装置的网络层70生成具备下述变量的通信周期说明。
首先,是通信周期标识符CycleID,其是包含在事件消息发送原语EventMsgSend中的通信周期ID。然后,通信周期类型CycleType描述该通信周期的类型。例如,当包含在事件消息发送原语EventMsgSend中的网络层服务NLService是否定应答的或者重复通知服务时,通信周期类型CycleType被分别设定为1-通知(2)或者重复-通知(3)。接着,连接器地址ConnectorAddr是包含在事件消息发送原语EventMsgSend中的目的地址DstAddress。信息包号PacketNo是通过在最近完成的通信周期的值上加1所得到的值。如果加值结果是‘3’,所述的信息包号PacketNo设定为‘0’。网络层服务NLService是指包含在事件消息发送原语EventMsgSend中的网络层服务。服务优先权SvcPriority是指包含在所述的事件消息发送原语EventMsgSend中的传输优先权。接着,是超时TimeOut,也包含在事件消息发送原语EventMsgSend中。这里,该超时TimeOut意味着在重复通知消息之间的传输间隔RepNotiInt。假如通信周期类型是1-通知(2)和重复-通知(3)中的一个,则传输号目TransmissionNo描述的是传输相同的APDU的次数。传输号目TransmissionNo的初始值是‘1’。接下来,耗用时间ElapsedTime是指所述的网络层70从应用层60a接收到新通信周期标识符CycleID之后所耗用的时间量。耗用时间ElapsedTime的初始值是‘0’,并且该耗用时间ElapsedTime的值将连续更新直到所述的通信周期完成。最后,响应接收状态ResRcvState描述的是响应于传输的请求信息包,是否接收响应信息包,并且其值为NOT_RECEIVED。
表12显示了各通信周期,信息包类型和网络层服务之间的关系。
表12

返回来参考图13,在第S63步骤,网络层70和70a分别生成多个NPDU,通过使用对应于通信周期说明的变量以及添加NPDU的报头和报尾至APDU。报头的字段值按照如下设定。
在每个报头,SA字段包含发送器的节点地址,PL字段(NPDU长度)包括将包含在来自应用层60和60a的原语中的的APDULength值再加上13而获得的值,PV字段(协议版本)包含0×20的值(版本2.0)。其他字段包含在通信周期说明中可获得的值。然后,所述的网络层70和70a将包含在来自应用层60和60a的原语中的APDU添加到所述的NPDU的报头以及报尾,以使得ELP字段包含0×01且CRC字段包含CCITT-16标准生成多项式的值。
在第S64步骤,当生成NPDU后,根据设定于通信周期说明中的网络层服务NLService,所述的主装置的网络层70迅速发送包含了NPDU的信息包发送原语PktSend至所述的数据链路层80。同时,存储该NPDU以备随后的重传中使用。
类似地,在生成NPDU后,根据设定于周期通信说明中的CycleType值,所述的从装置的网络层70a将包含所述的NPDU的信息包发送原语PktSend发送至数据链路层80。例如,当通信周期类型CycleType是1-请求或者多-响应,则从装置的网络层70a在响应延迟时间ResDelayTime的延迟之后,将所述的NPDU发送至所述的数据链路层80a。另一方面,当通信周期类型CycleType是重复-通知时,从装置的网络层70a则存储该NPDU以备随后的重传中使用。至于其他类型的通信周期,所述的从装置的网络层70a迅速发送NPDU至数据链路层80a。
当NPDU传输终止时,主装置和从装置的网络层70和70a分别进入当前通信周期的完成。
在第S65步骤,网络层70和70a判定通信周期控制的完成。一旦判定了通信周期完成,则不论该通信周期控制完成是成功还是失败,所述的主装置和从装置的网络层70和70a进入第S68步骤,而如果没有完成,则他们进入到第S66步骤。
详细的讲,如果存在以下情况,则主装置的网络层70判定通信周期控制成功完成(i)在1-请求,1-响应通信周期,所述的响应接收状态ResRcvState是RES_RECEIVED,;(ii)在1-请求,多-响应通信周期,所述的响应接收状态ResRcvState是RES_RECEIVED且所述的耗用时间ElapsedTime值大于所述的超时TimeOut值;(iii)在1-通知通信周期,包含SEND_OK值的所述的数据链路层完成原语DLLCompleted从所述的数据链路层传输;以及(iv)在重复通知通信周期完成期间,包含SEND_OK值的所述的数据链路层完成原语DLLCompleted从所述的数据链路层传输;
同时,如果存在以下情况,则主装置的网络层70判定通信周期控制是失效的(i)在1-请求,1-响应通信周期,在通信周期说明中的所述的传输号目TransmissionNo值大于网络层的参数之一即最大重试次数SendRetries(即,3)。
(ii)在1-请求,多-响应通信周期,所述的响应接收状态ResRcvState是NOT_RECEIVED,且耗用时间ElapsedTime值大于超时TimeOut值;(iii)在1-通知通信周期,从数据链路层80传输所述的包含SEND_FAILED的数据链路层完成原语DLLCompleted;(iv)在1-通知通信周期,对于网络层70的参数之一,即传输超时SendTimeOut,不传输所述的来自数据链路层80的数据链路层完成原语DLLCompleted;(v)在重复-通知通信周期完成期间,仅从数据链路层80传输包含SEND_FAILED的数据链路层完成原语DLLCompleted;以及(vi)在重复-通知通信周期完成期间,对于全部信息包传输的网络层70的参数之一,即传输超时SendTimeOut,不传输所述的来自数据链路层80的数据链路层完成原语DLLCompleted。
同时,当所述的数据链路层80a在已经向其发送通知信息包后发送包含SEND_OK值的数据链路层完成原语DLLCompleted时,从装置的网络层70a判定所述的通信周期成功完成。
作为对比,当所述的数据链路层80a在已经向其发送通知信息包后发送包含SEND_FAILED值的数据链路层完成原语DLLCompleted时,或者在传输超时SendTimeOut时网络层70a未接收到来自数据链路层80a的数据链路层完成原语DLLCompleted,从装置的网络层70a判定所述的通信周期失败。
在第S66步骤,当未完成所述的通信周期时,网络层70和70a判定是否需要重传。如果满足重传条件,网络层70和70a进入到第S67步骤,如果未满足条件,他们进入到第S65步骤,以便于再次判定所述的通信周期是否已完成。
详细的讲,在传输请求信息包后,如果所述的主装置的通信周期执行的是1-请求,1-响应以及重复-通知中的一个,则该主装置涉及多达两次的NPDU的重传。主装置的重传过程的进入条件如下(i)如果通信周期说明的变量之一即TransMissionNo小于等于3,且耗用时间ElapsedTime值大于所述的超时TimeOut值;(ii)如果通信周期说明的变量之一即TransMissionNo小于等于3,且主装置从所述的数据链路层80接收到包含SEND_FAILED的数据链路层完成原语DLLCompleted;以及(iii)如果通信周期说明的变量之一即TransMissionNo小于等于3,且主装置未从数据链路层80接收到用于传输超时SendTimeOut的数据链路层完成原语DLLCompleted。
以类似原理,当传输所述的通知信息包后,如果从装置执行的是重复-通知且TransMissionNo值被设定为大于1,则从装置涉及NPDU的重传多达两次。从装置的重传的进入条件是(i)如果通信周期说明的变量之一即TransMissionNo小于等于3,且耗用时间ElapsedTime值大于所述的超时TimeOut值;(ii)如果通信周期说明的变量之一即TransMissionNo小于等于3,且从装置从所述的数据链路层80a接收到包含SEND_FAILED的数据链路层完成原语DLLCompleted;以及(iii)如果通信周期说明的变量之一即TransMissionNo小于等于3,且从装置未从数据链路层80a接收到用于传输超时SendTimeOut的数据链路层完成原语DLLCompleted。
在第S67步骤,一旦进入重传条件,所述的主装置和从装置修改或者修订他们的通信周期说明,然后重新执行所述的NPDU生成和通信周期完成。在这里,所述的通信周期说明修订如下
(i)增加TransMissionNo‘1’;(ii)设定ElapsedTime为‘0’;以及(iii)设定ResRcvState为NOT_RECEIVED.
在第S68步骤,当完成所述的通信周期时,不管成功与否,所述的主装置和从装置均删除对应的通信周期说明。在第S69步骤,网络层70和70a传输包含成功或者失败原因代码值的网络层完成原语NLCompleted至应用层60和60a。如果已成功完成通信周期,该代码值是CYCLE_OK,如果失败,则该代码值是CYCLE_FAILED.
除了以上部分,在数据处理的起始点,主装置的网络层70还可以检查和处理正被接收的其他响应信息包中的复制信息包,根据预定方法,使用所述的通信周期标识符CycleID来控制每个通信周期,并执行错误控制功能。
图14是描述了根据本发明的第二实施例的数据处理方法的流程图。简而言之,所述的数据处理方法的第二实施例描述了在所述的网络层70a如何处理来自应用层60a并发送至从装置的数据链路层80a的从装置的响应信息包。该方法处理了在所述的网络层70a和应用层60a之间的APDU接收,以及在所述的网络层70a和数据链路层80a之间的NPDU传输。
在第S71步骤,从装置的网络层70a从应用层60a接收响应消息发送原语ResMsgSend(即,响应消息或者信息包)。另外,该网络层70a预估从接收原语开始点的耗用时间ElapsedTime。
在第S72步骤,一旦从应用层60a接收响应消息发送原语ResMsgSend,所述的从装置的网络层70a在预生成(或者预存储)通信周期说明中仅记录所述的通信周期标识符CycleID值。在这里,当网络层70a从所述的数据链路层80接收所述的请求信息包接收原语ReqPktRcv(即将介绍)时,生成所述的通信周期说明。
在第S73步骤,通过使用对应通信周期说明的变量以及添加NPDU的报头和报尾至所述的APDU,所述的网络层70a生成NPDU。报头的字段值设置如下首先,SA字段包含发送器的节点地址,PL字段(NPDU长度)包含通过将‘13’和包含于来自应用层60a的原语中的APDULength值相加后得到的值,而PV字段(协议版本)包含0×20的值(版本2.0)。其他字段包含通信周期说明中的各值。然后,所述的网络层70a将包含在来自应用层60a的原语中的APDU添加至NPDU的报头和报尾,以使得ELP字段包含0×01,CRC字段包含CCITT-16标准生成多项式的值。
在第S74步骤,当生成NPDU后,根据设定于通信周期说明中的CycleType值,所述的从装置的网络层70a发送包含了NPDU的信息包发送原语PktSend至所述的数据链路层80a。例如,当所述的通信周期类型CycleType是1-请求,多-响应时,从装置的网络层70a在响应延迟时间ResDelayTime之后发送所述的NPDU至数据链路层80a。至于其他类型的通信周期,从装置的网络层70a迅速发送NPDU至所述的数据链路层80a。
当NPDU传输结束时,从装置的网络层70a进入当前通信周期完成。
在第S75步骤,网络层70a描述了通信周期控制的完成。一旦判定通信周期完成,从装置的网络层70a进入到第S76步骤而无论通信周期控制的完成是成功还是失败,如果判定未完成,则从新判定。
当所述的数据链路层80a在已经向其发送响应信息包后发送包含SEND_OK值的数据链路层完成原语DLLCompleted时,从装置的网络层70a判定所述的通信周期成功完成。
另外,当所述的数据链路层80a在已经向其发送响应信息包后发送包含SEND_FAILED值的数据链路层完成原语DLLCompleted时,或者在传输超时SendTimeOut时网络层70a未接收到来自数据链路层80a的数据链路层完成原语DLLCompleted,从装置的网络层70a判定所述的通信周期失败。
在第S76步骤,当完成所述的通信周期时,不管成功与否,所述的从装置均删除对应的通信周期说明。在第S77步骤,网络层70a传输包含成功或者失败原因代码值的网络层完成原语NLCompleted至应用层60a。如果已成功完成通信周期,该代码值是CYCLE_OK,如果失败,则该代码值是CYCLE_FAILED.
除了以上部分,根据预定方法,从装置的网络层70a还可以检查和处理正被接收的其他请求信息包中的复制信息包。
图15描述了根据本发明的第三实施例的数据处理方法的流程图。简而言之,第三实施例的数据处理方法描述了主装置的网络层70如何处理所述的来自数据链路层80的信息包接收原语PktRcv,和如何发送该PktRcv至应用层60。
在第S81步骤,主装置的网络层70从所述的数据链路层80接收信息包接收原语PktRcv(即,NPDU)。
在第S82步骤,一旦从数据链路层80接收NPDU,则主装置的网络层检查信息包的第一字段即SLP字段的值,以及信息包的最后字段即ELP的值。更具体讲,在第S82步骤,主装置的网络层70检查所述的SLP字段和ELP字段是否各自包含预定值(例如,0×02,0×03)。当两个字段分别包含预定值时,网络层70处理该信息包,如果未包含,换句话说,如果所述的字段值中的至少一个未包含预定值,则所述的网络层70进入到第S87步骤,并忽略所接收的信息包。
在处理所述的NPDU的SLP字段的和ELP字段的值以后,网络层70计算CRC字段的值。如果存在错误,则网络层70进入到第S87步骤并忽略所接收的信息包。
即时CRC字段的值是正常的,如果PL字段的值与NPDU的大小不同,则网络层70仍进入到第S87步骤,并忽略所接收的信息包。
在第S83步骤,网络层70检查所接收信息包的主装置和从装置的地址,以判定主装置是有效设备。换句话讲,当网络层70接收该NPDU时,其检查在信息包报头中的DA字段值是否是可识别的,通过使用其产品代码,逻辑地址,以及簇代码。如果已接收该信息包的主装置不是有效接收器,则网络层70进入到第87步骤,并忽略该信息包。
例如,假定设备具备0bXXX XXXX的产品代码,0bYYY YYYY的逻辑地址,以及0bZZZ ZZZZ的簇代码。然后,所述的网络层70应能够识别8种地址。
-用于全部装置的地址指定0b1111 1111 1111 1111或者0b01111111 1111 1111(0×FFFF或者0×7FFF);-通过产品代码的地址指定0b1XXX XXXX 1111 1111或者0b0XXX XXXX 1111 1111;-通过簇代码的地址指定0b1111 1111 ZZZZ ZZZZ;-通过逻辑地址的地址指定0b111 1111 YYYY YYYY;-通过产品代码和逻辑地址的地址指定0b0XXX XXXX YYYYYYYY;以及-通过产品代码和簇代码的地址指定0b0XXX XXXX ZZZZZZZZ。
另外,为预防多个LnCP装置执行于一个产品(在物理意义上),所述的网络层应该能够识别用于每个装置的8种地址。
进一步地,无论其各自的节点地址,所述的网络管理器20至23应能够识别包含全部网络管理器的0×00FF地址。并且,为接收通知信息包,所述的网络管理器20至23应能够识别网络管理器20至23的初始地址或者指定作为家庭网关10的节点地址的0×0000地址。
另外,如果来自数据链路层80的NPDU报头中的SA字段的值是以下情况之一,则所述的网络层70忽略所接收的NPDU(i)组地址情况下,产品代码是0×7F或者逻辑地址是0×FF;以及(ii)如果地址选择位是1。
在S84步骤,每个设备判定所接收的信息包是否对应于其各自的特征。也就是说,当来自数据链路层80的NPDU既不是响应信息包也不是通知信息包时,主装置的网络层70进入到S87步骤,并忽略该信息包。
在S85步骤,主装置的网络层70判定所接收的NPDU是否是请求信息包。如果是,则所述的网络层70进入到S86步骤。如果接收的NPDU不是请求信息包,则网络层70进入到S89步骤。
在S86步骤,主装置的网络层70将接收的响应信息包与预存储的通信周期说明进行对比。
如果网络层70在已发送请求信息包后接收到期望信息包,则进入到S88步骤,在该步骤中所述的响应接收状态ResRcvState是RES_RECEIVED。如果没有对应于响应信息包的通信周期说明(请看S86步骤),则网络层70将已接收信息包视为复制信息包,并在S87步骤忽略该信息包。
详细地讲,主装置的网络层70经由以下示例设定判定标准或者规则,以判定所接收信息包是否对应于预存储的通信周期说明。
图16和17分别描述了以下情况,其中主装置与多个从装置进行通信,并且所述的主装置的网络层70处理连续通信周期。
图16示出了在主装置和多个从装置之间的多个通信周期。参考附图,主装置的网络层70按顺序发送请求信息包Res1和Res2。由于在响应信息包1Res1内的错误,网络层70先接收响应信息包2Res2,然后是响应信息包1Res1。在这种情况下,通过使用存储于所述通信周期说明中的用于每个请求信息包的连接器地址ConnectorAddr,以及响应信息包的SA字段值,所述的网络层70可以使请求信息包1和2对应于响应信息包1和2。
图17示出了经由在一个主装置和多个从装置之间的组播(multicasting)和单播(unicasting)的组合(或者整合)的多个通信周期。参考附图,在组播请求信息包1Req1之后,单播请求信息包2Req2。另一方面,以Res11,Res12,Res2以及Res13的次序接收请求信息包。由于多个响应信息包从同一从装置发送,所以所述的主装置的网络层70分别将包含在每个请求信息包的通信周期说明内的连接器地址ConnectorAddr和信息包号PacketNo与响应信息包内的SA字段值和PN字段值进行对比,以使得请求信息包和响应信息包能够互相对应。
假定通信周期类型是1-请求,1-响应,如果存在以下情况时,所述的网络层70判定所述的响应信息包和预存储的通信周期说明是互相对应的
(i)已被发送的请求信息包的发送器地址对应于所接收的响应信息包的发送器的地址;以及(ii)已被发送的请求信息包内的PN字段的值等于被接收的响应信息包内的PN字段的值。
类似地,假定通信周期类型是1-请求,多-响应,如果存在以下情况时,所述的网络层70判定所述的响应信息包和预存储的通信周期说明是互相对应的(i)已被发送的请求信息包的发送器地址是组地址,且其包含所接收的响应信息包的发送器的地址;以及(ii)已被发送的请求信息包内的PN字段的值等于被接收的响应信息包内的PN字段的值。
再次参考图15,在S89步骤,主装置的网络层70提取APDU并发送所述的包含APDU的请求消息接收原语ReqMsgRcv至应用层60。所述的APDU通过使用NHL字段的值从NPDU提取。虽然所接收的NPDU的报头可能包含未在规范中定义的某字段,但是网络层70必须通过识别出被报头所指定给NHL字段的字节数来提取所述的APDU。
图18描述了根据本发明的第四实施例的数据处理方法。简而言之,所述的数据处理方法的第四实施例描述了从装置的网络层70a如何处理来自数据链路层80a的信息包接收原语PktRcv,并如何发送该原语至应用层。
在这里,S91至S93步骤,S95,S97和S99步骤分别和图15中的S81至S83步骤,S85,S87以及S89步骤相同。
在S94步骤,如果来自数据链路层80a的NPDU既不是请求信息包,也不是通知信息包,则从装置的网络层70a进入到S97步骤,并忽略该信息包。
在S96步骤,如果从数据链路层80a发送请求信息包,则从装置的网络层70a检查是否正被进行处理的通信周期说明。如果存在,则网络层70a进入到S97步骤,并忽略该请求信息包。但是如果没有所述的这种通信周期说明,则网络层70a进入到S98步骤。
在S98步骤,从装置的网络层70a生成上述的NPDU所需的通信周期说明。
至于产生依照正被接收的请求信息包的通信周期说明,则应设定说明变量如下。
首先,此处未设定通信周期标识符CycleID(在图14的S72步骤设定)。如果包含在请求信息包内的SA字段的值指定单个接收器,则通信周期类型CycleType设定为1-请求,1-响应;或是如果所述的SA字段的值指定组地址,则通信周期类型CycleType设定为1-请求,多-响应。连接器地址ConnectorAddr设定为包含在请求信息包中的SA字段的值,以及信息包号设定为包含在请求信息包中的PN字段的值。网络层服务NLService设定为‘0’(肯定应答服务),传输优先权SvcPriority设定为包含在请求信息包内的SP字段的值,并且超时TimeOut设定为包含在接收的信息包内的TimeOut。传输号TransmissionNo设定为‘1’。耗用时间ElapsedTime设定为‘0’。最后,响应接收状态ResRcvState描述了在通知信息包已发送的情况下,是否接收了通知信息包。因此,设定其为NOT_RECEIVED。
从新参考图18,S99步骤,在生成通信周期说明后,从装置的网络层70a进行复制信息包的预定的检查过程以提取APDU,并传输该APDU至应用层60a。如果从装置接收了通知信息包,则其不必生成通信周期说明。在这种情况下,从装置的网络层70a按照预定处理简单检查复制信息包以提取APDU,并发送该APDU至应用层60a。
以下将更详细的说明所述的从装置如何执行于所接收的信息包(即,NPDU)上的复制信息包检查过程。
图19图示了存在复制信息包的第一实施例。
具体而言,图19示出了主装置发送请求信息包时,从装置接收并正常处理该请求信息包的情况。然而不幸的是,从从装置发送至主装置的响应信息包在传输期间丢失。由于来自从装置的响应信息包未以超时TimeOut传输,所以主装置对请求信息包中的TC字段的值加1,并重传该请求信息包至从装置。在这种情况下,根据NPDU报头内的TC字段的值,所述的从装置判定这次该请求信息包是否已重传。
图20是描述根据本发明的第一实施例的复制信息包检查方法的流程图。
详细而言,在S101步骤,从装置从主装置接收信息包。在S102步骤,如果最终所接收信息包是请求信息包,则从装置进入到S103步骤,而如果不是,则结束该检查过程。
在第103步骤,从装置分别将所接收信息包中的PN字段的值和SA字段的值存储为PN_old和SA_old。
在S104步骤,从装置从主装置接收信息包,并且在S105,从装置检查新信息包是否是请求信息包。如果是,所述的从装置进入到S106步骤,如果不是,其进入到S111步骤,其中所述的从装置判定该新信息包不是复制信息包并结束该检查过程。
在S106步骤,从装置分别提取新信息包中的作为TC,PN,以及SA的TC字段,PN字段和SA字段的值。
在S107至S109步骤,根据新信息包的TC,从装置将所存储的信息包的PN_old和SA_old与新信息包的PN和SA进行对比。当满足对比条件时,从装置判定新信息包是复制信息包(S110),而如果不满足,则该从装置判定该新信息包不是复制信息包,并接收该检查过程。另外,在S107步骤,从装置检查TC值是否大于‘1’。以及,在S109步骤,从装置检查所述的旧的和新的请求信息包的发送器地址是否相同。这步是必须的,因为在超时TimeOut期间,也就是当原先传输了请求信息包的主装置正在等待来自从装置的响应信息包的期间,其他主装置可以提出至同一从装置的通信企图。
在网络层的参数之一,即复制信息包耗用时间DupElapsedTime自从所述的从装置接收最近的请求信息包开始耗时的时候,对所述的PN_old和SA_old初始化。
图21和22各自描述了存在复制信息包的第二实施例。
参考图21,经由不同的传输路径即路径1和路径2连接主装置400和从装置500。类似的,提供路径2是转发并放大在所述的主装置400和从装置500之间的路径1上传输的弱信号。因此,在路径2上提供用于转发并放大信号的转发器600。
参考图22,当主装置400发送请求信息包1Req1至从装置500时,Req1沿路径1传输。另外,已经通过转发器600的Req11在经过复制信息包耗用时间的延迟后经由路径2传输至从装置500。由于经由不同路径传输同一信息包,所以接收所述的复制信息包之间所耗用的复制信息包耗用时间不会大于最大转发器延迟时间RepeatedDelayTime。在这里,最大转发器延迟时间RepeatedDelayTime包含转发器600在信息包传输路径上的信息包处理时间,以及在实际传输介质上的传输时间。
当主装置400传输单个信息包时,其对PN值加1。如果主装置400已经处理了同样的单个通信周期三次,则其在所述的最大转发器延迟时间RepeatedDelayTime的期间内,不能第四次传输该相同的信息包至相同的从装置500。
图23描述了根据本发明的第二实施例的复制信息包检查方法的流程图。
在S121步骤,从装置500从主装置接收信息包,该从装置500将接收信息包中的TC字段,PN字段,SA字段以及PT字段的值分别存储为TC_old,PN_old,SA_old和PT_old。
在S123步骤,从装置500接收来自主装置的新信息包。在S124步骤,如果先前接收的信息包和新信息包之间的间隔小于最大转发器延迟时间RepeatedDelayTime,则从装置进入到S125步骤,如果未小于,则结束该重复检查过程。
在S125步骤,从装置500提取新信息包中的TC字段,PN字段以及SA字段的值为TC,PN和SA。
在S126至S129步骤,从装置500将所存储的信息包中的所述的TC_old,PN_old,SA_old和PT_old与新信息包中的TC,PN,SA和PT值进行对比。当满足每个对比条件时,从装置500判定新信息包是复制信息包(S130),如果不满足,则从装置判定新信息包不是复制信息包(S131)并结束所述的检查过程。所述的请求信息包和通知信息包均适用该方法。
当所接收的信息包是复制信息包时,从装置500,或者更准确的说是从装置500的网络层70a,传输包含了DUPLICATED_PKT(1)值的请求消息接收原语ReqMsgRcv至所述的应用层60a。
如前所述,本发明基于控制协议提供了用于网络层的数据处理方法,所述的控制协议是一种为在家庭网络系统中的电子装置提供控制和监视功能的通用通信标准。
另外,本发明使用生活网络控制协议作为通用通信标准而提供了一种网络层的数据处理方法。
另外,本发明的数据处理方法通过特定情况下的重传数据而增加了数据传输的效率。
另外,本发明可使得从应用层至数据链路层进行信息包传输。
另外,本发明使得在主装置中从数据链路层至应用层可以进行响应信息包或者通知信息包的传输。
类似的,本发明使得在从装置中从数据链路层至应用层可以进行响应信息包或者通知信息包的传输。
另外,通过检索对应于所接收信息包的通信周期说明,本发明可以方便的检查复制信息包。
另外,通过检查和处理复制信息包,本发明增加了数据处理效率。
另外,本发明可以检查和处理网络中通过多个不同传输路径的复制信息包。
另外,本发明可以进行从装置中从应用层至数据链路层的响应信息包的传输。
另外,本发明通过完成对应于先前接收的请求信息包的通信周期说明,可以进行响应信息包的传输。
虽然已经对本发明的优选实施例做了说明,但应该认为本发明不限于以上优选实施例,而且本领域的技术人员可以在下文所附的权利要求书规定的本发明的精神和范围内做出各种变化和修改。
权利要求
1.一种基于至少由物理层,数据链路层,网络层以及应用层所组成的协议的用于网络层的数据处理方法,该方法包含以下步骤从所述的应用层接收应用层协议数据单元(APDU)中的消息发送原语(MsgSend);根据所述的消息发送原语(MsgSend),生成通信周期说明;根据所述的消息发送原语(MsgSend)和/或通信周期说明,在网络层协议数据单元(NPDU)生成信息包发送原语(PktSend);以及发送该信息包发送原语(PktSend)至数据链路层。
2.根据权利要求1所述的方法,其中通信周期说明包含消息发送原语(MsgSend)中的通信周期标识符(CycleID)。
3.根据权利要求1所述的方法,其中通信周期说明包含信息包发送原语(PktSend)所包括的网络层服务(NLService)和/或通过目的地址所设定的通信周期类型(CycleType)。
4.根据权利要求3所述的方法,其中网络层服务(NLService)包括肯定应答(acknowledged),否定应答(non-acknowledged)和重复通知(重复-通知)服务中的至少一个。
5.根据权利要求4所述的方法,其中通信周期类型包括用于肯定应答服务的第一代码或者第二代码,用于否定应答服务的第三代码,以及用于重复通知服务的第四代码。
6.根据权利要求5所述的方法,其中第一代码是{1-请求,1-响应}通信周期,第二代码是{1-请求,多-响应}通信周期,第三代码是{1-通知}通信周期,第四代码是{重复通知}通信周期。
7.根据权利要求5所述的方法,其中,在肯定应答服务中,如果包含在所述的消息发送原语(MsgSend)中的目的地址是单个接收器,则所述的通信周期类型包括所述的第一代码;如果所述的目的地址是多个发送器地址,则所述的通信周期类型包括所述的第二代码。
8.根据权利要求1所述的方法,其中通信周期说明包含连接器地址,所述的连接器地址包含在消息发送原语(MsgSend)中的目的地址。
9.根据权利要求1所述的方法,其中通信周期说明包含信息包号(PacketNo)。
10.根据权利要求9所述的方法,其中通过将最近完成的通信周期中所用的值加‘1’而得到所述的信息包号(PacketNo)。
11.根据权利要求10所述的方法,其中,如果信息包号(PacketNo)是预定的阈值,则将该信息包号(PacketNo)设定为初始值。
12.根据权利要求11所述的方法,其中,所述初始值是‘0’,所述阈值是‘4’。
13.根据权利要求1所述的方法,其中,通信周期说明包含在所述的消息发送原语(MsgSend)中的网络层服务(NLService)。
14.根据权利要求1所述的方法,其中通信周期说明包含在所述的消息发送原语(MsgSend)中的服务优先权(SvcPriority)。
15.根据权利要求1所述的方法,其中通信周期说明包含在所述的消息发送原语(MsgSend)中的超时(TimeOut)。
16.根据权利要求1所述的方法,其中通信周期说明包含用于传输同样的NPDU的传输号(TransmissionNo)。
17.根据权利要求16所述的方法,其中所述的传输号(TransmissionNo)的初始值是‘1’。
18.根据权利要求1所述的方法,其中通信周期说明包含从所述应用层接收新的通信周期标识符(CycleID)的时刻开始的耗用时间(ElapsedTime)。
19.根据权利要求18所述的方法,其中所述的耗用时间(ElapsedTime)的初始值是‘0’。
20.根据权利要求1所述的方法,其中通信周期说明包含响应接收状态(ResRcvState),该响应接收状态用于描述是否响应于所述的消息发送原语(MsgSend)接收响应信息包。
21.根据权利要求1所述的方法,其中生成所述的信息包发送原语(PktSend)包含以下子步骤添加NPDU的报头和报尾至APDU;生成NPDU。
22.根据权利要求1所述的方法,进一步包括以下步骤存储所生成的NPDU。
23.根据权利要求1至20所述的方法,进一步包括以下步骤如果需要,完成当前通信周期。
24.根据权利要求23所述的方法,进一步包括以下步骤在完成所述的通信周期后,删除所述的通信周期说明;以及传输网络层完成原语(NLCompleted)至所述的应用层,其中所述的网络层完成原语包含用于显示通信周期结果的代码值。
25.根据权利要求23所述的方法,其中应用所述的协议至主装置。
26.根据权利要求25所述的方法,其中如果所述的通信周期完成的成功条件满足以下至少一种,则判定该通信周期完成成功当所述的通信周期类型是第一代码,所述的响应接收状态(ResRcvState)是RES_RECEIVED;当所述的通信周期类型是第二代码,所述的响应接收状态(ResRcvState)是RES_RECEIVED,且耗用时间(ElapsedTime)大于超时(TimeOut);当所述的通信周期类型是第三代码,所述的数据链路层传输包含SEND_OK的数据链路完成原语(DLLCompleted);以及当所述的通信周期类型是第四代码,所述的数据链路层传输包含至少一个SEND_OK的数据链路层完成原语(DLLCompleted)。
27.根据权利要求25所述的方法,其中所述的通信周期完成的失败条件满足以下至少一条,则判定该通信周期完成失败当所述的通信周期类型是第一代码,所述的传输号(TransmissionNo)大于网络层参数之一即最大重试次数(SendRetries);当所述的通信周期类型是第二代码,所述的响应接收状态(ResRcvState)是NOT_RECEIVED,且所述的耗用时间(ElapsedTime)大于所述的超时(TimeOut);当所述的通信周期类型是第三代码,所述的数据链路层传输包含SEND_FAILED的数据链路完成原语(DLLCompleted),或者在网络层参数之一即传输超时(SendTimeOut)内未接收到来自数据链路层的数据链路层完成原语(DLLCompleted);以及当所述的通信周期类型是第四代码,所述的数据链路层传输对于每个信息包传输的包含SEND_FAILED的数据链路完成原语(DLLCompleted),或者在对于每个信息包传输的传输超时(SendTimeOut)内,未接收到所述的来自数据链路层的数据链路层完成原语(DLLCompleted)。
28.根据权利要求23所述的方法,其中应用所述协议至从装置。
29.根据权利要求28所述的方法,其中当从所述的数据链路层传输包含SEND_OK的数据链路完成原语(DLLCompleted)时,判定通信周期完成成功。
30.根据权利要求28所述的方法,其中当从所述的数据链路层传输包含SEND_FAILED的数据链路层完成原语(DLLCompleted)时,或者在网络层参数之一即传输超时(SendTimeOut)内未接收到来自所述的数据链路层的数据链路层完成原语(DLLCompleted),则判定通信周期完成失败。
31.根据权利要求1至20以及权利要求22之一所述的方法,进一步包括以下步骤重传包含所存储的NPDU的消息发送原语(MsgSend)。
32.根据权利要求31所述的方法,进一步包括以下步骤重传所述的消息发送原语(MsgSend)之后,通过将传输号(TransmissionNo)加‘1’,设置耗用时间(ElapsedTime)为‘0’,以及设置响应接收状态(ResRcvState)为NOT_RECEIVED,来更新所述的通信周期说明。
33.根据权利要求31所述的方法,其中应用所述的协议至主装置。
34.根据权利要求33所述的方法,其中如果满足下列条件之一,即执行所述的重传当所述的通信周期类型是第一或者第四代码,所述的传输号(TransmissionNo)小于等于网络层的参数之一即最大重试次数(SendRetries),所述的响应接收状态(ResRcvState)是NOT_RECEIVED,以及所述的耗用时间(ElapsedTime)大于所述的超时(TimeOut);当所述的传输号(TransmissionNo)小于等于网络层的参数之一即最大重试次数(SendRetries),以及所述的数据链路层传输包含SEND_FAILED的数据链路层完成原语(DLLCompleted);以及当所述的传输号(TransmissionNo)小于等于网络层的参数之一即最大重试次数(SendRetries),并且在传输超时(SendTimeOut)内未接收到所述的来自数据链路层的数据链路层完成原语(DLLCompleted)。
35.根据权利要求31所述的方法,其中应用所述协议至从装置。
36.根据权利要求35所述的方法,其中如果满足以下条件之一则执行所述的重传当所述的通信周期类型是第四代码, 所述的传输号(TransmissionNo)小于等于网络层的参数之一即最大重试次数(SendRetries),所述的响应接收状态(ResRcvState)是NOT_RECEIVED,以及所述的耗用时间(ElapsedTime)大于所述的超时(TimeOut);当所述的传输号(TransmissionNo)小于等于网络层的参数之一即最大重试次数(SendRetries),以及所述的数据链路层传输包含SEND_FAILED的数据链路完成原语(DLLCompleted);以及当所述的传输号(TransmissionNo)小于等于网络层的参数之一即最大重试次数(SendRetries),并且在传输超时(SendTimeOut)内未接收到所述的来自数据链路层的数据链路层完成原语(DLLCompleted)。
37.根据权利要求1至22之一所述的方法,其中应用所述的协议至主装置,并且所述的消息发送原语(MsgSend)是请求消息发送原语(ReqMsgSend)。
38.根据权利要求1至22之一所述的方法,其中应用所述的协议至从装置,并且所述的消息发送原语(MsgSend)是事件消息发送原语(EventMsgSend)。
39.根据权利要求1所述的方法,其中所述协议是生活网络控制协议(LnCP)。
40.一种基于至少由物理层,数据链路层,网络层以及应用层所组成的协议的用于网络层的数据处理方法,该方法包含以下步骤从所述的数据链路层接收网络层协议数据单元(NPDU)中的信息包接收原语(PktRcv);检测所述的NPDU的错误;从所述的NPDU提取应用层协议数据单元(APDU);传输所提取的APDU至所述的应用层。
41.根据权利要求40所述的方法,其中错误检测包含以下子步骤检查所接收NPDU的SLP字段和ELP字段;和/或计算CRC字段的值。
42.根据权利要求41所述的方法,其中检测所述的SLP字段和ELP字段以判定SLP字段的值和ELP字段的值是否分别包含预定值。
43.根据权利要求40所述的方法,其中错误检测包含以下子步骤将所接收NPDU的信息包长度(PL)字段的值与所接收NPDU的大小进行对比。
44.根据权利要求40所述的方法,进一步包括以下步骤检查所接收NPDU的信息包类型。
45.根据权利要求44所述的方法,其中,如果所接收NPDU是响应或通知信息包,处理该接收NPDU。
46.根据权利要求40至45所述的方法,其中应用所述的协议至主装置。
47.根据权利要求46所述的方法,进一步包括以下步骤对比所述的主装置的地址和包含于所述的NPDU中的地址。
48.根据权利要求47所述的方法,其中所述的主装置的地址和/或包含于所述的NPDU中的地址包含用于指示多个接收器的组地址。
49.根据权利要求46所述的方法,进一步包括以下步骤如果所接收NPDU是响应信息包,检索对应于所接收NPDU的预存储通信周期说明。
50.根据权利要求49所述的方法,其中检索步骤包含以下子步骤如果所述的通信周期说明的通信周期类型是第一代码,判定所接收NPDU的接收器地址和所述的通信周期说明的连接器地址是否相同,并判定所接收NPDU的信息包号(PN)和所述的通信周期说明的信息包号(PN)是否相同;以及如果所述的通信周期类型是第二代码,则判定所述的通信周期说明的连接器地址是否是用于指示多个接收器的地址以及所接收NPDU的接收器地址是否属于应用指示多个接收器的地址,并判定所接收NPDU的信息包号(PN)是否与所述的通信周期说明的信息包号(PN)相同。
51.根据权利要求50所述的方法,其中所述的第一代码是{1-请求,1-响应}通信周期,并且第二代码是{1-请求,多-响应}通信周期。
52.根据权利要求49所述的方法,进一步包括以下步骤如果检索到对应于所述的NPDU的通信周期说明,则设定所述的通信说明的响应接收状态(ResRcvState)为RES_RECEIVED。
53.根据权利要求52所述的方法,进一步包括以下步骤如果未检索对应于所述的NPDU的通信周期说明,则将所接收响应信息包视作复制信息包并且忽略该信息包。
54.根据权利要求40至45之一所述的方法,其中应用所述的协议至从装置。
55.根据权利要求54所述的方法,进一步包括以下步骤对比从装置地址与包含于所接收NPDU的地址。
56.根据权利要求55所述的方法,其中从装置地址和/或包含于NPDU的地址包含用于指示多个接收器的地址。
57.根据权利要求54所述的方法,进一步包含以下步骤如果所接收信息包发送原语(PktRcv)是请求信息包,则根据所述的NPDU生成通信周期说明。
58.根据权利要求57所述的方法,其中所述的通信周期说明包含通信周期类型(CycleType),该通信周期类型通过包含于所接收信息包接收原语(PktRcv)中的DA字段的值设定。
59.根据权利要求58所述的方法,如果所述的DA值是单个接收器,则所述的通信周期类型包含第一代码;以及如果所述的DA值是多个接收器的地址,则该通信周期类型包含第二代码。
60.根据权利要求59所述的方法,其中第一代码是{1-请求,1-响应}通信周期,以及第二代码是{1-请求,多-响应}通信周期。
61.根据权利要求57所述的方法,其中所述的通信周期说明包括所接收信息包接收原语(PktRcv)中含有的发送器地址的连接器地址。
62.根据权利要求57所述的方法,其中所述的通信周期说明包括所接收信息包接收原语(PktRcv)中所含有的信息包号(PacketNo)。
63.根据权利要求57所述的方法,其中所述的通信周期说明包括所接收信息包接收原语(PktRcv)中所含有的网络层服务(NLService)。
64.根据权利要求57所述的方法,其中所述的通信周期说明包括所接收信息包接收原语(PktRcv)中所含有的服务优先权(SvcPriority)。
65.根据权利要求57所述的方法,其中所述的通信周期说明包括用于传输相同APDU的传输号(TransmissionNo)。
66.根据权利要求65所述的方法,其中所述的传输号(TransmissionNo)的初始值是‘1’。
67.根据权利要求57所述的方法,其中通信周期说明包含从所述应用层接收新的通信周期标识符(CycleID)的时刻开始的耗用时间(ElapsedTime)。
68.根据权利要求67所述的方法,其中所述的耗用时间(ElapsedTime)的初始值是‘1’。
69.根据权利要求67所述的方法,其中所述的通信周期说明包括响应接收状态(ResRcvState),该响应接收状态用于指示是否响应于所接收信息包接收原语(PktRcv)接收响应信息包。
70.根据权利要求57所述的方法,其中所述的通信周期说明包括通信周期标识符(CycleID)。
71.根据权利要求70所述的方法,进一步包含以下步骤接收用于传输至应用层的APDU的响应消息发送原语(ResMsgSend);以及输入所述的响应消息发送原语(ResMsgSend)中的通信周期标识符(CycleID)至所述的通信周期标识符(CycleID)之中。
72.根据权利要求57所述的方法,进一步包含以下步骤检查是否当前正在处理通信周期说明;根据该检查结果,生成通信周期说明。
73.根据权利要求40所述的方法,其中所示协议是生活网络控制协议(LnCP)。
74.根据权利要求54所述的方法,进一步包括以下步骤检查复制信息包;以及根据该检查结果以及所接收信息包接收原语(PktRcv)的信息包类型,判定是否生成通信周期说明。
75.根据权利要求74所述的方法,其中所述的复制信息包检查步骤包含以下子步骤存储所述的NPDU的信息包号字段的值;接收新NPDU;将新NPDU的信息包号字段的值与存储的信息包号的字段的值进行比较;以及基于新NPDU的传输号和第一次比较的结果,判定新NPDU是否是复制信息包。
76.根据权利要求75所述的方法,其中,如果新NPDU的信息包号字段的值与所存储的旧的NPDU的信息包号字段的值相同,以及如果新NPDU的传输号大于‘1’,则判定该新NPDU是复制信息包。
77.根据权利要求76所述的方法,通过新NPDU的传输计数器(TC)的值判定所述的传输号。
78.根据权利要求76所述的方法,其中所述的复制信息包检查步骤进一步包含以下子步骤分别检查NPDU和新NPDU的信息包类型是否是请求信息包。
79.根据权利要求76所述的方法,其中所述的复制信息包检查步骤进一步包含以下子步骤将NPDU中的发送器字段的值与新NPDU的发送器字段的值进行第二次对比;其中基于第一次和第二次对比,判定该新NPDU是复制信息包。
80.根据权利要求79所述的方法,其中所述的复制信息包检查步骤进一步包含以下子步骤从接收所述的新NPDU开始,在指定的参数之一即复制信息包耗用时间(DupElapsedTime)的时间耗用之后,初始化所预存的发送器字段的值,所述的信息包号字段的值以及传输号。
81.根据权利要求74所述的方法,其中所述的复制信息包检查步骤进一步包含以下子步骤存储所述的NPDU的复制信息包判定相关字段的值;接收新NPDU;将所存储的NPDU的复制信息包判定相关字段的值与所述的新NPDU的对应字段的值进行对比;以及基于对比结果,判定新NPDU是否是复制信息包。
82.根据权利要求81所述的方法,其中复制信息包判定相关字段至少包含发送器地址字段,信息包号字段,信息包类型字段,以及传输计数器字段。
83.根据权利要求82所述的方法,其中,如果发送器地址字段,信息包号字段,信息包类型字段,以及传输计数器字段分别与新NPDU的对应的值相同,则判定新NPDU是复制信息包。
84.根据权利要求81所述的方法,使用多个信息包传输路径。
85.根据权利要求84所述的方法,其中复制信息包检查方法进一步包括以下步骤在对比各值之前,检查在从接收NPDU的时刻开始的最大转发器延迟时间(RepeaterDelayTime)之内是否接收到新NPDU。
86.一种基于至少由物理层,数据链路层,网络层以及应用层所组成的协议的用于网络层的数据处理方法,该方法包含以下步骤从所述的应用层接收应用层协议数据单元(APDU)中的响应消息发送原语(ResMsgSend);根据所述的响应消息发送原语(ResMsgSend),完成预存储的通信周期说明;根据所述的通信周期说明,在网络层协议数据单元(NPDU)生成信息包发送原语(PktSend);以及发送该信息包发送原语(PktSend)至数据链路层。
87.根据权利要求86所述的方法,其中应用所述的协议至从装置。88.根据权利要求87所述的方法,其中所述的响应消息发送原语(ResMsgSend)是对于传输自主装置的请求信息包的响应信息包。
89.根据权利要求88所述的方法,其中根据所述的请求信息包生成部分的预存储通信周期说明。
90.根据权利要求89所述的方法,进一步包括以下步骤输入响应消息发送原语(ResMsgSend)中的通信周期标识符(CycleID)至所述的预存储通信周期说明的通信周期标识符(CycleID)。
91.根据权利要求86所述的方法,其中所述的信息包发送原语(PktSend)的生成包含以下子步骤添加NPDU的报头和报尾至APDU;生成NPDU。
92.根据权利要求86所述的方法,进一步包括以下步骤存储所生成的NPDU。
93.根据权利要求86所述的方法,进一步包括以下步骤完成当前通信周期。
94.根据权利要求93所述的方法,进一步包括以下步骤在完成所述的通信周期之后,删除通信周期说明;以及传输包含有用于显示通信周期结果的代码的网络层完成原语(NLCompleted)至所述的应用层。
95.根据权利要求93所述的方法,其中当从所述的数据链路层传输含有SEND_OK的数据链路完成原语(DLLCompleted)时,判定所述的通信周期完成成功。
96.根据权利要求93所述的方法,其中当所述的数据链路层传输含有SEND_FAILED的数据链路完成原语(DLLCompleted)时,或者在网络层参数之一即传输超时(SendTimeOut)内未接收到来自所述的数据链路层的数据链路层完成原语(DLLCompleted),则判定通信周期完成失败。
97.根据权利要求96所述的方法,其中所述协议是生活网络控制协议(LnCP)。
全文摘要
本发明公开了一种在基于生活网络控制协议的家庭网络系统中用于网络层的数据处理方法。基于至少由物理层,数据链路层,网络层以及应用层所组成的协议的用于网络层的数据处理方法包括如下步骤从所述的应用层接收应用层协议数据单元(APDU)中的消息发送原语(MsgSend);根据所述的消息发送原语(MsgSend),生成通信周期说明;根据所述的消息发送原语(MsgSend)和/或通信周期说明,在网络层协议数据单元(NPDU)生成信息包发送原语(PktSend);以及发送该信息包发送原语(PktSend)至数据链路层。
文档编号H04L12/26GK1938984SQ200580010496
公开日2007年3月28日 申请日期2005年3月31日 优先权日2004年3月31日
发明者白承勉, 李君锡, 金容台 申请人:Lg电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1