CN101438245A - 网络上事件发生顺序的管理 - Google Patents

网络上事件发生顺序的管理 Download PDF

Info

Publication number
CN101438245A
CN101438245A CNA2005800376930A CN200580037693A CN101438245A CN 101438245 A CN101438245 A CN 101438245A CN A2005800376930 A CNA2005800376930 A CN A2005800376930A CN 200580037693 A CN200580037693 A CN 200580037693A CN 101438245 A CN101438245 A CN 101438245A
Authority
CN
China
Prior art keywords
ooo
timer
event
incident
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005800376930A
Other languages
English (en)
Other versions
CN101438245B (zh
Inventor
布赖恩·A·弗朗查克
罗杰·R·本森
史蒂芬·A·森林斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fisher Rosemount Systems Inc
Original Assignee
Fisher Rosemount Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fisher Rosemount Systems Inc filed Critical Fisher Rosemount Systems Inc
Publication of CN101438245A publication Critical patent/CN101438245A/zh
Application granted granted Critical
Publication of CN101438245B publication Critical patent/CN101438245B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4148Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by using several processors for different functions, distributed (real-time) systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33273DCS distributed, decentralised controlsystem, multiprocessor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34413Add time stamp to command message

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Selective Calling Equipment (AREA)
  • Computer And Data Communications (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

进程控制系统中的设备在通信介质分段上对数据消息进行通信。每个设备包括通信控制器,通信控制器保持从通信介质接收和向通信介质发送的事件发生顺序。所述通信控制器包括发生顺序标识(OOO_ID)计数器和事件队列存储器。事件队列存储器顺序地存储每个由通信控制器所处理的事件的事件类型标识符。所述OOO_ID计数器提供OOO_ID以与每个事件类型标识符相关联。

Description

网络上事件发生顺序的管理
技术领域
本发明涉及用于进程控制系统的现场仪表和其它设备中的通信控制器。特别地,本发明是一种用于管理通信控制器中的事件发生顺序的系统和方法。
背景技术
在典型的工业工厂中,采用分布式控制系统(DCS)来控制在工厂执行的许多工业进程。典型地,该工厂具有集中式控制室,该控制室具有带有如计算领域中已知的用户(I/O)、盘I/O和其它外设的计算机系统。与计算系统相连的是控制器和进程I/O子系统。
所述进程I/O子系统包括多个I/O端口,I/O端口连接至遍及工厂的各种现场设备。控制领域公知的现场设备包括各种类型的分析仪器、硅压力传感器、电容性压力传感器、电阻性温度探测器、热电偶、应变计、限位开关、通/断开关、流量变送器、压力变送器、电容电平开关、磅秤、传感器、阀门定位器、阀门控制器、执行器、螺线管和指示灯。如这里所使用的,该术语“现场设备”涵盖了这些设备以及在分布式控制系统中执行功能的控制领域公知的任何其它设备。
传统上,模拟现场设备通过二线双绞线电流环路连接至控制室,且各设备由单独的二线双绞线连接至控制室。模拟现场设备能够在指定范围内响应或发送电信号。在典型的结构中,通常在双绞线的二线之间具有大约20—25伏特的电压差,而流经环路的电流为4—20毫安。将信号发送至控制室的模拟现场设备调节流经电流环路的电流,而且该电流与所感应的进程变量成比例。另一方面,在控制室的控制下执行操作的模拟现场设备由经过环路的电流的强度所控制,该电流强度由受控制器所控制的进程I/O端口调节。传统的具有有源电子器件的二线模拟设备也可以从环路接收高达40毫瓦的功率。典型地,使用四线将需要更高功率的模拟现场设备连接至控制室,四线中的二线向设备提供能量。正如二线设备一样,作为四线设备的这类设备在本领域中是已知的而且功率不受限制。
相反,传统的分散现场设备发送或响应二进制信号。典型地,分立的现场设备以24伏特信号(或直流或交流)、110或240伏特交流信号或5伏特直流信号运行。当然,可以设计分立设备,使其根据特殊控制环境所需的任何电力规范而运行。分立输入现场设备仅仅是一个开关,其接通或中断与控制室的连接,而分立输出现场设备将根据来自控制室的信号的存在或不存在而进行操作。
从历史上看,大多数传统的现场设备已具有直接与现场设备所执行的主要功能相关联的信号输入或信号输出。例如,由传统的模拟电阻温度传感器所实现的唯一功能是通过调节流经二线双绞线的电流来传送温度,而由传统的模拟阀门定位器所实现的唯一功能是基于流经二线双绞线的电流强度在打开和关闭位置之间定位阀门。
最近,将数字数据添加到电流环路上的混合系统已经用在分布式控制系统中。控制技术领域中已知的一种混合系统是高速可寻址远程传感器(HART),其与Bell 202调制解调器的规范类似。该HART系统使用电流环路中的电流强度来感测进程变量(如在传统系统中一样),并且还将数字载波信号添加到电流环路信号上。所述载波信号相对较慢,并且可以提供每秒大约2—3次更新的速率的二级进程变量的更新。通常,数字载波信号用于发送二级和诊断信息,而不用于实现现场设备的主控功能。载波信号上所提供的信息包括例如二级进程变量、诊断信息(包括传感器诊断、设备诊断、接线诊断和进程诊断)、运行温度、传感器温度、校准信息、设备ID号、结构材料、配置或编程信息等等。因此,单个混合现场设备可以具有多个输入和输出变量,并且可以实现多种功能。
HART是产业标准的非专有系统。然而,它相对较慢。产业中其它企业已经开发了更快的专有数字发送方案,但是通常竞争者不能使用或无法获得这些方案。
最近,由美国仪表协会(ISA)规定了一种更新的控制协议。这种新协议一般被称为现场总线(Fieldbus)。现场总线是一种多分支串行数字双向通信协议,旨在将分布式控制系统中的现场仪器和例如监视和仿真单元的其它进程设备连接。现场总线实现了比之前的进程控制环路方法更强的数字通信,同时保持了向与现场总线环路相连的进程设备供电并同时满足固有的安全要求的能力。
两种合理标准化的工业现场总线协议是基础现场总线(FoundationFieldbus)和现场总线(Profibus)。现场总线协议的物理层由美国标准ISA—S50.02-1992的仪表协会规定,其草案2扩展发表于1995年。该现场总线协议规定了两个子协议。H1现场总线网络以高达每秒31.25千比特(Kbps)的速率发送数据并向与该网络相连的现场设备供电。H1物理层子协议由1992年9月批准的ISA标准第二部分的11条所规定。H2现场总线网络以高达每秒2.5兆比特(Mbps)的速率发送数据,但是不向与该网络相连的现场设备供电,而且具有冗余的传输介质。
现场总线具有用于对海量进程数据进行数字通信的显著性能。因此,不断地需要开发能够将现场总线通信效力最大化的进程控制设备。
发明内容
本发明是一种用在设备中的通信控制器,用于保持从通信介质接收到的和发送到通信介质的事件的发生顺序。所述通信控制器包括发生顺序标识(OOO_ID)计数器和事件队列存储器。事件队列存储器依次存储由通信控制器所处理的每个事件的事件类型标识符。所述OOO_ID计数器提供OOO_ID以与每个事件类型标识符相关联。
在优选实施例中,通信控制器还包括多个定时器OOO_ID寄存器。在通信控制器中,每个定时器OOO_ID寄存器与发生顺序(OOO)定时器相关联。当OOO定时器之一期满时,来自OOO_ID计数器的OOO_ID当前值被存储在其相关的定时器OOO_ID寄存器中。通过将事件的OOO_ID值与定时器OOO_ID寄存器中所存储的OOO_ID进行比较,软件确定事件和OOO定时器的期满之间的发生顺序。
附图说明
图1是通信介质分段上设备之间的数字通信的进程控制系统的示意图。
图2示出了图1的进程控制系统的设备之间的通信的消息格式。
图3是进程控制系统的设备的方框图。
图4是图3的设备的通信控制器的功能方框图。
图5是用于处理通信控制器所接收或发送的消息的接收/发送事件管理器的功能方框图。
图6是用于保持通信控制器中事件发生顺序的事件管理器的功能方框图。
具体实施方式
进程控制系统概况
本发明涉及用于进程控制系统的现场装置和其它设备中的通信控制器。所述通信控制器的目的是执行消息链路层处理和定时器管理的实际部分,并因此释放应用处理器或CPU以执行其它功能。为了进行详细描述,将在使用基础现场总线通信协议的系统的背景下描述所述通信控制器,虽然它具有对于基于分组的通信协议的一般适用性。
所述现场总线物理层定义了以物理层协议数据单元(PhPDU)的格式对通信协议数据进行发送和接收的物理装置的电子特性。此外,现场总线物理层规定符号编码、消息帧化和错误检测方法。ISA现场总线标准定义了三种信号收发的速度和两种连接模式。为了对此进行描述,将在ISA S50.02标准第2部第11条中所定义的H1物理层的背景下描述本发明。该条涵盖31.25Kbps、电压模式、有线介质和低功率选项。该选项使得连接至通信介质的设备能够从通信介质接收它的操作功率。所述物理层能够符合对于危险环境的内部安全要求。所述协议根据由标准定义的电压和电路限制,在低等级双绞线上运行并支持多个设备。
图1示出了一种典型的进程控制系统10,包括分段12、电源14和五个设备:链路活动调度器(LAS)设备20、链路主设备(LM)22以及基础设备24、26和28。分段12可以在单独一对线路上支持多达32个设备。典型地,基于环路执行速度、功率和内部安全要求,分段12将具有4—16个设备。
LAS设备20为分段12上的设备之间的所有通信保持中央调度。通过将强制数据(CD)数据链路协议数据单元(DLPDU)发送至每个设备以发送后周期数据,然后调度每个设备发送后周期数据,LAS设备20改进了整体通信的可靠性。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消息,则它将向LAS设备20反馈RT消息。如果基础设备24、26或28接收具有DA=V(TN)的PN DLPDU,则需要它反馈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上。由于曼彻斯特编码,“0”和“1”分别表示比特周期中间发生的从低到高和从高到低的转换。对于现场总线,标称比特时间是32微秒(μsec),转换以16μsec的频率发生。曼彻斯特编码规则已经被扩大至包括两种附加符号,即非数据加(N+)和非数据减(N—),其中在比特周期过程中不发生转换,而且曼彻斯特编码基带信号保持高(N+)或低(N—)。
消息格式
图2示出了用于在分段12上发送消息的物理层协议单元(PhPDU)的格式。PhPDU包括前同步、开始分隔符(SD)、数据链路协议数据单元(DLPDU)和结束分隔符(ED)。所述前同步是PhPDU消息的前面若干比特。现场总线规范允许1—8个字节的前同步。接收消息的设备使用前同步,以与输入的消息同步。如图2所示,前同步的首字节序列是10101010。
开始分隔符(SD)紧接着前同步。这里每个消息有一个SD。现场总线规范要求SD具有非字符数据(N+和N—),其总是以互补对的方式出现在SD消息中。此编码方案使得SD唯一并且不可能与消息的数据部分(DLPDU)混淆。图2中所示SD的序列为1N+N-10N-N+0。
DLPDU是长度可变的消息。它以帧控制(FC)字节作为第一字节以及以帧校验序列(FCS)校验和作为其最后两个字节。DLPDU的长度可变,最小是三个字节(在RT消息的情况下),大到例如大约300字节的超时传输(jabber)限制。
结束分隔符(ED)在DLPDU之后。它表示在分段12上的发送PhPDU消息的最后字节。类似于SD,ED包括呈互补对的非字符数据。这个编码方案使得ED唯一并且不可能与DLPDU混淆。图2中所示结束分隔符的序列为1N+N-N+N-101。
图2还示出了载波检测信号。载波检测信号的目的是指示:何时(a)分段12上存在输入的PhPDU消息,或(b)设备正在将消息发送到分段12上。
发送开始(SOT)发生在这样的时刻:发送使能(TxE)变得有效,即当PhPDU的前同步被首先提供给分段12时。
活动开始(SOA)发生在载波检测信号变得有效而且已经稳定了至少一个比特时间或两个比特时间(大约16—31μsec)之后。这个时间取决于载波检测相对于接收消息的设备的内部时钟何时变得有效。这使得设备的通信控制器可以忽略在前同步的前端十分容易发生的噪音干扰。附加时间用于与比特边界同步,以消除分段12上的短噪声脉冲被误译为有效的可能。对于发送消息,在发送使能变得有效之后发生SOA(即PhPDU的前同步被提供给分段12)。
消息开始(SOM)发生在针对接收消息检测到FC字节时的第一比特的开始处。
SOM_xmt是消息发送开始,其发生在针对发送消息检测到FC字节时的第一比特的开始处。
SOMf是所接收已过滤的DLPDU的SOM。这发生在当设备中的通信控制器已经检测到足够的信息以确定过滤输入消息的时候。
消息结束(EOM)发生在接收消息中遇到的ED的最后比特的结尾。发送结束(EOT)发生在发送消息的ED的最后比特的结尾。
有效结束(EOA)发生在载波检测已经变得无效的时候。发送DLPDU和接收DLPDU二者均发生EOA。
设备结构
图3示出了基础设备24的通信部分的方框图,其表示每一个设备20—28中的结构。基础设备24包括中央处理器(CPU)30、随机存取存储器(RAM)32、闪存34、通信控制器36和媒体连接单元(MAU)38。
在图3所示的实施例中,CPU 30是微处理器,例如摩托罗拉68LC302、摩托罗拉Mcore 2075、摩托罗拉PowerPC 850、Atmel Thumb处理器AT91M40800和其它。CPU30是8比特或更高的处理器。
在图3所示的实施例中,通信控制器36是特殊应用集成电路(ASIC),其作为MAU 38和CPU 30之间的接口工作。它向连接至现场总线分段12的外部模拟电路发送和从连接至现场总线分段12的外部模拟电路接收已编程的曼彻斯特数据。在从MAU 38接收到串行数据之后,通信控制器36对数据解码,将数据形成为字节,去掉前同步、SD和ED(和可选地FCS字节),并为链路层提供消息数据以供读取。对于数据发送,通信控制器36从链路层接收DLPDU数据的字节,并添加前同步、SD,可选地产生FCS,以及添加ED。接着通信控制器36串行形成已编码的曼彻斯特数据,将所述数据发送至MAU 38以供在现场总线分段12上发送。
通过下列四种信号提供通信控制器36和MAU 38之间的通信:RxS、RxA、TxS、TxE。RxS是所接收的曼彻斯特编码串行数据。RxA是接收数据的载波检测信号。TxS是发送的已编码串行数据。TxE是发送使能信号。
在本发明的其它实施例中,可以在具有CPU 30的公共集成电路上形成通信控制器36。而且,在有些实施例中,RAM 32和闪存34也可以和CPU 30合并。在LAS设备20的情况下,CPU 30、RAM 32和闪存34可以是进程控制系统10的主计算系统的一部分。
MAU 38向现场总线分段12提供网络连接。MAU 38可以是集成电路,或者是可用于形成MAU 38的分立组件。
通信控制器36
图4是通信控制器36的功能方框图。在此实施例中,通信控制器36包括反跳电路42、数字锁相环(PLL)44、前端状态机46、接收消息过滤48、接收先入先出(FIFO)存储器50、发送状态机52、发送FIFO存储器54、发送驱动器电路56、接收/发送事件管理器58、寄存器60、时钟生成电路62、振荡器64、定时器68和CPU接口电路70。
当MAU 38检测到输入消息时,在RxA输入处向通信控制器36提供载波检测信号,而且在RxS输入处提供输入的异步曼彻斯特数据。将RxA和RxS输入提供给前端状态机46。数字PLL 44从输入的串行曼彻斯特编码数据中再生和重建时钟。然后将此重建的时钟用于对前端状态机46计时。
前端状态机46检测输入的串行比特流RxS。它去掉前同步、SD和ED,并将DLPDU存储至接收FIFO存储器50中。前端状态机46和接收消息过滤48一起可以被配置用于滤除特殊帧控制,并加上寻址到其它设备的探测节点(PN)及传递令牌(PT)。前端状态机46跟踪已经被写入接收FIFO存储器50中的字节数量。在每个消息的结尾处自动验证FCS,并且可选地可以将FCS存储至接收FIFO存储器50中。
前端状态机46还提供表示它已经检测的特殊事件的信号。这些包括SOM、SOMf、EOM、SOA和EOA事件脉冲。
当RxA链路变得有效时前端状态机46被激活。然后前端状态机46与前同步字段的沿同步,并将RxS信号的曼彻斯特编码数据解码。SOA事件指示前端状态机46已经启动。
在检测到前同步之后,前端状态机46等待开始分隔符(SD)序列。在已经检测到SD之后,前端状态机46将串行数据流转换为八位组,并以8比特字节将其写入接收FIFO存储器50。前端状态机46继续将数据的新八位组写入接收FIFO存储器50中,直到检测到结束分隔符(ED),或直到接收FIFO存储器50满为止。
当已经检测到ED时,前端状态机46等候RxA线路变得无效,而这是由EOA事件指示的。
当RxA线路无效时,前端状态机46返回其初始状态。它在现场总线分段12上的下一次有效之前(即在RxA处再次提供载波检测信号之前)保持在此初始状态中。
过滤电路用于基础设备,以减少加载在对于设备不重要的消息上的IRQ。相反地,配置作为LAS的设备必须接收分段上的所有消息,并因此必然过滤被禁止。当过滤被禁止时,所有接收到的消息将被存储在接收FIFO存储器50中,并将被传递至寄存器60然后至CPU 30。SOMf是对于接收到的已过滤DLPDU的消息开始信号。它发生在前端状态机46已经确定已经对接收消息检测到足够的信息以确定输入的消息将被过滤的时候。
由于可以过滤,则不将被过滤的消息存储在接收FIFO存储器50中。对于已过滤的消息,将不产生SOMf,因此将不发生事件或IRQ。
已过滤的消息的例子有返回令牌(RT)、空闲、请求间隔(RI),并且总是丢弃探测响应(PR)DLPDU消息。根据帧控制(FC)字节来识别这些消息。如果消息中的目标地址与设备地址匹配,则接收传递令牌(PT)和探测节点(PN)消息。如果消息中的目标地址与设备地址不匹配,则丢弃PT和PN消息。
基于FC字节和根据目标地址来过滤消息字节的能力通过限制CPU30必须处理的中断请求(IRQ)的数量,减少了软件中断的加载。
前端状态机46和接收FIFO存储器50用于解析来自MAU38的串行数据帧。CPU 30从接收FIFO存储器50读取数据,并将其放置在它的本地存储器空间以对接收DLPDU进行解码。
接收FIFO存储器50具有8比特宽的63字节。接收FIFO存储器50将存储多达3个完整的接收消息的所有DLPDU字节(总体多达63字节)。前端状态机46将来自已过滤RxS信号的串联数据流解码,并将其转换为8比特并行格式字节。在形成该字节之后,前端状态机46创建写入脉冲,其将已编码数据存储在写入指针所指向的位置。在写入操作完成之后,使写入指针递增以存储下一个DLPDU字节。
CPU 30通过读取指针与接收FIFO存储器50连接。任何来自寄存器60的接收FIFO寄存器(其包含实际的DLPDU数据)的读取将来自接收FIFO存储器50的8比特数据立即放置在供CPU 30读取的数据总线上。在读取操作完成之后,使读取指针递增。在接收FIFO存储器50为空之前可以继续上述操作。
为了防止在接收FIFO存储器50中发生上溢情况,在寄存器60中有这样一个寄存器,其可以在接收FIFO存储器50接近满的情况下产生IRQ。用于产生IRQ的阈值是可配置的。
发送状态机52读取将从发送FIFO存储器54发送来的DLPDU数据。自动插入前同步、SD和ED。为了启动发送状态机52,可选地需要激活interPDU事件触发器或下一调度事件触发器,以开始发送操作。发送状态机52跟踪已经发送的字节的数量。如果存在下溢或发送计数破坏(violation),则将指示错误状况。可选地,可以自动将FCS作为DLPDU的最后两个字节进行发送。
发送状态机52对通过TxS线路上的接口电路70提供给MAU 38的曼彻斯特串行数据进行编码,以提供在现场总线分段12上。发送状态机52还在发送第一前同步的第一比特的时刻维护发送使能(TxE)线路,直到ED的最后字节出现。当发送状态机52维护TxE线路时,它还产生发送开始(SOT)事件信号,并在TxE线路返回至无效时产生发送结束(EOT)事件信号。
发送FIFO存储器54将存储待发送消息所需要的所有DLPDU字节,总体多达63字节。可以设定可配置的阈值,以在发送FIFO存储器54几乎空的时候发送IRQ来通知CPU 30。这样,如果需要发送多于63字节,则通知CPU 30以便其可以向发送FIFO存储器54添加更多的数据。在所有DLPDU字节被写入之前继续上述操作。CPU 30使用写入指针来向发送FIFO存储器54写入,而发送状态机52使用读取指针从发送FIFO存储器54读取字节。
通信控制器36作用于事件,并必须能够处理多个事件的发生。事件的例子包括SOM、EOM、或接收消息的EOA或发送消息的EOT。接收/发送事件管理器58管理总体上多达3个接收消息和一个发送消息所发生的所有事件。
如图4所示,接收/发送管理器58包括三个接收消息对象,标为rcvmsg1、rcvmsg2和rcvmsg3,以及一个发送消息对象,标为xmtmsg。此外,接收/发送管理器58包括消息队列管理器(MsgQmngr)80、事件管理器(EventMngr)82、发送管理器(xmtmngr)84和事件MUX86。
接收FIFO存储器50能够存储多达三个完整的接收消息的DLPDU字节。这三个消息的每一个具有相应的对象,即rcvmsg1、rcvmsg2和rcvmsg3。每个对象包含其相应接收消息发生的所有IRQ的状态、消息错误和时间记录。这些信息构成该消息的事件数据。
将发送消息发生的所有IRQ的状态、消息错误和时间记录存储在xmtmsg对象中。所存储的信息构成发送消息的事件数据。
MsgQmngr 80控制三个接收消息的选择和使能。一次只能有一个rcvmsg对象是有效的。MsgQmngr 80使事件与有效的接收消息相关联。在CPU 30已确认其它三个消息之前接收到第四个消息的情况下,MsgQmngr 80在读取或确认事件数据之前,禁止接收其它任何消息。EventMngr 82管理事件发生的顺序。随着事件发生,EventMngr 82给每个事件分配一个发生顺序标识(OOO_ID)。这使得CPU 30能够按照事件发生的顺序一次读取一个事件。CPU 30必须在每个事件发生时确认每个事件。在已经确认第一事件之后,接下来的事件将就绪以供CPU 30读取。
Xmtmngr 84监视interPDU触发器(InterPDU_trig)和下一调度事件触发器,并将发送触发器命令(Xmt_Trig_Cmd)引入到发送状态机52以开始发送下一个消息。
通信控制器36包括寄存器60。这些标为REG00—REG3F的寄存器可以由CPU 30读取和写入。通过寄存器60还可以操纵中断(IRQ)。
时钟生成电路62接收外部时钟,并且或者使用该时钟或者使用来自其内部振荡器64的时钟,来生成通信控制器36所需的所有时钟信号。
时钟生成电路62优选地具有及时地调整其节点定时器和其八位组定时器时钟速率的能力。这使得通信控制器能够使其节点时间与链路地址调度器(LAS 20)同步。八位组时间用于内部消息的定时,而节点时间用于在现场总线分段12上共享公共的时间感。
定时器68分为两组,代表不同的时间感。被称为分段定时器的第一组定时器在来自CPU 30的软件控制下,基于由时钟生成电路62产生的可变的时钟速率而运行。被称为消息定时器的第二组定时器以固定速率时钟运行。
在通信控制器36中存在两个分段定时器。第一分段定时器是节点定时器,其具有31.25μsec(32kHz)的时钟报时速率。节点定时器用于实现下一功能块执行时间、链路调度时间V(LST)和数据链路时间(DL—Time)。
第二分段定时器是八位组定时器,其具有2μsec(500kHz)的时钟报时速率。八位组定时器用于下一调度事件触发器(其与发送状态机52连接以便在特定时间发送消息)。当调整时钟速率时,节点和八位组定时器将以相同的速率相互跟踪。这是因为驱动节点定时器和八位组定时器的时钟信号是由公共可变时钟得到的。
基于现场总线消息事件(发送和接收)而开始和停止消息定时器。消息定时器包括无效定时器、interPDU延迟定时器、接收应答定时器、发送应答定时器和代表令牌(delegated token)恢复定时器。
无效定时器是递减计数器。它用于测量两个PhPDU之间的空闲时间。无效定时器作用于已过滤的和未过滤的接收消息以及现场总线分段12上的任意发送消息。当被命令开始时,无效定时器每16μsec递减一次。无效定时器的开始点是根据载入寄存器60之一的可配置预加载设置点确定的。通过与接收或发送消息相关的事件可以取消或停止无效定时器的递减。如果定时器达到0或者期满,将生成IRQ。在确认IRQ之前无效定时器将保持为0。如果IRQ保持为高,则在确认IRQ之前将不会发生影响无效定时器的附加消息事件。
interPDU延迟定时器是递增计数器。它用于与V(MID)阈值寄存器结合以实现现场总线V(MID)最小—interPDU延迟,其确保在发送或接收消息之间的无传输的最小持续时间(或间隙时间)。interPDU定时器受到现场总线分段上的已过滤的和未过滤的接收消息、以及任意发送消息的作用。当不存在现场总线活动时,interPDU定时器将持续递增。如果计数值等于或超过寄存器60中所存储的预定值,则interPDU_trig信号将变得有效。该信号用于确定已经满足了interPDU延迟时间。信号与xmtmngr 84相连以给出发送DLPDU可以开始的命令。
接收应答定时器是递减计数器。它用于订阅设备以监视对强制数据(CD)DLPDU的及时响应。它还由设备用于在设备进入链路上时监视其自己的地址。当被命令开始时,接收应答定时器每16μsec递减一次。接收应答定时器的开始点是根据载入寄存器60之一的可配置预加载16比特设置点确定的。通过SOM或SOT事件,可以取消或停止接收应答定时器的递减。如果接收应答定时器达到0或者期满,将生成IRQ。接收应答定时器需要启用IRQ以生成IRQ。在确认IRQ之前接收应答定时器将保持为0。如果IRQ保持为高,则在确认IRQ之前将不会发生会影响接收应答定时器的附加消息事件。
发送应答定时器是递减计数器。它使得设备能够在发送若干DLPDU(例如强制数据、传递令牌)之一后监视及时响应。当被命令开始时,发送应答定时器每16μsec递减一次。发送应答定时器的开始点是根据载入寄存器60之一的可配置预加载设置点确定的。通过除了探测节点(PN)外的任何发送DLPDU的SOM事件或SOT事件,可以取消或停止发送应答定时器的递减。如果发送应答定时器达到0或者期满,将生成IRQ。在确认IRQ之前发送应答定时器将保持为0。如果IRQ保持为高,则在确认IRQ之前将不会发生会影响发送应答定时器的附加消息事件。
代表令牌恢复定时器是递减计数器。它用于监视从另一个设备接收代表令牌的空闲时间。代表令牌恢复定时器作用于已过滤的和未过滤的接收消息以及现场总线分段12上的任意发送消息。当被命令开始时,代表令牌恢复定时器每16μsec递减一次。代表令牌恢复定时器的开始点是根据载入寄存器60之一的可配置预加载设置点确定的。通过与接收或发送消息相关的事件,可以取消或停止代表令牌恢复定时器的递减。如果代表令牌恢复定时器达到0或者期满,将生成IRQ。在确认IRQ之前发送反馈定时器将保持为0。如果IRQ保持为高,则在确认IRQ之前将不会发生会影响代表令牌恢复定时器的附加消息事件。
事件的发生顺序管理
典型地,软件负责响应消息接收事件和定时器期满事件。传统系统中的基本困难在于在硬件中发生事件和软件能够意识到事件并对其进行处理之间的时间差(即软件等待时间(latency))。当在软件能够响应之前发生两个或更多个事件时,所述困难会进一步提高。在这种情况下,软件可能不能够确定哪个事件是最先发生的。这会引起问题,因为通信协议可以根据排序、特别是在消息接收和定时器期满事件之间的排序,来规定不同的活动过程。本发明允许软件在存在软件等待时间的情况下识别接收消息和定时器期满事件之间的发生顺序。
图5是用于处理由MAU 38所接收的或者从CPU 30发送的消息的接收/发送事件管理器58的功能方框图。接收/发送事件管理器58包括消息队列管理(MsgQmngr)80、事件MUX 86、已接收消息对象队列100和多路复用器102、104、106和108。,MsgQmngr 80经由MUX 102连接到接收消息对象rcvmsg1、rcvmsg2和rcvmsg3。MsgQmngr 80经由信号RcvMsgID(1:0)向事件管理器82提供输出。接收消息对象队列100包括用于三个标为rcvmsg1、rcvmsg2和rcvmsg3的接收消息对象和一个标为xmtmsg的发送消息信息对象的空间。事件管理器82向接收消息对象rcvmsg1、rcvmsg2和rcvmsg3提供当前发生顺序标识(OOO_IDcur)。事件管理器82还向事件MUX 86和MUX 104提供选择输入EventMUX_sel(2:0)。多路复用器106和108在本发明的范围之外,但示于图5中以说明接收/发送事件管理器58的各个组件之间的连接。基于来自寄存器60的寄存器Reg15的输入,MUX 106向接收消息对象和MUX 108提供输出,而MUX 108的输出向MsgQmngr 80提供输入。MUX 106的输出还经由OR门110向MsgQmngr 80提供输入。图5中还示出了寄存器的一部分(Reg15—Reg1F),用于存储与有效消息的接收和发送消息信息对象相关的事件数据。为了简明,从图5中略去图4中的接收/发送事件管理器58中所示的发送管理器84。
接收/发送事件管理器58允许CPU 30依次读取与发生的各个消息相关联的接收消息对象(rcvmsg1、rcvmsg2和rcvmsg3)。经由寄存器60,特别是在寄存器Reg15至Reg1F中,CPU 30可读取有效消息的接收消息对象。在寄存器Reg 16、Reg 17和Reg 18中,MAU 38可获得有效消息的发送消息对象以供发送。每个接收消息对象包含消息IRQ、错误、状态分类以及与接收FIFO存储器50有关的信息和数据。
事件管理器82管理消息事件的发生顺序。当事件发生时,事件管理器82给每个事件分配发生顺序标识(OOO_ID)。这使得CPU 30以事件发生的顺序一次读取一个事件。在事件发生时,CPU 30必须确认每个事件。在已经确认第一事件之后,接下来的事件将就绪以供CPU 30读取。
图6是用于管理通信控制器36中事件发生顺序的事件管理器(EventMngr)82的功能方框图。事件管理器82包括事件队列先入先出存储器(EventQ_FIFO)120、OOO_ID计数器122、事件队列(EventQ)读取指针124、EventQ写入指针126、EventQ指针比较逻辑128、指针控制逻辑130和MUX选择逻辑132。图6中还示出了定时器OOO_ID寄存器140,其包括接收应答(RcvRply)OOO_ID寄存器140a和代表令牌恢复(Delg Tkn Rcvy)OOO_ID寄存器140d。
指针控制逻辑130控制EventQ读取指针124和EventQ写入指针126。只要EventQ_FIFO 120不满,任何SOMf或EOT_IRQ事件的发生都将增加EventQ写入指针126。同样地,只要EventQ_FIFO 120不空,任何由软件命令的Event_Ack都将增加EventQ读取指针124。
EventQ指针比较逻辑128接收EventQ读取指针124和EventQ写入指针126的当前位置作为输入,并输出EventQ_empty和EventQ_full。EventQ指针比较逻辑128确定EventQ_empty和EventQ_full信号二者的状态。如果EventQ读取指针124和EventQ写入指针126彼此相等,则将激活EventQ_empty信号。如果EventQ读取指针124和EventQ写入指针126之间的差等于7(“111”),则EventQ_FIFO 120为满,并且激活EventQ_full信号。应当注意,EventQ_FIFO 120可能从来不会变满,因为MsgQmngr 80将等待的接收消息事件的数量限制为3,并且一次只能有一个发送消息事件等待决定,因此使得最多只有4个事件在EventQ_FIFO 120中。
当通信控制器36中发生事件时(即接收或发送消息),由EventMngr82给每个事件分配OOO_ID。当发生事件时,由OOO_ID计数器122的值确定被分配给特定事件的OOO_ID。当给进程控制系统10加电时,将OOO_ID计数器122初始化为“000”。OOO_ID计数器122增加,当事件发生达到“111”的值时,在事件发生之后,点OOO_ID计数器122返回(即环形)至“000”。
EventQ_FIFO 120是2比特-8 FIFO存储器,用于按照事件在通信控制器36中发生的顺序存储每个消息的事件标识符信息。EventQ读取指针124和EventQ写入指针126指向EventQ_FIFO 120中的位置,并且保持由通信控制器36处理的事件的排序。EventQ写入指针126的位置是OOO_ID计数器122的当前值(OOO_Idcur(2:0))。EventQ读取指针124的位置是要由CPU 30处理的下一个事件。
当进程控制系统10有效时,EventMngr 82从接收消息接收NewMsg信号(SOMf脉冲)或从发送消息接收EOT_IRQ信号。如果检测到SOMf信号,则将RcvMsgID(1:0)的当前值存储在EventQ_FIFO 120中由EventQ写入指针126指向的位置。随后使OOO_ID计数器122递增(即,使EventQ写入指针126前进到EventQ_FIFO 120中的下一位置)。RcvMsgID(1:0)的值取决于在接收消息对象队列100中可获得的下一接收消息对象(如由MsgQmngr 80保持)。因此,如果rcvmsg1是下一个可获得的消息对象,则RcvMsgID(1:0)具有值“00”,如果rcvmsg2是下一个可获得的消息对象,则RcvMsgID(1:0)具有值“01”,并且如果rcvmsg3是下一个可获得的消息对象,则RcvMsgID(1:0)具有值“10”。如果出现EOT_IRQ信号,则将值“11”存储在EventQ_FIFO 120中由EventQ写入指针126指向的位置,并且使OOO_ID计数器122递增。将RcvMsgID(1:0)的值或EOT_IRQ事件的值“11”指定为事件标识符。
当要由软件处理或读取寄存器60的寄存器Reg16-Reg1F中的事件数据时,将存储在EventQ_FIFO 120中的事件标识符和EventQ_empty信号发送至MUX选择逻辑132。从MUX选择逻辑132,形成EventMUX_sel(2:0)信号。将所述EventMUX_sel(2:0)信号输出至事件管理器82,以供事件MUX 86选择控制信号。
如果EventQ_empty信号为低(即有两个或更多个事件排列在EventQ_FIFO 120中),则MUX 104向Reg15(1:0)提供Event_Type(1:0)信号。Event_Type(1:0)对于接收消息为“01”,对于发送消息为“10”。事件MUX 86还将由EventQ读取指针124指向的OOO_ID值多路复用到Reg15(6:4)。事件MUX 86还将来自与EventMUX_sel(2:0)信号相对应的消息信息对象的事件数据(例如消息IRQ、错误和状态信息)多路复用到Reg16—Reg1F以供软件处理。在软件已经读取事件数据之后,由软件向EventMngr 82提交事件确认信号(Event_Ack脉冲)。Event_Ack信号使EventQ_FIFO 120中的EventQ读取指针124的位置递增。
如果EventQ_empty信号为高,由MUX 104将“00”多路复用至Reg15(1:0),向软件指示没有事件可供处理。事件MUX 86同时将由EventQ读取指针124指向的当前OOO_ID值多路复用至Reg15(6:4)。如果EventQ_FIFO 120为空(EventQ_empty=1),则指针控制逻辑130将防止任何其它Event_Ack信号使EventQ读取指针124递增。
定时器68(如图4所示和所述)包括与事件的先后顺序相关联的四个定时器。这些定时器被认为是发生顺序(OOO)定时器,其包括接收应答定时器和发送应答定时器、无效定时器和代表令牌定时器。当任意一个OOO定时器期满时,专为该定时器生成IRQ。四个OOO定时器的定时器期满IRQ被经过逻辑OR门发送,而该OR门的输出存储在Reg15的比特2中(如图5所示)。因此,当没有OOO定时器期满时,在Reg15(2)中保存“0”。当任何一个OOO定时器期满时,在Reg15(2)中保存“1”。这样,当读取寄存器Reg15以处理EventQ_FIFO 120中的下一个事件时,软件能够确定是否已经发生定时器期满事件。
OOO定时器是递减定时器,每一个定时器都与寄存器60中的定时器OOO_ID寄存器140相关联。特别地,接收应答定时器与Rcv ReplyOOO_ID寄存器140a相关联,发送应答定时器与Xmt Reply OOO_ID寄存器140b相关联,无效定时器与无效OOO_ID寄存器140c相关联,而且代表令牌定时器与Delg Tkn Rcvy OOO_ID寄存器140d相关联。
当OOO定时器有效时(即递减),将“000”保存在与OOO定时器相关的定时器OOO_ID寄存器的比特6至4中。如果OOO定时器期满,则对于已期满的定时器发生IRQ,并且将定时器期满时的OOO_ID计数器122的值(OOO_IDcur(2:0))复制到与OOO定时器相关的定时器OOO_ID寄存器的比特6至4中。例如,如果无效定时器期满,则将OOO_IDcur(2:0)的值复制到无效OOO_ID寄存器140c的比特6至4中。
如上所述,通信协议可以根据消息和定时器期满事件之间的排序,规定不同的活动过程。在软件能够响应之前发生消息事件和定时器期满事件二者的情况下,软件查阅复制到已期满定时器的定时器OOO_ID寄存器140的OOO_ID的值以及EventQ_FIFO 120中的与消息事件相关的OOO_ID值,以确定是消息事件还是定时器期满事件先发生的。如果已期满定时器的定时器OOO_ID寄存器140的OOO_ID的值和与消息事件相关的OOO_ID值相同,则定时器在将OOO_ID计数器122分配给消息事件之前期满。也就是,定时器在消息事件发生之前期满。另一方面,如果已期满定时器的定时器OOO_ID寄存器140的OOO_ID的值和与消息事件相关的OOO_ID值不相同,则定时器在将OOO_ID计数器122分配给消息事件之后期满。也就是,定时器在消息事件发生之后期满。
总而言之,典型地,软件负责响应消息接收事件和定时器期满事件。传统系统中的基本困难在于硬件中发生事件和软件能够意识到事件并对其进行处理之间的时间差。本发明是一种用在设备中的通信控制器,用于保持从通信介质接收到的和发送到通信介质的事件的发生顺序。所述通信控制器包括发生顺序标识(OOO_ID)计数器和事件队列存储器。事件队列存储器顺序地存储由通信控制器所处理的每个事件的事件类型标识符。所述OOO_ID计数器提供OOO_ID以与每个事件类型标识符相关联。在优选实施例中,通信控制器还包括多个定时器OOO_ID寄存器。在通信控制器中,每个定时器OOO_ID寄存器与发生顺序(OOO)定时器相关联。当OOO定时器之一期满时,将来自OOO_ID计数器的OOO_ID当前值存储在其相关的定时器OOO_ID寄存器中。然后,通过将事件的OOO_ID值与定时器OOO_ID寄存器中所存储的OOO_ID进行比较,软件确定事件和OOO定时器的期满之间的发生顺序。
虽然已经参照优选实施例描述了本发明,但是本领域技术人员将认识到可以在形式和细节上进行改变,而不脱离本发明的精神和范围。

Claims (20)

1.一种设备,用于在通信介质上通信,所述设备包括:
介质连接单元(MAU),用于在通信介质上接收和发送消息;
中央处理器(CPU),用于处理接收消息中所包含的数据和创建将包含在发送消息中的数据;和
通信控制器,用于连接在MAU和CPU之间,所述通信控制器用于处理从通信介质接收的事件或发送到通信介质的事件,并且包括发生顺序标识(OOO_ID)计数器和事件队列存储器,所述事件队列存储器用于顺序地存储每个事件的事件类型标识符,所述OOO_ID计数器用于提供与每个事件类型标识符相关联的OOO_ID。
2.如权利要求1所述的设备,其中当从通信介质接收到事件或向通信介质发送事件时,OOO_ID计数器递增。
3.如权利要求1所述的设备,其中通信控制器还包括:
多个发生顺序(OOO)定时器;和
多个定时器OOO_ID寄存器,每个定时器OOO_ID寄存器与多个OOO定时器之一相关,其中当OOO定时器期满时,将来自OOO_ID计数器的当前OOO_ID存储在其相关的定时器OOO_ID寄存器中。
4.如权利要求3所述的设备,其中CPU通过将与事件相关的OOO_ID与同期满的OOD定时器相关的定时器OOO_ID寄存器中所存储的OOO_ID进行比较,确定事件和OOO定时器的期满之间的发生顺序。
5.如权利要求3所述的设备,其中所述通信控制器还包括:
寄存器,其存储与正在由CPU处理的有效事件相关的信息,所述信息包括与有效事件相关的OOO_ID、有效事件的事件类型标识符和用于指示多个OOO定时器之一是否已经期满的OOO定时器状态比特。
6.如权利要求3所述的设备,其中所述OOO定时器包括接收应答定时器、发送应答定时器、无效定时器和代表令牌恢复定时器。
7.如权利要求1所述的设备,其中所述事件包括从通信介质接收到消息和向通信介质发送消息。
8.一种通信控制器,用于保持进程控制系统中的事件发生顺序,所述通信控制器包括:
先入先出(FIFO)存储器,用于针对每个事件顺序地存储事件类型标识符;和
发生顺序标识(OOO_ID)计数器,用于将OOO_ID与每个事件类型标识符相关联。
9.如权利要求8所述的通信控制器,其中当前OOO_ID由与OOO_ID计数器相关的事件队列写入指针所保持。
10.如权利要求9所述的通信控制器,其中所述事件队列写入指针在通信控制器中发生事件时递增。
11.如权利要求10所述的通信控制器,还包括:
用于当FIFO存储器为空时防止事件队列写入指针递增的装置。
12.如权利要求8所述的通信控制器,还包括:
多个发生顺序(OOO)定时器;和
多个定时器OOO_ID寄存器,每个定时器OOO_ID寄存器与多个OOO定时器之一相关,其中,当OOO定时器期满时,将当前OOO_ID计数器的值存储在其相关的定时器OOO_ID寄存器中。
13.如权利要求12所述的通信控制器,还包括:
有效事件寄存器,其存储与正由软件处理的有效事件相关的信息,所述信息包括与有效事件相关的OOO_ID、有效事件的事件类型标识符和用于指示多个OOO定时器之一是否已经期满的OOO定时器状态比特。
14.如权利要求13所述的通信控制器,其中存储在有效事件寄存器中的OOO_ID和存储在与已期满OOO定时器相关的定时器OOO_ID寄存器中的OOO_ID在有效事件和OOO定时器期满之间建立发生顺序。
15.如权利要求12所述的通信控制器,其中OOO定时器包括接收应答定时器、发送应答定时器、无效定时器和代表令牌恢复定时器。
16.一种用于确定通信设备中的事件发生顺序的方法,所述方法包括:
将每个事件的事件类型标识符顺序地存储在先入先出(FIFO)存储器中;
将OOO_ID计数器的当前值和事件类型标识符相关联;
提供多个发生顺序(OOO)定时器和多个定时器OOO_ID寄存器,每个OOO_ID寄存器与多个OOO定时器之一相关联;
当OOO_ID计数器相关的OOO定时器期满时,将OOO_ID计数器的当前值存储在OOO_ID寄存器中;和
将与数据相关的OOO_ID和存储在与已期满OOO定时器相关的定时器OOO_ID寄存器中的OOO_ID进行比较。
17.如权利要求16所述的方法,其中,如果与事件相关的OOO_ID等于存储在定时器OOO_ID寄存器中的OOO_ID,则OOO定时器是在事件发生之前期满的,并且如果与事件相关的OOO_ID不等于存储在定时器OOO_ID寄存器中的OOO_ID,则OOO定时器是在事件发生之后期满的。
18.如权利要求16所述的方法,还包括:
当通信设备中发生事件时使OOO_ID计数器递增。
19.如权利要求18所述的方法,其中使OOO_ID计数器递增包括:使事件队列写入指针前进到FIFO存储器中的下一位置。
20.如权利要求16所述的方法,其中所述事件包括由通信设备从通信介质接收消息和向通信介质发送消息。
CN2005800376930A 2004-09-08 2005-08-15 网络上事件发生顺序的管理 Active CN101438245B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/936,629 US7779163B2 (en) 2004-09-08 2004-09-08 Management of event order of occurrence on a network
US10/936,629 2004-09-08
PCT/US2005/028995 WO2006028662A2 (en) 2004-09-08 2005-08-15 Management of event order of occurrence on a network

Publications (2)

Publication Number Publication Date
CN101438245A true CN101438245A (zh) 2009-05-20
CN101438245B CN101438245B (zh) 2011-01-26

Family

ID=36036806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800376930A Active CN101438245B (zh) 2004-09-08 2005-08-15 网络上事件发生顺序的管理

Country Status (5)

Country Link
US (1) US7779163B2 (zh)
EP (1) EP1810138B1 (zh)
JP (1) JP5006197B2 (zh)
CN (1) CN101438245B (zh)
WO (1) WO2006028662A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618432A (zh) * 2014-12-30 2015-05-13 北京红马传媒文化发展有限公司 一种事件发送与接收的处理方法和处理系统
CN107615711A (zh) * 2015-06-24 2018-01-19 英特尔公司 用于事件传播的系统
CN108351829A (zh) * 2015-09-25 2018-07-31 英特尔公司 用于输入/输出计算资源控制的系统和方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590519B2 (en) * 2005-11-08 2009-09-15 Microsoft Corporation Distributed system simulation: slow message relaxation
DE102011107323A1 (de) * 2011-07-06 2013-01-10 Abb Ag Verfahren zur Übertragung eines Prozessabbildes über ein Gateway-Gerät
KR101626936B1 (ko) * 2014-10-10 2016-06-02 한국과학기술연구원 끝단이 날카로운 탄소나노섬유 및 팔라듐 촉매를 이용한 탄소나노섬유의 성장방법
KR102522154B1 (ko) * 2016-03-15 2023-04-17 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 이의 동작 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016221A (en) * 1989-12-01 1991-05-14 National Semiconductor Corporation First-in, first-out (FIFO) memory with variable commit point
US5978578A (en) * 1997-01-30 1999-11-02 Azarya; Arnon Openbus system for control automation networks
US6564268B1 (en) * 1999-03-17 2003-05-13 Rosemount Inc. Fieldbus message queuing method and apparatus
CN1297192A (zh) * 2000-12-26 2001-05-30 北京和利时系统工程股份有限公司 现场总线外围设备从站的软件实现方法
CN1217264C (zh) * 2000-12-26 2005-08-31 北京和利时系统工程股份有限公司 一种构造现场总线分散外围设备主站的方法
US6885987B2 (en) * 2001-02-09 2005-04-26 Fastmobile, Inc. Method and apparatus for encoding and decoding pause information
US7389336B2 (en) * 2003-01-24 2008-06-17 Microsoft Corporation Pacing network packet transmission using at least partially uncorrelated network events
US20060075093A1 (en) * 2004-10-05 2006-04-06 Enterasys Networks, Inc. Using flow metric events to control network operation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618432A (zh) * 2014-12-30 2015-05-13 北京红马传媒文化发展有限公司 一种事件发送与接收的处理方法和处理系统
CN107615711A (zh) * 2015-06-24 2018-01-19 英特尔公司 用于事件传播的系统
CN107615711B (zh) * 2015-06-24 2023-09-12 英特尔公司 用于事件传播的系统
CN108351829A (zh) * 2015-09-25 2018-07-31 英特尔公司 用于输入/输出计算资源控制的系统和方法

Also Published As

Publication number Publication date
US20060080675A1 (en) 2006-04-13
CN101438245B (zh) 2011-01-26
EP1810138B1 (en) 2012-11-14
EP1810138A4 (en) 2011-01-12
JP5006197B2 (ja) 2012-08-22
US7779163B2 (en) 2010-08-17
JP2008516471A (ja) 2008-05-15
EP1810138A2 (en) 2007-07-25
WO2006028662A3 (en) 2009-05-07
WO2006028662A2 (en) 2006-03-16

Similar Documents

Publication Publication Date Title
CN100557582C (zh) 在消息接收期间阻止发送的系统、方法和设备
CN101390072B (zh) 具有自动时间加戳的通信控制器
CN101124560B (zh) 发送调度和非调度消息的设备及其定时和控制方法
CN101438245B (zh) 网络上事件发生顺序的管理
CN101052938B (zh) 低等待时间的数据分组的接收和处理
US8514065B2 (en) Method and device for waking users of a bus system, and corresponding users
CN101707954B (zh) 有效及可靠地传输时间触发以太网信息的通信方法及设备
RU2573237C2 (ru) Способ и устройство для активизации абонентов шинной системы и соответствующий абонент
EP0622711B1 (en) Digital communication network data transmission method and apparatus
CN101052937B (zh) 从数据队列中丢弃部分接收的消息
CN115065575A (zh) 基于can总线控制器的数据传输系统及电子设备
CN100578971C (zh) 通过通用串行总线通道进行传输的装置及方法
CN109151316A (zh) 一种基于fpga的多工业相机数据调度装置
Divia et al. Data Format over the ALICE DDL
JPH04270525A (ja) デジタル・データ送信システム
JPH06105921B2 (ja) 通信制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant