在过程控制环境中广播数据分组的方法和装置与流程

文档序号:21888359发布日期:2020-08-18 17:34阅读:217来源:国知局
在过程控制环境中广播数据分组的方法和装置与流程

本公开内容总体上涉及过程控制系统,更具体而言,涉及在过程控制环境中广播数据分组的方法和装置。



背景技术:

实现工业通信协议以管理与位于工业过程控制环境中的现场设备和其他类型的过程设备相关联的工业过程控制操作。这种工业通信协议的示例包括高速通道可寻址远程传感器(hart)通信协议、profibus通信协议、foundationfieldbus通信协议、modbus通信协议等。

蓝牙低能量(ble)通信协议被实现为促进ble兼容设备之间的无线通信的无线个域网通信协议。这种ble兼容设备的示例包括台式计算机、膝上型计算机、平板设备、智能手机和个人数字助理(pda)。常规地,根据ble通信协议来格式化的数据与根据上述工业通信协议来格式化的数据不兼容。



技术实现要素:

本文公开了在过程控制环境中广播数据分组的方法和装置。一种将与过程控制系统相关联的过程数据发送到远程设备的示例性方法包括:响应于从现场设备微控制器接收包括过程数据的字节数组,基于计数器来确定是否要从现场设备发送辅助数据,辅助数据包括加密密钥标识符和初始化向量;当要发送辅助数据时,将包括辅助数据的第一数据分组发送到远程设备;以及基于现场设备与远程设备之间的连接类型来确定源位的值,源位和计数器包括在关联数据中。该方法还包括:基于源位和初始化向量来生成随机数值;基于加密密钥标识符和随机数值来对包括字节数组的有效载荷进行加密;以及将第二数据分组发送到远程设备,第二数据分组包括关联数据和经加密的有效载荷。

一种将与过程控制系统相关联的过程数据发送到远程设备的示例性装置包括:安全管理器,其用以:响应于从现场设备微控制器接收包括过程数据的字节数组,基于计数器来确定是否要从现场设备发送辅助数据,辅助数据包括加密密钥标识符和初始化向量;当要发送辅助数据时,将包括辅助数据的第一数据分组发送到远程设备;基于现场设备与远程设备之间的连接类型来确定源位的值,源位和计数器包括在关联数据中;基于源位和初始化向量来生成随机数值;以及基于加密密钥标识符和随机数值来对包括字节数组的有效载荷进行加密。该装置还包括:蓝牙低能量(ble)接口,用以将第二数据分组发送到远程设备,第二数据分组包括关联数据和经加密的有效载荷。

一种示例性有形计算机可读储存介质,其包括指令,所述指令在被执行时使现场设备将与过程控制系统相关联的过程数据发送到远程设备,现场设备用以至少:响应于从现场设备微控制器接收包括过程数据的字节数组,基于计数器来确定是否要从现场设备发送辅助数据,辅助数据包括加密密钥标识符和初始化向量;当要发送辅助数据时,将包括辅助数据的第一数据分组发送到远程设备;以及基于现场设备与远程设备之间的连接类型来确定源位的值,源位和计数器包括在关联数据中。所述指令还使现场设备:基于源位和所述初始化向量来生成随机数值;基于加密密钥标识符和随机数值对包括字节数组的有效载荷进行加密;以及将第二数据分组发送到远程设备,第二数据分组包括关联数据和经加密的有效载荷。

另一种获得从现场设备接收的、与过程控制系统相关联的过程数据的示例性方法包括:响应于接收数据分组,在计算设备处识别包括在数据分组中的关联数据和有效载荷,关联数据包括源位;在计算设备处,基于源位来确定现场设备与计算设备之间的连接类型;以及在计算设备处,基于在数据分组之前接收的辅助数据分组来确定加密密钥标识符和初始化向量。该方法还包括:在计算设备处,基于源位和初始化向量来生成随机数值,随机数值指示对现场设备用来加密该有效载荷的数据加密算法的输入;以及在计算设备处,基于加密密钥标识符和随机数值,使用数据加密算法来从有效载荷中提取与过程控制系统相关联的过程数据。

另一种示例性有形计算机可读储存介质,其包括指令,所述指令在被执行时使计算设备获得从现场设备接收的、与过程控制系统相关联的过程数据,计算设备用以至少:响应于接收数据分组,识别包括在数据分组中的关联数据和有效载荷,关联数据包括源位;基于源位来确定现场设备与计算设备之间的连接类型;基于在数据分组之前接收的辅助数据分组来确定加密密钥标识符和初始化向量。所述指令还用以:基于源位和初始化向量来生成随机数值,随机数值指示对现场设备用来加密该有效载荷的数据加密算法的输入;以及基于加密密钥标识符和随机数值,使用数据加密算法来从有效载荷中提取与过程控制系统相关联的过程数据。

一种获得与过程控制系统相关联的从现场设备接收的过程数据的示例性系统包括:现场设备,用以广播包括有效载荷和关联数据的数据分组,有效载荷包括与过程控制系统相关联的过程数据,关联数据包括源位。该系统还包括计算设备,用以:响应于接收数据分组,识别包括在数据分组中的源位和有效载荷;基于源位来确定现场设备与计算设备之间的连接类型;以及基于在数据分组之前接收的辅助数据分组来确定加密密钥标识符和初始化向量。计算设备还用以:基于源位和初始化向量来生成随机数值,随机数值指示对现场设备用来加密该有效载荷的数据加密算法的输入;以及基于加密密钥标识符和随机数值,使用数据加密算法从有效载荷中提取与过程控制系统相关联的过程数据。

附图说明

图1是根据本公开内容的教导的示例性环境的示意图,该示例性环境包括示例性现场设备,该示例性现场设备具有示例性网络桥接器以通过示例性ble网络桥接现场设备与示例性远程设备之间的通信。

图2是根据本公开内容的教导的图1的示例性环境的另一示意图,该示例性环境包括图1的示例性现场设备,该示例性现场设备具有示例性网络桥接器以通过示例性ble网络桥接现场设备与第一至第三示例性远程设备之间的通信。

图3是包括在图1-图2的示例性现场设备中的图1-图2的现场设备ble桥接器装置的示例性实现的框图。

图4是包括在图1和/或图3的远程设备中的远程设备ble桥接装置的示例性实现的框图。

图5是属性协议分组的示例性实现的框图。

图6是图5的att有效载荷的示例性实现。

图7是由图1-图4的示例性现场设备和/或图1、图3和/或图4的示例性远程设备生成的示例性随机数值(nouncevalue)的实现。

图8a是计数器模式加密方法的例示示例。

图8b是用于生成消息认证码的密码块链接-消息认证码(cbc-mac)方法的例示示例。

图9a是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性现场设备ble桥接器以广播来自图1-图4的示例性现场设备的数据分组。

图9b是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性现场设备ble桥接器104以在要认证有效载荷600时基于有效载荷600和标志602来构建数据分组。

图9c是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性现场设备ble桥接器104以在要认证和加密数据分组时基于有效载荷600和标志602来构建数据分组。

图9d是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性现场设备ble桥接器以经由直接连接发送数据分组。

图10a是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性远程设备ble桥接器以从经认证的有效载荷中提取过程数据。

图10b是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性远程设备ble桥接器以从经加密的有效载荷中提取过程数据。

图10c是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性远程设备ble桥接器以从经由直接连接发送的有效载荷中提取过程数据。

图11是示例性处理器平台的框图,该示例性处理器平台被构造为执行机器可读指令来实现图9a-图9d的方法和/或图1-图4的示例性现场设备ble桥接器以实现本文公开的示例。

图12是示例性处理器平台的框图,该示例性处理器平台被构造为执行机器可读指令来实现图10a-图10c的方法和/或图1-图4的示例性远程设备ble桥接器以实现本文公开的示例。

附图未按比例绘制。在可能的情况下,将贯穿附图和随附的书面描述使用相同的附图标记表示相同或相似的部分。

具体实施方式

近年来,技术已在工业应用中得到越来越多的利用,以促进设备之间的通信。蓝牙是一种用于在工业、科学和医学(ism)无线电频带(例如2.4至2.4835ghz)中使用短波长超高频无线电波在短距离上交换数据的无线技术标准。在工业应用(例如过程控制系统)中实现蓝牙的常规方法包括将工业协议通信器(例如高速通道可寻址远程传感器(hart)调制解调器)通信耦合到典型的蓝牙无线电装置(例如,基于蓝牙核心规范版本5.0操作的蓝牙无线电装置)。例如,现场设备(例如,具有足够功率预算以操作蓝牙无线电装置的现场设备)可以将hart信息封装在蓝牙分组中,并将蓝牙分组发送到远程客户端,其中远程客户端通过经由总线通信耦合到主处理器的典型蓝牙无线电装置接收信息。

蓝牙低能量(蓝牙le或ble)是一种基于标准蓝牙技术(例如,在2.4-2.4835ghzism频带的相同频谱范围中操作)的无线通信技术,旨在显著降低功耗和成本,同时保持与经典蓝牙的通讯范围类似的通信范围。ble与经典蓝牙不同且不兼容。例如,与经典蓝牙相比,ble使用不同的信道集合。在此类示例中,与经典蓝牙的79个1-mhz信道相比,ble可以具有40个2-mhz信道。在另一个示例中,ble不支持用于替换串行通信接口(例如,rs-232通信、rs-485通信等)的串行端口配置文件(spp)。

本文公开的示例使用ble来形成一个或多个低功率设备之间的通信桥接,以改进通信的互操作性,降低执行通信的成本和复杂性,并提高设备之间的通信速度。在一些公开的示例中,ble桥接装置促进一个或多个客户端设备(例如,emersonamstrextm)和服务器设备(例如,现场设备、控制器、阀定位器等)之间的通信。例如,ble桥接装置可以耦合和/或通信耦合到现场设备(诸如本地控制器、无头(headless)控制器(例如plc型设备)、阀定位器、压力变送器、温度变送器、液位变送器等)。例如,ble桥接装置可以用于与一个或多个客户端设备、一个或多个现场设备等、和/或其组合建立对等通信。

在一些公开的示例中,现场设备通信地耦合到一个或多个远程设备(例如,计算设备),诸如emersonamstrex。例如,远程设备可以是包括在标准操作系统(例如,基于windowstm的操作系统、apple操作系统、androidtm操作系统、操作系统等)上操作的与过程控制相关的软件应用的计算设备。在此类示例中,远程设备可以经由ble与现场设备通信。

在一些公开的示例中,ble桥接装置促进信息从现场设备传输到远程设备。现场设备可以支持工业通信协议,诸如hart协议。例如,hart协议定义要基于bell202调制解调器标准构造的数据分组。结果,不需要经由ble将hart数据分组支持信息(例如,hart前导码、hart地址等)发送到远程设备。例如,hart前导码用于依据bell202调制解调器标准的载波检测和同步,并且不需要将其包含在ble数据分组中,这是因为没有bell202调制解调器进行检测或同步。例如,ble桥接装置可以从现场设备接收hart协议数据分组,从hart协议数据分组中移除hart协议信息,并且经由ble将hart协议数据分组的有效载荷数据发送(例如,仅将有效载荷数据发送)到远程设备。在此类示例中,远程设备可以重构包括有效载荷数据的hart协议数据分组,并且将重构的hart协议数据分组发送到在远程设备上操作的应用。

在一些示例中,现场设备的ble桥接器在向远程设备进行传输之前对有效载荷数据进行加密和/或将消息认证码(mac)添加到数据分组。例如,现场设备ble桥接器可以使用诸如aes-128块密码之类的加密算法对数据分组的有效载荷进行加密,以对该分组进行加密。在此类示例中,现场设备ble桥接器使用加密密钥和随机数值(noncevalue)作为对加密算法的输入。例如,加密密钥可以是可由现场设备ble桥接器访问的预共享密钥(例如,储存在现场设备上、储存在单独的硬件上等)。在一些示例中,随机数值是基于数据分组的传输特性和/或从现场设备ble桥接器发送到远程设备作为辅助数据的其他值(例如,在单独的数据分组中)生成的唯一值。例如,随机数值可以基于源位由现场设备ble桥接器生成,该源位指示数据分组的传输类型(例如,广播传输、直接连接数据传输等)和初始化向量(例如,由现场设备ble桥接器生成)。另外地或替代地,现场设备ble桥接器可以认证数据分组。例如,现场设备ble桥接器可以认证(例如,使用mac)包括在数据分组中的有效载荷和关联数据(例如,标志、计数器等),并且可以进一步对有效载荷和/或mac进行加密。在一些此类示例中,对mac的加密生成消息完整性检查(mic),该mic在数据分组内被发送。在一些示例中,现场设备ble桥接器可以认证未经加密的有效载荷并且发送具有经认证的有效载荷的数据分组。

在一些示例中,对数据分组的认证包括生成mac并将mac附加到有效载荷。例如,现场设备ble桥接器可以使用密码块链接消息认证码(cbc-mac)块密码来生成mac。另外地或替代地,现场设备ble桥接器可以基于其他哈希算法或函数(例如,hmac)或另外的块密码来生成mac。此外,在一些示例中,在传输数据分组之前,对mac进行加密以生成mic。在一些示例中,当数据分组已经被加密和/或认证时,现场设备ble桥接器通过ble网络发送数据分组。在一些此类示例中,除了有效载荷之外,数据分组还包括关联数据,其提供用于解密和/或认证数据分组的有效载荷的信息。在一些示例中,数据分组由可以认证和/或解密有效载荷以访问有效载荷内的过程数据的其他设备(例如,远程设备)接收(例如,如果其他设备具有诸如加密密钥标识符、源位等的所需信息)。

在一些公开的示例中,远程设备包括可以接收、认证和/或解密数据分组的有效载荷的远程设备ble桥接器。在一些示例中,远程设备访问数据分组中包括的关联数据。在一些此类示例中,报头数据包括源位和方向位。在此类示例中,远程设备基于源位来确定现场设备与远程设备之间的连接类型(例如,广播传输),并且基于方向位来确定传输方向(例如,从现场设备到远程设备)。在一些示例中,远程设备ble桥接器还在辅助信息中接收加密密钥标识符和初始化向量。例如,包括辅助信息(例如,用于解密、认证和/或处理数据分组的数据,其包括加密密钥标识符、初始化向量和/或设备信息)的数据分组可以在包括过程数据的数据分组之间交织(interlace)以向远程设备提供用于解密和/或认证未来数据分组中的有效载荷的信息。在此类示例中,加密密钥标识符标识由现场设备ble桥接器使用的预共享加密密钥,以基于辅助信息中包括的加密密钥标识符来加密和/或认证数据分组的有效载荷。在一些示例中,远程设备ble桥接器还基于源位和初始化向量来生成随机数值,并将该随机数值和加密密钥输入到加密算法中以解密经加密的有效载荷。另外地或替代地,远程设备ble桥接器将随机数值和加密密钥输入到算法中以生成用于认证数据分组的有效载荷和报头数据的mac。因此,当数据分组已经被认证和/或有效载荷已经被解密时,远程设备ble桥接器能够从有效载荷中提取过程数据(例如,与过程控制系统相关联的过程数据)。

在一些公开的示例中,现场设备ble桥接器促进信息从远程设备的远程设备ble桥接器传输到现场设备。示例性现场设备ble桥接器可以识别现场设备所支持的一个或多个协议。响应于从远程设备ble桥接器接收到接收请求,现场设备ble桥接器确定接收请求是否对应于现场设备所支持的协议。响应于确定接收请求对应于支持的协议,现场设备ble桥接器批准接收请求并从远程设备接收一个或多个数据分组。示例性现场设备ble桥接器从接收到的数据分组中移除ble信息,使用用数据分组的关联数据和辅助数据(例如,如上所述)生成的随机数值访问有效载荷数据,并将支持的协议信息(例如,hart协议前导码、hart协议地址等)添加到接收到的数据分组。现场设备ble桥接器还经由uart终端、i2c总线、spi总线等将处理后的数据分组发送到现场设备的微控制器单元(mcu)。例如,mcu可以是执行一个或多个现场设备的过程控制操作(例如,测量阀位置、经由工业通信协议发送信息等)的处理器。在一些公开的示例中,现场设备ble桥接器从接收自远程设备的数据分组中移除ble信息,访问有效载荷数据,并将数据分组发送到现场设备的mcu,而无需将支持的协议信息添加到数据分组。

