用于调度消息和非调度消息协调发送的通信控制器的制作方法

文档序号:6656922阅读:244来源:国知局
专利名称:用于调度消息和非调度消息协调发送的通信控制器的制作方法
技术领域
本发明涉及一种通信控制器,其用于现场仪表和其他过程控制系 统设备。具体地,本发明是用于通信控制器中低等待时间数据包接收 和处理的系统与方法。
背景技术
在典型的工业车间中,使用分布式控制系统(DCS)控制完成车 间内的众多工业过程。典型的是,车间内有集中控制室,控制室内有 计算机系统,其中包含用户输入输出(1/0)、磁盘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是工业标准的公开系统。然而,它相对缓慢。行业中的其 他公司已经开发出更快的专有数字传输方案,但是,这些方案一般不 会被竞争对手使用,或者说竞争者不fe获得。近来,美国设备协会(ISA)定义了更新的控制协议。新的控制 协议通常被称之为现场总线。现场总线是多路串行数字双向通信协议, 其意图用于连接现场仪表和其他过程设备,例如分布式控制系统中的 监视和仿真单元。现场总线允许通过在先的过程控制环路方法进行增 强的数字通信,同时保持向与现场总线环路连接的过程设备供电的能 力,并满足固有的安全性要求。基金会现场总线(Foundation Fieldbus )和过程现场总线(Profibus ) 是两种相当标准化的工业现场总线协议。美国设备协会标准 ISA-S50.02-1992及其1995年发表的草案2扩展定义了现场总线协议 的物理层。现场总线协议定义了 2个子协议。Hl现场总线网络以高达 31.25千比特每秒(Kbps)的速率传输数据,并给与网络连接的现场 设备供电。1992年9月核准的ISA标准部分2中的条款11定义了 HI 物理层子协议。H2现场总线网络以高达2.5兆比特每秒(Mbps)的速 率传输数据,不向与网络连接的现场设备供电,其配备有冗余传输介 质。现场总线提供了数字地传输大量过程数据的重要能力。因而,开 发能够使得现场总线的通信效率最大化的过程控制设备,是持续不断 的需求。发明内容本发明涉及一种通信控制器,用于网络上的设备,其可以定时发 送调度消息,而且还能发送非调度消息,非调度消息不要求在精确的 时间及时发送。通信控制器维护提供当前时间的内部计时器。对于每 条调度消息,在寄存器中载入下一调度事件时间。每次计时器递增时, 当前时间和下一调度事件时间相减,从而时间剩余值就会更新。当时 间剩余达到0或更小时,就生成下一调度事件触发,从而幵始调度消 息的发送。当需要发送非调度消息时,检测时间剩余值,以了解在下一调度 事件前还有多少时间剩余。该时间与发送非调度消息所需的时间进行 比较,如果该非调度消息足够短,以致可以在下一调度事件之前全部 发送,那么就立即进行发送。另一方面,如果在完全发送非调度消息
之前,下一调度事件触发就发生了,那么将推迟非调度消息的发送, 直至下一调度事件触发之后。


