具有自动时间加戳的通信控制器的制作方法

文档序号:6656919阅读:289来源:国知局
专利名称:具有自动时间加戳的通信控制器的制作方法
技术领域
本发明涉及一种通信控制器,其用于现场仪表和其他过程控制系 统设备。具体地,本发明是用于通信控制器中低等待时间数据包接收 和处理的系统与方法。
背景技术
在典型的工业车间中,使用分布式控制系统(DCS)控制完成车 间内的众多工业过程。典型的是,车间内有集中控制室,控制室内有 计算机系统,其中包含用户输入输出(I/O)、磁盘I/O和其他众所周 知的计算机外围设备。连接计算机系统的是控制器和过程I/O子系统。
过程I/O子系统包括与遍布在车间内的各种现场设备连接的I/O 端口。现场设备包括各种类型的分析装置、硅压力传感器、电容压力 传感器、电阻式温度检测器、热电耦、应变计、限位开关、通断开关、 流量变送器、压力变送器、电容式物位幵关、计重器、变换器、阀门 定位器、阀门控制器、执行机构、螺线管和指示灯。术语"现场设备" 包括这些设备,也包括分布式控制系统中履行功能的其他设备。
传统上,模拟现场设备是通过两芯双绞线电流环路连接到控制 室,每个设备通过单独的两芯双绞线与控制室相连。模拟现场设备能 在指定的范围内响应或发送电信号。在典型的配置中,通常是在双绞 线两芯之间有接近20~25伏的电压差,通过环路的电流为4-20毫安。 传送信号到控制室的模拟现场设备,按检测到的工艺参数成比例的调 制通过电流环路的电流。另一方面,在控制室的控制下执行动作的模 拟现场设备,受环路中电流的大小控制,该电流由控制器控制的过程 I/O系统的I/O端口调制。传统的具有有源电子器件的两芯模拟设备, 可以从环路中获得多达40毫瓦的功率。需要更大功率的模拟现场设
备,典型的是用四芯线连接到控制室,其中两条用于给设备传送功率。 如同两芯设备一样,本领域众所周知的这种设备是四芯设备,并且不 受功率限制。
相反,传统的离散现场设备发送或响应二进制信号。典型的是,.
离散现场设备在24伏信号(或者AC或者DC)、 110或240伏AC信 号或5伏DC信号下工作。当然,离散现场设备也可被设计成在特殊 控制环境要求的电气规格下工作。离散输入现场设备是简单的开关, 其或是闭合或是断开与控制室的连接,而离散输出现场设备根据控制 室信号的存在或不存在执行动作。
历史上,大多数传统的现场设备或是有单一的输入或是有单一的 输出,其直接与现场设备实现的主要功能有关。例如,传统的模拟电 阻式温度传感器实现的单一功能是,通过调制流过两芯双绞线的电流 传送温度,而传统的模拟阔门定位器实现的单一功能是,根据通过两 芯双绞线电流的大小,在开、关位置之间定位阀门。
近来,在电流环路中增加了数字数据的混合系统已经在分布式控 制系统中应用。 一种在控制领域公知的混合系统是可寻址远程变换器 高速链路(HART),其与贝尔202调制解调器的规范相似。HART系 统通过电流环路中电流大小检测工艺参数(如同在传统的系统中一 样),但是也在电流环路信号上增加数字载波信号。该载波信号相对缓 慢,可以在每秒约2 — 3次更新的速率下,提供次要工艺参数的更新。 通常,数字载波信号用于发送次要的诊断信息,不用于实现现场设备 的主要控制功能。载波信号所能提供的信息包括次要工艺参数、诊断 信息(包括传感器诊断信息、设备诊断信息、线路诊断信息和过程诊 断信息)、工作温度、传感器温度、校准信息、设备ID号、结构材料、 配置或编程信息等。因此,单一的混合现场设备可以有多种输入输出 变量,实现多种功能。
HART是工业标准的公开系统。然而,它相对缓慢。行业中的其 他公司己经开发出更快的专有数字传输方案,但是,这些方案一般不 会被竞争对手使用,或者说竞争者不能获得。
近来,美国设备协会(ISA)定义了更新的控制协议。新的控制
协议通常被称之为现场总线。现场总线是多路串行数字双向通信协议, 其意图用于连接现场仪表和其他过程设备,例如分布式控制系统中的 监视和仿真单元。现场总线允许通过在先的过程控制环路方法进行增
强的数字通信,同时保持向与现场总线环路连接的过程设备供电的能 力,并满足固有的安全性要求。
基金会现场总线(Foundation Fiddbus)和过程现场总线(Profibus ) 是两种相当标准化的工业现场总线协议。美国设备协会标准 ISA-S50.02-1992及其1995年发表的草案2扩展定义了现场总线协议 的物理层。现场总线协议定义了 2个子协议。Hl现场总线网络以高达 31.25千比特每秒(Kbps)的速率传输数据,并给与网络连接的现场 设备供电。1992年9月核准的ISA标准部分2中的条款11定义了 Hl 物理层子协议。H2现场总线网络以高达2.5兆比特每秒(Mbps)的速 率传输数据,不向与网络连接的现场设备供电,其配备有冗余传输介 质。
现场总线提供了数字地传输大量过程数据的重要能力。因而,开 发能够使得现场总线的通信效率最大化的过程控制设备,是持续不断 的需求。

发明内容
本发明提供了对网络(例如,过程控制系统)中的设备发送和接 收的消息进行自动时间加戳的方法。设备生成与发送和接收消息相关 的选定事件相对应的事件脉冲。响应于这些事件脉冲,将设备中的当 前计时器值存储作为事件戳值。