本文公开的示例改进了设备之间的通信互操作性,因为ble桥接装置可以促进经由ble在(1)使用常规工业通信协议的现场设备与(2)远程设备之间的通信。本文公开的示例降低了成本和复杂性,因为ble桥接装置可以促进现场设备之间的通信,而无需用于执行通信转换和传输的附加专用硬件(例如,外部通信网关设备和相应的硬件,诸如电源、断路器、外壳等)。可以在远程设备中ble无线电装置(例如ble收发机)的物理硬件层之上的软件应用层中实现本文公开的示例。结果,由于远程设备可以使用任何常规操作系统和任何常规ble无线电装置,因此本文公开的示例可以改进远程设备与现场设备之间的互操作性。

蓝牙或ble通信(例如,蓝牙信标)的已知方法会受到安全方面的关注,诸如信标的拦截或信标内包括的数据的操纵,这是因为具有蓝牙无线电装置的任何设备都能够接收和访问信标内的数据。因此,对于通过ble网络的数据分组的通信而言,期望用于授权设备(例如,远程设备)访问所发送的信息并加密包括在数据分组中的数据的方法。本文公开的示例通过确保正确的接收者(例如,特定客户端)是被授权接收和访问广播数据的仅有实体,来提高过程控制环境中通过ble网络进行无线广播数据传输的安全性。例如,过程控制环境可以包括多个客户端,每个客户端都具有特定于客户端的现场设备。在此类示例中,客户端现场设备可以将专有信息从与客户端相关联的现场设备发送到与相同客户端相关联的远程设备。该专有信息将被安全地传送,并且不可由过程控制系统内的其他客户端或与过程控制系统的其他部分相关联的其他客户端访问。本文公开的示例保护这种专有信息,同时保持通过ble网络进行传输的便利性和范围。

过程控制系统内广播传输的这种增加的安全性提供了一种新的过程,该过程使现场设备能够以现场设备之前无法发送的方式来发送信息。例如,本文公开的示例允许从现场设备发送的经认证和/或加密的数据分组通过无线网络(例如,ble网络)由远程设备接收,该远程设备进一步认证和/或解密数据的有效载荷。当远程设备不具有认证或解密数据分组所需的信息(例如,该设备未被现场设备授权)时,远程设备无法访问过程数据。因此,仅数据分组的预期和/或授权的接收者可以访问数据分组的有效载荷,并且未被授权的那些设备无法访问广播的数据分组(例如,过程控制环境中的其他客户端)。这种在过程控制环境中安全地广播数据的方法提供了与各种各样设备的安全通信,同时避免了在使用ble时通常遇到的可扩展性、互操作性、连续维护等问题。

本文公开的示例提供了可扩展性和互操作性的改进。例如,广播传输可以由使用任何操作系统(例如,microsoft、ios等)的设备接收和从其发送,并且因此不限于使用相同操作系统的设备。本文公开的示例还不需要跨过程控制系统中的所有设备之间分布、更新和维护表(例如,通常用于蓝牙低能量通信的查找表),这是因为数据是作为明文、经认证的明文和/或经加密的明文发送的。例如,维护过程控制系统中使用的警报和/或告警的已知查找表需要连续更新,这使得维护警报和告警表不切实际。本文公开的示例消除了对此类表的需求,从而减少了维护表所需的存储空间,并排除了对持续更新和维护的需求。

图1是示例性环境100的示意图,该示例性环境100包括示例性现场设备102,该示例性现场设备102具有示例性网络桥接器104(诸如示例性ble桥接器),以通过示例性ble网络108桥接现场设备102与示例性远程设备106之间的通信。在一些示例中,远程设备106是计算设备,诸如emersonamstrex。例如,远程设备可以是包括在标准操作系统(例如,基于windowstm的操作系统、apple操作系统、androidtm操作系统、操作系统等)上操作的与过程控制相关的软件应用的计算设备。所示示例的远程设备106包括远程设备ble桥接器110,以从现场设备102接收通信以及还向现场设备102发送通信。在所示示例中,现场设备102耦合到在过程控制环境114中操作的流体流动控制组件112。所示示例的流体流动控制组件112是气动致动的阀组件。

在所示示例中,包含网络桥接器104的现场设备102的外壳116耦合到流体流动控制组件112,该流体流动控制组件112包括至少致动器118和阀120(例如,蝶阀、截止阀等)。所示示例的致动器118通过来自气动管连接122的气动压力变化而被致动。然而,可以另外地或替代地使用其他阀组件,诸如电致动的阀组件、液压致动的阀组件等。尽管在示例性示例中示例性现场设备ble桥接器104包括在外壳116中,但是替代地,示例性现场设备ble桥接器104可以位于其他地方。

在所示示例中,现场设备102是阀控制器。替代地,示例性现场设备102可以是压力变送器、温度变送器、液位变送器、ph变送器、阀定位器等。所示示例的现场设备102控制、测量和/或监视与流体流动控制组件112相关联的操作的一个或多个过程控制操作。例如,现场设备102可以实现为控制器,该控制器控制、测量和/或监视可操作地耦接到阀120的致动器118的操作并将对应于该操作的信息发送到诸如远程设备106之类的外部设备。在此类示例中,控制器可以控制致动器118的操作和/或阀120的位置(例如,阀通过致动器118的打开或关闭的程度)。

在所示示例中,现场设备102基于根据工业通信协议格式化并通过工业通信网络向现场设备102传送和/或从现场设备102传送的数据(例如,控制命令、控制信号等)来控制、测量和/或监视与流体流动控制组件112相关联的一个或多个过程控制操作(例如,打开阀120,校准阀120等等)。在一些示例中,工业通信协议可以是hart通信协议、profibus通信协议、foundationfieldbus通信协议或modbus通信协议之一。

在所示示例中,现场设备102使用现场设备ble桥接器104经由ble网络108与远程设备106通信。在所示示例中,天线嵌入在现场设备102的前面板中(例如,在外壳116的前面板中)。在一些示例中,现场设备102将诸如与流体流动控制组件112相对应的过程控制参数(例如,致动器压力、供给压力、阀位置等)之类的现场设备信息传送给远程设备106。在一些示例中,现场设备102将诸如现场设备102的配置信息、诊断信息等(例如,登录到现场设备102的用户的身份、内部事件日志、控制器的校准版本、控制器的固件版本、流体流动控制组件112的型号等)的现场设备信息传送给远程设备106。在一些示例中,现场设备102将诸如警报信息(例如,校准错误、丢失的位置反馈警报、低供给压力告警、安全异常、使用ble无线电装置的端口的安全异常等等)之类的现场设备信息传送给远程设备106。

在一些示例中,远程设备106的远程设备ble桥接器110经由ble网络108将信息传送给使用现场设备ble桥接器104的现场设备102。例如,远程设备106可以从现场设备102获得配置信息,诸如控制器的固件版本。响应于远程设备106确定固件版本不是当前的,远程设备106可以将固件的当前版本下载到现场设备102。在另一个示例中,远程设备106可以经由ble网络108配置流体流动控制组件112的一个或多个参数。例如,远程设备106可以调整超压告警设置、测量参数单位、过程控制变量的最小和/或最大范围设置等。

无线地执行此类动作(例如,下载固件、改变设置、校准现场设备102等)降低了对流体流动控制组件112执行操作(例如,维护操作)的复杂性。例如,在没有ble网络108的情况下,可能需要获得热工作许可来打开外壳116以访问控制器。在另一个示例中,在对现场设备102执行工作之前,可能需要关闭过程控制环境114中的过程控制操作,以防止潜在的电火花引起有害气体气氛的爆炸。示例性现场设备ble桥接器104和远程设备ble桥接器110通过促进现场设备102与远程设备106之间经由ble网络108的通信来降低维护操作的复杂性。

图2是图1的示例性环境100的另一示意图,该示例性环境包括图1的示例性现场设备102,该示例性现场设备102具有图1的示例性现场设备ble桥接器104,以桥接远程设备1200、远程设备2202和远程设备3204之间的通信。在所示示例中,现场设备ble桥接器104处理(例如,能够处理、能够同时处理等)现场设备102与远程设备1-3200、202、204之间的多个ble通信连接。在一些示例中,远程设备1-3200、202、204中的一个或多个远程设备包括图1的示例性远程设备ble桥接器110。例如,现场设备102可以将现场设备信息发送到远程设备1-3200、202、204中的一个或多个远程设备和/或从远程设备1-3200、202、204中的一个或多个远程设备接收信息(例如,固件可执行文件、配置设置等)。尽管图2中仅描绘了远程设备1-3200、202、204,但是可以使用比远程设备1-3200、202、204更少或更多的设备。

在所示示例中,现场设备102通信地耦合到分布式控制系统(dcs)206。例如,dcs206可以包括一个或多个数据采集和控制系统,该数据采集和控制系统包括一个或多个控制器。所示示例的现场设备102经由包括一个或多个接线的电缆或其他硬连线连接208通信地耦合到dcs206。另外地或替代地,示例性现场设备102可以经由无线连接来连接到dcs206。例如,现场设备102可以经由电缆208、wirelesshart(wihart)连接、wi-fi网络等、和/或其组合来与dcs206通信。替代地,示例性现场设备102可以经由现场设备ble桥接器104与远程设备1-3200、202、204中的一个或多个远程设备进行通信,而没有通信地耦合到dcs206。

在所示示例中,现场设备102经由无线连接212通信地耦合到压力变送器210。例如,压力变送器可以是rosemounttm3051s无线差压流量变送器。替代地,压力变送器210可以是任何其他类型的现场设备,诸如流率变送器、温度变送器、阀定位器等。所示示例的无线连接212是wihart连接。替代地,可以使用任何其他无线连接。在所示示例中,现场设备102将信息发送到压力变送器210以及从压力变送器210接收信息。例如,压力变送器210可以将信息(例如,压力测量结果、压力变送器210的诊断、压力变送器210的配置参数等)发送到现场设备102。

图3是图1-图2的ble桥接装置的示例性实现的框图,该ble桥接装置包括图1-图2的示例性现场设备102和示例性现场设备ble桥接器104。在所示示例中,现场设备ble桥接器104包括示例性接收机发射机(rx/tx)接口300、示例性平台管理器302、示例性蓝牙低能量(ble)堆栈处置器304、示例性数据库306和示例性ble接口308。所示示例的平台管理器302包括示例性命令处理器310、示例性协议处置器312、示例性安全管理器314以及rx/tx接口处置器316。还示出了示例性现场设备mcu318、示例性远程设备106和示例性ble网络322。

在图3的所示示例中,现场设备ble桥接器104是微控制器(mcu),其用于执行现场设备mcu318与外部ble兼容设备(诸如远程设备106)之间的通信操作。所示示例的ble接口308促进经由ble网络322的ble通信。所示示例的现场设备ble桥接器104包括在现场设备102中。替代地,现场设备ble桥接器104可以不包括在现场设备102中,其中,现场设备ble桥接器104通过电缆或其他通信方式与现场设备102通信耦合。在一些示例中,从现场设备mcu318发送到现场设备ble桥接器104的数据分组具有由现场设备102支持的工业通信协议定义的格式。例如,现场设备102可以支持hart协议。在此类示例中,现场设备mcu318可以以hart协议格式经由接收机发射机接口300将数据分组发送到现场设备ble桥接器104。

在所示示例中,现场设备ble桥接器104包括接收机发射机接口300,以实现现场设备ble桥接器104与现场设备mcu318之间的通信。所示示例的接收机发射机接口300是uart。例如,接收机发射机接口300可以使用工业通信协议(例如,hart通信协议、profibus通信协议、wihart通信协议等)将信息发送到现场设备mcu318和/或从现场设备mcu318接收信息。替代地,示例性接收机发射机接口300可以是集成电路间(i2c)总线、串行外围接口(spi)总线或集成电路(例如,微控制器、处理器等)之间的其他类似接口。

在图3的所示示例中,现场设备ble桥接器104包括平台管理器302,以分析和生成命令,基于识别的协议转换数据分组,和/或认证和/或加密数据分组的有效载荷。在所示示例中,平台管理器302包括命令处理器310,以基于数据流动的方向来确定和引导通信操作。在一些示例中,命令处理器310识别现场设备102的一个或多个支持的协议。例如,命令处理器310可以确定现场设备102支持hart通信协议和profibus通信协议。在此类示例中,命令处理器310可以通过查询现场设备mcu318、通过查询数据库306等来获得支持的协议。例如,命令处理器310可以响应于查询现场设备mcu318而获得支持的协议。在此类示例中,命令处理器310可以将与所识别的支持的协议相对应的信息或值储存在数据库306中,以供命令处理器310未来进行获取。在另一个示例中,命令处理器310可以基于查询储存在数据库306中与现场设备102的支持的协议相对应的硬编码参数来确定支持的协议。

在一些示例中,命令处理器310基于主和从属通信模型来确定数据流动的方向。例如,命令处理器310可以确定数据分组对应于来自接收机发射机接口300的发送请求(例如,从属设备向主设备发送通知)。在此类示例中,命令处理器310可以将要被处理并从接收机发射机接口300发送的数据分组引导到ble堆栈处置器304。在另一个示例中,命令处理器310可以确定数据分组对应于来自ble接口308的接收请求(例如,主设备向从属设备发送数据分组,而无需来自从属设备的响应)。在此类示例中,命令处理器310可以将要被处理并从ble接口308发送的数据分组引导到接收机发射机接口300。

在一些示例中,命令处理器310基于安全性信息(例如,安全性许可、安全性规则等)来评估读和写ble请求。例如,命令处理器310可以基于将接收请求的指令或操作码(opcode)与授权操作码的列表进行比较来确定接收请求被授权。在此类示例中,当命令处理器310确定操作码未被授权时,命令处理器310可以拒绝接收请求。例如,未授权的操作码可以指示经由现场设备ble桥接器104将信息发送到现场设备102的用户不被允许在现场设备102中访问信息、更改信息等。

在一些示例中,命令处理器310基于确定操作码的值是否对应于特定工业通信协议来执行现场设备ble桥接器104的通信操作。例如,命令处理器310可以确定与在ble接口308处的接收请求相对应的操作码的值对应于hart协议。示例性命令处理器310可以确定现场设备102支持hart协议。在此类示例中,命令处理器310可以基于由操作码值指示的协议与现场设备102的支持的协议的比较来引导ble接口308从远程设备106接收信息。在一些示例中,命令处理器310基于由操作码值指示的协议与现场设备102的支持的协议的不匹配来拒绝接收请求。在一些示例中,命令处理器310通过调用协议处置器312执行一个或多个操作来引导对从现场设备mcu318和/或远程设备106接收到的数据分组的处理。

在一些示例中,命令处理器310处理无线电专用命令。例如,命令处理器310可以引导ble堆栈处置器304调整或改变ble接口308的发射功率电平。例如,命令处理器310可以引导ble堆栈处置器304减小ble接口308的发射功率电平以节省功率。在另一个示例中,命令处理器310可以引导ble堆栈处置器304增加ble接口308的发射功率电平以增加ble接口308的传输范围。在一些示例中,命令处理器310通过在命令处理器310检测到ble接口308的现有无线电频率的问题时执行滤波器(例如,陷波滤波器)来处理无线电专用命令。在一些示例中,命令处理器310通过关闭ble接口308以提供完全的无线电静默模式来处理无线电专用命令。

在图3的所示示例中,平台管理器302包括协议处置器312,以基于现场设备mcu318与远程设备106之间的数据流动的方向来执行通信操作。在一些示例中,协议处置器312基于从现场设备mcu318到现场设备ble桥接器104的数据流动来执行通信操作。在此类示例中,协议处置器312确定用于传输的数据分组是否为用于通信会话的第一数据分组。例如,响应于确定数据分组是通信会话的第一数据分组,协议处置器312可以读取并储存现场设备mcu318的协议地址(例如,hart协议地址、profibus地址等)。响应于确定数据分组不是通信会话的第一数据分组,示例性协议处置器312可以从该数据分组中移除协议地址。

在一些示例中,协议处置器312将协议地址包括在要发送到远程设备106的数据分组中,以用于工业通信协议数据分组重构。例如,要发送到远程设备106的第一数据分组可以包括协议地址,远程设备106可以将协议地址用于未来的通信操作。替代地,远程设备106可以向现场设备102发送读取请求,该读取请求包括返回协议专用地址的操作码。替代地,示例性协议处置器312可以定义返回具有地址的hart消息的操作码和返回没有地址的hart消息的操作码。例如,远程设备106可以发送操作码以使现场设备102返回具有现场设备102的地址的hart消息。在此类示例中,协议处置器312可以移除诸如hart前导码、消息完整性检查等的协议信息,并将hart地址移动到要发送到远程设备106的ble数据分组的数据有效载荷中,以用于数据分组重构。

