在消息接收期间阻止发送的系统和方法

文档序号:2773445阅读:276来源:国知局
专利名称:在消息接收期间阻止发送的系统和方法
技术领域
本发明涉及一种通信控制器,其用于现场仪表和其他过程控制系 统设备。具体地,本发明是用于通信控制器中低等待时间数据包接收 和处理的系统与方法。
背景技术
在典型的工业车间中,使用分布式控制系统(DCS)控制完成车 间内的众多工业过程。典型的是,车间内有集中控制室,控制室内有 计算机系统,其中包含用户输入输出(I/O)、磁盘I/O和其他众所周 知的计算机外围设备。连接计算机系统的是控制器和过程I/O子系统。过程I/O子系统包括与遍布在车间内的各种现场设备连接的I/O 端口。现场设备包括各种类型的分析装置、硅压力传感器、电容压力 传感器、电阻式温度检测器、热电耦、应变计、限位开关、通断开关、 流量变送器、压力变送器、电容式物位开关、计重器、变换器、阀门 定位器、阀门控制器、执行机构、螺线管和指示灯。术语"现场设备" 包括这些设备,也包括分布式控制系统中履行功能的其他设备。传统上,模拟现场设备是通过两芯双绞线电流环路连接到控制 室,每个设备通过单独的两芯双绞线与控制室相连。模拟现场设备能 在指定的范围内响应或发送电信号。在典型的配置中,通常是在双绞 线两芯之间有接近20~25伏的电压差,通过环路的电流为4-20毫安。 传送信号到控制室的模拟现场设备,按检测到的工艺参数成比例的调 制通过电流环路的电流。另一方面,在控制室的控制下执行动作的模 拟现场设备,受环路中电流的大小控制,该电流由控制器控制的过程 1/0系统的I/0端口调制。传统的具有有源电子器件的两芯模拟设备, 可以从环路中获得多达40毫瓦的功率。需要更大功率的模拟现场设 备,典型的是用四芯线连接到控制室,其中两条用于给设备传送功率。 如同两芯设备一样,本领域众所周知的这种设备是四芯设备,并且不 受功率限制。相反,传统的离散现场设备发送或响应二进制信号。典型的是,离散现场设备在24伏信号(或者AC或者DC)、 110或240伏AC信 号或5伏DC信号下工作。当然,离散现场设备也可被设计成在特殊 控制环境要求的电气规格下工作。离散输入现场设备是简单的开关, 其或是闭合或是断开与控制室的连接,而离散输出现场设备根据控制 室信号的存在或不存在执行动作。历史上,大多数传统的现场设备或是有单一的输入或是有单一的 输出,其直接与现场设备实现的主要功能有关。例如,传统的模拟电 阻式温度传感器实现的单一功能是,通过调制流过两芯双绞线的电流 传送温度,而传统的模拟阀门定位器实现的单一功能是,根据通过两 芯双绞线电流的大小,在开、关位置之间定位阀门。近来,在电流环路中增加了数字数据的混合系统已经在分布式控 制系统中应用。 一种在控制领域公知的混合系统是可寻址远程变换器 高速链路(HART),其与贝尔202调制解调器的规范相似。HART系 统通过电流环路中电流大小检测工艺参数(如同在传统的系统中一 样),但是也在电流环路信号上增加数字载波信号。该载波信号相对缓 慢,可以在每秒约2—3次更新的速率下,提供次要工艺参数的更新。 通常,数字载波信号用于发送次要的诊断信息,不用于实现现场设备 的主要控制功能。载波信号所能提供的信息包括次要工艺参数、诊断 信息(包括传感器诊断信息、设备诊断信息、线路诊断信息和过程诊 断信息)、工作温度、传感器温度、校准信息、设备ID号、结构材料、 配置或编程信息等。因此,单一的混合现场设备可以有多种输入输出 变量,实现多种功能。HART是工业标准的公开系统。然而,它相对缓慢。行业中的其 他公司已经开发出更快的专有数字传输方案,但是,这些方案一般不 会被竞争对手使用,或者说竞争者不能获得。近来,美国设备协会(ISA)定义了更新的控制协议。新的控制
协议通常被称之为现场总线。现场总线是多路串行数字双向通信协议, 其意图用于连接现场仪表和其他过程设备,例如分布式控制系统中的 监视和仿真单元。现场总线允许通过在先的过程控制环路方法进行增 强的数字通信,同时保持向与现场总线环路连接的过程设备供电的能 力,并满足固有的安全性要求。基金会现场总线(Foundation Fieldbus )和过程现场总线(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中设备的通信控制器的功能框图。
具体实施方式
过程控制系统概述本发明涉及一种通信控制器,其用于过程控制系统中的现场仪表 和其他设备。通信控制器的用途在于实现消息的链路层处理和计时器管理中的大部分,从而释放应用处理器或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-Ume)的本地源。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)和从高电平到低电平(highto 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 0N-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和其他型号的微处理器。CPU30是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上下一个激活到来为止(即,直至再次在 RxA提供载波检测信号)。通过使用过滤电路,基本设备减少在对该设备不重要的消息上载 入的IRQ。相反,配置作为LAS的设备必须接收网段上的所有消息, 因而必须禁用过滤。当禁用过滤时,所有接收消息将被存储在接收 FIFO存储器50中,并将传递到达寄存器60,然后到CPU30。 SOMf 是用于接收过滤DLPDU的消息开始信号,其发生在当前端状态机46 确定接收的消息已经检测到足够的信息,以致可以确定输入的消息将说明书第10/16页被过滤的时候。随着过滤的使能,被过滤的消息没有存储在接收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字节)为止。前端状态机4'6解码过滤后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禁止接收更多的消息,直到已 经读取或确认收到事件数据。EventMngr82管理事件发生顺序。当事件发生时,事件管理器82 分配给每个事件一个发生顺序标识(OOOjD)。这允许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 IX sec (32KHz)的节点计时器。节点计时器用于实现 下一功能模块执行时间、链路调度时间V (LST)和数据链路时间 (DL—Time)。第二网段计时器是8位位组计时器,其时钟周期为2usec (500KHz)。 8位位组计时器用于下一调度事件触发(其与发送状态 计52接口连接,以在指定的时间发送消息)。当调整时钟速率时,节 点计时器和8位位组计时器将彼此跟踪到相同的速率。这是因为,驱 动节点计时器和8位位组计时器的时钟信号从共同的可变时钟获得。消息计时器的启动和停止是根据现场总线的消息事件(发送和接 收)。消息计时器包括不活动计时器、interPDU延迟计时器、接收应 答计时器、发送应答计时器和授权令牌恢复计时器(delegated token recovery timer)。不活动计时器是递减计数器。其用于测量在两个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而进行监控。其也用于设备在上线时监控自 身的地址。当命令启动时,接收应答计时器每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。授权令 牌恢复计时器保持在0状态,直到确认收到IRQ。如果IRQ保持高电 平,发生的其他消息事件不会影响授权令牌恢复计时器,直到确认收 到该IRQ。
在消息接收期间阻止消息发送现场总线数据链路层协议规范ANSI/ISA-S50.02-1997部分4中 6.2.6节规定,在现场总线网络上持有支配(dominant)令牌的设备(例 如下一个将进行发送的设备),如果在等待开始发送时接收新的数据, 那么它必须释放该令牌,从而取消任意未决发送。由于两个原因,支配令牌的持有者等待在网段12上开始发送。 第一,尚未过要求的最小DLPDU延迟V(MID)的间隔;第二, CPU 30 中的软件正忙于准备将要发送的下一 DLPDU。通信控制器36支持DLPDU的接收和发送。如果接收新的DLPDU 在发送开始之前,那么通信控制器36就阻止DLPDU的发送,即使 CPU 30中的软件尚未意识到新DLPDU的接收。通信控制器36通知 软件,发送被阻止。本发明阻塞了从通信控制器36接收新的DLPDU的时间直到CPU 30中的软件开始察觉到该DLPDU接'收的时间的"时间窗"。在该时 间窗期间,通信控制器36将阻止软件启动发送的任意企图。通过为表示接收DLPDU的接收/发送事件管理器58中的每个对 象(rcvmsgl、 rcvmsg2和rcvmsg3)增加布尔属性"未读(UNREAD)", 实现发送的自动阻止。软件不能直接访问"未读"属性。换句话说, CPU 30不能将"未读"属性向接收消息对象rcvmsgl、 rcvmsg2和 rcvmsg3中写入或从中读出。接收消息对象rcvmsgl包含与第一接收消息有关的所有数据 (IRQ、状态和错误消息)。同样,rcvmsg2包含与第二接收消息有关 的所有事件数据,rcvmsg3保留了与第三接收消息有关的所有事件数 据。一旦开始接收DLPDU,就将相关接收消息对象中的"未读"属 性设置为真(TRUE)。当CPU 30中的软件访问接收消息对象的任意 可读属性时,该对象中的"未读"属性就被设置为假(FALSE)。如果 或是CPU30中的软件在外部或是通信控制器36从内部确认收到了接 收消息对象,那么将该接收消息对象中的"未读"属性设置为假。另一被称之为"接收未决(Receive Pending)"的布尔属性是由接
收消息对象产生的。如果三个接收消息对象的"未读"属性中的任意 一个是真,那么"接收未决"是真。换句话说,"接收未决"属性表示 三个独立的"未读"属性之间的逻辑或。如果CPU 30中的软件生成开始发送的请求,那么发送的能力取 决于"接收未决"属性的状态。如果"接收未决"是假,那么通信控制器36允许发送开始,通知软件发送请求成功,并且稍后通知软件发送结束。如果"接收未决"属性是真,那么通信控制器36不允许发送开 始。取而代之的是,通信控制器36通知软件发送请求失败。在每个发送请求之后,软件检查寄存器60,以了解请求是否成功。 如果请求成功,那么软件继续保持支配令牌,并等待发送结束。如果 发送请求失败,那么软件立即释放支配令牌。本发明去除了从刚接收新的DLPDU的时间和软件开始注意到新 的DLPDU己经(或是正在)接收的时间之间的软件时间窗。或是不 等软件确认接收到了接收DLPDU发ii就开始了,或是发送被取消了, 并且稍后通信控制器36向CPU 30报告接收的DLPDU。本发明使软件可以在接收的快速响应请求DLPDU的激活结束 (EOA)之前成功地请求响应DLPDU发送,从而改善了现场总线网 络的性能。由于软件已经访问了接收的快速响应请求DLPDU,因此 在生成响应DLPDU发送请求时,将"接收未决"置为假。尽管本发明已经通过参考优选的实施例进行了描述,但是本领域 的技术人员应认识到,在不脱离本发明精神和范围的情况下,形式和 细节是可以改变的。
权利要求
1.一种电路,用于当正在从网络上接收消息时,阻止消息发送到网络上,该系统包括接收器电路,用于从网络上接收消息;接收消息缓冲器,用于存储接收消息对象,每个接收消息对象含有相关联的或是标识为真或是标识为假的未读状态属性,电路含有接收未决属性,如果存储在接收消息缓冲器中的任意接收消息对象的未读状态属性被设置为真,那么接收未决属性被设置为真;发送消息缓冲器,用于存储将被发送的数据;发送器,如果接收未决属性被设置为假,那么发送器响应发送请求,发送发送消息缓冲器中的数据。
2. —种控制消息向网络发送的方法,该方法包括 接收来自软件的发送请求; 存储将要发送的数据; 接收来自网络的消息;根据接收的消息,在接收缓沖器存储消息对象;生成与接收消息对象相关联的接收未决属性,在接收消息对象时 自动设置接收未决属性为真,接收未决属性标志着存储在接收缓冲器 中的任意消息对象尚未被读取;测试接收未决属性的状态;和根据接收未决属性的状态,处理发送请求。
3. 根据权利要求2中所述的方法,其中处理发送请求的步骤包括如果接收未决属性是假,发送存储的数据;和 通知软件发送请求成功。
4. 根据权利要求3中所述的方法,还包括 当数据发送结束时,通知软件。
5. 根据权利要求2中所述的方法,其中处理发送请求的步骤包括如果接收未决属性是真,通知软件发送请求失败。
6. —种通过通信介质进行通信的设备,该设备包括介质连接单元(MAU),用于在通信介质上接收和发送消息; 中央处理单元(CPU),用于处理包含在接收消息中的数据,并创建发送消息中的数据;和通信控制器,用于MAU和CPU之间的接口,通信控制器为接收消息维护接收消息对象,如果与接收消息对象相关联的接收未决属性显示没有未读的接收消息,那么通信控制器响应来自CPU的发送请求,控制数据发送。
全文摘要
一种网络上设备的通信控制器,如果正在接收消息或已经接收消息但尚未确认收到时,其响应来自设备CPU的发送请求自动阻止将数据发送到网络上。
文档编号G02B6/04GK101160568SQ200580032850
公开日2008年4月9日 申请日期2005年7月15日 优先权日2004年7月30日
发明者布赖恩·A·弗朗查克, 罗杰·R·本森 申请人:费希尔-罗斯蒙德系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1