具体实施方式
本发明实施例提供一种应用于家庭的令牌传递方法,以下进行详细说明。
在本令牌传递方法中,每个从节点自身拥有一个优先级,MAC地址全球唯一,生产设备时确定,优先级根据业务类型确定默认值,并且用户可设置,主节点优先级固定为0。需要说明的是,在数字家庭网络中,主节点为家庭网关,从节点为家庭内部各种与家庭网关相连的应用终端,例如:计算机、电话机、电视机、游戏机、安防设备、抄表集抄器等。
本令牌传递方法可以实现由家庭网关控制的从节点的标识(ID,IDentity)划分;实现6种业务(最多可扩展为16种业务)和64个家庭业务终端的接入;实现QoS的分类和流量控制。
将不同的业务类型映射为不同的优先级,最多支持16个优先级,也就是是16种业务。在本实施例中,0为优先级最高,15为优先级最低,定义的六种业务,对应的优先级登记分别为:电视业务对应的优先级为2、电话业务对应的优先级为4、安防业务对应的优先级为6、抄表业务对应的优先级为8、游戏业务对应的优先级为10、上网业务对应的优先级为15。
在本实施例中,所采用的帧格式如下表所示,
帧头域 |
ID域 |
类型域 |
数据域 |
校验域 |
1字节 |
1字节 |
1字节 |
最大1496字节 |
1字节 |
其中,
(1)帧头域用1个字节表示,固定为0x7E。在帧内数据域部分,封装时如果遇到0x7E需要转换为0x7D0x5E,如果遇到0x7D需要转换为0x7D0x5E;解封装时进行反向操作。
(2)ID域用1个字节表示,用于标识用户地址,目前设计支持64个用户。
(3)类型域用1个字节表示,最多可定义256种帧类型。
目前设计了6种类型的帧,其名称和作用分别为:
节点ID申请帧:用于从节点向主节点申请从节点ID;
节点ID分配帧:用于主节点向从节点分配从节点ID;
发送数据控制帧:用于主节点控制从节点发送数据;
发送数据控制应答帧:用于响应“发送数据控制帧”;
下行数据帧:用于传输主节点至从节点的数据;
上行数据帧:用于传输从节点至主节点的数据。
(4)就数据域而言,本令牌传递承载于以太网之上,以太网层采用RFC894定义的封装格式,净荷数据长度最大为1500字节,在本实施例中,净荷数据长度最大值记为Lmax,Lmax=以太网净荷数据长度最大值-帧头域长度-类型域长度-ID域长度-校验域长度=1500字节-1字节-1字节-1字节-1字节=1496字节,即在本实施例中,净荷数据长度最大值为1496字节。
当物理层提供50Mbps的带宽时,传送一帧长度为1518字节以太网帧时间记为tmax,tmax=帧长/带宽=(1518字节×8)/50兆位每秒=243×10-6秒,即传送1518字节帧仅需243微秒。
如果主节点对从节点的问询周期中,从节点每次只发送一帧数据帧,假设“上行数据帧”帧长是最大值1500字节,则轮询一个周期耗时最大,“发送数据控制帧”和“发送数据控制应答帧”帧长都是5字节,此时在64个用户数情况下,所有用户全部轮询一遍的时间记为t,则t=用户数×(传送最长帧时间+发送数据控制帧时间+发送数据控制应答帧时间)=64×[243×10-6秒+(5字节×8)/50兆位每秒+(5字节×8)/50兆位每秒]=15.65毫秒。
根据ETSI统计,话音数据最大延时为20毫秒、游戏最大延时为20毫秒、音频视频流最大延时为100毫秒,其他业务延时基本上在200毫秒左右。
为了降低各业务时延先选择帧长为500字节,时延为5.2ms。
(5)校验域用1个字节表示,采用CRC8校验和。
如前所述,本令牌传递方法目前设计了六种帧类型,具体为:节点ID申请帧、节点ID分配帧、发送数据控制、发送数据控制应答帧、下行数据帧、和上行数据帧,具体描述如下:
(1)节点ID申请帧的帧类型域为0x02,节点ID申请帧的帧格式为:
帧头域 |
ID域 |
类型域 |
MAC域 |
优先级域 |
校验域 |
1字节 |
1字节 |
1字节 |
6字节 |
1字节 |
1字节 |
其中ID域用于填写主节点ID;MAC(MediaAccessControl)域用于填写从节点自身MAC值;优先级域用于填写从节点自身优先级值;
节点ID申请帧由从节点发送至主节点,需要主节点响应,用于从节点向主节点申请从节点ID。
(2)节点ID分配帧的类型域为0x03,节点ID分配帧的帧格式为:
帧头域 |
ID域一 |
类型域 |
MAC域 |
ID域二 |
校验域 |
1字节 |
1字节 |
1字节 |
6字节 |
1字节 |
1字节 |
其中,ID域一用于填写主节点ID;MAC域用于填写目标从节点MAC值;ID域二用于填写为目标从节点分配的ID值。节点ID分配帧由主节点发送至从节点,不需要从节点响应,用于主节点向从节点分配从节点ID。
(3)发送数据控制帧的类型域为0x04,发送数据控制帧的帧格式为:
帧头域 |
ID域 |
类型域 |
控制命令域 |
校验域 |
1字节 |
1字节 |
1字节 |
1字节 |
1字节 |
其中,ID域用于填写目标从节点ID;当处于是否需要发送数据的状态时,控制命令域填写0x00,当处于停止发送数据的状态时,控制命令域填写0x01。
发送数据控制帧作用由主节点发送至从节点,需要从节点响应,用于主节点控制从节点发送数据。
(4)发送数据控制应答帧的类型域为0x05,发送数据控制应答帧的帧格式为:
帧头域 |
ID域 |
类型域 |
控制命令域 |
校验域 |
1字节 |
1字节 |
1字节 |
1字节 |
1字节 |
其中ID域用于填写主节点ID;当处于需要发送数据的状态时,控制命令域填写0x00,当处于不需要发送数据的状态时,控制命令域填写0x01。
发送数据控制应答帧由从节点发送至主节点,不需要主节点响应。发送数据控制应答帧用于从节点响应“发送数据控制帧”。
(5)下行数据帧的类型域为0x06,下行数据帧的帧格式为:
帧头域 |
ID域 |
类型域 |
净荷数据域 |
校验域 |
1字节 |
1字节 |
1字节 |
最大1496字节 |
1字节 |
其中,ID域用于填写主节点ID;下行数据帧由主节点发送至从节点,不需要从节点响应。下行数据帧用于主节点向从节点发送数据。
(6)上行数据帧的类型域为0x07,上行数据帧的帧格式为;
帧头域 |
ID域 |
类型域 |
数据域 |
校验域 |
1字节 |
1字节 |
1字节 |
最大1496字节 |
1字节 |
其中,ID域用于填写主节点ID;上行数据帧由从节点发送至主节点,不需要主节点响应。上行数据帧用于从节点向主节点发送数据。
参见图1,下面将就主节点对从节点的ID分配流程、主节点和从节点之间的下行数据处理流程、主节点和从节点之间的上行数据传输流程进行详细描述。
1)主节点对从节点的ID分配流程
101、任一从节点上电后向主节点发送节点ID申请帧。
102、主节点收到节点ID申请帧后,主节点向该从节点发送节点ID分配帧,该节点ID分配帧携带MAC域信息和为该从节点分配的ID信息。
103、该从节点接收到主节点发送的节点ID分配帧后,获取该节点ID分配帧携带的MAC域信息,
104、如果该节点ID分配帧携带的MAC域信息与从节点自身的MAC信息相匹配,该从节点从该节点ID分配帧中提取主节点为从节点N分配的ID信息。
2)主节点和从节点之间的下行数据处理流程和上行数据处理流程
对于下行数据(主节点到从节点的控制帧和数据帧)采用广播的方式传输,对于上行数据(从节点到主节点的控制帧和数据帧)采用单播的方式传输。
在主节点内根据业务类型(优先级)将所有的从节点建立成相应数量的队列,主节点的队列结构示意如图2所示。下行数据根据业务类型依次存储在相应队列中。主节点按优先级从高到低顺序依次扫描各队列,当高优先级队列处理完成后,再扫描下一优先级队列。当所有优先级的队列全部扫描完成后,重新从最高优先级队列开始新一轮扫描。
可选的,在扫描开始时,开启定时器,当定时器t(目前定义为20毫秒)时间到达时,本次扫描结束,重新从最高优先级扫描。本机制用于保证在带宽不足时,高优先级业务的实行。
队列处理过程包括:上行数据和下行数据处理。
对于队列内的下行数据直接进行发送,直到队列内不再包含有效数据;依次问询对应优先级的节点,实现上行数据传输。
主节点的队列处理过程流程如下所示:
105、主节点扫描最高优先级的队列;
106、判断正在扫描的队列中,是否存在有效数据,若是,执行步骤107,若否,执行步骤108;
107、正在扫描的队列中,存在有效数据,主节点向存在有效数据的从节点发送下行数据帧;
108、正在扫描的队列中,不存在有效数据,主节点对正在扫描的从节点进行轮询,进行上行数据传输;
109、在步骤108之后,主节点判断目前扫描的队列是否为最低优先级,若是,执行步骤105,若否,执行步骤110;
110、目前扫描的队列不是最低优先级,主节点再扫描下一优先级队列。当所有优先级的队列全部扫描完成后,重新从最高优先级队列开始新一轮扫描。
在步骤102中,主节点发送的节点ID分配帧中的ID域包含了主节点为从节点分配的ID信息,主节点自身要先获取为从节点分配的ID信息。参见图3,主节点获取为从节点分配的ID信息的过程如下:
主节点的ID信息为0x00,在主节点维护ID信息表,ID信息表以ID为主键从小到大存储信息项。从节点的ID共有8bit,高四位由从节点优先级确定,低四位从0开始依次分配。
201、当主节点接收到节点ID申请帧后,从节点ID申请帧中提取优先级值;
202、在ID信息表中查找是否存在ID高四位是该优先级值的表项,若ID信息表中不存在ID高四位是该优先级值的表项,执行步骤203;若ID信息表中存在ID高四位是该优先级值的表项,执行步骤204;
203、ID信息表中不存在ID高四位是该优先级值的表项,主节点在ID信息表中增加ID表项,新增加的ID表项高四位为该优先级值,低四位为0;
204、ID信息表中存在ID高四位是该优先级值的表项,判断该表项的低四位数值最大者是否等于15,若不等于15,执行步骤205,若等于15,执行步骤206;
205、该表项的低四位数值最大者不等于15,主节点在ID信息表中增加ID表项,新增加的ID表项高四位为该优先级值,低四位为前述的该表项的低四位数字最大者;
206、该表项的低四位数值最大者等于15,将节点ID申请帧中提取出的优先级值更新为加一后的值;
207、在步骤206后,再判断更新后的优先级值是否等于15,若不等于15,则重新执行步骤202,及步骤202以后的步骤;若等于15,则执行步骤208;
208、更新后的优先级值等于15,主节点进行异常处理。
具体的,假设主节点从节点ID申请帧中提取出的从节点1的优先级为2,则从节点1的ID高四位为2。主节点检索ID信息表,查找到ID高四位为2的表项,该表项ID低四位数值最大者为m。主节点判断m是否等于15,若m等于15,将主节点从节点ID申请帧中提取出的优先级值更新为加一后的值,得到m1,m1=2+1=3,再判断m1是否等于15,若m1不等于15,主节点检索ID信息表,查找到ID高四位为3的表项,该ID高四位为3的表项中的ID低四位数值最大者为m2,如果m2不等于15,主节点在ID信息表中添加表项,新添加的表项的高四位为m1,低四位为m2+1。
参见图4,在步骤108中,当正在扫描的队列中不存在有效数据时,主节点对正在扫描的从节点进行轮询,实现上行数据传输,具体为:
301、主节点向正在扫描的从节点发送发送数据控制帧,询问从节点是否需要发送数据;
302、所有从节点监听线路,任一正在扫描的从节点收到发送数据控制帧后,从发送数据控制帧中获取ID信息,将该ID信息与自身的ID值相匹配。
303、若匹配,则向主节点发送发送数据控制应答帧来进行响应;
304、主节点接收到发送数据控制应答帧之后,与之响应的从节点发送上行数据帧。
可选的,主节点每次对从节点轮询时,允许向从节点发送多帧发送数据控制帧。
可选的,在上行数据传输过程中,一旦定时器到时,则主节点向从节点发送“发送数据控制帧”,命令从节点立即结束数据传输。
本发明实施例采用主节点控制从节点的ID划分,按照从节点的ID和从节点的优先级来进行上行数据和下行数据的传递,从而能够实现6种业务和64个家庭业务终端的接入,并实现QoS的分类和流量控制。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的应用于家庭的令牌传递方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。