在一些示例中,协议处置器312在经由ble接口308发送数据分组之前从数据分组中移除协议信息(例如,报头数据)。例如,现场设备mcu318可以将hart5格式化的数据分组发送到协议处置器312。在此类示例中,协议处置器312可以从hart5格式化的数据分组中移除hart5协议信息,诸如hart5协议前导码、hart5协议地址、hart5消息完整性检查等。响应于从数据分组中移除协议信息,协议处置器312可以连结(concatenate)有效载荷数据,其中所连结的有效载荷数据可以替换所移除的协议信息。例如,代替发送第一报头和第一有效载荷数据、第二报头和第二有效载荷数据等,协议处置器312可以生成连结的数据分组,该连结的数据分组包括第一报头、第一有效载荷数据和第二有效载荷数据,而不包括第二报头。在此类示例中,附加的有效载荷数据可以有利地包括在数据分组中以增加在数据分组中发送的数据(例如,过程数据)的量。

所示示例的安全管理器314进行操作以提供用于传输数据分组(例如,到远程设备106)的附加安全性。例如,安全管理器314可以认证或加密包括在数据分组中的数据有效载荷。在一些示例中,命令处理器310识别是否要经由ble接口308将数据分组的有效载荷作为明文、经认证的明文和/或经认证和经加密的明文进行发送。在一些示例中,命令处理器310可以确定数据分组要经由ble接口308作为明文进行广播,因为包括在数据有效载荷中的信息不是专有的和/或可由示例性远程设备200-204中的任何远程设备查看。在一些此类示例中,命令处理器310可以确定在传输期间数据分组将不被保护。例如,命令处理器310可以确定与现场设备102相关联的过程控制系统的划分或部分不要求对数据分组进行认证和/或加密。在一些此类示例中,现场设备102的所有者(例如,客户端)不关心访问或查看数据分组中包括的数据的其他实体。在一些替代示例中,命令处理器310确定要认证数据分组以进行传输,以便保护该数据分组内的数据有效载荷的完整性。此外,在一些示例中,命令处理器310确定要对数据分组进行加密以便通过ble接口308进行传输。例如,命令处理器310可以确定数据有效载荷旨在用于其中多个客户端进行操作的精炼厂内的特定客户端(例如,每个客户端在整个精炼厂中都有自己的现场设备)。在此类示例中,对数据分组内的数据有效载荷进行加密以确保将数据分组传递至正确的接收者并且可由正确的接收者访问,并且精炼厂内的其他实体(例如,客户端)不能访问包括在数据分组中的数据。

在一些示例中,命令处理器310确定数据分组在传输(例如,经由广播传输)之前要被加密。在此类示例中,安全管理器314生成随机数值并使用该随机数值作为对加密算法(例如,aes-256加密算法)的输入。随机数值由所示示例的安全管理器314基于源位、方向位、计数器和/或初始化向量生成。例如,安全管理器314确定源位的值(例如,0或1),其指示数据分组的传输方法。例如,安全管理器314确定数据分组是要广播(例如,通过ble网络322)还是要经由现场设备102与远程设备106之间的直接连接(例如,wi-fidirect)来发送。在一些示例中,直接连接可以指在第一设备(例如,现场设备102)与第二设备(例如,远程设备106)之间的无线数据传送,而无需传送到第一设备与第二设备之间的任何中间设备(例如,蓝牙、wi-fidirect等)。替代地,在一些示例中,直接连接可以指第一设备与第二设备之间的直接有线连接(例如,以太网电缆)。安全管理器314还确定方向位,其将数据分组的传输方向指示为从现场设备102到远程设备106或从远程设备106到现场设备102。在所示示例中,安全管理器314确定针对随机数值的计数器(例如,在数据分组的每次传输之后递增的计数器)和/或初始化向量(例如,使用随机数发生器来确定)。

在一些示例中,安全管理器314还使用加密密钥,并结合随机数值将加密密钥输入加密算法中。在一些示例中,安全管理器314可以访问加密密钥数据库。在一些此类示例中,加密密钥数据库包括预共享的加密密钥。例如,加密密钥可以与作为数据分组的预期接收者的现场设备102和远程设备106共享。在一些示例中,安全管理器314所使用的加密算法将有效载荷的明文数据转换为密文(例如,经加密的文本)。结合图8a进一步讨论安全管理器314使用的加密算法以及密文的生成。

当命令处理器310确定要对有效载荷数据进行认证时,所示示例的安全管理器314生成消息认证码(mac)。在一些示例中,安全管理器314生成mac以认证有效载荷和/或关联数据,如结合图6-图8b更详细讨论的。在一些示例中,mac在传输之前被附加到有效载荷。在一些示例中,可以在对有效载荷进行加密之前将mac附加到有效载荷。结合图8b进一步讨论使用密码块链接消息认证码(cbc-mac)方法生成mac。在一些示例中,安全管理器314可以基于诸如通用哈希mac(umac)、vmac等的通用哈希算法来生成mac。在一些替代示例中,安全管理器314可以基于块密码算法来生成mac,例如one-keymac(omac)、可并行化mac(pmac)等。mac确保当在另一设备处(例如,在远程设备106处)接收到数据分组时,检测对包括在头部数据和/或有效载荷中的数据的操纵、删除和/或任何其他干扰。所示示例的安全管理器414还通过加密mac来生成消息完整性检查(mic),如结合图6-图8b进一步讨论的。

在所示示例中,安全管理器314还确定认证位和加密位的值。例如,命令处理器310确定是否要在传输之前认证有效载荷,并且安全管理器314基于命令处理器310的确定结果来确定认证位具有值0或1。此外,在所示示例中,安全管理器314确定加密位的值。例如,命令处理器310确定有效载荷是否要被加密,并且安全管理器314确定认证位将具有值0或1。因此,远程设备ble桥接器110使用示例性认证位和加密位来确定在接收到数据分组后是否要对有效载荷进行认证和/或解密。

在一些示例中,包括在数据分组的关联数据中的标志包括在随机数值的生成中使用的方向位和源位。在一些示例中,标志还包括认证位和加密位、以及版本最低有效位(versionleastsignificantbit),版本最高有效位(versionmostsignificantbit)和/或为其他信息或未来使用而保留的其他位。此外,在一些示例中,标志包括辅助位,该辅助位指示数据分组是否包括在数据分组的有效载荷的认证和/或解密期间可以由远程设备106使用的辅助信息。例如,当数据分组包括辅助信息时,辅助位可以具有值1,而辅助位可以具有值0以指示数据分组不包括辅助信息。辅助信息可以包括用于生成随机数值的信息,诸如初始化向量。此外,辅助信息可以包括与加密算法(例如,图8a的ccm加密方法)和/或mac生成方法(例如,图8b的cbc-mac方法)结合使用的加密密钥标识符。在一些示例中,辅助数据与包括来自现场设备mcu318的有效载荷的数据分组交织。例如,现场设备ble桥接器104可以每发送到远程设备106的十个数据分组发送辅助信息。

在一些替代示例中,当经由直接连接发送数据分组时,通常对数据分组进行认证和加密。在一些示例中,经由直接连接发送的数据分组不包括辅助数据(例如,交织的辅助数据),这是因为在现场设备102与远程设备106之间的握手期间现场设备102和远程设备106共享辅助信息(例如,初始化向量、加密密钥等)。例如,当现场设备102和远程设备106首先建立直接连接时,初始化向量和加密密钥被确定,并进一步用于后续通信中。

在一些示例中,当命令处理器310确定有效载荷要作为明文被发送时(例如,安全管理器314在传输之前不对有效载荷进行认证或加密),有效载荷被引导到安全管理器314,以用于生成关联数据。例如,安全管理器314通过确定源位、方向位、认证位和/或加密位的值来生成针对数据分组的标志。另外地或替代地,安全管理器314可以确定版本最低有效位、要添加到报头的版本最高有效位以及辅助位的值。当数据分组作为明文数据被发送时,安全管理器314确定认证位和加密位具有值0(例如,当数据分组作为明文被发送时将不进行认证或加密)。在一些示例中,当安全管理器314要在数据分组中发送辅助信息时(例如,每十个数据分组传输包括辅助信息),该辅助信息具有明文形式并且被作为明文有效载荷被发送。

此外,安全管理器314可以解密在现场设备102处接收到的(例如,从远程设备106接收到的)数据分组的经加密的有效载荷。例如,当在现场设备102处(例如,经由直接连接)接收到数据分组时,该数据分组可以在被发送到现场设备mcu318之前被引导到安全管理器314以认证和解密有效载荷。当安全管理器314接收包括经加密的有效载荷的数据分组时,安全管理器314可以访问包括在数据分组中的关联数据中所包括的明文数据。例如,关联数据包括方向位、源位和计数器,它们可用于解密经加密的有效载荷。安全管理器314还访问辅助数据以及初始化向量,该辅助数据包括向安全管理器314指示哪个加密密钥将用于解密有效载荷的加密密钥标识符。在一些示例中,安全管理器314可访问多个预共享密钥(例如,对于安全管理器314已知的密钥)。在一些此类示例中,预共享密钥包括在可以由安全管理器314访问的位于现场设备102外部的应用中。辅助数据和关联数据可以用于确定在将数据分组传输到现场设备102之前在远程设备106对有效载荷进行加密期间使用的随机数值。进一步结合图7讨论随机数值的生成。当安全管理器314已经确定了随机数值时,随机数值与加密密钥标识符结合使用以解密有效载荷。在一些示例中,安全管理器314在解密有效载荷之后认证有效载荷和/或报头数据的完整性(例如,使用mac)。在一些此类示例中,如果确定有效载荷和/或关联数据不是真实的(例如,有效载荷和/或关联数据已经被操纵),则安全管理器314可以丢弃数据分组。在一些示例中,有效载荷被认证并且未被加密。在此类示例中,安全管理器314认证有效载荷和/或关联数据(例如,使用mac),并且将经认证的有效载荷和/或关联数据引导到示例性协议处置器312。

在一些示例中,安全管理器314将包括关联数据和有效载荷(例如,作为明文)的数据分组引导到协议处置器312以进行进一步处理。例如,当安全管理器314已经认证了数据分组和/或解密了有效载荷时,安全管理器314可以将数据分组作为明文发送到协议处置器312。在一些示例中,例如当经由直接连接发送数据分组时,协议处置器312基于现场设备102的支持的协议将协议信息添加到数据分组(例如,协议前导码、协议地址和协议消息完整性检查)。例如,ble接口308可以从远程设备106接收数据分组,该数据分组包括与hart7协议相对应的标识符。在此类示例中,协议处置器312可以将诸如hart7协议前导码、hart7协议地址、hart7消息完整性检查等的hart7协议信息添加到接收到的数据分组。响应于将协议信息添加到接收到的数据分组,示例性协议处置器312可以引导接收机发射机接口300将处理后的数据分组(例如,具有添加的协议信息的接收到的数据分组)发送到示例性现场设备mcu318。

在一些示例中,协议处置器312基于评估工业协议命令来确定数据分组是否被正确地形成。例如,协议处置器312可以接收包括工业协议命令的数据分组。在此类示例中,协议处置器312可以确定工业协议命令是有效的(例如,hart命令0是有效的)还是无效的(例如,hart命令255是无效的)。示例性协议处置器312可以基于验证工业协议命令有效来接受数据分组,或者基于未能验证工业协议命令有效来拒绝数据分组。

在一些示例中,协议处置器312基于评估与工业协议命令相对应的数据长度(例如,字节数)来确定数据分组是否被正确地形成。例如,协议处置器312可以接收包括具有8字节的对应数据长度的工业协议命令的数据分组。在此类示例中,协议处置器312可以确定工业协议命令由最多6字节定义以正确地形成。示例性协议处置器312可以将接收到的8字节的数据长度与定义的正确地形成的6字节长度进行比较,并且基于该比较来确定数据分组没有正确地形成。在此类示例中,协议处置器312可以基于确定数据分组没有正确地形成来拒绝数据分组和/或将错误代码发送到数据分组的发送方。

在一些示例中,协议处置器312基于评估参数值的范围来确定数据分组是否被正确地形成。例如,协议处置器312可以接收包括用于阀位置设定点参数为2000%的值的数据分组。在此类示例中,协议处置器312可以确定阀位置设定点参数由0-100%的范围定义以正确地形成。示例性协议处置器312可以将接收到的2000%的设定点与定义的正确地形成的0-100%的范围进行比较,并且基于该比较来确定数据分组没有正确地形成。在此类示例中,协议处置器312可以基于确定数据分组没有正确地形成来拒绝数据分组和/或将错误代码发送到数据分组的发送方。

在图3的所示示例中,rx/tx接口处置器316将处理现场设备mcu318与ble接口308之间的通信操作。在一些示例中,rx/tx接口处置器316从接收机发射机接口300接收数据分组,并通过ble堆栈处置器304将数据分组发送到ble接口308。例如,rx/tx接口处置器316包括tx缓冲器,以从现场设备mcu318获得被指定发送到ble接口308的数据分组。在一些示例中,rx/tx接口处置器316从ble接口308接收数据分组,并将该数据分组发送到现场设备mcu318。例如,rx/tx接口处置器316可以从ble接口308获得被指定发送到现场设备mcu318的数据分组。所示示例的ble接口308和现场设备mcu318支持uart、i2c、spi和/或其他类似的集成电路通信协议。

在所示示例中,现场设备ble桥接器104包括ble堆栈处置器304,以管理ble接口308。在一些示例中,ble堆栈处置器304模拟在蓝牙无线连接上的串行端口连接。例如,ble堆栈处置器304可以仿真uart,以促进ble接口308与平台管理器302之间的通信。

在所示示例中,现场设备ble桥接器104包括数据库306,以记录数据(例如,现场设备102的模式、协议地址、ble堆栈处置器304的参数、ble接口308的参数等)。示例性数据库306可以响应对与数据库306中的数据有关的信息的查询。例如,数据库306可以通过提供附加数据(例如,一个或多个数据点)、通过提供与数据库306中的附加数据相关联的索引等来响应对附加数据的查询。当数据库306中没有附加数据时,示例性数据库306可以通过提供空索引、数据库标识符的结尾等来另外地或替代地响应查询。

示例性数据库306可以由易失性存储器(例如,同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus动态随机存取存储器(rdram)等)和/或非易失性存储器(例如,闪存)实现。示例性数据库306可以另外地或替代地由一个或多个双倍数据速率(ddr)存储器(诸如ddr、ddr2、ddr3、ddr4、移动ddr(mddr)等)实现。示例性数据库306可以另外地或替代地由一个或多个大容量存储设备(诸如硬盘驱动器、压缩盘驱动器、数字多功能盘驱动器、固态驱动器等)实现。尽管在所示示例中,数据库306被示出为单个数据库,但是数据库306可以由任何数量和/或类型的数据库实现。

在所示示例中,现场设备ble桥接器104包括ble接口308,用以向诸如远程设备106之类的外部设备发送信息和/或从其接收信息。所示示例的ble接口308是在2.4ghz非授权ism频带中操作的无线电收发机。例如,ble接口308可以基于由ble堆栈处置器304实现的连接间隔、无线电功率电平、延迟时间等来操作无线电收发机。

尽管在图3中例示了实现图1-图2的现场设备ble桥接器104的示例性方式,但是可以将图3中例示的元件、过程和/或设备中的一个或多个进行组合、划分、重新排列、省略、消除和/或以任何其他方式实现。此外,示例性接收机发射机接口300、示例性平台管理器302、示例性命令处理器310、示例性协议处置器312、示例性安全管理器314、示例性rx/tx接口处置器316、示例性ble堆栈处置器304、示例性数据库306、示例性ble接口308和/或更一般地,图3的示例性现场设备ble桥接器104可以由硬件、软件、固件、和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例性接收机发射机接口300、示例性平台管理器302、示例性命令处理器310、示例性协议处置器312、示例性安全管理器314、示例性rx/tx接口处置器316、示例性堆栈处置器304、示例性数据库306、示例性ble接口308和/或更一般地,示例性现场设备ble桥接器104中的任何一个可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(pld)和/或现场可编程逻辑器件(fpld)实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例性接收机发射机接口300、示例性平台管理器302、示例性命令处理器310、示例性协议处置器312、示例性安全管理器314、示例性rx/tx接口处置器316、示例性ble堆栈处置器304、示例性数据库306和/或示例性ble接口308中的至少一个在此明确地定义为包括非暂时性计算机可读储存设备或储存盘(诸如存储器、数字多功能盘(dvd)、压缩盘(cd)、蓝光盘等),其包括软件和/或固件。更进一步,图3的示例性现场设备ble桥接器104可以包括除了图3中所示的元件、过程和设备之外或代替图3中所示的元件、过程和设备的一个或多个元件、过程和设备,和/或可以包括多于一个的任何或所有所示的元件、过程和设备。如本文所使用的,短语“在通信中”,包括其变体,涵盖直接通信和/或通过一个或多个中间部件的间接通信,并且不需要直接的物理(例如,有线)通信和/或恒定的通信,而是另外包括定期间隔、计划间隔、非周期性间隔和/或一次性事件的选择性通信。

