具体实施方式
数字家庭网络由网络控制终端、移动控制终端和多个通讯模块接收发送装置组成,整个数字家庭网络如图1所示,各个部分的作用如下:
一、网络控制终端:
网络控制终端的主要作用是通过Internet网络控制智能家电,也可以通过本地计算机进行家电控制。
当用户登到Internet网络后,打开家庭控制网络界面,根据界面上显示出来的各个家电选项,进入某一个家电控制界面,控制此家电。
本***的网络控制终端具有以下特点:
(1)网络控制终端给出了清晰的人机界面,可以进入任一个电器的控制选项界面,控制各个家电的所有控制功能,操作十分简单,而且是用户一目了然。
(2)网络控制终端还具有管理各种家电的功能,当有一个新的家电加入到家庭网络***内,网络控制终端有增加选项,可以通过添加由DEVICEFILE协议所制定的设备文件,来添加新的设备。网络控制终端还有删除已经不能使用设备选项的功能。
(3)网络控制终端与各个家电所拥有的通讯模块可以通过有线RS485通讯和无线通讯两种方式进行数据交换,提高了其本身的通用性。网络控制终端与各个通讯模块之间的通讯协议为数字家庭网络(DHN)通讯协议规范。
二、移动控制终端:
移动控制终端的作用是通过无线通讯的方式对现在家庭里已有的智能家电进行集中控制。
现在的家庭中如果要对家电进行遥控的话,要一个家电对应一个遥控器,这样会使很多人对各个遥控器发生混淆,以至于相控制一个电器的时候,要去分辨哪一个是这个家电的遥控器,而且没有清晰的显示界面。
本***的移动控制终端具有以下特点:
(1)移动控制终端有一个清晰的人机界面,通过其上的屏幕可以显示家里所有的电器,通过移动控制终端键盘上的按钮,可以进入任一个电器的控制选项界面,控制选项界面中包括此家电的所有控制功能,选择每一个控制功能选项可以控制此家电的此项功能,操作十分简单,而且是用户一目了然。
(2)移动控制终端是通过无线的通讯方式进行通讯的,可以不受障碍物的限制,在有效距离内可以对每一个移动控制终端上的家电设备进行控制,并且控制更加可靠。
(3)移动控制终端还具有管理各种家电的功能,当有一个新的家电加入到家庭网络***内,移动控制终端有增加选项,可以通过添加由DEVICEFILE协议所制定的设备文件,来添加新的设备。移动控制终端还有删除已经不能使用设备选项的功能。
(4)移动控制终端与各个家电所拥有的通讯模块可以通过无线通讯方式进行数据交换,移动控制终端与各个通讯模块之间的通讯协议为数字家庭网络(DHN)网络通讯协议规范。
三、通讯模块:
各个家电设备内设置一个通讯模块,这种通讯模块包括有线RS485通讯和无线通讯两种通讯方式,其主要作用是通过使用数字家庭网络(DHN)通讯协议规范与网络控制终端和移动控制终端进行数据交换,以此来实现对本设备所连接的家电进行控制,在增添设备时传输符合DEVICEFILE协议规范的设备文件。
数字家庭网络(Digital Home Network)通讯方法的目标是允许遵循规范的各个应用层之间能够进行相互操作。为了实现互操作,必须各个应用层相应的应用程序必须以同一协议栈运行,每一个协议栈都是符合数字家庭网络(DHN)通讯协议规范。但并不是所有应用程序都必须全部符合数字家庭网络(DHN)通讯协议规范,而是应用程序只利用协议栈中的某些部分,并且协议栈中的某些附加垂直协议子集恰恰是用于支持主要应用的服务。
数字家庭网络通讯方法使遵循规范的各个家庭控制子网设备之间实现通信。
家庭控制子网通信方法的体系结构如下表所示:
UDCP:统一设备管理协议 |
其它应用协议 |
NETL:网络层 |
W_MAC无线链接控制(MAC)层 |
L_MAC有线链接控制(MAC)层 | 其它物理协议 |
WPL:无线物理层(Wireless Physical Layer) |
WIPL:有线物理层(Line Physical Layer) |
数字家庭网络协议体系包括物理层协议、网络层协议和应用层协议。其中物理层协议包括无线物理层协议、有线物理层协议、无线链接控制(MAC)层协议、有线链接控制(MAC)层协议和其它物理协议;应用层协议包括统一设备管理协议和其它应用协议。
一、物理层协议
包括无线物理层协议、有线物理层协议、无线链接控制(MAC)层协议、有线链接控制(MAC)层协议和其它物理协议。
(一)无线物理层协议:
(1)频带及射频(RF)信道
无线通讯的工作频率范围为850~950MHz频段。未来可扩展到2.4GHz的ISM频段上。
(2)无线通讯参数
工作频点:880~882MHz
工作方式:半双工
数 据 率:38.4kbit/s
调制方式:FSK
功 率:4.5dBm
发射距离:≤30米
频道空间:100kHz
(3)物理层帧通用格式
无线通讯的物理层帧格式如下表所示。
开始序列(Preamble) |
帧头(Header) |
白化链接控制(MAC)帧 |
训练序列 |
开始位 |
帧长度 |
传输速度 |
CRC确认位 |
CRC |
80/40bits |
8bits |
12bits |
3bits |
1bit |
16bits |
可变长度 |
开始序列(Preamble)域:
Preamble域包括训练序列域和开始位域两部分,它可使无线物理层电路达到解调的稳定状态,使接收时钟和发送时钟同步,并确定帧接收的开始。
训练序列域:
训练序列域是一个0101…01序列,长度可变,缺省值是80bits。由于RF器件长时间不通信后,需要一个较长时间的训练序列,为接收基准电容充电。但在连续通信时,则不需要长的训练序列。在发送时,在以80bits训练序列发送一帧后,进入接收监听状态,收到确认帧后发送后续帧时,可以使用40bits的训练序列发送。
开始位域:
开始位域长8bits,确定一帧接收的开始。
现阶段开始位域的值设定为00001111,其余值保留。
帧头(Header)域:
Header域长度包括帧长度、传输速度、CRC确认位、CRC校验码四部分,长度为32bits。
帧长度域:
帧长度域长度为12bits,是物理帧中白化的MAC帧域的长度,以字节为单位,但为保证传输的正确,实际MAC帧的最大长度是256字节。
传输速度域:
传输速度域长度为3bits,确定白化的MAC帧域的RF发送速率,在本***中,现阶段只采用一种速率传输。传输速度域的默认值为000,其他值保留。
CRC确定位域:
CRC确定位域的长度为1bits,确定是否使用CRC校验。该域值为1,对帧头域进行校验;域值为0,不对header域进行校验,CRC校验域无效。
CRC校验域:
CRC校验域长度为16位,是对帧长度、传输速度、CRC确认位三个域16位数据进行16位CRC校验的校验码部分。CRC确定位域值为1时,CRC校验域有效,否则无效。
16位CRC校验的算法:
16位CRC校验的生成多项式为:G(x)=x16+x12+x5+1
CRC域=(被校验部分左移16位)/G(x)的余数,其中除法是模2除。
在接收端对帧头域,进行CRC校验,如果帧头域正确接收,帧头域/G(x)(模2除)的余数是0。反之,如果帧头域/G(x)(模2除)的余数非0,则说明在帧头域在传输中出现误码,或者说明被检验域根本不是帧头域。
如果帧头域正确接收,则物理层继续接收,直到帧长度域指定的长度位止。如果帧头域接收错误,则物理层拒绝接收此帧中的其余部分,但在此通道上继续保持接收状态。
白化的链接控制(MAC)帧域:
MAC帧由MAC层传递到物理层,物理层要利用扰频器对其进行白化处理,使MAC帧中0、1的出现概率接近0.5,从而降低数据包中的直流偏置电平。
白化的MAC帧域长度可变,但不超过256个字节。
(4)扰频器算法:
扰频器生成多项式:S(x)=x7+x4+1
扰频器产生的127位循环码是(最高位先移出):
00001110 11110010 11001001 00000010 00100110 00101110 1011011000001100 11010100 11100111 10110100 00101010 11111010 0101000110111000 1111111。
扰频器的编码公式为:
y(n)=x(n)+y(n-4)+y(n-7)
扰码器的初始值置为0000000b编码框图见图2
扰频器的解码公式为:
y(n)=x(n)+x(n-4)+x(n-7)
扰码器的初始值置为0000000b解码框图见图3
(二)有线物理层协议:
家庭控制子网的有线通讯采用RS-485串行总线标准。
RS-485通讯方式采用的是差分信号传输,通讯距离可以达到1.5公里,适合在家庭有线通讯。
其工作方式为半双工方式,两线制通讯方式。
建议所采用的波特率为38.4Kbps。
1位起始位、2位停止位、无奇偶校验位。
匹配电阻为120欧姆。
(三)无线链接控制(MAC)层通讯协议
1、无线链接控制(MAC)层帧格式:
无线MAC层实现数据包的差错控制。其帧格式如下表所示。
帧控制(Framecontrol) |
帧时间(Duration) |
目的地址 |
源地址 |
帧体(Frame Body) |
CRC |
2Bytes |
1Bytes |
6Bytes |
6Bytes |
0-239Bytes |
2Bytes |
帧头 | | |
(1)帧控制(Frame control)域:
帧控制域构成如下表所示。
版本ProtocolVersion |
类型Type |
子类型Subtype |
分段结束标志MoreFragment |
重试Retry |
功率管理PowerManage |
分段标志FragmentFlag |
分段序列号SequenceNumber |
2bits |
2bits |
3bits |
1bit |
1bit |
1bit |
1bit |
5bits |
版本(Protocol Version)域
版本域长度为2bits,反映不同的协议版本。现行版本值为0b,其他值保留。
类型(Type)域和子类型(Subtype)域
类型域长度为2bits,子类型域长度为3bits,两者共同标示帧的功能类型。有三种帧类型:数据帧、控制帧、管理帧,每一类型还定义了最多8种子类型。
数据帧:用于在设备之间的传递数据。
管理帧:用于支持实现网络中的各种服务。本***中保留。
控制帧:用于支持网络中数据帧和管理帧的传输。
类型域和子类型域的有效结合定义见下表。
类型域 |
帧类型描述 |
子类型域 |
帧子类型描述 |
10 |
管理帧 |
000-100b |
保留 |
10 |
管理帧 |
101b |
流量显示信息(announcement trafficindication message ATIM) |
10 |
管理帧 |
110b |
资格认证(authentication) |
10 |
管理帧 |
111b |
撤销资格认证(deauthentication) |
00 |
控制帧 |
000b |
节能通知(power save-poll) |
00 |
控制帧 |
001b |
发送请求(request to send RTS) |
00 |
控制帧 |
010b |
准备发送(clear to send CTS) |
00 |
控制帧 |
011b |
确认(acknowledgemeng ACK) |
00 |
控制帧 |
100b-111b |
保留 |
01 |
数据帧 |
000b |
数据 |
01 |
数据帧 |
001b-111b |
保留 |
分段结束标志(More fragment)域
分段结束标志域长度为1bit,在数据帧和管理帧中,如果该域为1,说明当前帧是一个网络层数据包中的一部分,网络层数据包的其他部分存在后续的数据帧中。如果该位为0,说明当前帧是网络层数据包中的最后一部分。
在其它类型帧中分段结束标志一直为0。
重试(Retry)域:
重试域长度为1bits,在数据帧和管理帧中,该域如果为1,说明当前帧是重发以前的某一帧。
功率管理(Power manage)域:
功率管理域长度为1bits,表明本设备的功率管理状态。在一个帧序列中保持为常数。如果为1,表明本实体在此帧发送完毕后,电源进入节能状态。
分段标志(fragment flag)域:
分段标志域长度为1bit。
分段标志为0时,表示当前帧包含完整的一个网络层数据包。分段标志为1时,说明当前帧是一个一个网络层数据包的一个子帧。
分段序列号(Sequence number)域:
分段序列号域长度为5bits。
如果一个网络层数据包长度大于239bytes,可以把这个数据包分成若干帧,组成一个帧序列发送。分段序列号域是当前帧在一个帧序列中的序号。一个数据包最多可分成32帧发送。
(2)帧时间(Duration)域:
帧时间域长度为1bytes,是一个预定的时间单位的倍数,具体值由帧的不同类型决定。参考各帧类型的帧格式定义。
(3)目的地址(Destination ID)域:
目的地址域长度为6Bytes,是当前帧的目的设备的地址。设备的地址与其网络层UDS相同。
(4)源地址(Source ID)域:
源地址域长度为6Bytes,是发送当前帧的设备的地址。设备的地址与其网络层UDS相同。
(5)帧体(Frame body)域:
帧体域包含数据或控制信息、管理信息。长度可变,范围是0-239Bytes(16位CRC校验)。
(6)CRC域:
CRC域是对MAC帧中的帧头和Frame body域进行CRC校验的校验码部分,长度为2bytes(16位CRC校验)。
16位CRC校验的生成多项式为:G(x)=x16+x12+x5+1
CRC域=(被校验部分左移16位)/G(x)的余数,其中除法是模2除。
在接收端对整个MAC帧(包括CRC域),进行CRC校验,如果在传输中没有错误发生,MAC帧/G(x)(模2除)的余数是0。反之如果,MAC帧/G(x)(模2除)的余数非0,则说明在传输中出现误码。
2、各种类型帧的格式:
(1)控制帧帧控制域格式:
控制帧的控制域构成参见下表。
版本ProtocolVersion |
00 |
子类型SubType |
0 |
0 |
功率功率Power manage |
0 |
00000 |
(2)请求发送(RTS)帧帧格式:请求发送(RTS)帧构成参见下表。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表6,此时子类型为001b。
帧时间域表示某一预定的时间单位的倍数。这段时间包括:
●发送准备发送的数据帧或管理帧所需要的时间
●发送一个CTS帧所需的时间
●发送一个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
源地址域:发送此RTS帧的设备的地址
目的地址域:将要发出的数据帧或管理帧的接收设备的地址。
CRC域:对整个RTS帧进行16位CRC的校验码。
(3)允许发送(CTS)帧帧格式:
允许发送(CTS)帧构成参见下表。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表7,此时子类型为010b。
帧时间域:预定的时间单位的倍数。此值是刚接收到的RTS帧中的帧时间域值减去:
●发送一个CTS帧所需的时间
●一个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
源地址域:发送此RTS帧的设备的地址
目的地址域:将要发出的数据帧或管理帧的接收设备的地址。
CRC域:对整个RTS帧进行16位CRC的校验码。
(4)确认帧(ACK)帧格式:
确认帧(ACK)构成参见表8。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表8,此时子类型为011b。
帧时间域是预定的时间单位的倍数,这段时间包括:
如果刚接收到的数据帧或管理帧的帧控制域中的分段标志为0,ACK帧中的帧时间域值为0;如果刚接收到的数据帧、管理帧的帧控制域中的分段标志域的值为1或接收到PS-Poll控制帧,ACK帧中的帧时间域值为数据帧或管理帧的帧时间域值减去:
●发送一个ACK帧所需的时间
●一个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数
源地址域:发送此ACK帧的设备的地址
目的地址域:将要发出的ACK的接收设备的地址。
CRC域:对整个ACK帧进行16位CRC的校验码。
(5)节能请求(PS-Poll)帧帧格式:
节能请求(PS-Poll)帧参见下表。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表9,此时子类型为000b。
帧时间域:预定的时间单位的倍数。这段时间包括:
●要求对方设备(Destination ID)保持在节能状态的时间。
●发送一个CTS帧所需的时间
●发送一个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
源地址域:发送此PS-POLL帧的设备的地址
目的地址域:接收设备的地址。
CRC域:对整个PS-POLL帧进行16位CRC的校验码。
(6)数据帧帧格式:
数据帧构成参见下表。
帧控制FrameControl |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
帧体Frame body |
CRC |
2Bytes |
1Byte |
6Bytes |
6Bytes |
0-239Bytes |
2Bytes |
(7)帧控制Frame域
如上表,数据帧的类型域为01b,子类型域为000b。
(8)帧时间(duration)域:
帧时间域长度为1byte,表示某一预定的时间单位的倍数。
如果当前帧的帧控制域中分段标志域值为0,帧时间域值包括:
●发送一个ACK帧所需的时间
●一个SIFS时间间隔
如果当前帧的帧控制域中分段标志域值为1,帧时间域值包括:
●发送下一个子帧所需要的时间
●发送两个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
(9)帧体(Frame Body):
帧体就是网络层数据包。
数据帧中的其它域参见MAC帧通用格式定义。
(10)设备间的通信流程举例:
请参考图4。设备A向设备B发送一个数据包,此数据包中含3个数据帧。设备A检测到通道处于空状态,以B为目的地址发出一个RTS帧,然后等待由B发回的CTS帧,如果A没有收到B的CTS帧,设备A就根据通道的工作状态,重复发送RTS帧。如果A收到B的CTS帧,就开始发送数据帧。每发送一帧后,就等待设备B发挥的ACK帧,以确定对方已经没有错误地接收到当前帧。如果设备A在发送某一帧后没有收到ACK帧,设备A设备帧就重发这一帧,直到收到对方的相应于这一帧的ACK帧。如果重发N次后,还没有收到回应,就放弃通信。
(11)管理帧通用帧格式
管理帧的主要用于流量控制和加密手段,可选择实现。
管理帧的构成参见下表。
帧控制FrameControl |
帧时间Duration |
目的地址DestinationID |
源地址Source ID |
帧体Frame Body |
CRC |
2Bytes |
1Byte |
6Bytes |
6Bytes |
0-239 Bytes |
2Bytes |
(12)帧时间(Duration)域:
时间域长度为1Byte,是预定的时间单位的倍数。
如果当前帧的帧控制域中分段标志域值为0,帧时间域值包括:
●发送一个ACK帧所需的时间
●一个SIFS时间间隔
如果当前帧的帧控制域中分段标志域值为1,帧时间域值包括:
●发送下一个子帧所需要的时间
●发送两个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
(13)帧体(Frame Body)域:
帧体的长度因子类型不同而不同。
管理帧中的其它域参见MAC帧通用格式定义。
3、无线链接控制(MAC)层的功能:
无线链路层完成的功能包括:
a.载波监测,避免通道冲突。
b.为提高接收稳定性,在发送端MAC层把网络层数据包分解成若干子帧,然后分别作为独立帧发送;在接收端MAC层把子帧组合成一个数据包。
c.为网络层服务。
(1)通过载波监测避免通道冲突
一个设备在发送之前要先确定通道是不是忙,如果通道空,就发一帧,如果通道忙,就处于接收态等待。
发送设备连续接收发送若干帧时,在每一帧之间***一个时隙。在这个时隙里,对通道进行监听。
通道由忙状态转到空状态时,最容易发生阻塞,这时各个设备设置一个随机的递减的时间量(backoff time),某一个设备的递减的时间量为零时,此设备开始发送新的一帧。
为了更好的避免通道冲突,在发送和接收设备之间交换短小的控制帧(RTS\CTS)
(2)载波监测方法:
本***中提供两种载波监测方法。一种是物理监测,由物理层完成;一种是虚拟监测,由MAC层完成。
在MAC帧头中有一个帧时间域。除省电(PS-Poll)控制帧外,所有类型帧的帧时间域都包含当前帧的后续操作所需要的时间。设备的默认态为接收态。处于接收态的设备都能收到MAC帧头,因此就能获取通道被占用的时间,从而保证在这段时间里不发生通道冲突。
(3)RTS\CTS交换机制:
RTS、CTS帧中包含帧时间值,为载波虚拟监测提供信息。
如果不止一个设备在一个通道上通信,RTS\CTS交换机制能提高设备在主从应用方式下的性能。
在传输数据帧时,并不是每一帧都交换RTS、CTS帧。
对于一个设备,RTS\CTS交换机制是可选的,如果一个设备没有设置RTS\CTS交换机制,它可以接收RTS、CTS帧,从中获取帧时间域值,实现载波监测。这样的设备还可回应传送给它的的RTS。
(4)帧序列间的时间间隔(IFS):
本***中定义了三种时间间隔,从小到大的排列顺序为●SIFS:是传送RTS、CTS、ACK控制帧时使用的时间间隔。●DIFS:是传送一个CRC帧校验正确的数据帧或管理帧时使用的时间间隔。●EIFS:是传送一个CRC帧校验不正确的数据帧或管理帧时使用的时间间隔。
(5)递减的随机时间量(backoff time):
当通道忙时,一个想发送信息的设备处于接收等待状态,在某一时刻通道变为空闲状态,设备根据下一帧的类型决定在SIFS,DIFS,EIFS中的某一个IFS时间内,判断通道是否一直为空,如果为空闲,设备进入随机等待过程。递减的时间随机量小的设备,有可能先占用通道。
backoff time=N*t
N是一个随机整数。
t是一个预定的时间常数。
如果在随机(backoff time)时间内信道被其他设备占用,设备将重复上面的等待过程,最多不超过15次。
(二)有线链接控制(MAC)层协议
有线MAC层是用于建立有线通讯体系结构中的基础适配通讯部分,,对得到的数据信息进行分析处理,将有效的数据信息传输给网络层。
1、有线链接控制(MAC)层帧格式
有线MAC层帧的构成参见下表。
帧控制Framecontrol |
帧时间duration |
目的地址DestinationID |
源地址Source ID |
帧体frame body |
CRC |
2bytes |
1bytes |
6Bytes |
6Bytes |
0-239bytes |
2bytes |
帧头 | | |
(1)帧控制(Frame control)域:
帧控制域构成如下表所示。
版本ProtocolVersion |
类型Type |
子类型Subtype |
分段结束标志MoreFragment |
重试Retry |
功率管理PowerManage |
分段标志FragmentFlag |
分段序列号SequenceNumber |
2bits |
2bits |
3bits |
1bit |
1bit |
1bit |
1bit |
5bits |
版本(Protocol Version)域
版本域长度为2bits,反映不同的协议版本。现行版本值为0b,其他值保留。
类型(Type)域和子类型(Subtype)域:
类型域长度为2bits,子类型域长度为3bits,两者共同标示帧的功能类型。有三种帧
类型:数据帧、控制帧、管理帧,每一类型还定义了最多8种子类型。
数据帧:用于在设备之间的传递数据。
管理帧:用于支持实现网络中的各种服务。本***中保留。
控制帧:用于支持网络中数据帧和管理帧的传输。
类型域和子类型域的有效结合定义见下表。
类型域 |
帧类型描述 |
子类型域 |
帧子类型描述 |
10 |
管理帧 |
000-100b |
保留 |
10 |
管理帧 |
101b |
流量显示信息(announcement trafficindication message ATIM) |
10 |
管理帧 |
110b |
资格认证(authentication) |
10 |
管理帧 |
111b |
撤销资格认证(deauthentication) |
00 |
控制帧 |
000b |
节能通知(power save-poll) |
00 |
控制帧 |
001b |
发送请求(request to send RTS) |
00 |
控制帧 |
010b |
准备发送(clear to send CTS) |
00 |
控制帧 |
011b |
确认(acknowledgemeng ACK) |
00 |
控制帧 |
100b-111b |
保留 |
01 |
数据帧 |
000b |
数据 |
01 |
数据帧 |
001b-111b |
保留 |
分段结束标志(More fragment)域
分段结束标志域长度为1bit,在数据帧和管理帧中,如果该域为1,说明当前帧是一个网络层数据包中的一部分,网络层数据包的其他部分存在后续的数据帧中。如果该位为0,说明当前帧是网络层数据包中的最后一部分。
在其它类型帧中分段结束标志一直为0。
重试(Retry)域
重试域长度为1bits,在数据帧和管理帧中,该域如果为1,说明当前帧是重发以前的某一帧。
功率管理(Power manage)域
功率管理域长度为1bits,表明本设备的功率管理状态。在一个帧序列中保持为常数。如果为1,表明本实体在此帧发送完毕后,电源进入节能状态。
分段标志(fragment flag)域
分段标志域长度为1bit。
分段标志为0时,表示当前帧包含完整的一个网络层数据包。分段标志为1时,说明当前帧是一个一个网络层数据包的一个子帧。
分段序列号(Sequence number)域
分段序列号域长度为5bits。
如果一个网络层数据包长度大于239bytes,可以把这个数据包分成若干帧,组成一个帧序列发送。分段序列号域是当前帧在一个帧序列中的序号。一个数据包最多可分成32帧发送。
(2)帧时间(Duration)域
帧时间域长度为1bytes,是一个预定的时间单位的倍数,具体值由帧的不同类型决定。参考各帧类型的帧格式定义。
(3)源地址(Source ID)域
源地址域长度为6Bytes,是发送当前帧的设备的地址。设备的地址与其网络层UDS相同。
(4)目的地址(Destination ID)域
目的地址域长度为6Bytes,是当前帧的目的设备的地址。设备的地址与其网络层UDS相同。
(5)帧体(Frame body)域
帧体域包含数据或控制信息、管理信息。长度可变,范围是0-239Bytes(16位CRC校验)。
(6)CRC域
CRC域是对MAC帧中的帧头和Frame body域进行CRC校验的校验码部分,长度为2bytes(16位CRC校验)。
16位CRC校验的生成多项式为:G(x)=x16+x12+x5+1
CRC域=(被校验部分左移16位)/G(x)的余数,其中除法是模2除。
在接收端对整个MAC帧(包括CRC域),进行CRC校验,如果在传输中没有错误发生,MAC帧/G(x)(模2除)的余数是0。反之如果,MAC帧/G(x)(模2除)的余数非0,则说明在传输中出现误码。
2、各种类型帧的格式
(1)控制帧帧控制域格式
控制帧的控制域构成参见下表。
版本ProtocolVersion |
00 |
子类型SubType |
0 |
0 |
功率管理Power manage |
0 |
00000 |
(2)请求发送(RTS)帧帧格式
请求发送(RTS)帧构成参见下表。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表16,此时子类型为001b。
帧时间域表示某一预定的时间单位的倍数。这段时间包括:
●发送准备发送的数据帧或管理帧所需要的时间
●发送一个CTS帧所需的时间
●发送一个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
源地址域:发送此RTS帧的设备的地址
目的地址域:将要发出的数据帧或管理帧的接收设备的地址。
CRC域:对整个RTS帧进行16位CRC的校验码。
(3)允许发送(CTS)帧帧格式:
允许发送(CTS)帧构成参见下表。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表17,此时子类型为010b。
帧时间域:预定的时间单位的倍数。此值是刚接收到的RTS帧中的帧时间域值减去:
●发送一个CTS帧所需的时间
●一个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
源地址域:发送此RTS帧的设备的地址
目的地址域:将要发出的数据帧或管理帧的接收设备的地址。
CRC域:对整个RTS帧进行16位CRC的校验码。
(4)确认帧(ACK)帧格式:
确认帧(ACK)构成参见下表。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表18,此时子类型为011b。
帧时间域是预定的时间单位的倍数,这段时间包括:
如果刚接收到的数据帧或管理帧的帧控制域中的分段标志为0,ACK帧中的帧时间域值为0;如果刚接收到的数据帧、管理帧的帧控制域中的分段标志域的值为1或接收到PS-Poll控制帧,ACK帧中的帧时间域值为数据帧或管理帧的帧时间域值减去:
●发送一个ACK帧所需的时间
●一个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数
源地址域:发送此ACK帧的设备的地址
目的地址域:将要发出的ACK的接收设备的地址。
CRC域:对整个ACK帧进行16位CRC的校验码。
(5)节能请求(PS-Poll)帧帧格式:
节能请求(PS-Poll)帧参见下表。
帧控制Frame control |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
CRC |
MAC帧头 | |
帧控制域见表19,此时子类型为000b。
帧时间域:预定的时间单位的倍数。这段时间包括:
●要求对方设备(Destination ID)保持在节能状态的时间。
●发送一个CTS帧所需的时间
●发送一个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
源地址域:发送此PS-POLL帧的设备的地址
目的地址域:接收设备的地址。
CRC域:对整个PS-POLL帧进行16位CRC的校验码。
(6)数据帧帧格式:
数据帧构成参见下表。
帧控制FrameControl |
帧时间Duration |
目的地址Destination ID |
源地址Source ID |
帧体Frame body |
CRC |
2Bytes |
1Byte |
6Bytes |
6Bytes |
0-239 Bytes |
2Bytes |
(7)帧控制(Frame control)域:
如上表,数据帧的类型域为01b,子类型域为000b。
(8)帧时间(duration)域
帧时间域长度为1byte,表示某一预定的时间单位的倍数。
如果当前帧的帧控制域中分段标志域值为0,帧时间域值包括:
●发送一个ACK帧所需的时间
●一个SIFS时间间隔
如果当前帧的帧控制域中分段标志域值为1,帧时间域值包括:
●发送下一个子帧所需要的时间
●发送两个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
(6)帧体(Frame Body):
帧体就是网络层数据包。
数据帧中的其它域参见MAC帧通用格式定义。
(10)设备间的通信流程举例:
请参考图5。设备A向设备B发送一个数据包,此数据包中含3个数据帧。
设备A检测到通道处于空状态,以B为目的地址发出一个RTS帧,然后等待由B发回的CTS帧,如果A没有收到B的CTS帧,设备A就根据通道的工作状态,重复发送RTS帧。如果A收到B的CTS帧,就开始发送数据帧。每发送一帧后,就等待设备B发挥的ACK帧,以确定对方已经没有错误地接收到当前帧。如果设备A在发送某一帧后没有收到ACK帧,设备A设备帧就重发这一帧,直到收到对方的相应于这一帧的ACK帧。如果重发N次后,还没有收到回应,就放弃通信。设备B应抛弃接收不完整的数据包。
(11)管理帧通用帧格式:
管理帧的主要用于流量控制和加密手段,可选择实现。
管理帧的构成参见下表。
帧控制FrameControl |
帧时间Duration |
目的地址DestinationID |
源地址Source ID |
帧体Frame Body |
CRC |
2Bytes |
1Byte |
6Bytes |
6Bytes |
0-239Bytes |
2Bytes |
(12)帧时间(Duration)域:
帧时间域长度为1Byte,是预定的时间单位的倍数。
如果当前帧的帧控制域中分段标志域值为0,帧时间域值包括:
●发送一个ACK帧所需的时间
●一个SIFS时间间隔
如果当前帧的帧控制域中分段标志域值为1,帧时间域值包括:
●发送下一个子帧所需要的时间
●发送两个ACK帧所需的时间
●三个SIFS时间间隔
如果在计算中帧时间域的值包括分数值,帧时间域值取最接近此值的较大的整数。
(13)帧体(Frame Body)域:
帧体的长度因子类型不同而不同。
管理帧中的其它域参见MAC帧通用格式定义。
3、有线链接控制(MAC)层的功能:
有线链路控制层完成的功能包括:
a.通讯监测,避免通道冲突。
b.为提高接收稳定性,在发送端MAC层把网络层数据包分解成若干子帧,然后
分别作为独立帧发送;在接收端MAC层把子帧组合成一个数据包。
d.为网络层服务。
(1)通过通讯监测避免通道冲突
一个设备在发送之前要先确定通道是不是忙,如果通道空,就发一帧,如果通道忙,就处于接收态等待。
发送设备连续接收发送若干帧时,在每一帧之间***一个时隙。在这个时隙里,对通道进行监听。
通道由忙状态转到空状态时,最容易发生阻塞,这时各个设备设置一个随机的递减的时间量(backoff time),某一个设备的递减的时间量为零时,此设备开始发送新的一帧。
为了更好的避免通道冲突,在发送和接收设备之间交换短小的控制帧(RTS\CTS)
(2)通讯监测方法:
本***中提供两种通讯监测方法。一种是物理监测,由物理层完成;一种是虚拟监测,由MAC层完成。
在MAC帧头中有一个帧时间域。除省电(PS-Poll)控制帧外,所有类型帧的帧时间域都包含当前帧的后续操作所需要的时间。设备的默认态为接收态。处于接收态的设备都能收到MAC帧头,因此就能获取通道被占用的时间,从而保证在这段时间里不发生通道冲突。
(3)RTS\CTS交换机制
RTS、CTS帧中包含帧时间值,为通讯虚拟监测提供信息。
如果不止一个设备在一个通道上通信,RTS\CTS交换机制能提高设备在主从应用方式下的性能。
在传输数据帧时,并不是每一帧都交换RTS、CTS帧。
对于一个设备,RTS\CTS交换机制是可选的,如果一个设备没有设置RTS\CTS交换机制,它可以接收RTS、CTS帧,从中获取帧时间域值,实现通讯监测。这样的设备还可回应传送给它的的RTS。
(4)帧序列间的时间间隔(IFS):
本***中定义了三种时间间隔,从小到大的排列顺序为●SIFS
SIFS是传送RTS、CTS、ACK控制帧时使用的时间间隔。●DIFS
DIFS是传送一个CRC帧校验正确的数据帧或管理帧时使用的时间间隔。●EIFS
EIFS是传送一个CRC帧校验不正确的数据帧或管理帧时使用的时间间隔。
(5)递减的随机时间量(backoff time):
当通道忙时,一个想发送信息的设备处于接收等待状态,在某一时刻通道变为空闲状态,设备根据下一帧的类型决定在SIFS,DIFS,EIFS中的某一个IFS时间内,判断通道是否一直为空,如果为空闲,设备进入随机等待过程。递减的时间随机量小的设备,有可能先占用通道。
backoff time=N*t
N是一个随机整数。
t是一个预定的时间常数。
如果在随机(backoff time)时间内信道被其他设备占用,设备将重复上面的等待过程,最多不超过15次。
二、家庭控制网络的网络层协议:
(一)家庭控制子网网络层帧格式:
数字家庭网络网络层帧格式参见下表。
目的设备UDS |
帧控制字1 |
帧控制字2 |
源设备UDS |
包体 |
CRC |
6Bytes |
1Byte |
1Byte |
6Bytes |
0-960Bytes |
2Bytes |
1、网络层帧控制字
帧控制字长2Byte,用于区分帧类型和优化数据包长度,其定义如下:
帧控制字1构成参见下表
源设备UDS域有效 |
CRC有效 |
保留 |
应用层协议类型 |
包长度高位 |
Bit 7 |
Bit 6 |
Bit 5 |
Bit4-bit2 |
Bit1-bit0 |
●源设备UDS域有效为1表示本帧中存在源设备UDS域,否则表示不存在该域。
●CRC有效位为1表示本帧带有CRC校验域,否则表示不存在该域。
●应用层协议类型域为0,表明本帧中的数据是UDCP数据。
●包长度高位与帧控制字2共同组成10Bits的包长度值。包长度最大取值为960。
(二)设备ID与统一设备序列号(UD8)
家庭控制子网中的各个设备具有全局统一的网络标识。家庭控制子网中的每一台设备和子网网关都分配一个唯一的固定的标识符,以屏蔽物理层的差异,这个标识符就是“统一设备序列号(UDS)”。在家庭控制子网中,UDS与无线MAC层或有线MAC层的设备ID一致。
UDS通过一个统一的标准化组织的协调分配,能够作到全局唯一。
UDS长度为6个字节,其结构如下(长度:位):0 2 3 15 16 39 40 47
其中:
版本号为家庭控制子网协议版本号,目前为001b。版本号域值为111b保留。
厂商号由标准化组织统一分配。
子网网关编号由各生产厂家自定。
设备编号由各个子网网关在设备注册时分配。
各位全1的UDS(即0XFFFF)在家庭控制子网中表示对网中所有设备广播发送。
本协议中涉及的无线网络和有线网络的物理层ID与UDS相同,对于使用其他类型的物理层协议在家庭控制子网中进行通信中,需要支持本网络层协议。并需要对UDS与自身的物理层地址转换。
(三)广播:
各位全1的UDS(即0XFFFF)在家庭控制子网中表示对网中所有设备广播发送。此时广播发起者和子网网关都将转发该信息。
(四)异种物理介质互连:
家庭控制子网网关可以具备无线、RS485、以太网等多种物理接口,同时充当不同传输介质和协议的转换的角色。见图6。一般设备只接受发给自己的数据包,而子网网关需要分析处理所有的数据包。
子网网关作为传输的桥梁,存储整个家庭控制子网中的设备信息称为设备注册表,设备注册表纪录了一个家庭中所有设备的UDS和设备使用的通讯介质。家庭控制子网中任何设备发出MAC层数据包的都将由网关分析。当MAC层数据包的源设备与目的设备处在同一种物理介质的子网中,则子网网关不再处理该数据包。如果MAC层数据包的源设备与目的设备通讯介质不相同,则子网网关需要解析该MAC层数据包中包含的网络层数据包,根据网络层数据包中的目的UDS和设备注册表的内容,确定目的设备的MAC层和物理层协议,并把网络层数据包作为相应的MAC层帧数据,找出UDS所对应的目的设备的对应的MAC层地址,并使用适当的MAC层和物理层协议将其发往目标设备。
三、统一设备管理协议UDCP:
统一设备管理协议UDCP(Universal Device Control Protocol)属应用层协议,其作用是进行整个网络中设备的添加、删除、状态查询、参数配置等***管理,及根据设备文件进行应用控制。UDCP采用客户/服务器结构,客户为家庭控制子网中的主控器(子网网关),服务端为各家庭控制子网设备,包括无线控制终端。
为各种家电的管理和控制提供统一接口,UDCP利用设备文件来读取被管理设备的相应信息。设备具有统一的数据结构,详见第5章。
(一)UDCP报文格式:
UDCP报文的格式见下表(长度单位:字节)
报文头Head |
报文Frame field |
1Byte |
N Bytes n<959 |
报文头域标识本报文的功能,报文域根据报文头值的不同而有不同的结构和取值。其对应值如下表。
报文头域 |
本报文含义 |
报文长度(Bytes) |
一般应用 |
00 |
设备申请注册 |
4 |
手持->网关设备->网关 |
01 |
操作成功 |
8 |
应答 |
02 |
操作失败 |
8 |
应答 |
03 |
网关查询未注册设备 |
4 |
网关广播 |
04 |
网关注册确认 |
8 |
网关->设备 |
05 |
申请注销设备 |
8 |
手持->网关 |
06 |
申请下载设备文件 |
8 |
网关->设备 |
07 |
申请下载设备注册表 |
8 |
手持->网关 |
08 |
申请下载语音文件 |
8 |
网关->设备 |
09-0f |
保留 |
- | |
10 |
上载设备文件 |
- |
设备->网关 |
11 |
上载设备注册表 |
- |
网关->设备 |
12 |
上载语音文件 |
- |
设备->网关 |
13-1f |
保留 |
- | |
20 |
设置数据(Set Data) |
- | |
21 |
读取数据(Get Data) |
- | |
22 |
汇报(Report) |
- | |
23 |
传递数据(Put) |
- | |
24 |
正常(Keep alive) |
- |
设备->网关 |
25-FE |
保留 |
- | |
FF |
确认(ACK) |
- | |
(二)***管理数据包(00H-05H)
1、设备申请注册设备申请注册数据包格式见下表
类型Type |
报文Frame Field |
00 |
申请设备ID 6Bytes |
申请类型1Byte |
当申请类型为00H时,申请设备由第三方设备提出。
当申请类型为55H时,申请设备ID为目标网关ID。当手持无线终端加入网络时使用这种方式。
2、操作成功
操作成功数据包格式见下表
类型Type |
报文Frame Field |
01 |
操作设备ID 6Bytes |
***作设备ID 4Byte |
当设备由第三方申请注册时,网关需向第三方设备报告操作成功或失败。
申请注销设备后,网关需向第三方设备报告操作成功或失败。
网关注册确认后,设备需向网关报告报告操作成功或失败。
3、操作失败:
操作失败数据包格式见下表
类型Type |
报文Frame Field |
02 |
操作设备ID 6Bytes |
***作设备ID 4Byte |
4、网关查询未注册设备
网关查询未注册设备数据包见下表
类型Type |
报文Frame Field |
03 |
网关ID 6Bytes |
5、网关注册确认:
网关注册确认数据包格式见下表
类型Type |
报文Frame Field |
04 |
网关ID 6Bytes |
新注册设备ID 6Bytes |
6、申请注销设备:
申请注销设备数据包格式见下表。
类型Type |
报文Frame Field |
05 |
网关ID 6Bytes |
被注销设备ID 6Bytes |
当设备由第三方申请注销时,网关需向第三方设备报告操作成功或失败。
申请注销设备后,网关需向第三方设备报告操作成功或失败。
(三)数据块传送:
1、申请下载设备文件:
2、申请下载设备文件数据包格式如下表。
类型Type |
报文Frame Field |
06 |
申请设备ID6Bytes |
请求设备文件所在的设备ID6Bytes |
指定的设备以上载设备数据包作为回应。
2、申请下载设备注册表:
申请下载设备注册表数据包格式如下表。
类型Type |
报文Frame Field |
07 |
申请设备ID6Bytes |
子网网关ID 6Bytes |
子网网关以上载设备注册表作为回应。
3、申请下载语音数据:
申请下载语音数据包格式如下表。
类型Type |
报文Frame Field |
08 |
申请设备ID6Bytes |
语音数据存储设备ID6Bytes |
语音数据索引2Bytes |
语音数据存储设备以上载语音数据命令作为回应。
4、上载设备文件
上载设备文件数据包如下表。
类型Type |
报文Frame Field |
10 |
帧头Header2bytes |
设备文件数据 |
该命令用于响应申请下载设备文件命令。
5、上载设备注册表:
上载设备注册表如下表。
类型Type |
报文Frame Field |
11 |
头部Header2bytes |
设备注册表 |
该命令用于响应申请下载设备注册表命令。
6、上载语音数据:
上载语音数据包格式如下表。
类型Type |
报文Frame Field |
11 |
头部Header2bytes |
语音数据 |
该命令用于响应申请下载设备语音数据命令。
头部(Header)域:
头部格式的定义如下表。
分段标志Flag |
分段结束标志End |
分段序列号Number |
1bit |
1bit |
14bit |
●分段标志(Flag)域为0表示本数据包是独立的。Flag域为1表示本数据包是连续的数据包中的一个。●分段结束标志(End)域为0表示本数据包后还有后续包。End域为1表示本数据包是连续包中的最后一个。●分段序列号(Number)域为本数据包在连续数据包中的序号。
(四)控制命令
1、设置数据(Set Data):
设置数据包格式如下表。
类型Type |
报文Frame Field |
20 |
从设备文件中得到的设备控制指令 |
该命令用于向设备发送命令控制设备的工作状态。
2、读取数据(Get Data):
读取数据包格式如下表。
类型Type |
报文Frame Field |
21 |
从设备文件中得到的查询设备状态的指令 |
该命令用于取得设备状态。
3、汇报(Report):
汇报数据包格式如下表。
类型Type |
报文Frame Field |
22 |
设备主动报告自身状态的数据 |
设备主动报告自身状态。
4、传递数据(Put):
传递数据包格式如下表。
类型Type |
报文Frame Field |
23 |
设备响应读取数据命令,报告自身状态的数据 |
设备响应读取数据命令,报告自身状态。
5、正常(Keep Alive):
正常数据包格式如下表。
类型Type |
报文Frame Field |
24 |
报告设备ID 6Bytes |
该命令用于设备与子网网关间保持联接。
6、确认(ACK):
确认数据包格式如下表。
类型Type |
报文Frame Field |
FF |
应答设备ID 6Bytes |
确认用于接收方响应设置数据,汇报,传递数据命令,接收方正确接收后要给出确认帧作为回应,发送方在发送后RT1时间后仍未收到确认,则重发一次。重发最多可进行RN1次。RT1、RN1的值可以在一定范围内配置。
(五)注册和注销:
家庭控制子网中的注册即家庭控制子网设备在子网网关处登记,取得子网网关的信任关系,使得家庭控制子网中的其他设备可以访问该设备。
注册的过程描述如下:●申请方发出“申请注册”数据包。●网关接到上述命令后,在自己的设备注册表中添加申请方的UDS后返回“申请操作成功”命令。●申请方如接到“申请操作成功”命令,则表示注册成功,否则为失败。
注销的过程中设备分为申请方和应答方,前者是注销的主动发起者,后者是被动响应者。注销的过程描述如下:●申请方发出***管理命令中的“申请注销”命令。●网关接到上述命令后,在自己的设备注册表中删除要求注销的UDS后返回“申请操作成功”命令。●申请方如接到“申请操作成功”命令,则表示注销成功,否则为失败。
(六)设备注册表和设备文件的下载
家庭控制子网中已注册的设备可以向子网网关要求将其完整的设备注册表传送给自己,从而获知家庭控制子网的详细信息。
设备注册表和设备文件的下载按如下流程进行:●申请方提出请求指令(“申请下载设备注册表”或“申请下载设备文件”)●申请接收方将设备注册表或设备文件拆分成较小的数据包,以数据块传送报文依次发送。
(七)设备控制模式的使用
家庭控制子网中已注册的设备中任何一个都可以通过“设置数据”报文向其他设备发送控制命令。具体的控制命令码由应用程序按需要从对方的设备文件中查出并填入报文中。
家庭控制子网中应用控制模式下控制码和回码是一一对应的,在正常情况下,控制码的接收方正确接收控制码后要给出回码作为回应,发送方在发送后RT2时间后仍未收到确认,则重发一次。重发最多可进行RN2次。RT2、RN2的值可以在一定范围内配置。
如前所述,UDCP中控制码和回码使用的是不同的报文格式。虽然一个控制码有其特定的回码相对应,但从UDCP的角度来看,其具体数值是无关紧要的,本层协议保证在向设备发出一个使用了控制码的报文后要在规定时间内收到对方的回码报文。回码报文交由应用程序判断处理。
(八)设置命令执行过程举例
控制方的应用程序要设置一台空调,使其定时关机。应用程序从本机保存的此空调的设备文件中查到对应的命令码格式为:4D21+HH+MM,其回码为4921+HH+MM。下面应用程序使用UDCP中应用控制方法,用控制码格式将上述数据(4D21+HH+MM)发给空调。空调接受命令并执行后,使用UDCP中应用控制方法,用回码格式将回码数据(4921+HH+MM)返回。控制方的UDCP层只要在限定时间内接到了对方的响应,从报头可以判断这是一个回码,则本机的UDCP层认为一次通讯结束,将回码交给应用程序。应用程序从UDCP返回的数据(4921+HH+MM)与先前发出的控制命令相较,从其设备文件可知这次设置是成功的。如果应用程序认为不成功,它可以再发起一次设置动作。
(九)查询命令执行过程举例:
控制方的应用程序要查询一台空调当前的时间。应用程序从本机保存的此空调的设备中查到对应的命令码格式为:4D28,其回码为4928+HH+MM。下面应用程序使用UDCP中应用控制方法,用控制码格式将上述数据(4D28)发给空调。空调接受命令并执行后,使用UDCP中应用控制方法,用回码格式将回码数据(4928+HH+MM)返回。控制方UDCP层只要在限定时间内接到了对方的响应,从报头可以判断这是一个回码,则本机的UDCP层认为一次通讯结束,将回码交给应用程序。应用程序从UDCP返回的数据(4928+HH+MM)与先前发出的控制命令相较,从其设备文件可知这次查询是成功的。如果应用程序认为不成功,它可以再发起一次查询动作。
四、数字家庭网络通讯协议的使用:
(一)网关控制终端的功能与流程:
子网网关在家庭控制子网中作为设备的一个控制通讯终端,主要功能是把家庭控制子网设备和家庭主网关连接起来,并实现家庭控制子网内部设备的互连。子网网关是一个符合家庭控制子网通讯协议的设备,可以与家庭控制子网设备进行数据交换。
当用户通过Internet登录到家庭主网关时,就可以进入一个数字家庭网络的控制画面,这个画面出现当前家庭控制子网设备,点击要控制的家电设备的图标,可以进入此家电的控制界面。
控制界面上显示了此家电的所有控制选项,用户点击想要进行相应控制的选项,子网网关与主网关通过主网关与子网网关之间的通信协议(见第4章)获得相关的控制信息,并使用家庭控制子网通信协议控制相关的设备。
这个子网网关所控制的设备的通讯模块接收到这个数据帧,物理层对此数据帧进行拆包,得到有效载荷,有效载荷再传输给MAC层,MAC层对此有效载荷进行拆包,并判断其正确性和有效性,如正确,则得到控制命令和有效数据信息,再将它们传输给此设备的控制接口。如不正确,则不对此数据进行处理。
被控设备的控制接口层对所得到的控制命令和有效数据进行数据转换,传输给此设备应用层,由此应用层得到控制此设备的相应控制命令和有效参数,此设备根据这些数据信息执行相应的动作,在此动作完成后,返回给子网网关相应的反馈信息,反馈信息指示了当前此家电的现行状态。子网网关进而把信息传递主网关。
当主网关接收到反馈信息后,更新此家电的网络界面,显示此家电当前的运行状态。
这是子网网关在遵循家庭控制子网通信协议,进行的一次完整的通讯过程。
(二)移动控制终端的功能与流程:
移动控制终端在家庭控制子网中作为家庭控制子网设备的一个通讯控制终端,主要功能是通过无线的方式与设备进行通讯,移动控制终端遵循家庭控制子网通信协议,可以与家庭控制子网设备进行数据交换。
当用户打开移动控制终端电源的时候,移动控制终端的用户界面就会显示出来,用户界面上显示了当前在移动控制终端所在家庭控制子网中的所有家电。当用户界面显示的同时,移动网络终端会发出一组查询命令,逐个查询家庭控制子网中所有的家庭控制子网设备的当前状态,收到返回信息后显示各个家电的状态参数。选择用户界面上要控制的家电图标,可以进入此家电的控制界面。
控制界面上显示了此家电的所有控制选项,选择想要进行相应控制的选项,移动控制终端的应用层程序从所选择的控制选项得到其所对应的控制命令和有效参数,使用适当得协议将此数据传输至被控制设备。
所控制家电的通讯模块接收到这个数据帧,传输到物理层,物理层对此数据帧进行拆包,得到有效载荷,有效载荷再传输给MAC层,MAC层对此有效载荷进行拆包,并判断其正确性和有效性,如正确,则得到控制命令和有效数据信息,再将它们传输给此家电的控制接口。
被控制家电的控制接口对所得到的控制命令和有效数据进行数据转换,传输给此家电的应用层,由此应用层得到控制此家电的相应控制命令和有效参数,此家电根据这些数据信息执行相应的动作,在此动作完成后,返回给移动控制终端相应的反馈信息,反馈信息指示了当前此家电的现行状态。
如果移动控制器在一段时间间隔后没有得到相应的反馈信息,则进入重发功能,索取此次控制的反馈信息。
当移动控制终端接收到反馈信息后,更新此家电的用户界面,显示此家电当前的运行状态。
这是移动控制终端遵循家庭控制子网通信协议进行的一次完整的通讯过程。