图1是在通过通信介质网段在设备间进行数字通信的过程控制系统。
图2表示了用于在图1中过程控制系统的设备间进行通信的消息 格式。
图3是过程控制系统中设备的方框图。
图4是图3中设备的通信控制器的功能方框图。
图5是用于在图4的通信控制器中实现自动时间加戳的时钟发 生、网段计时器和寄存器的功能方框图。
图6是表示包含自动时间戳的时间分配(TD)数据链路协议数据 单元(DLPDU)的消息格式的图。
图7是表示带有自动时间戳的往返延迟查询(RQ) DLPDU的消 息格式的图。
图8是表示带有自动时间戳的往返延迟应答(RR) DLPDU的消 息格式的图。
具体实施例方式
过程控制系统概述
本发明涉及一种通信控制器,其用于过程控制系统中的现场仪表 和其他设备。通信控制器的用途在于实现消息的链路层处理和计时器 管理中的大部分,从而释放应用处理器或CPU以完成其他功能。为了 详尽描述的目的,将会描述使用基金会现场总线通信协议的系统环境 中的通信控制器,尽管,其通常也可应用于基于包的通信协议。
现场总线物理层定义了物理层协议数据单元(PhPDU)形式的通 信协议数据的发送和接收物理装置的电气特性。此外,现场总线物理 层指定了符号编码、消息组帧和错误检测的方法。ISA现场总线标准 定义了三种信号传输速率和两种连接模式。为了描述的目的,本发明 将在ISA S50.02标准部分2中的条款11定义的HI物理层环境中进行 描述。该条款包括了低功率选项下的31.25Kbps速率、电压模式和导 线介质。该选项允许与传输介质连接的设备从传输介质中获得其工作 功率。物理层能够满足针对危险环境的固有安全性要求。依照标准中 定义的电压和电流限制,协议可以在低等的双绞线电缆下工作,并支 持多路设备。 '
图1图示了典型的过程控制系统10,其中包括网段12、电源14 和5个设备链路活动调度器(LAS)设备20、链路主站(LM〉设 备22以及基本设备24、 26和28。在单一的导线对上,网段12最多
可以支持32个设备。通常,基于环路运行速率、功率和固有的安全性
要求,网段12有4到16个设备。
LAS设备20保持对网段12上所有设备间通信的中央调度。LAS 设备20通过向每个设备发送强制数据(CD)数据链路协议数据单元 (DLPDU),然后调度设备回传循环数据,改善整体通信可靠性。LAS 设备20用作网段12上的数据链路时间(DL-time)的本地源。DLPDU 是通过网段12传送的PhPDU消息的数据内容。
LM设备22被配置用于当LAS设备20发生故障或不工作时,接 管LAS设备20的职责。尽管图1中只图示了一个LM设备22,但是 在网段中可以存在多于一个的链路主站设备。这就允许了这样的情况
如果链路活动调度器和第一链路主站都发生故障,则第二主站链路可 以接管链路活动调度器。 一旦链路活动调度器被禁用,链路主站接管 链路活动调度器的功能。
每个设备都有被称之为V (TN)的唯一地址,其表示了本地节点 ID (该节点)。在图1的实例中,LAS设备20的地址是V (TN) =20, LM设备22的地址是V (TN) =22,基本设备24的地址是V (TN) =A5,基本设备26的地址是V (TN) =F3,基本设备28的地址是V (TN) =F5。
LAS设备20发送传输令牌(PT)和探测节点(PN)消息到网段 12上的所有设备。其他每个设备(LAS设备22和基本设备24、 26、 28)视情况向回发送应答令牌'(RT)和探测响应(PR)消息到LAS 设备20。
每个基本设备24、 26和28只需注意由LAS设备20发送的属于 自己的PT和PN消息。PT和PN消息有编码在DLPDU的第二字节中 的指定地址(DA)。 LAS设备20向网段12上的所有设备一次一个地 传输令牌(PT)或探测节点(PN)。
一旦基本设备24、 26或28接收到指定地址等于该设备唯一地址 (DA=V (TN))的PT消息,其将以RT消息响应返回到LAS设备 20。如果基本设备24、 26或28接收DA-V (TN)的PNDLPDU,其 将被要求以PR消息响应返回。
从LAS 20发送的PT和PN消息,以及传送到LAS 20的RT和 PR消息,在网段12上造成了特定基本设备24、 26和28不需要接收 和执行动作的若干消息。每个基本设备24、 26和28只需响应定址于 该特定设备的PT和PN消息。LAS 20发送的定址于其他设备的PT 和PN消息以及其他设备发送的定址于LAS设备20的RT和PR消息 经常导致的中断,占用了过多的处理时间去处理这些"麻烦的中断"。 在基本设备24、 26和28中,使用DLPDU过滤可以减少基本设备处 理的中断的次数,另一方面,LAS设备20必须处理网段12上的每个 消息。
网段12上的所有设备以曼彻斯特编码基带信号的形式发送数据 到网段12上。在曼彻斯特编码中,在位周期中间,从低电平到高电平 (lowtohigh)和从高电平到低电平(high to low)产生的转变分别表 示"0"和"1"。对于现场总线,规定的位时间是32微秒(usee), 转变发生在16微秒处。曼彻斯特编码规则扩展到包括两个额外的符 号,非数据加(N+)和非数据减(N-),其中在位周期期间不出现转 变,并且曼彻斯特编码基带信号保持高电平(N+)或低电平(N-)。
消息格式
图2图示了用于在网段12上发送消息的物理层协议数据单元 (PhPDU)的格式。PhPDU包括前同步信号、起始定界符(SD)、数 据链路协议数据单元(DLPDU)和结束定界符(ED)。前同步信号是 PhPDU消息的最初几位。现场总线规范允许l到8字节的前同步信号。 接收消息的设备通过前同步信号与输入的消息同步。正如在图2中所 示的,前同步信号第一字节的序列是10 10 10 10。
起始定界符(SD)紧跟前同步信号之后。每个消息有一个SD。 现场总线规范要求SD具有非字符数据(N+和N-),其总是以互补对 的形式出现在SD消息中。这种编码方案使得SD是唯一的,不可能 与消息的数据部分(DLPDU)混淆。图2中所示的SD序列是1 N+ N-1 ON- N+0。
DLPDU是长度可变的消息,它包括作为第一字节的帧控制(FC)
字节和作为最后两字节的帧校验序列(FCS)校验和。DLPDU的长度 是可变的,从最小三字节(在RT消息的情况下)直到逾限限制(jabber limit),例如,大约300字节。
结束定界符(ED)在DLPDU之后。它表示在网段12上发送的 任意PhPDU消息的最后字节。与SD相似,ED包括互补对形式的非 字符数据。这种编码方案使得ED是唯一的,不可能与DLPDU混淆。 图2所示的结束定界符的序列是1 N+N-N+N- 1 0 1。
图2还图示了载波检测信号。载波检测信号的用途是指示(a) 网段12上何时出现输入的PhPDU消息,或(b)何时设备正在网段 12上发送数据。
发送开始(SOT)发生在发送使能(TxE)激活时,艮卩,当PhPDU 消息的前同步信号开始出现在网段12上。
激活开始(SOA)发生在载波检测信号激活并稳定至少一个位时 间或两个位时间(大致16到32usec)之后。该时间取决于载波检测 激活相对于接收消息的设备的内部时钟的时间。这就使得设备的通信 控制器可以忽略在前同步信号前端容易出现的干扰噪声。额外的时间 用于与位边沿同步,从而消除网段12上由于误认为激活而突发短噪声 脉冲的可能。对于发送的消息, 一旦发送使能激活(即,PhPDU的前 同步信号出现在网段12上),SOA就发生了。
消息开始(SOM)发生在对接收消息检测到的FC字节第一位的 开始处。
SOM-xmt是消息发送开始,其发生在对发送消息检测到的FC字 节第一位的开始处。
SOMf是所接收的过滤后DLPDU的SOM,其发生在设备中的通 信控制器检测到足够的信息,以致可以确定输入的消息将被过滤的时 候。
在接收消息时,消息结束(EOM)发生在ED最后位的结尾。发 送消息时,发送结束(EOT)发生在ED最后位的结尾。
激活结束(EOA)发生在载波检测无效时。对于发送和接收 DLPDU, EOA都发生。
设备体系结构
图3图示了基本设备24通信部分的框图,其是设备20-28中每一 个体系结构的代表。基本设备24包括中央处理单元(CPU) 30、随机 存取存储器(RAM) 32、闪速存储器34、通信控制器36和介质连接 单元(MAU) 38。
图3中所示的实施例中,CPU 30是诸如Motorola 68LC302、 Motorola Mcore 2075 、 Motorola PowerPC 850、 Atmel Thumb processor AT91M40800和其他型号的微处理器。CPU 30是8位或更高的处理器。
图3所示的实施例中,通信控制器36是专用集成电路(ASIC) 芯片,用作MAU 38和CPU 30之间的接口。其从/向与网段12连接 的外部模拟线路接收/发送曼彻斯特编码的数据。在从MAU 38接收串 行数据之后,通信控制器36解码数据,把数据组成字节,去除前同步 信号、SD、 ED (以及视情况,去除FCS字节),并为链路层提供消息 数据以供读取。为了数据发送,通信控制器36从链路层接收DLPDU 数据的字节,并加入前同步信号、SD、可选地生成FCS并加入ED。 然后,通信控制器36组成串行的曼彻斯特编码数据,并将其传送到 MAU 38用于在网段12上发送。
通信控制器36和MAU 38之间的通信是通过4个信号实现的 RxS、 RxA、 TxS和TxE。 RxS是接收到的曼彻斯特编码串行数据, RxA是用于接收数据的载波检测信号,TxS是发送的编码串行数据, TxE是发送使能信号。
在本发明的另一实施例中,通信控制器36可以与CPU 30 —起形 成在普通的集成电路上。此外,在一些实施例中,RAM 32和闪速存 储器34可以与CPU30组合在一起。在LAS设备20的情况下,CPU 30、 RAM 32和闪速存储器34就可以是过程控制系统10中主计算机 系统的一部分。
MAU38提供了与网段12的网络连接。MAU38可以是集成电路, 或是分立组件也可用于构成MAU38。'
通信控制器36
图4是通信控制器36的功能框图。在该实施例中,通信控制器 36包括反跳电路42、数字锁相环(PLL) 44、前端状态机46、接收 消息过滤器48、接收先进先出(FIFO)存储器50、发送状态机52、 发送先进先出存储器54、接收/发送事件管理器58、寄存器60、时钟 生成电路62、振荡器64、计时器68和CPU接口电路70。
当MAU 38检测到输入的消息,载波检测信号就提供给通信控制 器36的RxA输入端,输入的异步曼彻斯特数据提供到RxS输入端。 RxA和RxS的输入提供给前端状态机46。数字PLL44从输入串行曼 彻斯特编码数据中恢复并再生时钟。再生的时钟用于向前端状态机46 提供时钟。
前端状态机46检测输入的串行位流RxS,去除前同步信号、SD 和ED,将DLPDU存储到FIFO存储器50。前端状态机46和接收消 息过滤器48 —同被配置用于滤除定址于其他设备的特定帧控制以及 探测节点(PN)和传输令牌(PT)消息。前端状态机46明了写入接 收FIFO存储器50的字节数。在每个消息的结尾自动验证FCS,并可 选地存入接收FIFO存储器50。
前端状态机46也提供表示其检湖i的特定事件的信号,其中包括 SOM、 SOMf、 EOM、 SOA和EOA事件脉冲。
当RxA线路激活时,前端状态机46被激活。然后,前端状态机 46与前同步信号字段的边沿同步,解码RxS信号中的曼彻斯特编码数 据。SOA事件表示前端状态机46已经启动。
一旦检测到前同步信号,前端状态机46就等待起始定界符(SD) 序列。当检测到SD之后,前端状态机46将串行数据流转换成8位位 组,并以8位字节的形式写入到接收FIFO存储器50中。前端状态机 46继续向接收FIFO存储器50中写入新的8位位组数据,直至检测到 结束定界符(ED),或是直至写满接收FIFO存储器50为止。
当检测到ED,前端状态机46就等待由EOA事件表示的RxA线 路无效。
随着RxA线路无效,前端状态机46返回到初始状态,其保持初
始状态直到现场总线网段12上下一个激活到来为止(即,直至再次在
RxA提供载波检测信号)。
通过使用过滤电路,基本设备减少在对该设备不重要的消息上载
入的IRQ。相反,配置作为LAS的设备必须接收网段上的所有消息, 因而必须禁用过滤。当禁用过滤时,所有接收消息将被存储在接收 FIFO存储器50中,并将传递到达寄存器60,然后到CPU30。 SOMf 是用于接收过滤DLPDU的消息开始信号,其发生在当前端状态机46 确定接收的消息已经检测到足够的信息,以致可以确定输入的消息将 被过滤的时候。
随着过滤的使能,被过滤的消息没有存储在接收FIFO存储器50 中。对于被过滤的消息,SOMf将不会生成,因而没有事件或IRQ发生。
被过滤消息的示例是应答令牌(RT)、空闲状态、请求间隔(RI) 和探测响应(PR) DLPDU消息,这些是依据帧控制(FC)字节而识 别的,并在使能过滤时总是被拒绝。'如果消息中的目的地址与设备的 地址相匹配,传输令牌(PT)和探测节点(PN)消息将被接受。如果 目的地址不匹配,那么PT和PN消息被拒绝。
基于FC字节并根据目的地址来对消息类型进行过滤的能力,通 过限制CPU 30必须处理的中断请求(IRQs)数量的方式,减少载入 的软件中断。
前端状态机46和接收FIFO存储器50用于解析来自MAU 38的 串行数据帧。CPU 30从接收FIFO存储器50中读取数据,并将数据 放置在其本地存储空间中,以解码接收到的DLPDU。
接收FIFO存储器50是8位宽的63字节。接收FIFO存储器50 存储DLPDU的所有字节,直至三条完整的接收消息(直到达到总共 63字节)为止。前端状态机46解码过滤后RxS信号中的串行数据流, 并将其转换成8位并行格式化的字节。在字节格式化之后,前端状态 机46生成写脉冲,将编码的数据存入由写指针所指定的位置。写操作 完成之后,写指针递增,以存入下一DLPDU字节。
CPU 30利用读指针与接收FIFO存储器50相接口连接。所有从
寄存器60 (其中包括实际的DLPDU数据)的接收FIFO寄存器中的 读取,将接收FIFO存储器50中的8位数据立即放置到数据总线上, 以供CPU 30读取。在读操作完成之后,读指针递增。继续进行上述 操作,直至接收FIFO存储器50为空。
为了避免在接收FIFO存储器50中发生溢出的情况,在寄存器60 中有一寄存器,其可以在接^FIFO存储器50接近满的情况时,允许 生成IRQ。生成IRQ的阀值是可以配置的。
发送状态机52从发送FIFO存储器54读取要发送的DLPDU数 据。前同步信号、SD和ED是自动插入的。为了启动发送状态机52, interPDU触发,或可选地下一调度事件触发需要被激活,以开始发送 操作。发送状态机52明了所发送字节数。如果出现下溢或是发送计数 无效,将显示错误状态。可选地,自动发送FCS作为DLPDU最后两 个字节。
发送状态机52编码通过接口电路70提供的曼彻斯特串行数据, 该数据通过TxS线路提供给MAU38,以便传送到网段12上。发送状 态机52还在发送第一前同步信号第一位的时刻断言发送使能(TxE) 线路,直到ED的最后一位出现。发送状态机52还在断言TxE线路 时,生成发送开始(SOT)事件信号,并在TxE线路回到无效状态时, 生成发送结束(EOT)事件信号。
发送FIFO存储器54存储所有发送消息要求的DLPDU字节,直 到总共63字节。设置可配置的阀值,fe得当发送FIFO存储器54几 乎为空时,发送IRQ告知CPU30。这样,如果需要发送的超过63字 节,那么CPU30将被告知,以便加入更多的数据到发送FIFO存储器 54中。持续上述操作,直至写入所有的DLPDU字节为止。CPU 30 使用写指针向发送FIFO存储器54中写入,而发送状态机52使用读 指针从发送FIFO存储器54中读取字节。
通信控制器36基于事件工作,必须能够处理多个事件的发生。 事件的示例包括SOM、 EOM、或用于接收消息的EOA、或用于发送 消息的EOT。接收/发送事件管理器58管理针对总共多达三条接收消 息和一条发送消息而发生的所有事件。
如图4中所示,接收/发送事件管理器58包括标识为rcvmsgl、 rcvmsg2、 rcvmsg3的三个接收消息对象,和标识为xmtmsg的一个发 送消息对象。此外,接收/发送事件管理器58包括消息队列管理器 (MsgQmngr)80、事件管理器(EventMngr)82、发送管理器(xmtmngr) 84和事件复用器86。
接收FIFO存储器50能存储多达三条完整的接收消息的DLPDU 字节。这三条消息中每一条都有相应的对象rcvmsgl、 rcvmsg2和 rcvmsg3。每个对象包含针对其相应接收消息而发生的所有IRQs、消 息错误以及时间戳的状态。该信息构成了消息的事件数据。
针对发送消息而发生的所有IRQs、消息错误以及时间戳的状态存 储在xmtmsg对象中。存储的信息构成了发送消息的事件数据。
MsgQmngr 80控制三个接收消息对象的选择和使能。 一次只有一 个接收消息对象可以处于激活状态。MsgQmngr 80允许事件与激活的 接收消息对象相关联。当在CPU 30确认收到其他三条消息之前正接 收第四条消息的情况下,MsgQmngr 80禁止接收更多的消息,直到已 经读取或确认收到事件数据。
EventMngr 82管理事件发生顺序。当事件发生时,事件管理器82 分配给每个事件一个发生顺序标识(OOO一ID)。这允许CPU30可以 随着这些事件发生每次一个地读取它们。当事件发生时,CPU30必须 确认收到每一个事件。当确认收到第一个事件之后,后面的事件准备 就绪为CPU30所读取。
Xmtmnge 84监控InterPDU触发(InterPDU—trig)和下一调度事 件触发,并启动发送触发命令(Xmt一Trig_Cmd)给发送状态机52, 从而开始发送下一条消息。
通信控制器36包括寄存器60。 CPU 30可以向/从这些指定为 Reg00-Reg3F的寄存器中写入/读取。中断(IRQ)也是通过寄存器60 处理的。
时钟生成电路62接收外部时钟,并且或是使用该时钟或是使用 由其内部振荡器64发出的时钟信号,,生成通信控制器36所有必需的 时钟信号。
时钟生成电路62优选地能够调节其节点计时器和其八位位组计
时器时钟速率。这允许通信控制器36同步其节点时间与链路地址调度 器(LAS 20)的关系。八位位组时间用于内部消息定时,而节点时间 用于共享网段12上的公共时间定义(sense)。
计时器68被分成两组,表示不同的时间定义。第一组被称之为 网段计时器的计时器,是工作在可变时钟速率下的,可变时钟速率是 在CPU 30的软件控制下由时钟生成电路62产生的。第二组被称之为 消息计时器的计时器,是工作在固定时钟速率下的。
在通信控制器36中含有2个网段计时器。第一网段计时器是时 钟周期为31.25 li sec (32KHz)的节点计时器。节点计时器用于实现 下一功能模块执行时间、链路调度时间V (LST)和数据链路时间 (DL—Time)。
第二网段计时器是8位位组计对器,其时钟周期为2usec (500KHz)。 8位位组计时器用于下一调度事件触发(其与发送状态 计52接口连接,以在指定的时间发送消息)。当调整时钟速率时,节 点计时器和8位位组计时器将彼此跟踪到相同的速率。这是因为,驱 动节点计时器和8位位组计时器的时钟信号从共同的可变时钟获得。
消息计时器的启动和停止是根据现场总线的消息事件(发送和接 收)。消息计时器包括不活动计时器、interPDU延迟计时器、接收应 答计时器、发送应答计时器和授权令牌恢复计时器(delegated token recovery timer )0
不活动计时器是递减计数器。其用于测量在两个PHPDU之间的 空闲时间。不活动计时器对过滤的和未过滤的接收消息,以及网段12 上所有发送消息起作用。当命令启动后,不活动计时器每16usec递 减。不活动计时器的起始点根据寄存器60之一中预先载入的可配置设 置点来确定。通过或是与接收消息或是与发送消息相关的事件,可以 取消或停止不活动计时器的递减操作。计时器一旦达到0或期满,将 产生IRQ。不活动计时器保持在0状态直至IRQ被确认收到。如果IRQ 保持高电平,发生的其他消息事件不会影响不活动计时器,直至确认 收到该IRQ。InterPDU延迟计时器是递增计数器。其用于与V (MID)阀值寄 存器结合,从而实现现场总线的V (MID)最小interPDU延迟,该延 迟确保在发送或接收消息之间的非传输状态的最小持续时间(或间隙 时间)。过滤的和未过滤的接收消息,以及网段12上所有发送消息都 能影响interPDU计时器。当没有现场总线动作时,interPDU计时器将 持续递增。 一旦计数值等于或超出存储在寄存器60之一中预定值,将 激活interPDU触发信号。该信号用于确定已经满足interPDU延迟时 间。该信号还与xmtmngr84接口连接,以给出可以开始发送DLPDU 的命令。
接收应答计时器是递减计数器。其用于允许预定设备为快速响应 强制数据(CD) DLPDU而进行监控。其也用于设备在上线时监控自 身的地址。当命令启动时,接收应答计时器每16Psec递减。接收应 答计时器的起始点根据寄存器60之一中预先载入的可配置的16位设 置点来确定。通过或是SOM事件或是SOT事件,取消或停止接收应 答计时器的递减操作。如果接收应答计时器达到0或期满,将产生 IRQ。接收应答计时器保持在0状态,直到IRQ被确认收到。如果IRQ 保持高电平,发生的其他消息事件不会影响接收应答计时器,直到确 认收到该IRQ。
发送应答计时器是递减计数器。在发送若干DLPDU (例如强制 数据、传输令牌)中的一个后,发送应答计时器允许设备为快速响应 而进行监控。当命令启动时,发送应答计时器每16ysec递减。发送 应答计时器的起始点根据寄存器60之一中预先载入的可配置的设置 点来确定。通过除了探测节点(PN)的任意一个发送DLPDU的或是 SOM事件或是SOT事件,取消或停止发送应答计时器的递减操作。 如果发送应答计时器达到O或期满,将产生IRQ。发送应答计时器保 持在0状态,直到IRQ被确认收到。如果IRQ保持高电平,发生的其 他消息事件不会影响发送应答计时器,直到确认收到该IRQ。
授权令牌恢复计时器是递减计数器。其用于监控从其他设备接收 授权令牌的空闲时间。授权令牌恢复计时器对过滤的和未过滤的接收 消息,以及网段12上所有发送消息起作用。当命令启动时,授权令牌
恢复计时器每16usec递减。授权令牌恢复计时器的起始点根据寄存 器60之一中预先载入的可配置的设置点来确定。通过或是与接收消息
或是与发送消息相关的事件,取消或停止授权令牌恢复计时器的递减
操作。如果授权令牌恢复计时器达到O或期满,将产生IRQ。授权令 牌恢复计时器保持在0状态,直到确认收到IRQ。如果IRQ保持高电 平,发生的其他消息事件不会影响授权令牌恢复计时器,直到确认收 到该IRQ。
自动时间加戳
通信控制器36执行事件的自动时间加戳,以保持精确的时间定 义,并应用于通信控制器36、 CPU30和其他与网段12相连的设备。 如图1中所示,过程控制系统10中含有经常在设备20-28间发送和接 收的信息,设备20-28与网段12有效相连。如此前讨论,在物理层中, 每条消息包括物理层协议数据单元(PhPDU)。存在与接收和发送 PhPDU相关的具体事件,其需要时间信息。在本发明中,通过在具体 事件发生时获取网段计时器的快照,在通信控制器36内部进行自动时 间加戳。
与接收PhPDU相关的是激活开始(SOA)事件,其发生于前端 状态机46检测到接收PhPDU激活之时。另一与接收PhPDU相关的 是消息结束(EOM)事件,其发生在结束定界符(ED)的末尾。EOM 事件生成中断请求(IRQ)给CPU 30中运行的软件,以表示接收消息 发生了 。接收/发送事件管理器58负责通过寄存器60为CPU 30提供 事件IRQ。
与发送PhPDU相关的是发送结束(EOT)事件,其发生在完成 将发送PhPDU发送到网络的时候,例如,在ED的结尾。EOT事件 使得接收/发送事件管理器58生成IRQ给CPU 30中的软件,以表示 发送消息结束。
对于CPU 30中的软件来说,了解针对发送和接收消息而发生的 每个事件的时间是重要的。 一个复杂的因素是,软件使用两种时间定 义DL-Time (数据链路时间)和8位位组时间,都是单调递增计数
的。这两个时间定义需要不同的时钟速率作为时基。DL-Time是基于 接近32KHz (31.25 ns)的可调时钟速率,而8位位组时间是基于接 近500KHz (2 us)的可调时钟速率。
尽管当接收到EOM事件或EOT事件的IRQ之后,CPU 30中的 软件可以确定事件的时间值,但是存在软件等待时间,其表现为从IRQ 生成的时间到软件实际上读取DL-Time或8位位组时间的时间。这根 据IRQ发生时软件当前执行的任务而变化。此外,由于软件需要两种 时基的时间值,还存在软件所需的用于从计时器中的一个读取时间, 并将其转换为其他时基的系统开销。
其中存在的另一个问题是,没有针对SOA事件的IRQ。 SOA的 接收是异步事件。因为网段12上的噪音突发可以导致检测到SOA事 件,所以使用SOA的IRQ是存在问题的。由于响应有噪音的网段12 导致的不必要的SOAIRQ, CPU30中的软件很容易过载。
由于前同步信号的字节数是未知的,所以对于软件计算SOA实 际发生的时间也是存在问题的。在消息开始(SOM)事件生成IRQ, 该消息开始(SOM)事件是检测到接收DLPDU开始的时间点。但是, 前同步信号是从最小1字节到最大8字节,这使得该值的范围从256 微秒到2048微秒。
控制器36提供了在DL-Time和8位位组时间两种时间下,对接 收和发送PhPDU事件精确、自动地进行时间加戳所需的硬件。
图5图示了使用两个网段计时器(节点计时器68A和8位位组计 时器68B)进行自动时间加戳的功能框图。图5中图示的是可变时钟 生成电路62、时钟频率调节寄存器60A、可变链路时间偏移寄存器 60B、数据链路时间偏移寄存器60C、下一功能模块执行时间寄存器 60D、下一调度事件寄存器60E、时间剩余寄存器60F、快照寄存器 60G-60J、加法器90和92、减法器94、以及比较器96和98。
节点计时器68A和8位位组计时器68B是网段计时器,其用于提 供两种不同的时间定义。在时钟频率调节寄存器60A的控制下,可变 时钟生成电路62为节点计时器68A和8位位组计时器68B提供时钟 信号。为了同步设备(在该情况下,是基本设备24)使用的时钟速率
和LAS 20的时钟速率,控制这两个时钟信号的频率。
节点计时器68A是以32KHZ的时钟信号工作的单调递增计时器。
节点计时器68A的计数用于生成节点时间C (NT)、数据链路时间 (DL—Time)和链路调度时间V (LST)。节点计时器68A的另一关键
应用是生成下一功能模块执行时间中断。
8位位组计时器68B是以500KHZ的时钟信号并基于8位位组工
作的单调递增计时器。8位位组计时器68B的关键应用之一是创建下
一调度事件触发。
可变链路时间偏移寄存器60B提供V (LSTO)值,其表示具体
设备(在本例中是设备24)相对于LAS 20的本地链路调度时间V (LST)的带符号偏移(或差)。当从LAS 20中接收到TD DLPDU时,
就确定了 LAS 20的时间基准。将可变链路时间偏移寄存器60B的值
加到节点计时器68A的计数值,以产生设备24的本地链路调度时间
V (LST)。
数据链路时间偏移寄存器60C包含数据链路时间偏移V(DLTO), 设备24通过该V (DLTO)校正在其与LAS 20之间的DL-Time存在 的任何偏差。LAS 20通过TD DLPDU发送可变V (DLTO)到所有设 备。加法器92将V (DLTO)的值与V (LST)的值相加生成DL-Time, 相加的结果为设备24生成本地DL-Time。下一功能模块执行时间寄存 器60D允许一可配置的方法,该方法在将要发送下一功能模块时,启 动中断给CPU30,这通过比较器96将V(LST)与存储在寄存器60D
中的设置点进行比较来完成。
下一调度事件寄存器60E允许一可配置的方法,其用于在预定的 时间发送DLPDU,该预定的时间是根据8位位组计时器68B中维护 的8位位组时间确定。通过在减法器94中对下一调度事件寄存器60E 和8位位组时间执行减法,实现触发机制。在将下一调度事件设置点 写入下一调度事件寄存器60E中后,可以执行发送请求。 一旦寄存器 60E中的值与8位位组计时器68B中的8位位组时间的差等于或小于 0,就生成下一调度事件触发,该信号提供给接收/发送事件管理器58 中的xmtmngr84,其启动了发送DLPDU到网段12上的命令。时间剩
余寄存器60F允许CPU 30确定在下一调度事件触发开始之前剩余的时间。
在由软件触发时,快照寄存器60G-60J存储节点时间C (NT)、 8 位位组时间、数据链路时间(DL-Time)和本地链路调度时间V(LST)。 当产生快照脉冲时,同时获取这四个时间值。计时器68A和68B将继 续计数,但是感兴趣的事件的快照时间值将存储在寄存器60G-60J中。
用于接收PhPDU的自动时间加戳特征如下工作。首先,反跳电 路42和数字锁相环44(见图4)读出现场总线足够长持续时间的激活, 以便使前端状态机46开始采样输入的曼彻斯特格式化的数据。为了采 样和解码曼彻斯特数据,锁相环44锁定在PhPDU前同步信号中的位 边界上。在命令前端状态机46开始解码数据的时刻,生成SOA事件 脉冲。
SOA事件脉冲用作快照脉冲,其捕捉8位位组时间和DL-Time 的当前值到它们各自的SOA时间戳寄存器。这些寄存器包含在接收/ 发送事件管理器58中的rcvmsgl 、 rcvmsg2或rcvmsg3对象之中。
在接收完DLPDU的所有字节时,前端状态机46检测结束定界符 ED的唯一序列。在ED的结尾,生成EOM事件脉冲,并激活EOM IRQ。
EOM事件脉冲产生快照脉冲,以获取当前的DL-Time和8位位 组时间。在其各自的EOM时间戳寄存器中,存储时间值,这些寄存 器位于接收消息对象rcvmsgl 、 rcvmsg2或rcvmsg3中。
通过寄存器60,向CPU30提供EOMIRQ。 EOMIRQ中断了在 CPU30中运行的软件。此时,根据要求,软件在时间戳存储寄存器中 或是选择DL-Time时基或是选择8位位组时间时基。
生成发送PhPDU自动时间戳的过程如下。CPU30中的软件将要 被发送的DLPDU载入发送FIFO存储器54,软件还向寄存器中载入 表示将要发送的DLPDU字节数的计数值N。然后,软件启动DLPDU 的发送请求。 ,
一旦网段12上的条件适合进行发送,发送状态机52就开始发送 PdPDU序列前同步信号字节、SD字节、N字节的DLPDU和最后 的ED字节。在完成ED的发送时,产生EOT事件脉冲和EOTIRQ。
EOT事件脉冲作为快照触发,将8位位组时间和数据链路时间
(DL-Time)的当前值存储到各自的EOT时间戳寄存器。这些寄存器 位于接收/发送事件管理器58的xmtmsg对象中。
EOTIRQ中断软件,然后,软件根据需求从适当的时间戳存储寄 存器中选择要读取的数据。
PhPDU事件的自动时间加戳去除了软件等待时间,软件等待时间 是必须首先响应EOM IRQ或EOT IRQ,然后使软件确定当前时间时 所需要的时间。此外,自动时间戳的特点允许生成两种时基的SOA 时间戳,其获取异步事件的当前时间。
通过在通信控制器36中进行自动时间加戳,提高了时间戳数值 的精确性。由于通信控制器36直接处理PhPDU,所以它可以准确地 了解相关PhPDU事件的发生时间,并及时进行动作以获取与这些事 件相对应的当前网段时间。
通信控制器36提供了另一自动时间加戳特征,其包括了时间戳 数据的自动发送。当发送时,存在三种类型的消息要求时间戳数据包 含在DLPDU数据之中。通信控制'器36能够自动为这三种特定的 DLPDU插入和发送时间戳,这三种特定的DLPDU是时间分配(TD)、 往返延迟査询(RQ)和往返延迟应答(RR) DLPDU。
由LAS 20发送TD DLPDU,以使网段12上的所有其他设备能够 协调并同步这些设备DL-Time定义的进展速率。图6中示出的TD DLPDU要求在发送结束之前,发送7字节的DL-Time时间戳。在TD DLPDU出现在本地链路时,获得该时间戳,其位于帧控制(FC)字 节的开始。
RQDLPDU从一个设备发送到另一个设备,用于启动往返延迟的 测量和计算,对于设备间的双向通信,往返延迟是固有的。图7中所 示的是RQ DLPDU的结构和自动时间戳的源。RQ DLPDU要求发送 在DLPDU出现在本地链路时获取的节点时间C (NT)的24位时间 戳。该24位时间戳的格式是节点时间(15: 0)加上"00000000"。其 出现在起始定界符(SD)的结尾,并作为消息开始(SOM—xmt)事件 脉冲。
如图7中所示,RQ DLPDU包含8字节的数据加上2字节的FCS。 RQ DLPDU中的5-7字节表示24位的SOM节点时间。
RR DLPDU用于完成往返延迟的测量和计算,对于网段12上两 个独立的设备间的双向通信,往返延迟是固有的。RRDLPDU总是跟 随在RQ DLPDU之后,二者彼此问答。图8中所示的RRDLPDU要 求发送在DLPDU出现在本地链路时获取的节点时间的24位时间戳。 该24位存储在发送FIFO存储器54的12-14字节中,其格式是节点时 间(15: 0)加上"00000000"。
通信控制器36自动检测将要在网段12上发送的DLPDU。在 DLPDU出现在网段12上时,存储将要发送的时间戳值。通信控制器 将存储的时间戳值适当地载入并解码到发送FIFO存储器54。
当软件将TD、 RQ或RR DLPDU载入到发送FIFO存储器54中 时,开始TD、 RQ或RR DLPDU的自动时间加戳。软件还将要发送 的DLPDU的字节数的计数值载入到寄存器,该值根据DLPDU的类 型而变。然后,软件启动DLPDU的发送请求。
一旦网段12空闲了适当的时间量,发送状态机52就开始发送。 当发送开始时,发送状态机52进行发送1到8个字节的前同步信号、 1字节的起始定界符(SD)、N字节的DLPDU加2字节的帧校验控制、 以及最后1字节的结束定界符(ED)。在DLPDU数据发送期间,发 送状态机52从发送FIFO存储器54中读取8位数据。在发送每个字 节之前,都必须通过并行-串行转换器转换为串行数据。
通信控制器36监视发送状态机的当前状态,以及发送FIFO 存储器54中的数据(通过并行-串行转换器移出以便发送)。在将要发 送DLPDU的第一字节时,发送状态机52产生发送消息开始 (SOM_xmt)事件脉冲。
如图6中所示,DLPDU的第一字节总是帧控制字节(FC)。 FC 指明正在发送的DLPDU的类型。根据正在发送的DLPDU的类型, 可以设置TD—flag、 RQ_flag或RR—flag。每个发送DLPDU只有一个 标志可以被设置。如果正发送的DLPDU与TD、RQ或RR帧控制(FC) 字节不匹配,那么上述标志没有一个被设置。帧控制数据在从设置标志开始的短期间内,出现在网段12上。
此时,发送状态机52产生发送消息开始(SOM_xmt)(见图2)事件 脉冲,使得可以获取节点时间和DL-Time的快照。当数据出现在网段 12上时,应用SOM—xmt脉冲,给出了发送设备的节点时间和DL-Time 非常精确的值。如果设置了 TD—flag,那么就生成DL-Time的48位时 间戳,并存储在临时寄存器中。如果设置了 RQ—flag或是设置了 RR—flag,那么就存储节点时间的24位格式化时间戳在另一临时寄存 器。
在存储时间戳值之后,生成时钟脉冲,以发送存储的时间戳数据 到发送FIFO存储器54。在需要在网段12上发送时间戳数据之前,就 进行上述工作了。
TD、 RQ和RR DLPDU中的每个都要求将时间戳值发送到发送 FIFO存储器54中的不同的存储位置上。上述要求可以通过使用所设 置的TD、 RQ或RR标志以将恰当的时间戳数据复用到发送FIFO存 储器54中的适当存储位置来实现。无论如何,新的时间戳值将覆盖软 件最初写入发送FIFO存储器54中该位置的值。
最后,当DLPDU已经发送了时,发送结束IRQ中断CPU 30中 的软件。然而,软件不参与产生时间戳。更确切的说,通信控制器36 自动生成时间戳数据。
通信控制器36中的自动时间加戳去除了对时间戳数据的所有计 算和解码所需的软件开销。在通信控制器36的硬件中完成自动时间戳 功能还极大地提高了时间戳值的精确性。由于通信控制器精确的了解 DLPDU的第一字节的开始出现在本地链路中的时间,所以它可以在 适当的时刻获取时间戳。
尽管本发明参考优选的实施例进行了描述,但是本领域的技术人 员应认识到,在不脱离本发明主旨和范围的情况下,形式和内容是可 以改变的。
权利要求
1. 一种设备,其用于在通信介质上通信,所述设备包括介质连接单元(MAU),用于在通信介质上接收和发送消息;中央处理单元(CPU),用于处理包含在接收消息中的数据,并创建要包含在待发送消息中的数据;和通信控制器,用于MAU和CPU之间的接口,通信控制器生成与接收和发送消息相关的事件相对应的事件脉冲,并响应事件脉冲,自动存储时间戳值。
2. 根据权利要求1所述的设备,其中所述通信控制器在正在发送的消息中插入存储的时间戳值。
3. 根据权利要求2所述的设备,其中事件脉冲包括消息开始事件脉冲,并且插入在消息中的存储的时间戳值表示在消息开始事件脉 沖发生时设备的本地时间。
4. 根据权利要求2所述的设备,其中所述通信控制器检测正在发送的消息的类型,并根据消息的类型,在消息中选择插入时间戳值的位置。
5. 根据权利要求1所述的设备,其中事件脉冲包括当接收消息结束时,通信控制器产生的消息结束事件脉冲。
6. 根据权利要求1所述的设备,其中事件脉冲包括当发送消息结束时,通信控制器产生的发送结束事件脉冲。
7. 根据权利要求1所述的设备,其中事件脉冲包括当开始解码接收消息时,通信控制器产生的激活开始事件脉冲。
8. 根据权利要求1所述的设备,其中所述通信控制器包括-第一计时器,用于提供第一时间值;和第二计时器,用于提供分辨率比第一时间值高的第二时间值。
9. 根据权利要求8所述的设备,其中通信控制器响应事件脉 冲,存储从第一和第二计时器获取的时间戳值。
10. 根据权利要求8所述的设备,其中第一计时器是节点计时 器,其提供节点时间作为第一时间值。
11. 根据权利要求io所述的设备,其中通信控制器基于节点时间,获取数据链路时间和链路调度时间。
12. 根据权利要求11所述的设备,其中通信控制器响应事件脉 冲,在寄存器中存储节点时间、数据链路时间和链路调度时间作为时 间戳值。
13. 根据权利要求8所述的设备,其中第二计时器是8位位组计 时器,其产生8位位组时间作为第二时间值。
14. 根据权利要求1所述的设备,其中响应事件脉冲之一,所述 通信控制器同时产生多个时间值,并存储每个时间值作为时间戳值。
15. —种方法,其用于为网络上设备间交换的消息进行时间加 戳,所述方法包括在网络上发送和接收消息; 生成以第一时钟速率变化的第一计时器值; 产生与发送和接收消息相关的选定事件相对应的事件脉冲;和 当产生其中一个事件脉冲时,存储表示第一计时器值的第一时间 戳值。
16. 根据权利要求15所述的方法,还包括-生成以第二时钟速率变化的第二计时器值,第二时钟速率高于第一时钟速率;和当产生其中一个事件脉冲时,存储表示第二计时器值的第二时间 戳值。
17. 根据权利要求16所述的方法,其中第一计时器值表示网络 上设备的时间定义,第二计时器值表示设备的间隔时间。
18. 根据权利要求17所述的方法,其中第一和第二时钟速率是 可变且同步的。
19. 根据权利要求15所述的方法,还包括 在正在发送的消息中插入第一时间戳值。
20. 根据权利要求19所述的方法,其中事件脉冲包括消息开始 事件脉冲,并且插入在消息中的第一时间戳值表示在消息开始事件脉 冲发生时设备的本地时间。
21. 根据权利要求19所述的方法,还包括 检测正在发送的消息的类型;和根据消息的类型,在消息中选择插入时间戳值的位置。
22. 根据权利要求15所述的设备,其中事件脉冲包括在接收消息结束时产生的消息结束事件脉冲。
23. 根据权利要求15所述的设备,其中事件脉冲包括在发送消 息结束时产生的发送结束事件脉冲。
24. 根据权利要求15所述的设备,其中事件脉冲包括在开始解 码接收消息时产生的激活开始事件脉冲。
25. —种方法,其用于为过程控制网络上的设备所发送和接收的 消息进行时间加戳,所述方法包括在每个设备中,同步本地内部时间定义与网络网段上的节点时间 定义;在与消息相关的事件发生时,产生事件脉冲;和 在事件脉冲发生时,发送与本地和节点时间定义相对应的时间戳 值到快照寄存器。
26. 根据权利要求25所述的方法,其中事件脉冲包括消息结束 (EOM)脉冲、发送结束(EOT)脉冲、激活开始(SOA)脉冲以及发送开始(SOT)脉沖。
全文摘要
过程控制系统中的设备通过通信介质网段上的数据消息进行通信。每个设备包括通信控制器,通信控制器对与接收和发送消息相关的事件进行自动时间加戳。
文档编号G06F15/16GK101390072SQ200580032849
公开日2009年3月18日 申请日期2005年7月15日 优先权日2004年7月30日
发明者布赖恩·A·弗朗查克, 罗杰·R·本森 申请人:费希尔-罗斯蒙德系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1