图4是包括在图1和/或图3的远程设备106中的远程设备ble桥接器110的示例性实现的框图。在所示示例中,远程设备ble桥接器110包括示例性接收机发射机(rx/tx)接口400、示例性平台管理器402、示例性蓝牙低能量(ble)堆栈处置器404、示例性数据库406和示例性ble接口408。所示示例的平台管理器402包括示例性命令处理器410、示例性协议处置器412、示例性安全管理器414和rx/tx接口处置器416。还示出了示例性主机应用418、图3的示例性ble网络322和图1-图3的示例性现场设备102。在图4的所示示例中,远程设备106允许对用于通过ble网络322发送和/或接收数据的ble无线电固件的用户控制,诸如emersonamstrex、emerson远程传感器等。替代地,远程设备106可以是不允许对ble无线电固件的用户控制的android或ios设备。在此类示例中,包括命令处理器410、协议处置器412、安全管理器414和rx/tx接口处置器416的平台管理器402被包括在主机应用418中以执行下面详细讨论的操作。

所示示例的远程设备ble桥接器110包括在图1和/或图3的示例性远程设备106内。另外地或替代地,图4的远程设备ble桥接器110可以包括在与图1-图3的示例性现场设备102通信的任何设备(诸如图2的示例性远程设备1200、远程设备2202和远程设备3204)中。在所示示例中,远程设备106经由示例性ble网络322通信地耦合到现场设备102。在一些示例中,远程设备106和现场设备102经由硬连线连接来连接。另外地或替代地,现场设备102可以广播由远程设备106(例如,通过ble接口408)接收的数据分组(例如,数据的单向传输)。

在图4的所示示例中,远程设备ble桥接器110包括平台管理器402,以分析和生成命令,认证和/或解密数据分组的有效载荷,和/或基于识别的协议转换数据分组。在所示示例中,平台管理器402包括命令处理器410,以基于数据流动的方向来确定和引导通信操作。在一些示例中,命令处理器410识别远程设备106的一个或多个支持的协议。例如,命令处理器410可以确定远程设备106支持hart通信协议和profibus通信协议。在此类示例中,命令处理器410可以通过查询主机应用418、通过查询数据库406等来获得支持的协议。例如,命令处理器410可以响应于查询主机应用418来获得支持的协议。在此类示例中,命令处理器410可以将与所识别的支持的协议相对应的信息或值储存在数据库406中,以供命令处理器410未来进行获取。在另一个示例中,命令处理器410可以基于查询储存在数据库406中的对应于远程设备106的支持的协议的硬编码参数来确定支持的协议。

如结合图3所讨论的,在一些示例中,现场设备102可以通过ble网络322发送数据分组。在一些此类示例中,根据ble协议来格式化数据分组(例如,在图3的示例性协议处置器312移除hart7协议之后)并将其发送到远程设备106。远程设备ble桥接器110的示例性ble接口408接收来自现场设备102的传输,并经由示例性ble堆栈处置器404将该传输传递给示例性rx/tx接口处置器416。rx/tx接口处置器416处理ble接口408与示例性主机应用418之间的通信操作。在一些示例中,rx/tx接口处置器416从ble接口408接收数据分组并经由ble堆栈处置器304将数据分组发送到接收机发射机接口400。例如,rx/tx接口处置器416包括接收机(rx),以从ble接口408获得被指定发送到主机应用418的数据分组。在一些示例中,rx/tx接口处置器416从接收机发射机接口400接收数据分组,并经由ble堆栈处置器404将数据分组发送到ble接口408。例如,rx/tx接口处置器416包括发射机(tx)缓冲器,以从主机应用418获得被指定发送到ble接口408的数据分组。所例示示例的ble接口408和主机应用418支持uart、i2c、spi和/或其他类似的集成电路通信协议。

在一些示例中,命令处理器410基于主和从属通信模型来确定数据流动的方向。例如,命令处理器410可以确定数据分组对应于来自接收机发射机接口400的发送请求(例如,从属设备向主设备发送通知)。在此类示例中,命令处理器410可以将要被处理并从接收机发射机接口400发送的数据分组引导到ble堆栈处置器404。在另一个示例中,命令处理器410可以确定数据分组对应于来自ble接口408的接收请求(例如,主设备向从属设备发送数据分组,而无需来自从属设备的响应)。在此类示例中,命令处理器410可以将要被处理并从ble接口408发送的数据分组引导到接收机发射机接口400。

在一些示例中,命令处理器410基于安全性信息(例如,安全性许可、安全性规则等)来评估读和写ble请求。例如,命令处理器410可以基于将接收请求的操作码与授权操作码的列表进行比较来确定接收请求被授权。在此类示例中,当命令处理器410确定操作码未被授权时,命令处理器410可以拒绝接收请求。例如,未授权的操作码可以指示经由远程设备ble桥接器110向远程设备106发送信息的用户不被允许在远程设备106上访问信息、更改信息等。

在一些示例中,命令处理器410基于确定操作码的值是否对应于特定工业通信协议来执行远程设备ble桥接器110的通信操作。例如,命令处理器410可以确定与在ble接口408处的接收请求相对应的操作码的值对应于hart协议。示例性命令处理器410可以确定远程设备106的主机应用418支持hart协议。在此类示例中,命令处理器410可以基于由操作码值指示的协议与主机应用418的支持的协议的比较来引导ble接口408从现场设备102接收信息。命令处理器410基于由操作码值指示的协议和主机应用418的支持的协议的不匹配来拒绝接收请求。在一些示例中,命令处理器410通过调用协议处置器412执行一个或多个操作来引导对从现场设备ble桥接器104接收到的数据分组的处理。

在一些示例中,命令处理器410处理无线电专用命令。例如,命令处理器410可以引导ble堆栈处置器404调整或改变ble接口408的发射功率电平。例如,命令处理器410可以引导ble堆栈处置器404减小ble接口408的发射功率电平以节省功率。在另一个示例中,命令处理器410可以引导ble堆栈处置器404增加ble接口408的发射功率电平以增加ble接口408的传输范围。在一些示例中,命令处理器410通过在命令处理器410检测到ble接口408的现有无线电频率的问题时执行滤波器(例如,陷波滤波器)来处理无线电专用命令。在一些示例中,命令处理器410通过完全关闭ble接口408以进入完全的无线电静默模式来处理无线电专用命令。

在图4的所示示例中,平台管理器402包括协议处置器412,以基于现场设备102与远程设备106之间的数据流动的方向来执行通信操作。在一些示例中,协议处置器412基于从主机应用418到远程设备ble桥接器110的数据流动来执行通信操作。在此类示例中,协议处置器412确定从现场设备102接收到的数据分组是否为用于通信会话的第一数据分组。例如,响应于确定数据分组是通信会话的第一数据分组,协议处置器412可以读取并储存由包括在现场设备102中的图3的现场设备mcu318使用的协议地址(例如,hart协议地址、profibus地址等)。在一些此类示例中,协议处置器412读取和储存的协议地址可以用于数据分组重构。响应于确定数据分组不是通信会话的第一数据分组,示例性协议处置器412可以从数据分组中移除协议地址。

在一些示例中,协议处置器412在将数据分组发送到安全管理器414以及进一步发送到主机应用418之前,从数据分组中移除协议信息。例如,如结合图3所讨论的,图1-图4的现场设备ble桥接器104可以根据ble协议经由ble网络322将数据分组发送到远程设备106。在此类示例中,将ble协议数据分组经由ble接口408和ble堆栈处置器404传送到协议处置器412。在一些示例中,协议处置器412从数据分组中移除ble协议信息,诸如从ble协议数据分组中移除ble协议前导码、ble协议地址、ble消息完整性检查等。在一些示例中,当协议处置器412已经移除了ble协议信息时,数据分组被发送到安全管理器414。

当所示示例的安全管理器414从协议处置器412接收到分组时,安全管理器414可以认证和/或解密包括在数据分组中的有效载荷以获得过程数据(例如,与现场设备102相关联的过程数据)和/或来自数据分组的其他数据(例如,关联数据)。在一些示例中,包括在数据分组中的关联数据包括加密位和认证位,它们分别向安全管理器414指示数据分组的有效载荷是否被加密和/或认证(例如,利用cbc-mac)。例如,加密位可以具有值0以指示有效载荷未被加密,或者具有值1以指示有效载荷被加密。另外地或替代地,认证位可以具有值0以指示未在图1-图4的现场设备ble桥接器处对有效载荷进行认证(例如,利用mac)或具有值1以指示有效载荷已被认证。

在一些示例中,可以在传输数据分组(例如,从现场设备102)之前对数据分组的有效载荷进行加密。在此类示例中,安全管理器414将解密有效载荷以访问有效载荷。在一些示例中,安全管理器414可以使用加密密钥来解密数据分组的有效载荷。例如,安全管理器414可能已经接收到辅助信息,该辅助信息包括加密密钥标识符,该加密密钥标识符标识安全管理器414用来解密有效载荷的加密密钥。在一些示例中,加密密钥是预共享的密钥,其储存在内部(例如,在数据库406中)或外部(例如,经由app在云中,在支持加密密钥的硬件认证设备中等)并且可由安全管理器414访问。例如,安全管理器414可以识别预共享的加密密钥,该预共享的加密密钥将根据储存在报头数据中的加密密钥标识符解密有效载荷并从外部数据库访问预共享的加密密钥。

此外,在一些示例中,加密密钥与安全管理器414生成的随机数值结合使用。例如,加密密钥和随机数值可以用作对加密算法(例如,aes-256加密算法,如结合图8a所讨论的)的输入来解密有效载荷。在此类示例中,安全管理器414能够解密密文(例如,加密的有效载荷),因为关联数据和辅助数据允许安全管理器414生成在加密过程中(例如,由图3的安全管理器314)用作输入(例如,加法器(adder))的随机数值,并访问加密过程中使用的加密密钥(例如,基于加密密钥标识符)。因此,在所示示例中,安全管理器414通过逆向由图3的安全管理器314使用的加密过程并且将相同的随机数值和加密密钥应用于逆向的加密算法来解密经加密的有效载荷。在一些示例中,当安全管理器414已经解密了有效载荷时,安全管理器414可以进一步访问有效载荷中包括的过程数据(例如,警报、告警、过程值等)和/或其他数据。另外地或替代地,在解密有效载荷之后,可以将经解密的有效载荷引导到在其中访问过程数据和/或其他数据的协议处置器412和/或主机应用418。

在一些示例中,安全管理器414基于包括在数据分组的关联数据中的数据和辅助数据(例如,包括在先前接收到的数据分组中)来生成随机数值。例如,关联数据可以包括由图3的安全管理器314用来在数据分组从现场设备102传输到远程设备106之前生成随机数值的数据位(诸如方向位和源位)。安全管理器414可以进一步使用包括在关联数据中的计数器和包括在辅助数据中的初始化向量来生成随机数值。结合图7进一步讨论由示例性安全管理器414生成随机数值。当安全管理器414具有随机数值和加密密钥时,安全管理器414可以解密和认证包括在数据分组中的有效载荷。

在一些示例中,示例性安全管理器414通过确定数据分组是否被正确地形成来保护主机应用418免受有意异常形成(malformed)的数据或部分异常形成的数据(例如,模糊测试(fuzzing))。例如,当从现场设备102接收到数据分组时,安全管理器414可以确定消息认证码(mac)是否包括在数据分组中(例如,当数据分组包括经认证的明文的有效载荷时)。安全管理器414生成mac,并基于附加到接收到的有效载荷的mac来确定数据分组的有效载荷数据和/或关联数据是否已被修改。当由安全管理器414生成的mac与接收到的mac(例如,附加到有效载荷的mac)不匹配时,安全管理器确定该数据分组已经被异常形成或被操纵,并且安全管理器414可以丢弃该数据分组以减小与将被异常形成或被操纵的数据分组发送到主机应用418相关联的风险。当由安全管理器414生成的mac与接收到的mac匹配时,安全管理器414确定该数据分组是真实的,然后由远程设备ble桥接器110进行进一步处理。在一些示例中,mac已被加密(例如,通过图3的安全管理器314),以在远程设备ble桥接器110接收到数据分组之前生成消息完整性检查(mic)。在此类示例中,安全管理器414解密mic以创建mac。例如,安全管理器414可以使用图8a的ccm加密方法根据mic生成mac。

在一些示例中,安全管理器414使用密码块链接消息认证码(cbc-mac)方法来生成mac,如结合图8b进一步讨论的。另外地或替代地,安全管理器414可以基于通用哈希算法(诸如通用哈希mac(umac)、vmac等)来生成mac。在一些示例中,安全管理器414可以基于块密码算法来生成mac,诸如one-keymac(omac)、可并行化mac(pmac)等。mac确保当在远程设备ble桥接器110处接收到数据分组时,检测对包括在关联数据和/或有效载荷中的数据的操纵、删除和/或任何其他干扰。

在一些示例中,协议处置器412在移除ble协议信息(例如,ble协议前导码、ble协议地址、ble消息完整性检查等)之后,将经由直接连接从现场设备102接收到的数据分组发送到安全管理器414。在此类示例中,安全管理器414解密有效载荷和mic,并且进一步认证在ble接口408处接收的数据分组。在一些示例中,安全管理器414在对经由直接连接接收的数据分组的解密和认证期间不使用辅助数据。例如,现场设备102和远程设备106可以在现场设备102与远程设备106之间的握手期间共享辅助信息(例如,加密密钥标识符、初始化向量等)。安全管理器414可以进一步在解密和认证过程期间使用辅助信息和数据分组的关联数据。此外,在一些示例中,远程设备106将数据分组发送到现场设备102(例如,经由直接连接)。在此类示例中,远程设备106在传输数据分组之前加密和认证有效载荷。

在一些示例中,协议处置器412接收从安全管理器414返回的明文数据,并根据工业协议(例如,hart通信协议、profibus、modbus等)来重构数据分组。例如,图3的协议处置器312可以将工业协议地址(例如,hart协议地址、profibus地址等)包括在数据分组(例如,从现场设备102发送的数据分组)中,该数据分组由远程设备ble桥接器110接收。然后,协议处置器412将工业协议地址用于工业通信协议数据分组重构。在一些此类示例中,由远程设备ble桥接器110接收的第一数据分组可以包括远程设备ble桥接器110可以用于主机应用418处的未来通信操作的工业协议地址。替代地,远程设备ble桥接器110可以向现场设备102发送读取请求,该读取请求包括返回协议专用地址的操作码。

在所示示例中,rx/tx接口处置器416从协议处置器412接收根据工业协议来格式化的数据分组(例如,在数据分组重构之后),并将该数据分组发送到主机应用418。例如,rx/tx接口处置器416包括接收机(rx),以从协议处置器412获得被指定发送到主机应用418的数据分组。在一些示例中,协议处置器412基于评估工业协议命令来确定数据分组是否正确地形成。例如,协议处置器412可以接收包括工业协议命令的数据分组。在此类示例中,协议处置器412可以确定工业协议命令是有效的(例如,hart命令0是有效的)还是无效的(例如,hart命令255是无效的)。示例性协议处置器412可以基于验证工业协议命令有效来接受数据分组,或者基于未能验证工业协议命令有效来拒绝数据分组。

在一些示例中,rx/tx接口处置器416处理主机应用418与ble接口408之间的通信操作。所示示例的ble接口408和主机应用418支持uart、i2c、spi和/或其他类似的集成电路通信协议。在一些示例中,rx/tx接口处置器416从接收机发射机接口400接收数据分组,并且经由ble堆栈处置器404将数据分组发送到ble接口408。例如,rx/tx接口处置器416包括发射机(tx)缓冲器,以从主机应用418获得被指定发送到ble接口408的数据分组。在一些示例中,数据分组由协议处置器412格式化(例如,根据ble协议),并且在rx/tx接口处置器416将数据分组发送到ble接口408之前,由安全管理器414构造、认证和/或加密数据分组的有效载荷。

在所示示例中,远程设备ble桥接器110包括ble堆栈处置器404以管理ble接口408。在一些示例中,ble堆栈处置器404模拟在蓝牙无线连接上的串行端口连接。例如,ble堆栈处置器404可以模拟uart以促进ble接口408与平台管理器402之间的通信。在所示示例中,远程设备ble桥接器110包括数据库406,以记录数据(例如,远程设备106的模式、协议地址、ble堆栈处置器404的参数、ble接口408的参数等)。示例性数据库406可以响应对与数据库406中的数据有关的信息的查询。例如,数据库406可以通过提供附加数据(例如,一个或多个数据点)、通过提供与数据库406中的附加数据相关联的索引、通过提供预共享的加密密钥等来响应对附加数据的查询。当数据库406中没有附加数据时,示例性数据库406可以通过提供空索引、数据库标识符的结尾等来另外地或替代地响应查询。

