吴志盛,刘 枫
(西南大学 计算机与信息科学学院,重庆 400715)
无线HART是一种专门为过程控制领域而设计的网络通信协议,是HART现场总线在无线领域的延伸,其通信模型主要由应用层、网络层、数据链路层、物理层组成。其中数据链路层在物理层提供服务的基础上向网络层提供服务,其最基本的服务就是将来自节点网络层的数据可靠的传输到相邻节点的网络层[1]。数据链路层协议主要用于建立可靠的点到点的单跳通信。在层型的拓扑结构上实现无线HART数据链路层通信协议,这里所设计的算法已成功应用于无线HART单跳网络。
无线通信网络拓扑主要包括星型和网状两种结构,星型单跳网络支持高可靠性的网络通信,而网状多跳网络支持远距离通信,无线HART协议支持网状拓扑结构和星型拓扑两种结构,用户可根据实际需要选择星型或网状拓扑结构,或者介于二者之间的拓扑结构[2]。本文根据工业现场的实际要求,采用星型和网状结合的两层网络拓扑结构,第一层是网状结构,由网关和路由设备构成;第二层是星型结构,由路由设备以及现场设备构成。其中,网关负责无线HART网络与工厂内的其他网络的协议转换与数据映射。簇首作为网络管理者的代理,负责构建由现场设备和路由设备构成的星型结构,监测星型结构性能;作为安全管理者代理,负责合并及转发簇成员的数据;负责转发其他簇首的数据。簇成员负责获取现场数据并发送到簇首。
无线HART数据链路层包括逻辑链路层协议(LLC)和介质访问控制层协议 (MAC),数据链路层主要定义数据帧格式,介质访问控制层主要负责管理和协调通信资源的分配和使用。
2.1.1 帧格式[3]
其中,地址指示为无线HART网络支持两种地址格式,一种用于局域网的短地址,一种用于广域网的长地址。其中短地址由16位二进制组成,用户可自行定义;长地址由64位二进制数组成,64位中高24位表示设备ID,低24位表示OUI地址(由IEEE STD 802.15.4协议分配,其中无线HART的OUI地址为0x001B1E),中间16位表示设备类型(设备生产厂家确定);时序号为绝对时序号的最低8位;网络ID为无线HART根据网络应用类型确定的网络ID号;数据包指示为数据包指示由8位二进制数组成,低3位表示数据包的类型,第4位表示网络密钥,第5、6位表示数据包的优先级。无线 HART 数据包分为 ACK、Advertise、Keep alive、 Disconnect、Data5种类型,分为命令、过程数据、一般、报警4种优先级。发送数据来自网络层并需要发送的数据。MIC为网络授权检测。CRC为数据完整性检测。
无线HART链路调度主要通过以邻居表位核心的五张表实现,其中超帧表记录超帧的分配和使用状态;链路表记录链路(通信资源)的分配和使用状态;邻居表记录着节点本身的邻居节点(处于节点单挑通信范围之类的节点称为该节点的邻居节点);路由表记录着多跳网络中的路由信息;缓冲表存储着待发送的数据同时记录优先级以及等待时间等状态。
无线HART网络中每一个节点都支持多个超帧,网络管理者完成超帧的构建和维护,并根据网络需求进行时隙链路的分配。每一个超帧包含一定数量的时隙。超帧一旦建立,网络管理者为该超帧增加、删除、优化链路时隙。一旦分配时隙,超帧应该使能从而允许链路的调度。链接表中一个链接表示一个通信机会,通过链接表实现目标邻居节点的识别,时隙、超帧序列号、发送接收方向、链路类别、信道。邻居表维护并记录着一组能与节点直接通信(单跳)邻居节点,通过邻居表可查询邻居节点地址、时钟源标志、通信数据量、节点最后通信时间、通信节点状态、节点通信优先级。图表提供上行和下行多跳网络的路由信息,其元素主要由多个路由路径节点信息,图标主要由网络管理者实现管理。缓冲表主要用于节点存储待发送数据,记录着数据包的ID、优先级、目的地址类型、保存时间。
无线HART网络采用频分多址 (FDMA)和时分多址(TDMA)混合的信道访问机制。无线HART协议采用集中式资源分配方式,即通信资源由网络管理器统一分配。无线HART网络工作于2.4 GHz射频频段。为了保证系统能在非常恶劣的工业现场通信环境中实时、可靠的工作,无线HART采用TDMA和FDMA的混合信道分文机制。TDMA技术将每一个时隙复用到2.4 GHz的16个信道上,使系统的有效带宽提高了 16倍[4]。
为了进行资源分配,首先建立通信资源矩阵。纵坐标表示信道频率,横坐标表示时隙,矩阵中的每个单元表示一个通信资源,每个通信资源用频率和时隙的二元组来唯一标示。每个矩阵元素包含如下通信资源和链路的信息:占用标志位,链路的源节点、链路的目的节点、链路的类型。矩阵中每个元素都被初始化为0,当某个通信资源已经被分配,矩阵中对应元素的占用标志位被置为1,并填充相应的通信资源信息。
无线HART网络中,通信资源有NORMAL、ADVERTIS、JOIN和DISCOVERY 4种类型,NORMAL通信资源主要用于过程数据和管理命令的传输,ADVERTISE通信资源用于广播网络信息以方便新节点加入网络,JOIN通信资源用于新设备加入,DISCOVERY通信资源用于邻居发现。其中NORMAL类型的通信资源与路由路径相关,其他的资源都与路由路径无关,重点考虑NORMAL通信资源的分配。NORMAL通信资源分配以所建立的拓扑结构为基础,以图表和邻居表为分配图,根据所建立的两层结构进行两层分配。
1)簇内通信 簇内所有的通信节点的通信资源位于矩阵的同一行,并按照时隙进一步分配。对于下行通信,每一资源的源地址为簇首节点,目的地址为节点地址;对于上行通信,每一分资源的源地址为节点地址,目的地址为簇首节点。
2)簇间通信 簇间通信主要是负责簇首与网关之间的通信,而其资源主要占据矩阵中两行,其中上行网络通信资源,一行为下行网络通信资源。在资源不满足的情况下,可以根据资源分配的具体情况进行拓展,但必须以双行网络为前提,而且上行还有下行资源不能占据同一个时隙。分配的路径以图表和邻居表为分配路径,进行上行和下行节点的分配。
整个网络的时钟同步对于无线HART的TDMA通信是十分必要的,设备间的时钟偏移是不可避免的,TDMA网络节点实现全网完全同步并不现实,而且精确度越高能量消耗就越大,因此无线HART节点需要在精确度与能耗之间取得平衡,在满足网络TDMA时隙通信要求的基础上尽可能的降低能耗[5-6]。
无线HART为工业环境的无线通信协议,其对稳定性、可靠性有着比一般通信网络更高的要求;而无线HART作为一个mesh的无线通信网需要实现全局的时间同步,但是由于硬件设备以及能量等问题,使得传统的有线时间同步的算法以及常规的WSN时间同步算法无法在无线HART中实现。为此以最小能耗为设计目标,设计一个多层次、全局、不间断的同步策略应用简易但有效的同步算法实现无线HART-TDMA时间同步。图1为相邻节点通信。
图1中描述了无线HART节点A与节点B间的一次通信,节点A在T1时刻发送一个数据包给节点B,节点B在T2时刻接收到A所发送的数据包,节点B在T3数据包发送一个应答数据包,节点A在T4时刻接收到B所发送的应答数据包。 T1、T2、T3,T4为节点时钟,四者存在以下关系:
图1 相邻节点通信
式中,TA->Belays表示A到B的时间延迟,TB->Adelay表示B到A的时间延迟。在整个通信过程中,延迟主要发送在层与层间数据传送以及点与点之间数据传输过程中。式(1)中DA->BT1以及式(2)中DA->BT4分别表示T1时刻节点A对节点B的时钟漂移和T4时刻节点A对节点B的时钟漂移,尽管由于环境因数(如温度、压力等)的影响,时钟漂移每一个时刻都在发生,二者并不完全相等,但一般情况二者一次通信进行的时间间隔较短,可以认为二者几乎相等。同样假定TA->Bdelay和相等。
通过式(1)和式(2)可得出延迟时间以及漂移时间:
节点将根据式(3)和式(4)所求出的延迟时间以及漂移时间进行时钟的主动同步与被动同步。
时钟同步由两步骤完成,首先选取时钟源,网络管理节点作为时钟服务器,并选取若干节点作为网络时钟源;然后在同步过程,每一个节点通过与时钟源进行被动或主动的时钟同步。其中,主动同步为当高层节点向低层节点发送数据时,低层节点记录数据包实际到达时间与计算达到时间的偏移调整本地时钟;被动同步为当低层节点向高层节点发送数据时,底层节点等待并接收高层节点的应答数据包,并利用应答数据包中所包含的时钟偏移信息进行时钟调整。
高层节点发送邀请数据包,待加入节点接收邀请数据包并完成一次被动同步过程;高层节点发送侦听数据包,判断临近节点是否处于网络并完成一次被动同步过程;低层节点通过接收一次数据包完成一次被动同步过程;底层节点通过接收高层节点的应答数据包完成一次主动同步过程。整个同步网络低层同步高层,整个网络时钟以根时钟源为基准实现整个网络的时钟同步。根时钟源可根据实际情况采用可行方法(如GPRS等)与理想时钟同步。
3.3.1 调度
数据链路层在实现无线HART网络全网时钟同步的基础上,主要负责链路的调度,控制着数据的发送和接收,从而保证网络的正常通信。链路调度通过查询活动超帧表、链接表、数据等表从而决定下一个将要通信的时隙。所有的接收链接将会被允许通信。网络层发出发送数据请求,若待定表中已无空余空间,调用失败,否则数据包进入待定表中的同时查询等待表是否存在相同目的地址的高优先级数据包,若不存在,数据包进入等待表中等待发送,否则保存在待定表中,待发送表根据目的地址的类型进行查询,邻居地址查询邻居表、图地址查询图表的基础上再查询邻居表,最终邻居地址、图地址、广播地址、代理地址的4种都将查询链路表获得相应链路并设置为发送类型(TX=1),之后进入等待状态。当ASN到达相应时隙,数据包根据TXRX的值进入发送、接收、休眠状态。如图2所示。
3.3.2 状态机
图2 链路调度
图3为TDMA状态机,该状态机建立在逻辑链路层所建立的四张调度表以及调度机制的基础上,TDMA状态机开始于节点加入无线HART网络,加入的同时建立状态机所需要的超帧表、图表、链路表,开始从邻居节点接收数据并以此为基础建立邻居表。节点维护存储着一列待发送数据包,当一个发送时隙发生,节点将会尝试发送数据包。发送数据包包括发送数据包和接收ACK应答两个过程。当一个发送时隙产生,进入发送状态。成功发送一个广播地址的数据包在数据包发送之后结束,并从等待表中删除。成功发送一个非广播地址的数据包,节点将等待ACK应答数据包,ACK数据包将表明数据包是成功接收还是出现接收错误。如果目的地址是广播地址,将不会有ACK应答数据包,发送完成并进入空闲状态进行调度表的更新;成功发送一个非广播地址数据包,进行数据完整性和权限完整性检验,TDMA状态机进入等待ACK状态,如果无ACK应答表明发送失败。如果是一个共享链接,将启动重发机制,若最终依然失败,进入空闲状态更新调度表。如果一个ACK应答数据包被成功接收,节点根据ACK确定发送是否成功,若发送成功,进入空闲状态更新调度表。如果显示发送错误,将启动重发机制。所有的接收链接都将在没有发送请求的基础被全部服务,节点接收数据有三种可能:1)数据包的目的地址就是节点地址 ;2)数据包目的地址是路由地址;3)数据包目的地址非以上两种情况。每一次接收数据,邻居表都将被更新维护。
图3 TDMA状态机
以无线HART协议为基础根据工业现场的特点,设计并实现了数据链路层协议模型。在以无线HART适配器节点为平台的实验结果表明,模型所实现的时钟同步精度达到30 μs,满足工业现场要求的前提下降低了节点的能耗,以模型为基础的无线HART节点成功组建形成无线HART单跳网络。
[1]梁炜,李强.无线HART网络管理器的开发与应用[J].中国仪器仪表, 2008(S1):176-179.
[2]赵淑娟.一个分层簇状网络结构无线HART通信方案研究和设计[M].华中科技大学,2008.
[3]IEC/PAS 62591:Industrial communication networks-Fieldbus specifications-Wirelesshart communication network and communication profile[S].
[4]梁炜,李强.面向无线HART网络的动态资源分配算法研究[J].仪器仪表学报,2008,29 (8): 243-246.
[5]Mills D L.Internet time synchronization:The network time protocol[C].In Z.Yang and T.A.Marsland, editors, Global States and Time in Distributed Systems.IEEE Computer Society Press,1994.
[6]Jeremy Elson,Deborah Estrin.time synchronization for wireless sensor network[C].In Proceeding of the 15th International Parallel and Distributed processing.Symposium(IPDPS-01).IEEE Computer Society, 2001:23-27.