具体实施方式
根据一些实施例,无线数据通信系统被优化以用于工业应用。在其他策略中,从接入点(access point,AP)被编址至数据通信站(data communication station,STA)或从STA被编址至该AP的消息被装载有由其他STA接收的附加数据单元。该数据通信系统的效率通过这些策略而被改善,使得该系统可以支持接近于实时的控制装置以及数量相当大的在工业装置中可能需要的现场设备。
图1示出了根据一些实施例所提供的无线数据通信系统100的框图。该系统100包括系统控制器102,该系统控制器是用于对下文所述的不同的现场设备进行控制的控制消息的最终源,而所述的不同的现场设备构成工厂自动化装置。该系统控制器102还可以是源自现场设备的状态和其他消息的最终接收方。该系统控制器102可以按照常规的原则来提供。尽管在该附图中没有单独示出,但是该系统控制器可以包括用户界面和/或其他输入/输出设备。
该系统控制器102通过多个无线AP104与现场设备相通信。AP104通过有线/电缆数据通信信号路径106连接到该系统控制器102。每个AP104都定义了相应的小区108,该小区108是在其内STA110能够与相应小区的AP104交换无线数据通信消息的区域。应理解为:尽管所述小区在图1中出于表示方便而被示为不重叠的,但是在实际中小区108可以部分地相互重叠以促进对期望区域的完全覆盖。在每个小区108中,多个STA110(例如50至100个)都可以在任何给定时间被定位。在一些情况中,STA110本身是现场设备,比如如110-1和110-N所示。另外或者可替代地,至少一些STA110可以通过有线数据通信路径(如在110-2、110-N处所示)连接到一个或多个现场设备112。现场设备(无论是否与STA集成)可以包括移动部分,并可以构成实施物理移动以实现制造自动化系统的设备。比如,一个或多个现场设备可以是在系统控制器102的控制下运行的机动化拖车。
在其硬件方面,AP、STA和/或现场设备可以全部按照常规实践来提供。所述AP和STA中的一些或全部可以根据本发明来编程,以实现这里所述的本发明方面。
图2示出了一个典型的AP104的框图。
AP104包括处理器202,该处理器控制该AP104的全面运行。该处理器202比如可以是通用微处理器、数字信号处理器(DSP)或其他可编程控制设备。该AP104还包括耦合到该处理器202的程序存储器204。该程序存储器204可以由一个或多个器件来构成,并存储控制该处理器202的软件和/或固件程序指令。所述程序指令可以包括用于执行如下所述的至少一些本发明功能方面的指令。
该AP104还包括耦合到该处理器202的工作存储器206。另外,该AP104还包括也耦合到该处理器202的循环控制帧缓冲器208,该循环控制帧缓冲器临时存储要发送到与该AP104相关联的、有时位于由该AP104所定义的小区中的现场设备的数据。
尽管作为单独的功能块来示出,但是两个或多个存储器204、206和循环控制帧缓冲器208可以被组合在单个设备或两个或多个共享设备中。
该AP104还包括无线电收发器210,该无线电收发器耦合到该处理器202,并且通过该无线电收发器使该AP104参加与STA的无线数据通信,其中所述STA与该AP104相关联并且有时位于由该AP104所定义的小区中。
另外,该AP104还包括通信接口212,该通信接口耦合到该处理器202,并通过该通信接口使该AP通过有线信号路径106与该系统控制器102交换消息。
图3示出了一个典型的STA110的框图。STA110包括处理器302,该处理器控制该STA110的全面运行。该处理器302比如可以是通用微处理器、数字信号处理器(DSP)或其他可编程控制设备。该STA110还包括耦合到该处理器302的程序存储器304。该程序存储器304可以通过一个或多个器件来构成,并存储控制该处理器302的软件和/或固件程序指令。所述程序指令可以包括用于执行如下所述的至少一些本发明功能方面的指令。
该STA110还包括耦合到该处理器302的工作存储器306。尽管作为单独的功能块来示出,但是存储器304、306可以被组合在单个设备或两个或多个共享设备中。
该STA110还包括无线电收发器308,该无线电收发器耦合到该处理器302,并通过该无线电收发器使该STA110参加与关联于STA110的AP的无线数据通信。另外,该STA110还包括控制接口310,通过该控制接口,该STA110可以控制该STA110的发动机、执行器和/或其他物理或电气可操作部件(假定该STA也是现场设备)。该控制接口耦合到该处理器302。另外,如果该STA110是或可以通过线耦合到现场设备,那么该STA110可以包括通信接口312,该通信接口耦合到该处理器302,并且通过该通信接口使该STA与一个或多个现场设备交换消息。
对每个AP进行控制的软件/固件可以包括帧调度器程序模块,该帧调度器程序模块确定何时向与所述AP相关联的每个现场设备发送数据或其他消息。该帧调度器程序模块还可以确定把什么类型的消息发送到现场设备。另外,对每个AP进行控制的软件/固件可以包括现场设备协议程序模块,该现场设备协议程序模块对从STA所接收的消息的消息头进行翻译,并且通常将在AP和STA之间所实施的无线接口的AP消息应用细节进行隐藏。
对每个STA进行控制的软件/固件可以包括协议代理软件模块,该协议代理软件模块在标准消息格式和根据本发明的方面所使用的特定消息格式之间进行转换。
图4示出了根据本发明由AP和/或STA在该通信系统100中所发送的典型数据消息的格式。
在图4中所示的消息格式包括消息头402。该消息头402可以是包括地址和控制字段部分404和消息类型部分406的复合头。当该消息由AP发送时,该地址和控制字段部分404可以包括对该消息所指向的特定STA进行识别的地址。地址和控制字段一般可以与在802.11消息头中常规所包括的头数据类型相一致。
消息类型部分406包括表明消息类型的信息。比如,第一类型指示可以表明该消息是轮询消息(如果该消息由AP发送),或者是对轮询消息的响应(如果该消息由STA发送)。第二类型指示可以表明该消息是请求移交(handoff)到新AP的关联请求(如果该消息由STA发送),或者是对关联请求的响应(如果该消息由AP发送)。第三类型指示可以表明该消息是不需要确认的广播或多播消息。第四类型指示可以表明该消息是零数据消息,该零数据消息可能有时由该AP来发出,以代替发送周期性信标信号。
该消息格式的剩余部分由一系列数据单元408-1、408-2、...、408-N组成。每个数据单元的格式在410处示出。每个数据单元都包括数据单元头412。数据单元头412包括数据单元的预期接收方(也即STA或AP)的地址,并且还可以包括由接收方所使用的控制信息。数据单元还包括数据帧414,该数据帧是预期用于在该数据单元头中所识别的接收方的数据有效载荷。所有的数据单元408都可以具有在410处所示的相同格式,但是相应的数据单元头分别可能指定相互不同的接收方,使得数据单元的相应数据帧被有效地编址到不同的接收方。第一数据单元可以预期用于在消息头402的地址和控制字段404中所编址的同一接收方,并且因此该第一数据单元的数据单元头可以识别与消息头相同的接收方。消息不必具有多于一个的数据单元。
根据本发明的一些方面,AP可以在轮询周期期间依次地轮询与其相关联的每个STA,并且该轮询周期可以被重复。STA可以运行以仅仅响应于由该AP所发送的并被编址到所述STA的轮询消息而向该AP发送消息。然而,由该AP所发送的每个轮询消息都可以包括被编址到其他STA的附加数据单元,其中该轮询消息本身并未被编址到所述的其他STA,并且无论是否被编址到所述STA,所有的STA都可以听取所有轮询消息,并且如果该轮询消息包括被编址到不是该轮询消息的目标的STA的数据单元,那么不是目标的所述STA仍旧可以接收并读取被编址到它的数据单元。
同样,当STA针对轮询消息发送响应时,响应消息可以包括一个或多个被编址到其他STA的数据单元。在这些情况中,该响应消息的头可以包括指示(比如标记),以表明该响应消息包括至少一个被编址到另一STA的数据单元。所有的STA都可以听取由其他STA所发送的所有响应消息,并且当在头中存在指示时,可以在由其他STA所发送的响应消息中拾取被编址到它们的数据单元。
根据由本发明所提供的消息传递方案,被编址到STA的每个消息都必须被确认,但是STA可以仅仅响应于正由AP轮询而发送确认。
可能希望重复数据帧的发送直到接收到发送已成功的确认,或者直到已经进行了最大数目的尝试为止。然而,在确认丢失的情况下,重复发送可能导致由接收方正接收的重复的帧。为了防止接收重复数据帧的冲突,可以采用一种帧顺序编号方案。每个发送设备都可以为每个接收方按照数据消息类来生成帧号码顺序。每个数据单元408都可以包括所形成的帧顺序号(比如在数据单元头412中)。另外,在一些实施例中,在该消息头402中可以包括帧顺序号(frame sequence number)。
该接收设备可以丢弃具有使先前所接收的帧顺序号重复(或在顺序上处于先前所接收的帧顺序号之前)的帧顺序号的数据帧。
图5示出了由一个典型的STA所实施的过程的流程图。在图5的502处,确定消息是否被该STA接收。在504处,确定已被接收的消息是否是被编址到该STA的轮询消息。倘若如此,那么如在506处所示,该STA读取在被编址到该STA的数据单元中所包括的数据帧,并且采取由所述数据帧所需的任何动作。另外,该STA发送响应,该响应是轮询消息的确认。由该STA要采取的动作可能不被完成,直到该响应被发送之后。
如果在504处确定该消息不是被编址到该STA的轮询消息,那么该STA接着在508处确定该消息是否包括被编址到该STA的数据单元。倘若如此,那么如在510处所示,该STA读取在被编址到该STA的数据帧中所包括的数据帧,并采取由所述数据帧所需的任何动作,但此时并不发送数据帧的确认。相反,该STA将等待确认该数据帧,直到该STA被AP轮询。对该STA的轮询消息可以重复最初由该STA从被编址到另一STA的轮询消息中或者从由另一STA所发送的消息中所拾取的数据单元。
利用这种方法,在至少一些消息中可以包括附加的有效载荷,从而有效地降低了开销负担。另外,通过使STA在所述STA被轮询之前接收数据单元,所述STA可以有足够的时间来采取动作并在所述STA被轮询之前生成响应。因此,所述STA对轮询消息的响应可以包括新的数据,并可以加速在现场设备和系统控制器之间有效的往复交互。该方法尤其可以适于工业控制应用,其中频繁简短的控制和状态消息可以被交换。而且,该方法可以增加由单个AP所能有效服务的STA/现场设备的数目。
图6示出了根据本发明的另一方面由至少一个AP所实施的过程的流程图。图6的过程还可以提高通信系统100的效率。结合图6的过程,将注意到每个AP为与所述AP相关联的每个STA和/或现场设备供给相应的缓冲器。每个缓冲器被设定大小用于存储不超过一个的控制数据帧,其中该控制数据帧由该AP从系统控制器102接收并且被指定用于发送到与所述缓冲器相对应的现场设备/STA。
在图6的602处,确定控制数据帧当前是否被存储在用于特定STA/现场设备的缓冲器中。倘若如此,那么该AP确定(604)用于特定STA/现场设备的新控制帧是否由该AP从该系统控制器接收。如果在该STA/现场设备的缓冲器已经存储有还没有由该AP发送到该STA/现场设备的旧控制数据帧时,该AP接收用于该STA/现场设备的新控制数据帧,那么如在606处所示,该AP通过重写该缓冲器、也即通过把该新控制数据帧存储在该缓冲器中来替换旧控制数据帧来响应接收新数据帧。
如在608处所示,该AP确定用于向该STA/现场设备发送控制数据帧的时间在该轮询周期中是否已经来到。倘若如此,那么当前在该缓冲器中所保存的控制数据帧被发送给该STA/现场设备,如在610处所示。
图6的过程偏爱最近在该AP处从系统控制器所接收的控制数据帧,并从而降低控制数据通信业务,而向该现场设备发送与当前条件最可能有关的控制数据帧。因此,可以改善响应时间和数据通信系统的效率。尽管图6的过程通过流程图来示出,但是在实际中可以期望利用有限状态机来实施该过程。
在工业自动化系统的运行中,可能希望所述现场设备/STA以规则的间隔从系统控制器接收控制信号。然而,轮询安排(诸如上述的轮询安排)可能趋向于在控制信号被发送给每个现场设备/STA的定时中引入可变性。在下文中结合图7和8所描述的过程可以趋于减轻在控制信号传送定时中的可变性。
图7示出了在至少一些STA中所能实施的过程的流程图。关于图7的过程,应注意到的是,可以给每个STA提供时钟能力,以允许STA监控在该STA处应当接收控制数据帧的标称定时,以与用于接收控制数据帧的规则间隔相一致。
在图2的702处,该STA确定该STA已经接收的消息是否被编址到该STA(也即该STA可以检测消息头包含有该STA的地址)。倘若如此,那么该STA检测该消息的定时,并且如在704处所示,把该定时与该STA已经跟踪的标称控制数据帧定时相比较。该STA计算定时差,如果在该标称定时和接收消息的实际定时之间并且然后在对消息的响应中有任何差,那么该STA向AP报告定时差,如在706处所示。
图8示出了在至少一些AP中所能实施的过程的流程图。
在802处,AP从STA接收所述报告(参照图7中的706处),其中该报告是关于由该STA所检测的在接收最后控制数据帧的实际定时与该标称定时之间的差。在804处,该AP确定定时差是否在可接受的范围内。如果不是,那么该AP运行以调节针对该STA的下一控制数据帧到该STA的发送的定时。因此,如在806处所示,该AP确定所报告的差是否表明被发送到该STA的最后控制数据帧相对于标称定时是延迟的,或者相对于该标称定时是过早的。如果该最后控制数据帧相对于该标称定时是延迟的,那么该AP可以加速下一控制数据帧到所述STA的发送的定时,如在808处所示。比如,这可以通过把该STA在轮询周期中的次序提前来实现。
如果该最后控制数据帧相对于该标称定时是过早的,那么该AP可以延迟下一控制数据帧到所述STA的发送的定时,如在810处所示。比如,该STA在该轮询周期中的次序可以相对于其他STA而被推后。
在加速或延迟下一控制数据帧的发送定时的情况中,加速或延迟的程度可以与由该STA所报告的差成比例。
在一些实施例中,只要STA具有相对高的优先级消息通信业务来发送,那么所有的STA可以被给予特权以在轮询响应消息中包括其他STA的数据单元。这种高优先级通信业务的例子可以包括循环通信和报警消息。然而,为了维持轮询周期的时间性,可以限制所述STA在轮询响应消息上捎带低优先级通信业务的特权。低优先级通信业务的例子可以包括非循环通信(比如配置请求/命令)和TCP/IP通信业务。在STA之中公平地适当限制低优先级通信业务可以如下所述结合图9和10中所示的过程来实现。
图9示出了由至少一些AP所能实施的过程的流程图。关于图9的过程,每个AP都可以维持轮叫调度器(round robin scheduler),该轮叫调度器为每个轮询周期识别特定的STA,所述特定STA被给予特权在该轮询周期中捎带低优先级通信业务。当该轮询周期发生时,该调度器可以在所述轮询周期之一中依次识别每个STA,直到所有的STA都已经给予捎带特权。然后轮询周期的捎带特权周期可以被重复。
在图9的902处,该AP确定在当前的轮询周期中是否到了轮询特定STA的时间。倘若如此,那么该AP检查轮叫调度器(如在904处所示),以确定(如在906处所示)现在要被轮询的STA对于当前的轮询周期是否具有低优先级捎带特权。倘若如此,那么由该AP发送到该STA的轮询消息向该STA表明该STA被授权在其轮询响应中捎带低优先级通信业务,如在908处所示。如果在906处进行了否定的确定,那么至该STA的轮询消息就不表明该STA被授权在其轮询响应中捎带低优先级通信业务,如在910处所示。
图10示出了可以由至少一些STA所能实施的过程的流程图。在1002处,STA确定它是否已经收到指向该STA的轮询消息。倘若如此,那么如在1004处所示,该STA组成比如包括数据单元的适当的响应消息,其中所述数据单元包含有由AP要转发到系统控制器的数据帧。
在1006处,该STA确定它是否具有任何高优先级通信业务以在该响应消息上进行捎带。倘若如此,那么如在1008处所示,该STA把一个或多个数据单元加到该响应消息中以将要捎带的高优先级通信业务结合到该消息上。然后,在1010处,该STA确定至该STA的轮询消息是否表明该STA已被授权捎带低优先级通信业务。如果不是,那么如在1012处所示,该STA发送响应消息,其中该响应消息在1004处被组成并包括在1008处所附加的任何数据单元。
如果在1010处进行了肯定的确定(也即如果该STA已被授权捎带低优先级通信业务),那么该STA在1014处确定它是否有任何低优先级通信业务要发送。如果没有,那么该过程进行到1012,并且该STA将所述响应消息与在1008处所附加的任何数据单元一起进行发送。如果在1014处进行了肯定的确定(也即如果该STA确定它具有低优先级通信业务要发送),那么该STA把一个或多个数据单元加到该响应消息,以把要捎带的低优先级通信业务结合到该消息上,如在1016处所示。该过程然后进行到1012,在1012处,该STA将该响应消息与在1016处所附加的数据单元和在1008处所附加的任何数据单元一起进行发送。
在一些实施例中,上述的用于控制在AP和STA之间的通信业务的轮询/响应方法可以与常规的CSMA/CA消息传递相共存,使得进入小区的802.11设备可以以常规的方式与所述AP相通信。如果由这种常规的802.11设备所发送的消息与通向或来自被轮询的STA之一的消息相冲突,那么该AP检测冲突并开始重新发送遭受冲突的这轮消息。
在一些实施例中,只要存在要被发送到被轮询的STA的通信业务,这些轮轮询消息/响应可以以约1毫秒的间隔而被重复。在没有通向与特定AP相关联的STA的通信业务的阶段期间,所述AP可以以约5毫秒的间隔发送零数据消息。在由AP以如此相对短的间隔来发送轮询消息或零数据消息时,可接受的是,省略由AP对信标信号的发送,其中所述信标信号通常用于允许STA检测离开小区和/或到达新小区。当AP以如此短的间隔发送消息时,可以相当迅速地把STA从一个AP移交或者移动到另一个。
关于STA从一个AP到另一个的移交而运行通信系统100的其他方面还可以被优化。比如,在一些实施例中,所使用的频率信道的总数限制为三个,这是蜂窝式无线通信系统所需的最小数目。通过对由STA所要扫描的频率目标的数目进行限制,可以使移交所需的时间最小化。通过相同的令牌,在该通信系统100中所使用的移交流程可以要求通过STA“背景扫描”,也即即使与所述STA当前所关联的AP继续良好的联系,也为其他的AP进行扫描。此外,扫描过程可以考虑由AP编址到除了正实施扫描的STA之外的STA的轮询消息。
图11示出了在这点上可以由至少一些STA来实施的过程的流程图。在图11中的块1102表明STA参加背景扫描,用以确定是否要开始移交流程。在1104处,该STA确定它是否已经收到从STA当前所关联的AP所发送的消息。该消息可以是被编址到该STA或另一STA的轮询消息。该消息不需包括被编址到正实施扫描的该STA的数据单元。来自该AP的任何轮询消息无论是否被编址到所述的STA,如果被所述STA接收,那么将会使移交计时器复位。如果没有从该STA所关联的AP接收到轮询消息,那么该STA确定该移交计时器是否超时,如在1106处所示。只要在该移交计时器超时之前继续接收来自该AP的轮询或其他消息,那么该STA就不开始进行移交。但是,如果该移交计时器超时,那么该STA就切换通信信道(如在1107处所示),然后该STA确定它是否已经接收到由另一AP所发送的消息,如在1108处所示。该消息可以是被编址到另一STA的轮询消息。如果该STA接收到由另一AP所发送的消息,那么该STA就可以开始移交到其他AP,如在1110处所示。
因此,该STA可以响应于从该STA所关联的AP接收被编址到另一STA的轮询消息而确定不开始该移交流程。同样,该STA可以响应于从新的AP接收被编址到另一STA的轮询消息而确定开始该移交流程。该移交流程可以需要该STA向新的AP发送关联请求以及其他常规的步骤。当该STA已经与新AP相关联时,该新AP可以向旧AP发送消息以使该旧AP知道它不再需要服务于该STA。为了进一步加速移交,STA可以进行“学习”活动,其中STA对它们穿过一系列小区的前进进行跟踪,并检测在它们自己的移动中的模式,以在需要移交时更迅速地选择新AP。
代替背景扫描,可以根据诸如信号强度的降低、在某一时间阶段内接收轮询消息的失败、或者接收对所发送的分组的确认的失败之类的事件来开始新AP的扫描。
通过限制某些被授权的STA对系统物理设备的访问,可以引入流线型关联协议,从而进一步加速移交等待时间。
关于移交流程而应致力于的一个议题是如何防止数据帧比如由于被缓存在旧AP中并从没被发送到STA而丢失。移交时丢失数据帧在常规的无线数据通信系统中是普遍发生的事情。
图12示出了致力于该议题的移交/上下文转移流程的顺序图。该流程的方面还致力于一些议题,比如防止由于帧重复而引起的混乱、处理上下文转移的失败、以及正确地对从系统控制器102到该STA的帧跃进(frame bound)进行排序。
在图12中,从左边垂直线1202形成的箭头表示从经历移交流程的STA所发送的消息;从中间垂直线1204形成的箭头表示从旧AP所发送的消息;以及从右边垂直线1206形成的箭头表示从新AP所发送的消息。
双头箭头1208表示在STA和旧AP之间正常的通信顺序。通常,通过把该STA移动(或自己移动)出由旧AP所定义的小区到由新AP所定义的小区中的位置,可以促使该STA从旧AP到新AP的移交。一旦检测到与旧AP的通信是不再可能的,并检测到来自新AP的消息(比如指向另一STA的消息),该STA向该新AP发送关联请求1210。对于与由该STA从旧AP所接收的最后数据帧对应的每一类(或队列)消息,所述关联消息可以包括帧顺序号。该关联请求还可以包括识别旧AP的信息(比如地址)。
然后该新AP向该STA发送消息1212,所述消息证实该STA与新AP之间的关联。目前,直到至少部分地发生上下文转移,该新AP可以防止该STA发送非循环消息,并可以对从系统控制器所接收的消息进行缓存,用以延迟到达该STA。一旦该STA被允许重新开始发送,那么它可以为其所发送的数据帧从零重新开始全部帧顺序编号。
在1214处,该新AP向旧AP发送上下文转移(context tranfer)请求。该上下文转移请求包括由STA向新AP在1210处所发送的帧顺序号(也即对应于由STA从旧AP所接收的最后数据帧的帧顺序号)。该旧AP通过向新AP发送(如在1216处所示)帧顺序号来响应该上下文转移请求,所述帧顺序号对应于由旧AP从STA所接收的最后数据帧。
在1218处所示的消息表示要被发送到STA的所缓存的数据帧从该旧AP向该新AP的转移。在转移这些数据帧之前,该旧AP丢弃具有等于或早于在1214处从该新AP向该旧AP所发送的帧顺序号的帧顺序号(这是在1210处从该STA向该新AP所发送的帧顺序号)的任何数据帧。
一旦所有被缓存的(以及未丢弃的)数据帧已经从旧AP被转移到新AP,那么该旧AP就向该新AP发送消息1220来证实该转移完成。
因为该STA已经向该新AP通知了由该STA从该旧AP所接收的最后数据帧的帧顺序号,所以该新AP可以避免向该STA发送重复的数据帧。实际上,这些数据帧在至少部分时间上可以由该旧AP抑制从由该旧AP向该新AP所发送的数据帧。
一旦新AP从旧AP接收到由该旧AP从该STA所接收的最后数据帧的帧顺序号,那么该新AP可以重新允许从该STA发送数据帧,因为该新AP现在可以检测并丢弃重复的数据帧。应当理解的是:从该STA的循环通信在从该旧AP接收帧顺序号期间可以不受该新AP的阻止。
在新AP向STA发送从旧AP所转移的数据帧之后,新AP排队等候为STA从系统控制器所接收的所要发送的新数据帧。
在上下文转移失败的情况下(比如由于新AP不能联系旧AP),该新AP仍旧能够接收从STA所发送的数据帧,其中该STA从未发送过所述数据帧,并且对于所述数据帧,顺序编号已经从零重新开始。由于该顺序编号已经重新开始,所以该新AP能够同步于该STA。然而,如果上下文转移失败,那么对于该新AP合理的是忽略来自该STA的任何数据帧,其中该STA具有其“再试位(retry-bit)”设置。
在一些实施例中,这里所述的全部或少于全部的特征可以被结合到单个系统中。
尽管在前述的实施例中已经对该系统进行了详细的描述,但是应理解的是,这些描述仅仅出于示例的目的而被提供,并且在不脱离由所附的权利要求所单独定义的本发明精神和范围的情况下,可以由本领域的技术人员据此在形式上或细节上进行其他的改变。