示例性数据库406可以由易失性存储器(例如,同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus动态随机存取存储器(rdram)等)和/或非易失性存储器(例如,闪存)实现。示例性数据库406可以另外地或替代地由一个或多个双倍数据速率(ddr)存储器(诸如ddr、ddr2、ddr4、ddr4、移动ddr(mddr)等)实现。示例性数据库406可以另外地或替代地由一个或多个大容量存储设备(诸如硬盘驱动器、压缩盘驱动器、数字多功能盘驱动器、固态驱动器等)实现。尽管在所示示例中,数据库406被示出为单个数据库,但是数据库406可以由任何数量和/或类型的数据库实现。

在所示示例中,远程设备ble桥接器110包括ble接口408,用以向诸如现场设备102之类的外部设备发送信息和/或从其接收信息。所示示例的ble接口408是在2.4ghz非授权ism频段中操作的无线电收发机。例如,ble接口408可以基于由ble堆栈处置器404实现的连接间隔、无线电功率电平、延迟时间等来操作无线电收发机。

尽管在图4中例示了实现图1-图3的远程设备ble桥接器110的示例性方式,但是可以将图4中例示的元件、过程和/或设备中的一个或多个进行组合、划分、重新排列、省略、消除和/或以任何其他方式实现。此外,示例性接收机发射机(rx/tx)接口400、示例性平台管理器402、示例性ble堆栈处理器404、示例性数据库406、示例性ble接口408、示例性命令处理器410、示例性协议处置器412、示例性安全管理器414、示例性rx/tx接口处置器416、示例性主机应用418和/或更一般地,图4的示例性远程设备ble桥接器110可以由硬件、软件、固件、和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例性接收机发射机(rx/tx)接口400、示例性平台管理器402、示例性ble堆栈处置器404、示例性数据库406、示例性ble接口408、示例性命令处理器410、示例性协议处置器412、示例性安全管理器414、示例性rx/tx接口处置器416、示例性主机应用418和/或更一般地,图4的示例性远程设备ble桥接器110中的任何一个可以由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(pld)和/或现场可编程逻辑器件(fpld)实现。当阅读本专利的任何装置或系统权利要求以涵盖纯软件和/或固件实现时,示例性接收机发射机(rx/tx)接口400、示例性平台管理器402、示例性ble堆栈处置器404、示例性数据库406、示例性ble接口408、示例性命令处理器410、示例性协议处置器412、示例性安全管理器414、示例性rx/tx接口处置器416、示例性主机应用418和/或更一般地,图4的示例性远程设备ble桥接器110中的至少一个在此被明确地定义为包括非暂时性计算机可读储存设备或储存盘(诸如存储器、数字多功能盘(dvd)、压缩盘(cd)、蓝光盘等),其包括软件和/或固件。更进一步,图4的示例性远程设备ble桥接器110可以包括除了图1中所示的元件、过程和设备之外或代替图4中所示的元件、过程和设备的一个或多个元件、过程和设备,和/或可以包括多于一个的任何或所有所示的元件、过程和设备。如本文所使用的,短语“在通信中”,包括其变体,涵盖直接通信和/或通过一个或多个中间组件的间接通信,并且不需要直接的物理(例如,有线)通信和/或恒定的通信,而是另外包括定期间隔、计划间隔、非周期性间隔和/或一次性事件的选择性通信。

图5是属性(att)协议分组500的示例性实现的框图。所示示例的att协议分组500是用于通过ble网络发送信息的标准蓝牙低能量(ble)数据分组。在所示示例中,att协议分组500包括前导码502、访问地址504、协议数据单元(pdu)506和循环冗余校验(crc)508。所示示例的前导码502为2字节值,用于数据接收方(例如,远程设备106、现场设备102等)的同步和定时。例如,ble分组中的前导码值0xaa可以指示ble分组是广播分组。所示示例的访问地址504是标识ble设备的4字节值。例如,ble分组的访问地址值0x8e89bed6可以指示该ble分组是广播分组。

在图5的所示示例中,示例性pdu506可以是使用从2至257字节的若干个字节表示的值。例如,图3的协议处置器312可以基于用于从图3的现场设备ble桥接器104传输att协议分组500的可用功率来确定pdu506的大小。示例性pdu506包括链路层(ll)报头510,其是标识链路层的2字节值。示例性pdu506包括示例性pdu有效载荷512,其是0至251字节范围内的值。示例性pdu506包括可选的(opt.)示例性消息完整性检查(mic)514,其是用于评估ble分组的数据完整性的4字节值。示例性pdu有效载荷512包括示例性l2cap报头516,其是标识l2cap层的4字节值。

图5所示示例的示例性pdu有效载荷512包括示例性att数据518,其是在0至247字节范围内的值。示例性att数据518包括示例性att报头520和示例性att有效载荷522。示例性att报头520是由示例性操作码524和示例性句柄526组织的3字节值。示例性操作码524是1字节值,其可以对应于要执行的指令或操作。示例性句柄526是2字节的值,其对应于gatt层上的通用属性(gatt)服务器上的属性。示例性att有效载荷522是在0字节至244字节范围内的值,其对应于要发送到远程设备106和/或其他设备(例如,其他现场设备)的数据(例如,现场设备信息、固件可执行文件、过程数据等)。

在图5的所示示例中,att协议分组500的几个元素可以被调整或移除。在一些示例中,在将att协议分组500发送到图3的远程设备106之前,协议处置器312移除ll报头510、l2cap报头516、mic514等。另外地或替代地,可以基于用于来自现场设备102的数据传输的可用功率预算和/或调整最大传输单元(mtu)参数来增加或减少pdu506的大小。此外,在一些示例中,图3的示例性安全管理器314通过将关联数据和/或消息认证码(mac)附加到明文有效载荷数据来调整att有效载荷522,如结合图6进一步讨论的。

图6是图5的att有效载荷522的示例性实现。所示示例的att有效载荷522包括示例性有效载荷600和示例性标志602。在一些示例中,att有效载荷522可以包括在广播传输或直接连接传输中。例如,图5的att协议分组500可以从图1-图4的示例性现场设备102进行广播,并且可以由在图3和/或图4的示例性ble网络322的范围内能够接收att协议分组500的任何设备(例如,具有ble无线电装置的设备,诸如图1、图3和/或图4的示例性远程设备106)接收。另外地或替代地,可以将att协议分组500从现场设备102直接发送到与现场设备102已经建立了直接连接(例如,有线连接)的设备。在一些此类示例中,直接连接提示现场设备102和远程设备106发送和接收经认证和经加密的att有效载荷522。在一些示例中,直接连接经由有线连接(例如,在现场设备102与远程设备106之间)来建立。另外地或替代地,现场设备102与远程设备106之间的直接连接可以经由无线连接(wi-fidirect等)来建立。

在所示示例中,当现场设备102要广播att协议分组500时,所示示例的att有效载荷522包括关联数据604和密文606。示例性关联数据604还包括标志602、计数器608和经认证的明文610。所示示例的密文606包括经认证的加密数据612以及消息完整性检查(mic)614。示例性标志602包括认证位616、加密位618、方向位620、源位622、版本最低有效位624、版本最高有效位626和辅助位628。

如结合图3所讨论的,图3的安全管理器314基于att协议分组500的传输特性来确定标志602的值。例如,安全管理器314确定认证位616、加密位618、方向位620、源位622、版本最低有效位624、版本最高有效位626、辅助位628和/或指示其他信息或被保留供未来使用的其他位的值。在所示示例中,安全管理器314确定认证位616和加密位618的值。例如,当命令处理器310确定att协议分组500要在传输之前进行认证时,安全管理器314确定认证位616将具有值1。此外,如果命令处理器310确定要对att协议分组500进行加密,则安全管理器314确定加密位618将具有值1。另一方面,当不对att协议分组500进行加密时,安全管理器314确定加密位618将具有值0。类似地,当不对数据分组进行认证时,安全管理器314确定认证位616将具有值0。

在一些示例中,安全管理器314基于att协议分组500的传输特性来确定方向位620和源位622。在一些示例中,安全管理器314确定方向位620,其将att协议分组500的传输方向指示为从现场设备102到远程设备106(例如,或另一个设备)或从远程设备106到现场设备102。在一些示例中,现场设备102将att协议分组500发送到多个设备(例如,图2的远程设备1200、远程设备2202和/或远程设备3204)。在一些示例中,安全管理器314在att协议分组500从现场设备102被发送到远程设备106时确定方向位620具有值0,并且在att协议分组500从远程设备106被发送到现场设备102时确定方向位620具有值1。替代地,安全管理器314可以在att协议分组500从远程设备106被发送到现场设备102时确定方向位620具有值0,并且可以在att协议分组500从现场设备102被发送到远程设备106时确定方向位620具有值1。

在一些示例中,安全管理器314还确定源位622。示例性源位622指示att协议分组500的传输方法。例如,图3的命令处理器310确定att协议分组500将作为广播传输或经由直接连接的传输而被发送。在一些示例中,安全管理器314在att协议分组500经由广播传输被发送时确定源位622具有值0,并且在att协议分组500经由所连接的数据信道被发送时确定源位622具有值1。替代地,可以反转不同传输介质的值(例如,将值0用于经由直接连接的传输,并将值1用于广播传输)。在所示示例中,安全管理器314还确定要添加到标志602的版本最低有效位624和版本最高有效位626的值。

安全管理器314还确定辅助位628的值,其指示有效载荷600是否包括辅助明文信息。辅助明文信息包括附加标志、初始化向量(例如,结合图7进一步讨论的)、制造商特定标识符和/或加密密钥标识符。当辅助位具有值0时,在有效载荷600中不发送辅助数据。例如,当辅助位为0时,有效载荷600包括明文、经认证的明文(例如,在关联数据604内)和/或密文数据(例如,包括在密文606中),并且有效载荷的传输将包括来自图3的现场设备mcu318的信息。另一方面,具有值为1的辅助位指示有效载荷600包括打算由接收att协议分组500的设备(例如,远程设备106)用于对未来的att有效载荷522的解密和认证的明文数据。例如,作为明文包括在有效载荷600中的辅助数据(例如,在辅助位为1时被发送)可以包括初始化向量和加密密钥标识符,以用于认证和/或解密未来的att有效载荷522。在一些示例中,如果远程设备106接收到包括经认证和/或经加密的有效载荷的att协议数据分组500,除非已接收到辅助数据,否则远程设备无法对有效载荷600进行认证和/或解密。在一些此类示例中,远程设备106缓冲接收到的att协议分组,直到接收到辅助数据为止。在一些示例中,包括辅助数据的数据分组与包括过程有效载荷数据的其他数据分组进行交织。例如。有效载荷600可以在来自现场设备102的att协议分组500的每十个广播中包括辅助数据。在此类示例中,远程设备106可以使用辅助明文信息来认证和/或解密接收到的att协议分组500,直到接收到新的辅助明文信息为止。

在一些示例中,命令处理器310识别att有效载荷522的有效载荷600是否要经由ble接口308作为明文、经认证的明文和/或经加密的明文进行发送。例如,命令处理器310可以确定有效载荷600将经由ble接口308作为明文进行广播,因为有效载荷600中包括的信息不是专有的和/或可以由示例性远程设备200-204中的任何远程设备查看。在一些此类示例中,命令处理器310可以确定在传输期间将不保护有效载荷600。例如,命令处理器310可以确定与现场设备102相关联的过程控制系统的划分或部分不需要对有效载荷600进行认证和/或加密。在一些此类示例中,现场设备102的所有者不关心与访问或查看有效载荷600中包括的数据的其他方。在一些替代示例中,命令处理器310确定要对有效载荷600进行认证以用于传输,以便保护att有效载荷522内的有效载荷600的完整性。此外,在一些替代示例中,命令处理器310确定将对有效载荷600进行加密以便通过ble接口308进行传输。例如,命令处理器310可以确定有效载荷600旨在用于其中多个客户端操作的精炼厂中的特定客户端。在此类示例中,att有效载荷522内的有效载荷600被加密以确保有效载荷600被传递到正确的接收者,并且精炼厂内的其他实体不能访问包括在有效载荷600中的数据(例如,明文过程数据)。

当命令处理器310确定要对有效载荷600进行认证和/或加密时,所示示例的安全管理器314生成将在消息认证码(mac)的生成时进一步使用(例如,以认证att有效载荷522)和/或在有效载荷600的加密中进一步使用的随机数值。在所示示例中,命令处理器310确定有效载荷600是否要被认证或被加密,并且不创建部分被认证和部分被加密的有效载荷(例如,有效载荷600要么被完全认证,要么被完全认证和加密)。结合图8a进一步讨论由图3的示例性安全管理器314对有效载荷600的加密,并且结合图8b进一步讨论用于认证att有效载荷522的mac的生成。为了生成随机数值,安全管理器314使用随后在辅助明文信息中(诸如加密密钥标识符和初始化向量)以及在标志602中(诸如计数器608、方向位620和/或源位622)被发送到远程设备106的多个值。结合图7进一步讨论随机数值的生成。

当命令处理器310确定有效载荷600将作为经认证的明文进行发送时,对有效载荷600进行认证(例如,使用结合图8b讨论的过程)并将其包括在关联数据604中。例如,从现场设备mcu318接收的字节数组被插入到关联数据604内的经认证的明文610中。在此类示例中,密文606内没有经认证的加密数据612(例如,有效载荷600的任何部分或段均被加密)。关联数据604还包括计数器608。针对从现场设备102广播的每个att有效载荷522,计数器608递增(例如,递增1)。在一些示例中,计数器608在例如计数器608翻转(rollover)、设备(例如,现场设备102)进行上电循环(powercycle)等时被重置(例如,重置为0)。当计数器608和字节数组已被插入关联数据604中时,生成mac以认证字节数组(例如,以创建经认证的明文610)、计数器608和标志602。如上所述,没有经认证的加密数据612,但是密文606确实包括mic614。通过加密基于标志602、计数器608和经认证的明文610生成的mac来创建mic614。在完成mic614之后,将mic614和关联数据604连结以产生att有效载荷522。att协议分组500随后可以由现场设备102广播以将有效载荷600作为经认证的明文发送,并且可以由远程设备106和/或能够接收att协议分组500的其他设备接收和认证。

当命令处理器310确定有效载荷600将作为经认证的加密的数据(例如,密文)发送时,att有效载荷522包括经认证的加密数据612并且不包括经认证的明文610。在一些示例中,从现场设备mcu318接收字节数组并将其插入有效载荷600中。然后,安全管理器314通过生成mac来认证标志602、计数器608和字节数组。此外,安全管理器314对mac进行加密以生成mic614,并且对字节数组进行加密以生成经认证的加密数据612。当加密过程已完成时,安全管理器314可以连结包括标志602和计数器608的关联数据604、经认证的加密数据612和mic614,以产生具有经认证和经加密的有效载荷600的att有效载荷522。现场设备102还可向ble无线电范围内的设备(例如,远程设备106)广播att协议分组500以发送包括在字节数组中的信息(例如,由现场设备mcu318生成)。

当现场设备106将通过直接连接(例如,与远程设备106)发送att协议分组500时,对有效载荷600进行认证和加密。然而,在此类示例中,因为接收att协议分组500的设备(例如,远程设备106)不需要辅助信息,所以将辅助位设置为0。例如,这是由于在数据传输之前发生的握手。在握手期间,现场设备102共享将由远程设备106使用的初始化向量和加密密钥,并且因此远程设备106已经具有完成对有效载荷600的解密和认证所需的信息。当现场设备ble桥接器104从现场设备mcu318接收具有工业协议的数据分组(例如,要通过直接连接输出的数据分组),图3的协议处置器312首先确定与数据分组相关联的工业协议。为了通过直接连接发送att协议分组500,协议处置器312将工业协议分组转换为ble有效载荷(例如,有效载荷600)。当协议处置器312已经创建了有效载荷600时,安全管理器314生成标志602(例如,包括将传输类型指示为直接连接传输的源位622)和随机数值。安全管理器314使用随机数值来认证(例如,通过生成mac)标志602、计数器608和有效载荷600。有效载荷600和mac均被加密(例如,以分别创建经认证的加密数据612和mic614),并且关联数据604、经认证的加密数据612和mic614被连结,以生成att有效载荷522。然后,可以通过直接连接将att协议数据分组500发送到远程设备106,并且远程设备106能够基于在现场设备102与远程设备之间的握手期间共享的辅助信息(例如,初始化向量、加密密钥等)对att有效载荷522进行认证和解密。