图1是在通过通信介质网段在设备间进行数字通信的过程控制系统。图2表示了用于在图1中过程控制系统的设备间进行通信的消息 格式。图3是过程控制系统中设备的方框图。 图4是图3中设备的通信控制器的功能方框图。 图5是用于控制发送调度消息和非调度消息定时的时钟生成、网 段计时器和寄存器的功能方框图。
具体实施方式
过程控制系统概述本发明涉及一种通信控制器,其用于过程控制系统中的现场仪表 和其他设备。通信控制器的用途在于实现消息的链路层处理和计时器 管理中的大部分,从而释放应用处理器或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上。在曼彻斯特编码中,在位周期中间,从低电平到高电平 (low to high)和从高电平到低电平(high to low)产生的转变分别表 示"0"和"1"。对于现场总线,规定的位时间是32微秒(usee), 转变发生在16微秒处。曼彻斯特编码规则扩展到包括两个额外的符 号,非数据加(N+)和非数据减(N-),其中在位周期期间不出现转 变,并且曼彻斯特编码基带信号保持高电平(N+)或低电平(N-)。消息格式图2图示了用于在网段12上发送消息的物理层协议数据单元 (PhPDU)的格式。PhPDU包括前同步信号、起始定界符(SD)、数 据链路协议数据单元(DLPDU)和结束定界符(ED)。前同步信号是 PhPDU消息的最初几位。现场总线规范允许1到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到32ysec)之后。该时间取决于载波检测 激活相对于接收消息的设备的内部时钟的时间。这就使得设备的通信 控制器可以忽略在前同步信号前端容易出现的干扰噪声。额外的时间 用于与位边沿同步,从而消除网段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可以是集成电路, 或是分立组件也可用于构成MAU 38。通信控制器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也提供表示其检测的特定事件的信号,其中包括 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上下一个激活到来为止(g卩,直至再次在 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字节。设置可配置的阀值,使得当发送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 usee (32KHz)的节点计时器。节点计时器用于实现 下一功能模块执行时间、链路调度时间V (LST)和数据链路时间 (DL一Time)。第二网段计时器是8位位组计时器,其时钟周期为2ysec (500KHz)。 8位位组计时器用于下一调度事件触发(其与发送状态 计52接口连接,以在指定的时间发送消息)。当调整时钟速率时,节 点计时器和8位位组计时器将彼此跟踪到相同的速率。这是因为,驱 动节点计时器和8位位组计时器的时钟信号从共同的可变时钟获得。消息计时器的启动和停止是根据现场总线的消息事件(发送和接 收)。消息计时器包括不活动计时器、interPDU延迟计时器、接收应 答计时器、发送应答计时器和授权令牌恢复计时器(delegated token recovery timer )0不活动计时器是递减计数器。其用于测量在两个PHPDU之间的 空闲时间。不活动计时器对过滤的和未过滤的接收消息,以及网段12 上所有发送消息起作用。当命令启动后,不活动计时器每16nsec递 减。不活动计时器的起始点根据寄存器60之一中预先载入的可配置设 置点来确定。通过或是与接收消息或是与发送消息相关的事件,可以 取消或停止不活动计时器的递减操作。计时器一旦达到0或期满,将 产生IRQ。不活动计时器保持在0状态直至IRQ被确认收到。如果IRQ 保持高电平,发生的其他消息事件不会影响不活动计时器,直至确认 收到该IRQ。InterPDU延迟计时器是递增计数器。其用于与V (MID)阀值寄 存器结合,从而实现现场总线的V (MID)最小interPDU延迟,该延 迟确保在发送或接收消息之间的非传输状态的最小持续时间(或间隙 时间)。过滤的和未过滤的接收消息,以及网段12上所有发送消息都 能影响interPDU计时器。当没有现场总线动作时,interPDU计时器将 持续递增。 一旦计数值等于或超出存储在寄存器60之一中预定值,将 激活interPDU触发信号。该信号用于确定已经满足interPDU延迟时 间。该信号还与xmtmngr84接口连接,以给出可以开始发送DLPDU 的命令。接收应答计时器是递减计数器。其用于允许预定设备为快速响应 强制数据(CD) DLPDU而进行监控。其也用于设备在上线时监控自 身的地址。当命令启动时,接收应答计时器每16usec递减。接收应 答计时器的起始点根据寄存器60之一中预先载入的可配置的16位设 置点来确定。通过或是SOM事件或是SOT事件,取消或停止接收应 答计时器的递减操作。如果接收应答计时器达到0或期满,将产生 IRQ。接收应答计时器保持在0状态,直到IRQ被确认收到。如果IRQ 保持高电平,发生的其他消息事件不会影响接收应答计时器,直到确 认收到该IRQ。发送应答计时器是递减计数器。在发送若干DLPDU (例如强制 数据、传输令牌)中的一个后,发送应答计时器允许设备为快速响应 而进行监控。当命令启动时,发送应答计时器每16usec递减。发送 应答计时器的起始点根据寄存器60之一中预先载入的可配置的设置 点来确定。通过除了探测节点(PN)的任意一个发送DLPDU的或是 SOM事件或是SOT事件,取消或停止发送应答计时器的递减操作。 如果发送应答计时器达到O或期满,将产生IRQ。发送应答计时器保 持在0状态,直到IRQ被确认收到。如果IRQ保持高电平,发生的其 他消息事件不会影响发送应答计时器,直到确认收到该IRQ。
授权令牌恢复计时器是递减计数器。其用于监控从其他设备接收 授权令牌的空闲时间。授权令牌恢复计时器对过滤的和未过滤的接收 消息,以及网段12上所有发送消息起作用。当命令启动时,授权令牌恢复计时器每16usec递减。授权令牌恢复计时器的起始点根据寄存 器60之一中预先载入的可配置的设置点来确定。通过或是与接收消息 或是与发送消息相关的事件,取消或停止授权令牌恢复计时器的递减 操作。如果授权令牌恢复计时器达到O或期满,将产生IRQ。授权令 牌恢复计时器保持在O状态,直到确认收到IRQ。如果IRQ保持高电 平,发生的其他消息事件不会影响授权令牌恢复计时器,直到确认收 到该IRQ。调度消息和非调度消息的自动协调链路活动调度器(LAS)设备20发送两种不同的消息。第一种消 息类型,强制数据(CD) DLPDU必须以精确的定时发送,这些消息 被称之为"调度消息"。第二种消息类型被称之为"非调度消息",其 不要求在精确的时间发送,可以在调度消息的时间间隙发送非调度消 息。在配置时,将用于调度消息的时间表下载到LAS设备20中。由 于直到配置时才知道时间表精确的详细内容,所以LAS设备20必须 能够动态地编排和执行该时间表。同样,如果链路主站(LM)设备 22承担链路活动调度器的功能,那么它必须能够动态地编排和执行时 间表。在过去,软件负责LAS设备中大部分的时间表执行。软件首先计 算下一调度事件将要发生的时间,然后通过读取当前时间,并与下一 调度事件时间比较,从而显示时间剩余。根据时间剩余,软件还确定 是否发送非调度的DLPDU。该软件密集型的方法存在几个问题。第 一,软件必须读取或计算当前时间,并将其与下一调度事件时间比较, 从而计算出时间剩余。由于在发送每个DLPDU之前LAS设备必须进 行计算,所以对于设备性能来说,计算"时间剩余"的系统开销是值 得重视的。第二,使用了两种不同的时基(节点时间和8位位组时间)。
根据作为本地链路调度时间(LST)的节点计时器,度量用于调度事 件的时间剩余,另一方面,根据消息中8位位组的数量,确定发送非 调度消息所需的时间。结果,确定是否有时间发送非调度消息总是需 要计算从一个时基转换到另一个时基。第三,非调度消息的发送请求需要精确地定时为尽可能与下一调 度事件时间接近。通常,这种精确定时对于软件而言难以实现,并且 存在等待时间的问题。本发明中通过通信控制器36自动完成调度消息和非调度消息的 调度和协调,是优于CPU30中的软件方式的。本发明中,节点时间和8位位组时间是同步的。通过软件将下一 调度事件时间值写入寄存器中,并结合8位位组时间的计数,从而随 着8位位组计时器的每个增加,完成时间剩余的动态计算。时间剩余 值用于生成下一调度事件触发,并且也是软件可读的。由于时间剩余 是8位位组时间的形式,与确定非调度消息的长度所需的具有相同的 时间定义,从而软件可以迅速地确定能否发送非调度消息。通信控制器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 us)的可调时钟速率,而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、加法器卯和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)的带符号偏移(或差)。当从LAS20中接收到时间分配(TD) DLPDU时,就确定了 LAS 20的时间基准。TD DLPDU由LAS 20发 送到设备,以使网段12上所有其他设备能够协调并同步它们的 DL-Time定义进展的速率。将可变链路时间偏移寄存器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
中的设置点进行比较来完成。通常,工作的方法如下。在刚要开始LAS调度之前,通信控制器36中的软件捕获8位位组时间和本地链路调度时间的值,其是通过拍 摄快照从而产生这两个值的时间戳的方式实现的。8位位组时间存储 在寄存器60H中,而本地链路调度时间(LST)存储在寄存器60J中。 使用这些时间戳,软件根据8位位组时间计算LAS调度版本。软件计算完成后,开始执行调度。软件首先为下一调度事件计算 下一调度事件时间(NSET),并将其值写入到下一调度事件寄存器60E 中。然后,通过简单地读取时间剩余寄存器60F,软件监控下一调度 事件之前的时间剩余。寄存器60F中的值随着8位位组计时器68B的 每次递增而更新。如果剩余足够的时间,软件就发送非调度DLPDU消息到发送 FIFO存储器54,以便发送到网段12上。如果时间剩余太短,软件不 会发送DLPDU到发送FIFO存储器54。当下一调度事件即将来临时,为在生成下一调度事件触发时发送 CD DLPDU,软件生成发送请求到通信控制器36。 一旦CD DLPDU 被发送,软件为下一调度事件排队NEST,并将其值载入寄存器60E 中。该操作周而复始。本发明去除了软件的系统开销,并且免除了为确定发送DLPDU 的时间而不断地读取或并以正确的单位计算正确的时间,再将其与 NEST比较的需要。取而代之,通信控审j器36通过使用图5中所示的 网段计时器功能,自动地完成上述这些功能。此外,因为基于通信控 制器36 (其中实际进行发送)中的计时器而非基于软件计时器(易于 受到处理器等待时间的影响)来触发发送,减少了调度的抖动。下一调度事件寄存器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中。尽管本发明参考优选的实施例进行了描述,但是本领域的技术人 员应认识到,在不脱离本发明主旨和范围的情况下,形式和内容是可 以改变的。
权利要求
1. 一种设备,用于通过发送调度消息和非调度消息进行网络通 信,所述设备包括中央处理单元(CPU),用于生成将要发送的消息;介质连接单元(MAU),用于连接网络;和通信控制器,其连接在CPU和MAU之间,用于提供表示在发送下一调度消息之前剩余的时间的时间剩余值,每次提供第一时间值的 第一计时器递增时,通过从存储的下一调度事件时间中减去第一时间 值,更新时间剩余值。
2. 根据权利要求1所述的设备,其中如果时间剩余值大于发送 非调度消息所需的时间,CPU就发送非调度消息;如果时间剩余值小于发送非调度消息所需的时间,CPU就推迟发送非调度消息。
3. 根据权利要求l所述的设备,其中当时间剩余值达到0时,发送调度消息。
4. 根据权利要求1所述的设备,其中所述通信控制器在寄存器 中存储下一调度事件时间和时间剩余值。
5. 根据权利要求1所述的设备,其中所述通信控制器还包括第二计时器,用于提供分辨率比第一时间值低的第二时间值。
6. 根据权利要求5所述的设备,其中,所述通信控制器响应软 件命令,存储来自第一、第二计时器的时间戳值。
7. 根据权利要求5所述的设备,其中所述第一计时器是8位位 组计时器,其提供8位位组时间作为第一时间值,所述第二计时器是 节点计时器,其提供节点时间作为第二时间值。
8. 根据权利要求7所述的设备,其中所述通信控制器基于节点 时间获得数据链路时间和链路调度时间。
9. 根据权利要求8所述的设备,其中所述通信控制器在寄存器 中存储8位位组时间、节点时间、数据链路时间和链路调度时间作为 时间戳值。
10. 根据权利要求9所述的设备,其中根据时间戳值得到基于8 位位组时间的消息发送调度。
11. 根据权利要求1所述的设备,其中所述通信控制器同时生成 多个时间值,并响应软件命令,存储每个时间值作为时间戳值。
12. —种方法,用于控制网络上调度消息和非调度消息的定时,所述方法包括在硬件中保持表示在发送下一调度消息之前剩余的时间的时间剩余值;和当时间剩余值大于发送非调度消息所需的时间时,发送非调度消息。
13. 根据权利要求12所述的方法,还包括 如果时间剩余值小于发送非调度消息所需的时间,推迟发送非调度消息。
14. 根据权利要求12所述的方法,还包括 当时间剩余值达到0时,发送调度消息。
15. 根据权利要求12所述的方法,其中在硬件中保持时间剩余值的步骤包括从定时装置中获得多个时间值; 在寄存器中存储每个时间值作为时间戳值;根据时间戳值获得消息发送调度,包括下一调度事件时间;和 每次定时装置递增时,通过从下一调度事件时间中减去定时装置 生成的当前时间值,更新时间剩余值。
16. 根据权利要求15所述的方法,其中从定时装置获得多个时 间值的步骤包括从第一计时器和第二计时器获得多个时间值,其中 第一计时器提供第一时间值,第二计时器提供分辨率小于第一时间值 的第二时间值。
17. 根据权利要求16所述的方法,其中所述第一计时器是8位位 组计时器,其提供8位位组时间作为第一时间值,所述第二计时器是节 点计时器,其提供节点时间作为第二时间值。
18. —种方法,用于控制过程控制网络上的设备对调度消息和非调度消息的发送,所述方法包括在每个设备中,同步本地内部时间定义与网络网段上的节点时间 定义;发送基于本地和节点时间定义的时间戳值到快照寄存器;根据时间戳值获得下 一调度事件时间 , 在硬件中保持表示在下一调度事件时间之前剩余的时间的时间剩余值;和当时间剩余值大于发送非调度消息所需的时间时,发送非调度消息。
19. 根据权利要求18所述的方法,还包括如果时间剩余值小于发送非调度消息所需的时间,推迟发送非调 度消息。
20. 根据权利要求18所述的方法,还包括 当时间剩余值达到0时,发送调度消息。
21. —种网络设备,包括装置,用于生成表示网络上下一调度事件发生时间的下一调度事件时间;装置,用于保持表示在下一调度事件时间之前剩余的时间的时间 剩余值;装置,用于当时间剩余值大于发送非调度消息所需的时间时,发 送非调度消息,以及如果时间剩余值小于发送非调度消息所需的时间, 推迟发送非调度消息。
全文摘要
一种过程控制网络上的设备定时发送调度消息,并在调度消息发送之间发送非调度消息。每次计时器递增时,从下一调度事件时间减去当前计时器值,就产生了动态的时间剩余值。如果发送非调度消息所需的时间大于时间剩余值,就不发送该消息。
文档编号G06F13/10GK101124560SQ200580032882
公开日2008年2月13日 申请日期2005年7月15日 优先权日2004年7月30日
发明者布赖恩·A·弗朗查克, 罗杰·R·本森 申请人:费希尔-罗斯蒙德系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1