在一些示例中,当命令处理器310确定有效载荷600将作为明文发送时(例如,安全管理器314在传输之前不对有效载荷600进行认证或加密),将att协议分组500引导到安全管理器314以用于生成标志602。例如,安全管理器314通过确定认证位616、加密位618、方向位620和源位622的值来生成标志602。另外地或替代地,安全管理器314可以确定要添加到报头的版本最低有效位624和版本最高有效位626的值。当有效载荷600作为明文数据发送时,安全管理器314确定认证位616和加密位618具有值0(例如,当数据分组作为明文被发送时将不进行认证或加密)。安全管理器314还以先前讨论的方式确定方向位618和源位620的值。在一些示例中,安全管理器314确定辅助位628具有值0(例如,因为辅助信息未与明文有效载荷600一起被发送)。因此,安全管理器314生成标志602,并将标志602附加到att有效载荷522的有效载荷600。

在一些示例中,远程设备ble桥接器110的图4的安全管理器414可以解密在远程设备106的远程设备ble桥接器110处接收到的att协议数据分组500的经加密的有效载荷600。例如,当在远程设备106处接收到att协议分组500时,可以将att协议分组500的att有效载荷522引导到安全管理器414,以在被引导到图4的示例性协议处置器412和/或示例性主机应用418之前对att有效载荷522进行认证和/或解密。在一些示例中,安全管理器414对有效载荷600、标志602和/或关联数据604的完整性(例如,使用mac)进行认证。在一些示例中,安全管理器414在解密有效载荷600之后执行认证。另外地或替代地,有效载荷600可以不被加密,并且安全管理器414可以立即认证有效载荷600(例如,不必需要解密)。在一些此类示例中,如果确定有效载荷600和/或关联数据604不是真实的(例如,mac指示有效载荷600、标志602和/或关联数据604已被操纵、异常形成等),则安全管理器414可以丢弃att协议分组500。结合图8b进一步讨论在远程设备106处对att协议分组500的认证。在一些示例中,不对有效载荷600进行加密,并且当安全管理器414已经认证了有效载荷600、标志602和/或关联数据604时,att有效载荷522可以被引导到协议处置器412和/或主机应用418。

当安全管理器314接收到包括经认证和经加密的有效载荷600的att有效载荷522时,安全管理器414可以解密mic614和经认证的加密数据612。例如,安全管理器414可以接收辅助数据中(例如,交织在数据分组的传输中)的加密密钥标识符,该加密密钥标识符向安全管理器414指示在解密经认证的加密数据612中将使用哪个加密密钥。在一些示例中,安全管理器414可以访问多个预共享密钥(例如,对于安全管理器414已知的密钥)。在一些此类示例中,预共享密钥包括在可以由安全管理器414访问的位于远程设备106外部的应用中。安全管理器414还访问先前在att有效载荷522中发送的辅助信息中包括的附加数据(例如,初始化向量、附加标志等)。使用该信息,安全管理器414可以使用辅助信息以及标志602和计数器608,来生成随机数值并解密经认证的加密数据612。附加数据可以用于确定在将att协议数据分组500传输到远程设备106之前在现场设备102对有效载荷600进行加密期间使用的随机数值。当安全管理器414已经确定了随机数值时,随机数值与加密密钥标识符结合使用以解密有效载荷600,如结合图8a和图8b进一步讨论的。

图7是由图1-图4的示例性现场设备102和/或图1、图3和/或图4的远程设备106生成的示例性随机数值700的实现。示例性随机数值700用作对示例性加密算法(例如,aes-128块密码)的输入,如结合图8a和图8b进一步讨论的。在一些示例中,随机数值700由图3的示例性安全管理器314生成。另外地或替代地,随机数值700由示例性远程设备ble桥接器110中包括的图4的示例性安全管理器414生成。在所示示例中,随机数值700包括13字节。另外地或替代地,随机数值700可以包括更多或更少的字节数。

示例性随机数值700最初由例如图3的安全管理器314在通过ble网络322将数据分组(例如,图5的att协议分组500)从现场设备102传输到远程设备106之前生成。在一些示例中,安全管理器314基于在图6的标志602中包括的方向位618和源位620、与辅助数据一起发送的初始化向量(例如,如结合图6所讨论的)、和/或图6的计数器608来生成随机数值700。在所示示例中,安全管理器314生成作为13字节随机数值的随机数值700。在一些示例中,13字节随机数值700包括3字节计数器608(例如,具有字节0-2的计数器)、9字节初始化向量(例如,具有字节0-8的初始化向量)和基于方向位618和源位620的字节。例如,安全管理器314基于计数器608的第零字节(例如,计数器608的字节0)生成随机数值700的示例性第零字节702(例如,字节0)。安全管理器314还使用计数器608的两字节(例如,计数器608的字节1和2)来生成随机数值的两个附加字节(例如,示例性第一字节704和示例性第二字节706)。为了生成随机数值700的第三字节708,安全管理器314使用包括在标志602中的方向位620和源位622。

安全管理器314还使用9字节初始化向量生成随机数值700的9字节。例如,随机数值700的第四字节710包括初始化向量的第零字节,随机数值700的第五字节712包括初始化向量的第一字节,等等。随机数值700的最后两字节(例如,示例性第十一字节714和示例性第十二字节716)包括初始化向量的最终字节(例如,初始化向量的第七和第八字节)。此外,随机数值700的第四字节708是初始化向量的最低有效字节,并且随机数值700的第十二字节716是初始化向量的最高有效字节。在一些示例中,初始化向量包括在从现场设备102广播的辅助信息中(例如,用于广播数据传输)。在此类示例中,图4的安全管理器414可以使用包括在辅助信息中的初始化向量来确定随机数值。在一些替代示例中,在现场设备102与远程设备106之间的握手期间获得初始化向量,并且当经由直接连接发送数据分组时可以使用初始化向量。在一些示例中,当现场设备102直接连接到远程设备106时,初始化向量在整个连接会话中不改变。当随机数值700已经由图3的示例性安全管理器314或图4的安全管理器414生成时,随机数700可以用作对结合图8a和图8b进一步讨论的加密算法的输入。

图8a是采用密码块链接(cbc)-mac(ccm)模式加密方法800的计数器的例示示例。在ccm模式加密方法800中,随机数值(例如,图7的示例性随机数值700)和示例性加密密钥804(例如,在结合图6讨论的辅助信息中包括的秘密加密密钥)用作对示例性aes-256块密码806的输入。随机数值700进一步附加到计数器(例如,不同于图6的计数器608)以创建输入块700a、700b和700c。例如,通过将随机数值700附加到计数器来生成第一输入块700a,其中该计数器具有值0。此外,通过将随机数值700附加到计数器来生成第二输入块700b,其中该计数器具有值1。然后,基于附加到计数器的最终值的随机数值700(例如,取决于有效载荷600的大小)来生成最终输入块700c。另外地或替代地,ccm模式加密方法800可以使用不同的块密码(例如aes-128块密码)。aes-256块密码806输出基于第一输入块700a和加密密钥804的示例性第一加法器808a。在一些示例中,有效载荷600(例如,包括cbc-mac)被分割为128位数据块,将每个128位块作为对aes-128块密码806的输入,并在加密过程之后进行组合。然后将加法器808与图6的示例性有效载荷600的一部分进行组合。例如,在图8a中,可以将有效载荷600的第一128位明文部分600a与加法器808进行组合以生成第一128位密文输出810a。在一些示例中,第一128位明文部分600a是要被加密以创建mic的cbc-mac(例如,使用图8b的方法来生成)。在此类示例中,剩余的128位明文部分600b-600c包括图6的有效载荷600。

ccm模式加密方法800还基于将第二输入块700b和加密密钥804输入到aes-256块密码806中来生成第二加法器808b,并将第二加法器808b与有效载荷600的第二128位部分600b组合。在此类示例中,通过组合第二128位密文输出810b和第二加法器808b来输出第二128位密文输出810b。ccm模式加密方法800继续生成128位密文输出,直到有效载荷600已被完全加密为止。最终输入块700c被组合,并且加密密钥804被输入到aes-256块密码806中以产生最终加法器808c。该最终加法器808c可以与有效载荷600的最终128位部分600c组合以生成最终128位密文输出810c。ccm模式加密方法800的最后步骤包括连结128位密文输出810a-810c以创建经加密的有效载荷(例如,图6的经认证的加密数据612)。在一些示例中,有效载荷600是与过程控制系统相关联的过程数据(例如,过程值、告警等)。例如,有效载荷600可以是由图1-图4的示例性现场设备102获得的过程数据,该过程数据将由示例性现场设备ble桥接器104输出。加法器808因此加密有效载荷600以创建示例性经加密的有效载荷810。

在一些示例中,当有效载荷600已经被加密并且关联数据(例如,图6的关联数据604)已经被附加到经认证的加密数据612时,经认证的加密数据612和关联数据604被认证。结合图8b讨论对经认证的加密数据612和关联数据604的认证。所示示例的ccm模式加密方法800还可以用于通过对使用图8b所示的方法生成的mac进行加密来创建mic(例如,图6的mic614)。在一些示例中,当有效载荷600和mic614已经被加密时,现场设备102将具有经认证的加密数据612的数据分组(例如,图5的att协议分组500)发送到图1、图3和/或图4的示例性远程设备106。在一些示例中,包括在远程设备106中的安全管理器414接收经认证的加密数据612和mic614,并使用aes-256块密码806来对mic614和经认证的加密数据612进行解密。例如,安全管理器414可以生成随机数值700(例如,如结合图7所讨论的),并且可以访问由现场设备102中包括的安全管理器314使用的加密密钥804。在一些示例中,安全管理器414从结合图6讨论的辅助信息中识别加密密钥804,并从预共享密钥集合中访问加密密钥804。在所示示例中,安全管理器414还将随机数值700和加密密钥804输入到aes-256块密码806中,aes-256块密码806输出示例性加法器808a-808c。在一些示例中,加法器808a-808c与相应的128位密文输出810a-810c组合以解密经认证的加密数据612,从而生成有效载荷600。在此类示例中,有效载荷600是可以由远程设备106(例如,由图4的示例性协议处置器412和/或示例性主机应用418)进一步访问的明文数据。

图8b是用于生成消息认证码(mac)(例如,结合图6讨论的mac)的密码块链接-消息认证码(cbc-mac)方法812的例示示例。例如,包括在现场设备102中的安全管理器314可以在数据分组的传输之前使用cbc-mac方法812针对示例性有效载荷(例如,图6的有效载荷600)和/或示例性关联数据(例如,图6的关联数据604)生成mac。在所示示例中,有效载荷600和关联数据604被安全管理器314分割为块b0814、块b1816和块br818。在一些示例中,在块b1816和块br818之间存在以与块814-818相同的方式操作的另外的块。在一些示例中,块814-818中的每一个包括来自有效载荷600和/或关联数据604的128位数据。另外地或替代地,块814-818中的每一个可以包括来自有效载荷600和/或关联数据604的256位数据。在一些示例中,在使用cbc-mac方法812之前加密(例如,使用图8a所示的ccm模式加密方法800)有效载荷600。

在所示示例中,将块b0814输入到示例性aes-256块密码806中。在一些示例中,cbc-mac方法812使用不同的块密码(例如aes-128)或使用哈希算法(例如,hmac)。aes-256块密码806还接收示例性加密密钥804作为输入。在一些示例中,安全管理器314根据辅助信息确定要使用的加密密钥804。在所示示例中,加密密钥804是在图8a的ccm模式加密方法800中使用的相同加密密钥。替代地,cbc-mac方法812可以使用不同的加密密钥804。基于输入(例如,块b0814和加密密钥804),aes-256块密码806输出示例性第一密文块820。在所示示例中,第一密文块820与块b1816进行组合(例如,链接),块b1816与加密密钥804一起用作aes-128块密码806的新输入。然后,aes-128块密码806输出示例性第二密文块822,并且该过程再次开始(例如,第二密文块822与另一个明文数据块组合或链接,并输入到aes-128块密码806中)。在所示示例中,块br818与在先前步骤中输出的密文块组合,以用作对aes-128块密码806的输入,并且aes-256块密码806输出mac。在一些示例中,由aes-256块密码806输出的mac是3字节mac。在一些示例中,mac随后被附加到有效载荷600并被加密(例如,使用图8a的ccm模式加密方法800)。

当图1-图4的示例性远程设备ble桥接器110在远程设备106处接收包括mic614的数据分组时,图4的示例性安全管理器414可以解密mic614以生成mac,然后使用cbc-mac方法812对有效载荷600和关联数据604进行认证。例如,远程设备106的安全管理器414可以使用cbc-mac方法812,该cbc-mac方法812也被现场设备102的安全管理器314用来验证mac,并且因此认证有效载荷600和关联数据604(例如,检查有效载荷600或关联数据604的操纵、删除等)。安全管理器414将有效载荷600和关联数据604分割成块814-818。安全管理器414还将块b0814连同加密密钥804一起输入到aes-256块密码806中,以生成第一密文块820。在一些示例中,安全管理器414基于辅助信息来确定要使用的加密密钥804。例如,辅助信息在生成mac时识别由现场设备102的安全管理器314使用的加密密钥804,这允许远程设备106的安全管理器414为mac生成相同的值。

安全管理器414还将第一密文块820与块b1816组合,并将组合后的值与加密密钥804一起用作对aes-256块密码806的新输入。因此,输出第二密文块822,然后重复该过程,直到最终块即块br818与先前的密文块组合,并连同加密密钥804一起输入到aes-256块密码806中。mac由aes-256块密码806输出并可以进一步与附加到有效载荷600的mac的值(例如,最初是mic614,但是现在解密为mac)进行比较。如果两个值匹配,则安全管理器414验证数据分组的完整性并接受数据分组。另一方面,如果安全管理器414确定两个mac的值不匹配,则安全管理器414可以拒绝该数据分组。

在图9a-图9d中示出了表示用于实现图3的现场设备ble桥接器104的示例性硬件逻辑、机器可读指令、硬件实现的状态机和/或它们的任何组合的流程图。机器可读指令可以是用于由计算机处理器(例如,下面结合图11讨论的示例性处理器平台1100中示出的处理器1112)执行的可执行程序或可执行程序的一部分。程序可以体现在储存在非暂时性计算机可读储存介质(诸如cd-rom、软盘、硬盘驱动器、dvd、蓝光盘或与处理器1112相关联的存储器)上的软件中,但是整个程序和/或其部分可以替代地由处理器1112以外的设备执行和/或体现在固件或专用硬件中。此外,尽管参考图9a-图9d所示的流程图描述了示例性程序,但是可以替代地使用实现示例性现场设备ble桥接器104的许多其他方法。例如,可以改变框的执行顺序,和/或可以改变、消除或组合所描述的一些框。另外地或替代地,任何或所有框可以由一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路等)实现,该一个或多个硬件电路被构造为执行相应的操作而无需执行软件或固件。

如上所述,图9a-图9d的示例性过程可以使用储存在非暂时性计算机和/或机器可读介质(诸如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或任何其他储存设备或储存盘)上的可执行指令(例如,计算机和/或机器可读指令)来实现,其中,信息在任何持续时间上(例如,在延长的时间段上、永久地、短暂地、用于临时缓冲和/或用于缓存信息)被储存在该非暂时性计算机和/或机器可读介质中。如本文所使用的,术语“非暂时性计算机可读介质”被明确定义为包括任何类型的计算机可读储存设备和/或储存盘,并且排除传播信号并排除传输介质。

“包括”和“包含”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求采用任何形式的“包括”或“包含”(例如,包含、包括、包含有、包括有、具有等)作为前序部分或在任何种类的权利要求记载中时,应理解为在不落在对应权利要求或记载的范围外的情况下,可以存在其他要素、项等。如本文所使用的,当术语“至少”在例如权利要求的前序部分中用作过渡术语时,其以与术语“包含”和“包括”是开放式的相同的方式是开放式的。术语“和/或”在例如以诸如a、b和/或c的形式使用时指代a、b、c的任何组合或子集,诸如(1)仅a,(2)仅b,(3)仅c,(4)a与b,(5)a与c,(6)b与c,以及(7)a与b和c。如在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“a和b中的至少一个”旨在指代包括以下各项中的任一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,如本文在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“a或b中的至少一个”旨在指代包括以下各项中的任一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b中。如本文在描述执行或运行过程、指令、动作、活动和/或步骤的上下文中所使用的,短语“a和b中的至少一个”旨在指代包括以下中的任何一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,如本文在描述执行或运行过程、指令、动作、活动和/或步骤的上下文中所使用的,短语“a或b中的至少一个”旨在指代包括以下各项中的任一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。

图9a是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图3的示例性现场设备ble桥接器104以广播来自图1-图4的示例性现场设备102的数据分组。示例性过程900在框902处开始,在框902处,现场设备ble桥接器104从现场设备微控制器(mcu)318接收字节数组,以作为明文、经认证的明文或经认证的密文进行发送。例如,图3的示例性命令处理器310可以从现场设备mcu318接收数据分组,该数据分组包括由现场设备102获得的过程数据。命令处理器310还被指示将字节数组作为数据分组(例如,图5的att协议分组500)内的明文有效载荷(例如图6的有效载荷600)发送。

在框904处,现场设备ble桥接器104确定计数器(例如,图6的计数器608)是否指示要广播辅助数据(例如,结合图6讨论的)。例如,当要每十个消息发送辅助数据时,命令处理器310可以确定计数器608的值,以确定它是否是10的倍数。当命令处理器310确定要广播辅助数据时,过程900的控制前进到框910。当命令处理器310确定不广播辅助数据时,过程900的控制前进到框906。

在框906处,现场设备ble桥接器104将辅助位(例如,图6的辅助位628)设置为0。例如,安全管理器314可以生成辅助位628,其指示att有效载荷522是否包括辅助信息,并且确定辅助位的值为0(例如,因为att有效载荷522不包括辅助信息)。在一些示例中,辅助位628包括在图6的标志602内,并且可以被设置为值0(例如,没有辅助信息)或1(例如,att有效载荷522包括辅助信息)。

在框908处,现场设备ble桥接器104确定有效载荷(例如,有效载荷600)将是从现场设备mcu318接收的字节数组。例如,当安全管理器314确定在att有效载荷522中不发送辅助信息时,安全管理器314确定有效载荷600将包括字节数组(例如,由现场设备102获得的过程数据)。

现场设备ble桥接器104进一步将辅助位628设置为1(框910)。例如,示例性安全管理器314可以生成标志602的辅助位628为1,因为辅助信息将从现场设备102在att有效载荷522内广播。在框912处,现场设备ble桥接器104确定有效载荷600将是辅助数据字节数组。例如,当安全管理器314确定辅助数据将从现场设备102广播时,安全管理器314将辅助数据插入有效载荷600中。在一些示例中,辅助数据包括初始化向量(例如,在生成图7的随机数值700中使用)、加密密钥标识符(例如,用于选择加密密钥)、附加标志和/或其他信息。

现场设备ble桥接器104进一步生成剩余的标志602(框914)。例如,除了先前生成的辅助位628(例如,在框906或框910处生成),安全管理器314还可以生成认证位616、加密位618、方向位620、源位622、版本最低有效位624和/或版本最高有效位626。标志602指示有效载荷600的状态(例如,明文、经认证的明文、经认证和经加密的明文等)、att协议分组500的方向(例如,去往或来自现场设备102)、传输类型(例如,广播或直接连接)、和/或关于有效载荷600或att协议数据分组500的其他信息。

在框916处,现场设备ble桥接器104基于有效载荷600和标志602来构建数据分组。例如,安全管理器314基于有效载荷600和标志602来构建att有效载荷522。在一些示例中,有效载荷600包括关联数据(例如,图6的关联数据604)和密文(例如,密文606)。在此类示例中,关联数据604未被加密,但是可以被认证,并且密文606被加密。在一些示例中,从现场设备mcu318接收的字节数组被认证并且未被加密,并且在此类示例中,字节数组包括在关联数据604中。替代地,安全管理器314可以确定从现场设备mcu318接收到的字节数组将被认证和加密,并且安全管理器314因此在密文606内包括字节数组。图9b例示了框916的实现,其中字节数组被认证并且未被加密。图9c例示了框916的实现,其中字节数组被认证和加密。当字节数组将作为明文被广播时,有效载荷600不分解为关联数据604和密文606。例如,字节数组用作有效载荷600,并与标志602一起从现场设备102广播。

在框918处,现场设备ble桥接器104广播数据分组(例如,att协议分组500)。例如,安全管理器314可以将包括有效载荷600的att协议分组500(例如,作为明文、经认证的明文、或经认证和加密的明文)发送到图3的ble接口308。ble接口308还通过示例性ble网络322广播att协议分组500。

现场设备ble桥接器104进一步递增计数器608(框920)。例如,安全管理器314将计数器608递增1以更新计数器608。在一些示例中,计数器608指示有效载荷600是否将包括从现场设备mcu318接收的辅助信息或字节数组。另外地或替代地,递增计数器608允许为将要发送的下一个数据分组生成新的随机数值。例如,即使当初始化向量相同时,因为计数器递增,所以随机数值(例如,图7的随机数值700)也是唯一的。

图9b是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性现场设备ble桥接器104以在有效载荷600将被认证和不被加密时基于有效载荷600和标志602来构建数据分组。过程916在框922处开始,在框922处,现场设备ble桥接器104生成随机数值(例如,图7的随机数值700)。例如,安全管理器314可以基于标志602、初始化向量和/或计数器608来生成随机数值700。例如,安全管理器314可以基于来自标志602的方向位620和源位622、初始化向量和用于生成随机数值700的计数器608来生成随机数值700(例如,如结合图7进一步讨论的)。

在框924处,现场设备ble桥接器104生成关联数据604的密码块链(cbc)–消息认证码(mac)。例如,安全管理器314可以使用结合图8b讨论的cbc-mac(例如,在本文中也称为mac)方法812生成关联数据604的cbc-mac。因此,mac对所有关联数据604进行认证,该关联数据604包括标志602、计数器608和/或经认证的明文610。

现场设备ble桥接器104进一步根据cbc-mac生成mic(例如,图6的mic614)(框926)。例如,安全管理器314使用图8a的ccm模式加密方法800来对在框924处生成的cbc-mac进行加密。在框928处,现场设备ble桥接器104连结关联数据604和mic614。例如,安全管理器314可以连结关联数据604和mic614以完成构建要在att协议数据分组500中发送的att有效载荷522。当关联数据604和mic614已经被连结时,控制返回到过程900的框918,在框918处,将通过现场设备102广播经认证的数据分组。

图9c是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性现场设备ble桥接器104以在数据分组将被认证和被加密时基于有效载荷600和标志602来构建数据分组。示例性过程916在框930处开始,在框930处,现场设备ble桥接器104生成随机数值(例如,图7的随机数值700)。例如,安全管理器314可以基于标志602、初始化向量和/或计数器608来生成随机数值700。例如,安全管理器314可以基于来自标志602的方向位620和源位622、初始化向量和计数器608生成随机数值700(例如,如结合图7进一步讨论的)。

在框932处,现场设备ble桥接器104生成关联数据604和有效载荷600的cbc-mac。例如,安全管理器314可以使用结合图8b讨论的cbc-mac方法812来生成关联数据604和有效载荷600(例如,密文606中包括的有效载荷600)的cbc-mac。因此,mac对关联数据604,包括标志602和/或计数器608和有效载荷600中的所有数据进行认证。现场设备ble桥接器104进一步根据cbc-c生成mic(例如,图6的mic614)(框934)。例如,安全管理器314使用图8a的ccm模式加密方法800来对在框934处生成的cbc-mac进行加密。在框936处,现场设备ble桥接器104对有效载荷600进行加密。例如,使用ccm模式加密方法800,安全管理器314可以对有效载荷600进行加密。对有效载荷600的加密发生在有效载荷600被认证之后。

在框938处,现场设备ble桥接器104连结关联数据604、经加密的有效载荷(例如,经认证的加密数据612)和mic614。当连结完成时,att有效载荷522包括经认证的加密的有效载荷,并且att协议数据分组500准备好由现场设备102广播。然后,过程916的控制返回到图9的框918,在框918处,现场设备102广播att协议分组500(例如,通过图3的ble网络322)。

图9d是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性现场设备ble桥接器104以经由直接连接发送数据分组(例如,图5的att协议分组500)。示例性过程940开始于框942,在框942处,现场设备ble桥接器104从现场设备mcu(例如,图3的现场设备mcu318)接收工业协议数据分组以进行输出。例如,命令处理器310可以从现场设备mcu318接收工业协议分组,该工业协议分组将经由直接连接被发送到设备(例如,图1、图3和/或图4的远程设备)。

现场设备ble桥接器104进一步确定与要输出的工业协议数据分组相关联的工业协议(框944)。例如,协议处置器312可以确定从现场设备mcu接收的工业协议数据分组的工业协议,诸如hart协议、profibus协议等。

框946处,现场设备ble桥接器104将工业协议数据分组转换为ble有效载荷(例如,att有效载荷522)。例如,协议处置器312可以确定将移除工业协议数据分组支持信息(例如,前导码、地址等),以将工业协议数据分组转换为与att有效载荷522一致的形式。

现场设备ble桥接器104进一步生成随机数值(例如,图7的随机数值700)(框948)。例如,安全管理器314可以基于标志602、初始化向量和/或计数器608来生成随机数值700。在一些示例中,安全管理器314基于来自标志602的方向位620和源位622、初始化向量和用于生成随机数值700的计数器608来生成随机数值700(例如,如结合图7进一步讨论的)。

在框950处,现场设备ble桥接器104基于有效载荷600和关联数据604来生成cbc-mac。例如,安全管理器314可以使用结合图8b所讨论的cbc-mac方法812来生成针对关联数据604和有效载荷600(例如,密文606中包括的有效载荷600)的cbc-mac。因此,mac对关联数据604,包括标志602和/或计数器608和有效载荷600中的所有数据进行认证。现场设备ble桥接器104还根据cbc-mac生成mic(例如,图6的mic614)(框952)。例如,安全管理器314使用图8a的ccm模式加密方法800来对在框934处生成的cbc-mac进行加密。在框954处,现场设备ble桥接器104对有效载荷600进行加密。例如,使用ccm模式加密方法800,安全管理器314可以对有效载荷600进行加密。对有效载荷600的加密发生在有效载荷600被认证之后。

在框956处,现场设备ble桥接器104连结关联数据604、经加密的有效载荷(例如,经认证的加密数据612)和mic614。当连结完成时,att有效载荷522包括经认证和加密的有效载荷,并且att协议数据分组500准备好通过现场设备102与远程设备106之间的直接连接进行发送。现场设备ble桥接器104通过ble连接(例如,现场设备102与远程设备106之间的直接连接)进一步发送数据分组(例如att协议数据分组500)(框958)。例如,ble接口308可以将att协议分组500发送到仅远程设备106(例如,att协议分组500没有在ble网络322上广播到现场设备102范围内的任何设备)。

在框960处,现场设备ble桥接器104递增针对随机数值700的计数器(例如,图6的计数器608)。例如,安全管理器314将计数器608递增1以更新计数器608。在一些示例中,递增计数器608允许为将要通过ble连接发送的下一个数据分组生成新的随机数值。例如,即使当初始化向量相同时,因为计数器608递增,所以随机数值(例如,图7的随机数值700)也是唯一的。在框962处,现场设备ble桥接器104确定是否要发送更多的数据分组。例如,命令处理器310可以确定是否从现场设备mcu318接收到附加的工业协议数据分组。当要发送更多数据分组时,过程940的控制返回到框942。当不发送更多数据分组时,过程940的控制结束。

在图10a-图10c中示出了表示用于实现图4的远程设备ble桥接器110的示例性硬件逻辑、机器可读指令、硬件实现的状态机和/或它们的任何组合的流程图。机器可读指令可以是由计算机处理器(诸如下面结合图12讨论的示例性处理器平台1200中所示的处理器1212)执行的可执行程序或可执行程序的一部分。程序可以体现在储存在非暂时性计算机可读储存介质(诸如cd-rom、软盘、硬盘驱动器、dvd、蓝光盘或与处理器1212相关联的存储器)上的软件中,但是整个程序和/或其部分可以替代地由处理器1212以外的设备执行和/或体现在固件或专用硬件中。此外,尽管参考图10a-图10c所示的流程图描述了示例性程序,但是可以替代地使用实现示例性远程设备ble桥接器110的许多其他方法。例如,可以改变框的执行顺序、和/或可以改变、消除或组合所描述的一些框。另外地或替代地,任何或所有框可以由一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路等)实现,该一个或多个硬件电路被构造为执行相应的操作而无需执行软件或固件。

如上所述,图10a-图10c的示例性过程可以使用储存在非暂时性计算机和/或机器可读介质(诸如硬盘驱动器、闪存、只读存储器、压缩盘、数字多功能盘、高速缓存、随机存取存储器和/或任何其他储存设备或储存盘)上的可执行指令(例如,计算机和/或机器可读指令)来实现,其中,信息在任何持续时间上(例如,在延长的时间段上、短暂地、用于临时缓冲和/或用于信息缓存)被储存在该非暂时性计算机和/或机器可读介质中。如本文所使用的,术语“非暂时性计算机可读介质”被明确定义为包括任何类型的计算机可读储存设备和/或储存盘,并且排除传播信号并排除传输介质。

“包括”和“包含”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求采用任何形式的“包括”或“包含”(例如,包含、包括、包含有、包括有、具有等)作为前序部分或在任何种类的权利要求记载中时,应理解为在不落在对应权利要求或记载的范围外的情况下,可以存在其他要素、项等。如本文所使用的,当术语“至少”在例如权利要求的前序部分中用作过渡术语时,其以与术语“包含”和“包括”是开放式的相同的方式是开放式的。术语“和/或”在例如以诸如a、b和/或c的形式使用时指代a、b、c的任何组合或子集,诸如(1)仅a,(2)仅b,(3)仅c,(4)a与b,(5)a与c,(6)b与c,以及(7)a与b和c。如在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“a和b中的至少一个”旨在指代包括以下各项中的任一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,如本文在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“a或b中的至少一个”旨在指代包括以下各项中的任一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b中。如本文在描述执行或运行过程、指令、动作、活动和/或步骤的上下文中所使用的,短语“a和b中的至少一个”旨在指代包括以下中的任何一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。类似地,如本文在描述执行或运行过程、指令、动作、活动和/或步骤的上下文中所使用的,短语“a或b中的至少一个”旨在指代包括以下各项中的任一项的实现:(1)至少一个a,(2)至少一个b,以及(3)至少一个a和至少一个b。

图10a是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性远程设备ble桥接器110以从经认证的有效载荷(例如,图6的示例性有效载荷600)提取过程数据。示例性过程1000开始于框1002,在框1002处,远程设备ble桥接器110从现场设备(例如,图1-4的现场设备102)接收带有经认证的有效载荷的数据分组(例如,图5的示例性att协议分组500)。例如,图4的ble堆栈处置器404可以接收具有经认证的有效载荷(例如,包括在由现场设备102经由图4的ble接口408通过ble网络322发送(例如,广播)的经认证的明文610中的有效载荷)的数据分组(例如,att协议分组500)。在此类示例中,ble堆栈处置器404可以在接收到数据分组之后将数据分组引导到图4的平台管理器402。

在框1004处,远程设备ble桥接器110确定是否已接收到辅助数据。例如,安全管理器414可以分析图5的示例性att有效载荷522,以确定att有效载荷522是否包括辅助数据(例如,基于图6的辅助位628)。在一些示例中,安全管理器414分析标志602以确定辅助位628的值。在此类示例中,辅助位628的值1指示数据分组包括将由例如安全管理器414分析的辅助数据。另一方面,辅助位628的值0指示辅助数据不包括在att有效载荷522中。在一些示例中,安全管理器414先前接收过可以用于接收到的数据分组的辅助数据(例如,来自先前由远程设备ble桥接器110接收的数据分组)。当远程设备ble桥接器110确定安全管理器414已经接收到辅助数据时,控制前进到框1008。当远程设备ble桥接器110确定安全管理器414尚未接收到辅助数据时,过程1000的控制前进到框1006。

在框1006处,远程设备ble桥接器缓冲接收到的数据。例如,当安全管理器414尚未接收到辅助数据时,安全管理器414可将数据分组存储在图4的示例性数据库406中,直到接收到辅助数据为止。在此类示例中,辅助数据允许安全管理器414处理数据分组并提取有效载荷600。

在框1008处,远程设备ble桥接器110生成随机数值(例如,图7的随机数值700)。例如,图4的安全管理器414可以基于标志602、初始化向量(例如,如结合图7所讨论的)和/或图6的计数器608来生成随机数值700。在一些示例中,安全管理器414生成随机数值。在一些示例中,基于来自标志602的方向位620和源位622、初始化向量和计数器608生成随机数值700(例如,如结合图7所讨论的)。

在框1010处,远程设备ble桥接器110根据mic(例如,图6的mic614)生成cbc-mac。例如,安全管理器414可以通过使用图8a的示例性ccm模式加密方法800对mic614进行解密来生成cbc-mac。在一些示例中,安全管理器414使用在框1008处生成的随机数值700和mic614作为对ccm模式加密方法800的输入,以输出cbc-mac。

远程设备ble桥接器110进一步认证关联数据(例如,关联数据604)和有效载荷600(框1012)。例如,安全管理器414使用mac来使用结合图8b讨论的cbc-mac方法812来认证关联数据604,包括标志602、计数器608和经认证的明文610(例如,其包括有效载荷600)。因此,mac确定在传输(例如,从现场设备102到远程设备106)期间标志602、计数器608和经认证的明文610没有被操纵、异常形成等。远程设备ble桥接器110进一步提取有效载荷600(框1014)。例如,安全管理器414在关联数据604(例如,包括标志602、计数器608和经认证的明文610)已经被认证之后提取有效载荷600。然后,所提取的有效载荷600可以被储存在数据库406中和/或被发送到图4的主机应用418。

在框1016处,远程设备ble桥接器110确定是否要接收附加的数据分组。例如,图4的ble接口408确定是否在远程设备106处接收到附加的数据分组。当ble接口408在远程设备106处接收到附加的数据分组时,过程1000的控制返回到框1002。当没有附加数据分组将被接收时,过程1000结束。

图10b是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性远程设备ble桥接器110以从加密的有效载荷810中提取过程数据。示例性过程1018开始于框1020,在框1020处,远程设备ble桥接器110接收带有经加密的有效载荷(例如,图5的att有效载荷522,其中图6的有效载荷600被包括在经认证的加密数据612内)的数据分组(例如,图5的att协议分组500)。例如,图4的ble堆栈处置器404可以接收att协议分组500,该att协议分组500具有由现场设备102通过ble网络322发送(例如,广播)的经认证和加密的有效载荷(例如,包括在经认证的加密数据612中的有效载荷)。在此类示例中,当接收到att协议分组500时,ble堆栈处置器404可以将att协议分组500从ble接口408引导到图4的平台管理器402。

远程设备ble桥接器110进一步确定是否已经接收到辅助数据(框1022)。例如,安全管理器414可以分析图5的示例性att有效载荷522,以确定att有效载荷522是否包括辅助数据(例如,基于图6的辅助位628)。在一些示例中,安全管理器414分析标志602以确定辅助位628的值。在此类示例中,辅助位628的值1指示数据分组包括将由例如安全管理器414分析的辅助数据(例如,作为明文)。另一方面,辅助位628的值0指示辅助数据不包括在att有效载荷522中。在一些示例中,安全管理器414先前接收过可以用于接收到的数据分组的辅助数据(例如,来自先前由远程设备ble桥接器110接收到的数据分组)。当远程设备ble桥接器110安全管理器414已经接收到辅助数据时,控制前进到框1026。当远程设备ble桥接器110确定安全管理器414尚未接收到辅助数据时,过程1018的控制前进到框1024。

在框1024处,远程设备ble桥接器110缓冲接收到的数据。例如,当安全管理器414尚未接收到辅助数据时,安全管理器414可将数据分组存储在图4的示例性数据库406中,直到接收到辅助数据为止。在此类示例中,辅助数据允许安全管理器414处理数据分组并提取有效载荷600。远程设备ble桥接器110还生成随机数值(例如,图7的随机数值700)(框1026)。例如,图4的安全管理器414可以基于标志602、初始化向量(例如,如结合图7所讨论的)和/或图6的计数器608来生成随机数值700。在一些示例中,安全管理器414基于来自标志602的方向位620和源位622、初始化向量和计数器608生成随机数值700(例如,如结合图7所讨论的)。

远程设备ble桥接器110进一步使用随机数值700和加密密钥来解密有效载荷600(框1028)。例如,安全管理器414可以使用随机数值700和利用加密密钥标识符(例如,包括在辅助数据中)识别的加密密钥对有效载荷进行解密。在一些示例中,安全管理器414使用图8a的ccm模式加密方法800来解密有效载荷600。在框1030处,远程设备ble桥接器110根据mic(例如,图6的mic614)生成cbc-mac。例如,安全管理器414可以使用图8a的ccm模式加密方法800来解密mic614(例如,包括在图6的密文606中)。在一些此类示例中,解密过程包括用于解密有效载荷的随机数值700和加密密钥(例如,在框1028处)。

在框1032处,远程设备ble桥接器110认证关联数据604和明文有效载荷600(例如,在框1028处的解密过程之后的具有明文形式的有效载荷600)。例如,安全管理器414可以使用cbc-mac方法812和有效载荷600为关联数据604(例如,标志602和计数器608)生成mac,并且可以将使用cbc-mac方法812生成的mac的值与通过解密mic614生成的mac的值进行比较。如果两个mac的值匹配,则安全管理器414确认有效载荷600的真实性。另一方面,如果两个值不匹配,则安全管理器414可以拒绝att协议分组500。

远程设备ble桥接器110进一步提取明文有效载荷(例如,在解密和认证之后的有效载荷600)。例如,安全管理器414可以访问包括在有效载荷600中的明文数据,并将该明文数据存储在图4的数据库406中。此外,安全管理器414可以将所提取的有效载荷600发送到图4的示例性主机应用418,以进行进一步处理。在框1036处,远程设备ble桥接器110确定是否要接收附加的数据分组。例如,ble接口408可以确定是否在远程设备106处接收到附加的数据分组。当要通过ble接口408在远程设备106处接收附加的数据分组时,过程1018的控制返回到框1020。当没有附加的数据分组要被接收时,过程1018结束。

图10c是表示机器可读指令的流程图,该机器可读指令可以被执行以实现图1-图4的示例性远程设备ble桥接器110以从经由直接连接发送的有效载荷(例如,图6的有效载荷600)中提取过程数据。示例性过程1038开始于框1040,在框1040处,图1-图4的远程设备106的远程设备ble桥接器110从现场设备(例如,图1-图4的现场设备102)接收数据分组(例如,图5的att协议分组500)。例如,图4的ble堆栈处置器404可以接收具有经认证和加密的有效载荷(例如,包括在经认证的加密数据612中的有效载荷)的att协议分组500,其由现场设备102经由与远程设备106的直接连接发送。在此类示例中,在接收到att协议分组500后,ble堆栈处置器404可以将att协议分组500从ble接口408引导到图4的平台管理器402。

在框1042处,远程设备ble桥接器110生成随机数值(例如,图7的随机数值700)。例如,图4的安全管理器414可以在现场设备102和远程设备106初始化直接连接时在握手期间接收用于生成随机数值700的数据。在一些此类示例中,现场设备102和远程设备共享初始化向量、加密密钥标识符和/或其他信息。在一些示例中,安全管理器414使用初始化向量(例如,在握手期间共享)、包括在att有效载荷(例如,图5的att有效载荷522)的关联数据(例如,图4的关联数据604)中的标志(例如,图6的标志602)和包括在关联数据604中的计数器(例如,图6的计数器608)来生成随机数值700。

远程设备ble桥接器110进一步解密经加密的有效载荷600(例如,包括在图6的密文606中的图6的经认证的加密数据612)。例如,安全管理器414可以使用随机数值700和利用加密密钥标识符(例如,在握手期间共享)识别的加密密钥来解密有效载荷。在一些示例中,安全管理器414使用图8a的ccm模式加密方法800来解密有效载荷600。在框1046处,远程设备ble桥接器110根据mic(例如,图6的mic614)生成cbc-mac。例如,安全管理器414可以使用ccm模式加密方法800来解密mic614(例如,包括在图6的密文606中)。在一些此类示例中,解密过程包括用于解密有效载荷的随机数值700和加密密钥(例如,在框1044处)。

在框1048处,远程设备ble桥接器110认证关联数据604和明文有效载荷(例如,在框1044处的解密过程之后的具有明文形式的有效载荷600)。例如,安全管理器414可以使用cbc-mac方法812和有效载荷600为关联数据604(例如,标志602和计数器608)生成mac。在此类示例中,安全管理器414可以将使用cbc-mac方法812生成的mac的值与通过解密mic614生成的mac的值进行比较。如果两个mac的值匹配,则安全管理器414确认有效载荷600的真实性。另一方面,如果两个值不匹配,则安全管理器414可以拒绝att协议分组500。

远程设备ble桥接器110进一步确定工业协议(框1050)。例如,图4的协议处置器412可以确定与数据分组相关联的工业协议(例如,由图3的现场设备mcu318使用)。在一些示例中,工业协议由图4的主机应用418在对数据分组的进一步处理期间使用。在框1052处,远程设备ble桥接器110从ble明文有效载荷重建工业协议。例如,协议处置器412可以使用明文有效载荷600(例如,在框1048处被认证)并在有效载荷600周围添加工业协议的分量(例如,hart前导码、hart地址等)来建立工业协议(例如,hart协议、profibus协议等)。

远程设备ble桥接器110进一步将工业数据分组发送到主机应用418(框1054)。例如,当协议处置器412已经使用有效载荷600重建了工业协议时,工业数据分组可以被发送到主机应用418以进行进一步处理。在此类示例中,当根据专用工业协议来格式化工业协议分组时,主机应用418可以从工业协议分组内访问有效载荷600。在框1056处,远程设备ble桥接器110确定是否已经接收到更多数据分组。例如,ble接口408确定是否已经接收到更多数据分组,并且将接收到的数据分组发送到安全管理器414。当远程设备ble桥接器110确定已经接收到更多数据分组时,过程1038的控制返回到框1040。当远程设备ble桥接器110确定没有接收到更多数据分组时,过程1038结束。

图11是示例性处理器平台的框图,该示例处理器平台被构造为执行机器可读指令以实现图9a-图9d的方法和图1-图3的示例性现场设备ble桥接器104以实现本文公开的示例。处理器平台1100可以是例如服务器、个人计算机、工作站、自学习机(例如,神经网络)、移动设备(例如,手机、智能电话、诸如ipadtm的平板设备等)、个人数字助理(pda)、互联网设备或任何其他类型的计算设备。

所示示例的处理器平台1100包括处理器1112。所示示例的处理器1112是硬件。例如,处理器1112可以由任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或控制器来实现。硬件处理器可以是基于半导体的(例如,基于硅的)设备。在该示例中,处理器实现图3的示例性平台管理器302、示例性命令处理器310、示例性协议处置器312、示例性安全管理器314和示例性rx/tx接口处置器316。

所示示例的处理器1112包括本地存储器1113(例如,高速缓存)。所示示例的处理器1112经由总线1118与包括易失性存储器1114和非易失性存储器1116的主存储器通信。易失性存储器1114可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器1116可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器1114、1116的访问由存储器控制器控制。

所示示例的处理器平台1100还包括接口电路1120。接口电路1120可以通过任何类型的接口标准来实现,诸如以太网接口、通用串行总线(usb)、接口、近场通信(nfc)接口和/或pciexpress接口。在所示示例中,接口电路1120包括图3的示例性接收机发射机接口300和示例性ble接口308。

在所示示例中,一个或多个输入设备1122连接到接口电路1120。输入设备1122允许用户将数据和/或命令输入到处理器1112中。输入设备可以通过例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint和/或语音识别系统来实现。

一个或多个输出设备1124也连接到所示示例的接口电路1120。输出设备1124可以例如由显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器(lcd)、阴极射线管显示器(crt))、平面转换(ips)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实现。因此,所示示例的接口电路1120通常包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。

所示示例的接口电路1120还包括通信设备(诸如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口),以促进经由网络1126与外部机器(例如,任何种类的计算设备)的数据交换。通信可以经由例如以太网连接、数字用户线(dsl)连接、电话线连接、同轴电缆系统、卫星系统、视线无线系统、蜂窝电话系统等。

所示示例的处理器平台1100还包括用于储存软件和/或数据的一个或多个大容量存储设备1128。这种大容量存储设备1128的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、独立盘冗余阵列(raid)系统和数字多功能盘(dvd)驱动器。在所示示例中,大容量存储设备1128包括图3的示例性数据库306。

图9a-图9d的机器可执行指令1132可储存在大容量存储设备1128、易失性存储器1114、非易失性存储器1116中和/或储存在可移动非暂时性计算机可读储存介质(诸如cd或dvd)上。

图12是示例性处理器平台的框图,该示例性处理器平台被构造为执行机器可读指令以实现图1-图4的方法和图1-图4的示例性远程设备ble桥接器110以实现本文公开的示例。处理器平台1200可以是例如服务器、个人计算机、工作站、自学习机(例如,神经网络)、移动设备(例如,手机、智能电话、诸如ipadtm的平板设备等)、个人数字助理(pda)、互联网设备或任何其他类型的计算设备。

所示示例的处理器平台1200包括处理器1212。所示示例的处理器1212是硬件。例如,处理器1212可以由任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或控制器来实现。硬件处理器可以是基于半导体的(例如,基于硅的)设备。在该示例中,处理器实现图4的示例性平台管理器402、示例性命令处理器410、示例性协议处置器412、示例性安全管理器414和示例性rx/tx接口处置器416。

所示示例的处理器1212包括本地存储器1213(例如,高速缓存)。所示示例的处理器1212经由总线1218与包括易失性存储器1214和非易失性存储器1216的主存储器通信。易失性存储器1214可以由同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器1216可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器1214、1216的访问由存储器控制器控制。

所示示例的处理器平台1200还包括接口电路1220。接口电路1220可以通过任何类型的接口标准来实现,诸如以太网接口、通用串行总线(usb)、接口、近场通信(nfc)接口和/或pciexpress接口。在所示示例中,接口电路包括图4的示例性rx/tx接口400和示例性ble接口408。

在所示示例中,一个或多个输入设备1222连接到接口电路1220。输入设备1222允许用户将数据和/或命令输入到处理器1212中。输入设备可以通过例如音频传感器、麦克风、照相机(静止或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint和/或语音识别系统来实现。

一个或多个输出设备1224也连接到所示示例的接口电路1220。输出设备1224可以例如由显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器(lcd)、阴极射线管显示器(crt)、平面转换(ips)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实现。因此,所示示例的接口电路1220通常包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。

所示示例的接口电路1220还包括通信设备(诸如发射机、接收机、收发机、调制解调器、住宅网关、无线接入点和/或网络接口),以促进经由网络1226与外部机器(例如,任何种类的计算设备)的数据交换。通信可以经由例如以太网连接、数字用户线(dsl)连接、电话线连接、同轴电缆系统、卫星系统、视线无线系统、蜂窝电话系统等。

所示示例的处理器平台1200还包括用于储存软件和/或数据的一个或多个大容量存储设备1228。这种大容量存储设备1228的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、独立盘冗余阵列(raid)系统和数字多功能盘(dvd)驱动器。在所示示例中,大容量存储设备1228包括图4的示例性数据库406。

图10a-图10c的机器可执行指令1232可储存在大容量存储设备1228、易失性存储器1214、非易失性存储器1216中和/或储存在可移动非暂时性计算机可读储存介质(诸如cd或dvd)上。

根据前述内容,将理解的是,已经公开了在过程控制环境中广播数据分组的示例性方法、装置和制品。本文公开的示例促进了通过ble网络将信息从现场设备传输到远程设备。在一些示例中,现场设备的ble桥接器在向远程设备进行传输之前对有效载荷进行加密和/或向数据分组添加消息认证码(mac)。在一些公开的示例中,远程设备包括可以接收、认证和/或解密数据分组的有效载荷的远程设备ble桥接器。当数据分组已经被认证和/或有效载荷已经被解密时,远程设备ble桥接器能够从有效载荷中提取过程数据(例如,与过程控制系统相关联的过程数据)。

所公开的方法、装置和制品通过在过程控制环境中安全地广播数据同时避免了在使用ble进行广播传输时通常遇到的可扩展性、互操作性、连续维护等问题,来改进了计算设备的功能。本文公开的示例还通过将过程数据作为明文发送来消除了对维护和更新表的需求。此外,在一些示例中,客户端现场设备可以将专有信息从与客户端相关联的现场设备发送到与相同客户端相关联的远程设备。由于对数据分组的认证和/或加密,该专有信息被保护免受过程控制系统内的其他客户端的干扰。因此,所公开的方法、装置和制品是针对计算机功能上的一个或多个改进。

尽管本文已经公开了某些示例性方法、装置和制品,但是本专利的覆盖范围不限于此。相反,本专利涵盖了完全落入本专利的权利要求范围内的所有方法、装置和制品。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1