国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      從數(shù)據(jù)隊(duì)列中丟棄部分接收的消息的制作方法

      文檔序號(hào):6552934閱讀:367來源:國(guó)知局
      專利名稱:從數(shù)據(jù)隊(duì)列中丟棄部分接收的消息的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于進(jìn)程控制系統(tǒng)的現(xiàn)場(chǎng)儀表和其它設(shè)備中的通信控制器。特別地,本發(fā)明是一種用于從接收數(shù)據(jù)存儲(chǔ)器中丟棄部分接收的消息的系統(tǒng)和方法。
      背景技術(shù)
      在典型的工業(yè)工廠中,采用分布式控制系統(tǒng)(DCS)來控制在工廠執(zhí)行的許多工業(yè)進(jìn)程。典型地,該工廠具有集中式控制室,該控制室具有帶有如計(jì)算領(lǐng)域中已知的用戶(I/O)、盤I/O和其它外設(shè)的計(jì)算機(jī)系統(tǒng)。與計(jì)算系統(tǒng)相連的是控制器和進(jìn)程I/O子系統(tǒng)。
      所述進(jìn)程I/O子系統(tǒng)包括多個(gè)I/O端口,I/O端口連接至遍及工廠的各種現(xiàn)場(chǎng)設(shè)備??刂祁I(lǐng)域公知的現(xiàn)場(chǎng)設(shè)備包括各種類型的分析儀器、硅壓力傳感器、電容性壓力傳感器、電阻性溫度探測(cè)器、熱電偶、應(yīng)變計(jì)、限位開關(guān)、通/斷開關(guān)、流量變送器、壓力變送器、電容電平開關(guān)、磅秤、傳感器、閥門定位器、閥門控制器、執(zhí)行器、螺線管和指示燈。如這里所使用的,該術(shù)語(yǔ)“現(xiàn)場(chǎng)設(shè)備”涵蓋了這些設(shè)備以及在分布式控制系統(tǒng)中執(zhí)行功能的控制領(lǐng)域公知的任何其它設(shè)備。
      傳統(tǒng)上,模擬現(xiàn)場(chǎng)設(shè)備通過二線雙絞線電流環(huán)路連接至控制室,且各設(shè)備由單獨(dú)的二線雙絞線連接至控制室。模擬現(xiàn)場(chǎng)設(shè)備能夠在指定范圍內(nèi)響應(yīng)或發(fā)送電信號(hào)。在典型的結(jié)構(gòu)中,通常在雙絞線的二線之間具有大約20-25伏特的電壓差,而流經(jīng)環(huán)路的電流為4-20毫安。將信號(hào)發(fā)送至控制室的模擬現(xiàn)場(chǎng)設(shè)備調(diào)節(jié)流經(jīng)電流環(huán)路的電流,而且該電流與所感應(yīng)的進(jìn)程變量成比例。另一方面,在控制室的控制下執(zhí)行操作的模擬現(xiàn)場(chǎng)設(shè)備由經(jīng)過環(huán)路的電流的強(qiáng)度所控制,該電流強(qiáng)度由受控制器所控制的進(jìn)程I/O端口調(diào)節(jié)。傳統(tǒng)的具有有源電子器件的二線模擬設(shè)備也可以從環(huán)路接收高達(dá)40毫瓦的功率。典型地,使用四線將需要更高功率的模擬現(xiàn)場(chǎng)設(shè)備連接至控制室,四線中的二線向設(shè)備提供能量。正如二線設(shè)備一樣,作為四線設(shè)備的這類設(shè)備在本領(lǐng)域中是已知的而且功率不受限制。
      相反,傳統(tǒng)的分散現(xiàn)場(chǎng)設(shè)備發(fā)送或響應(yīng)二進(jìn)制信號(hào)。典型地,分立的現(xiàn)場(chǎng)設(shè)備以24伏特信號(hào)(或直流或交流)、110或240伏特交流信號(hào)或5伏特直流信號(hào)運(yùn)行。當(dāng)然,可以設(shè)計(jì)分立設(shè)備,使其根據(jù)特殊控制環(huán)境所需的任何電力規(guī)范而運(yùn)行。分立輸入現(xiàn)場(chǎng)設(shè)備僅僅是一個(gè)開關(guān),其接通或中斷與控制室的連接,而分立輸出現(xiàn)場(chǎng)設(shè)備將根據(jù)來自控制室的信號(hào)的存在或不存在而進(jìn)行操作。
      從歷史上看,大多數(shù)傳統(tǒng)的現(xiàn)場(chǎng)設(shè)備已具有直接與現(xiàn)場(chǎng)設(shè)備所執(zhí)行的主要功能相關(guān)聯(lián)的信號(hào)輸入或信號(hào)輸出。例如,由傳統(tǒng)的模擬電阻溫度傳感器所實(shí)現(xiàn)的唯一功能是通過調(diào)節(jié)流經(jīng)二線雙絞線的電流來傳送溫度,而由傳統(tǒng)的模擬閥門定位器所實(shí)現(xiàn)的唯一功能是基于流經(jīng)二線雙絞線的電流強(qiáng)度在打開和關(guān)閉位置之間定位閥門。
      最近,將數(shù)字?jǐn)?shù)據(jù)添加到電流環(huán)路上的混合系統(tǒng)已經(jīng)用在分布式控制系統(tǒng)中??刂萍夹g(shù)領(lǐng)域中已知的一種混合系統(tǒng)是高速可尋址遠(yuǎn)程傳感器(HART),其與Bell 202調(diào)制解調(diào)器的規(guī)范類似。該HART系統(tǒng)使用電流環(huán)路中的電流強(qiáng)度來感測(cè)進(jìn)程變量(如在傳統(tǒng)系統(tǒng)中一樣),并且還將數(shù)字載波信號(hào)添加到電流環(huán)路信號(hào)上。所述載波信號(hào)相對(duì)較慢,并且可以提供每秒大約2-3次更新的速率的二級(jí)進(jìn)程變量的更新。通常,數(shù)字載波信號(hào)用于發(fā)送二級(jí)和診斷信息,而不用于實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備的主控功能。載波信號(hào)上所提供的信息包括例如二級(jí)進(jìn)程變量、診斷信息(包括傳感器診斷、設(shè)備診斷、接線診斷和進(jìn)程診斷)、運(yùn)行溫度、傳感器溫度、校準(zhǔn)信息、設(shè)備ID號(hào)、結(jié)構(gòu)材料、配置或編程信息等等。因此,單個(gè)混合現(xiàn)場(chǎng)設(shè)備可以具有多個(gè)輸入和輸出變量,并且可以實(shí)現(xiàn)多種功能。
      HART是產(chǎn)業(yè)標(biāo)準(zhǔn)的非專有系統(tǒng)。然而,它相對(duì)較慢。產(chǎn)業(yè)中其它企業(yè)已經(jīng)開發(fā)了更快的專有數(shù)字發(fā)送方案,但是通常競(jìng)爭(zhēng)者不能使用或無(wú)法獲得這些方案。
      最近,由美國(guó)儀表協(xié)會(huì)(ISA)規(guī)定了一種更新的控制協(xié)議。這種新協(xié)議一般被稱為現(xiàn)場(chǎng)總線(Fieldbus)。現(xiàn)場(chǎng)總線是一種多分支串行數(shù)字雙向通信協(xié)議,旨在將分布式控制系統(tǒng)中的現(xiàn)場(chǎng)儀器和例如監(jiān)視和仿真單元的其它進(jìn)程設(shè)備連接。現(xiàn)場(chǎng)總線實(shí)現(xiàn)了比之前的進(jìn)程控制環(huán)路方法更強(qiáng)的數(shù)字通信,同時(shí)保持了向與現(xiàn)場(chǎng)總線環(huán)路相連的進(jìn)程設(shè)備供電并同時(shí)滿足固有的安全要求的能力。
      兩種合理標(biāo)準(zhǔn)化的工業(yè)現(xiàn)場(chǎng)總線協(xié)議是基礎(chǔ)現(xiàn)場(chǎng)總線(FoundationFieldbus)和現(xiàn)場(chǎng)總線(Profibus)?,F(xiàn)場(chǎng)總線協(xié)議的物理層由美國(guó)標(biāo)準(zhǔn)ISA-S50.02-1992的儀表協(xié)會(huì)規(guī)定,其草案2擴(kuò)展發(fā)表于1995年。該現(xiàn)場(chǎng)總線協(xié)議規(guī)定了兩個(gè)子協(xié)議。H1現(xiàn)場(chǎng)總線網(wǎng)絡(luò)以高達(dá)每秒31.25千比特(Kbps)的速率發(fā)送數(shù)據(jù)并向與該網(wǎng)絡(luò)相連的現(xiàn)場(chǎng)設(shè)備供電。H1物理層子協(xié)議由1992年9月批準(zhǔn)的ISA標(biāo)準(zhǔn)第二部分的11條所規(guī)定。H2現(xiàn)場(chǎng)總線網(wǎng)絡(luò)以高達(dá)每秒2.5兆比特(Mbps)的速率發(fā)送數(shù)據(jù),但是不向與該網(wǎng)絡(luò)相連的現(xiàn)場(chǎng)設(shè)備供電,而且具有冗余的傳輸介質(zhì)。
      現(xiàn)場(chǎng)總線具有用于對(duì)海量進(jìn)程數(shù)據(jù)進(jìn)行數(shù)字通信的顯著性能。因此,不斷地需要開發(fā)能夠?qū)F(xiàn)場(chǎng)總線通信效力最大化的進(jìn)程控制設(shè)備。

      發(fā)明內(nèi)容
      本發(fā)明是一種系統(tǒng)和方法,用于從能夠存儲(chǔ)多個(gè)消息的數(shù)據(jù)隊(duì)列中丟棄部分接收的消息。當(dāng)接收消息時(shí),將寫入指針的初始位置存儲(chǔ)在數(shù)據(jù)隊(duì)列中。然后從寫入指針的初始位置開始,將所述接收消息寫入數(shù)據(jù)隊(duì)列。當(dāng)將接收消息寫入數(shù)據(jù)隊(duì)列時(shí),寫入指針的位置遞增。如果要丟棄該消息,則使寫入指針返回至初始位置,以便由通信設(shè)備接收的下一消息將蓋寫接收消息。
      在優(yōu)選實(shí)施例中,數(shù)據(jù)隊(duì)列被存儲(chǔ)在通信控制器的接收數(shù)據(jù)存儲(chǔ)器中。所述通信控制器還包括多個(gè)接收消息對(duì)象。當(dāng)接收消息時(shí),激活接收消息對(duì)象,并且將接收數(shù)據(jù)存儲(chǔ)器中的寫入指針的初始位置存儲(chǔ)在有效接收消息對(duì)象中。然后,從寫入指針的初始位置處開始,將接收消息寫入接收數(shù)據(jù)存儲(chǔ)器。當(dāng)將消息寫入接收數(shù)據(jù)存儲(chǔ)器時(shí),遞增寫入指針位置。如果硬件設(shè)備確定將忽略消息,則禁用有效接收消息對(duì)象,因此防止再將消息寫入接收數(shù)據(jù)存儲(chǔ)器。然后優(yōu)選地,寫入指針返回至存儲(chǔ)在接收消息對(duì)象中的其初始位置。


      圖1是通信介質(zhì)分段上設(shè)備之間的數(shù)字通信的進(jìn)程控制系統(tǒng)的示意圖。
      圖2示出了圖1的進(jìn)程控制系統(tǒng)的設(shè)備之間的通信的消息格式。
      圖3是進(jìn)程控制系統(tǒng)的設(shè)備的方框圖。
      圖4是圖3的設(shè)備的通信控制器的功能方框圖。
      圖5是用于處理在通信介質(zhì)分段上所接收的數(shù)據(jù)分組的接收/發(fā)送事件管理器的功能方框圖。
      具體實(shí)施例方式
      進(jìn)程控制系統(tǒng)概況本發(fā)明涉及用于進(jìn)程控制系統(tǒng)的現(xiàn)場(chǎng)裝置和其它設(shè)備中的通信控制器。所述通信控制器的目的是執(zhí)行消息鏈路層處理和定時(shí)器管理的實(shí)際部分,并因此釋放應(yīng)用處理器或CPU以執(zhí)行其它功能。為了進(jìn)行詳細(xì)描述,將在使用基礎(chǔ)現(xiàn)場(chǎng)總線通信協(xié)議的系統(tǒng)的背景下描述所述通信控制器,雖然它具有對(duì)于基于分組的通信協(xié)議的一般適用性。
      所述現(xiàn)場(chǎng)總線物理層定義了以物理層協(xié)議數(shù)據(jù)單元(PhPDU)的格式對(duì)通信協(xié)議數(shù)據(jù)進(jìn)行發(fā)送和接收的物理裝置的電子特性。此外,現(xiàn)場(chǎng)總線物理層規(guī)定符號(hào)編碼、消息幀化和錯(cuò)誤檢測(cè)方法。ISA現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)定義了三種信號(hào)收發(fā)的速度和兩種連接模式。為了對(duì)此進(jìn)行描述,將在ISA S50.02標(biāo)準(zhǔn)第2部第11條中所定義的H1物理層的背景下描述本發(fā)明。該條涵蓋31.25Kbps、電壓模式、有線介質(zhì)和低功率選項(xiàng)。該選項(xiàng)使得連接至通信介質(zhì)的設(shè)備能夠從通信介質(zhì)接收它的操作功率。所述物理層能夠符合對(duì)于危險(xiǎn)環(huán)境的內(nèi)部安全要求。所述協(xié)議根據(jù)由標(biāo)準(zhǔn)定義的電壓和電路限制,在低等級(jí)雙絞線上運(yùn)行并支持多個(gè)設(shè)備。
      圖1示出了一種典型的進(jìn)程控制系統(tǒng)10,包括分段12、電源14和五個(gè)設(shè)備鏈路活動(dòng)調(diào)度器(LAS)設(shè)備20、鏈路主設(shè)備(LM)22以及基礎(chǔ)設(shè)備24、26和28。分段12可以在單獨(dú)一對(duì)線路上支持多達(dá)32個(gè)設(shè)備。典型地,基于環(huán)路執(zhí)行速度、功率和內(nèi)部安全要求,分段12將具有4-16個(gè)設(shè)備。
      LAS設(shè)備20為分段12上的設(shè)備之間的所有通信保持中央調(diào)度。通過將強(qiáng)制數(shù)據(jù)(CD)數(shù)據(jù)鏈路協(xié)議數(shù)據(jù)單元(DLPDU)發(fā)送至每個(gè)設(shè)備以發(fā)送后周期數(shù)據(jù),然后調(diào)度每個(gè)設(shè)備發(fā)送后周期數(shù)據(jù),LAS設(shè)備20改進(jìn)了整體通信的可靠性。LAS設(shè)備20用作分段12上的數(shù)據(jù)鏈路時(shí)間(DL-time)的本地來源。DLPDU是通過分段12傳送的PhPDU消息的數(shù)據(jù)內(nèi)容。
      LM設(shè)備22被配置成如果LAS設(shè)備20發(fā)生故障或變得不可操作,則承擔(dān)LAS設(shè)備20的責(zé)任。雖然圖1只示出了LM設(shè)備22,但是在分段上可存在兩個(gè)以上鏈路控制設(shè)備。這使得下列情形成為可能,如果鏈路活動(dòng)調(diào)度器和第一鏈路主設(shè)備二者均發(fā)生故障,則第二鏈路主設(shè)備可以承擔(dān)鏈路活動(dòng)調(diào)度器的責(zé)任。在鏈路活動(dòng)調(diào)度器發(fā)生故障之后,鏈路主設(shè)備承擔(dān)鏈路活動(dòng)調(diào)度器的功能。
      每個(gè)設(shè)備都具有被稱為V(TN)的唯一地址,它代表本地節(jié)點(diǎn)ID(此節(jié)點(diǎn))。在圖1所示的例子中,LAS設(shè)備20具有地址V(TN)=20;LM設(shè)備22具有地址V(TN)=22;基礎(chǔ)設(shè)備24具有地址V(TN)=A5;基礎(chǔ)設(shè)備26具有地址V(TN)=F3;以及基礎(chǔ)設(shè)備28具有地址V(TN)=F5。
      LAS設(shè)備20將傳遞令牌(PT)和探測(cè)節(jié)點(diǎn)(PN)消息發(fā)送至分段12上的所有設(shè)備。其它設(shè)備(LAS設(shè)備22和基礎(chǔ)設(shè)備24、26、28)中的每一個(gè)適當(dāng)?shù)貙⒎祷亓钆?RT)和探測(cè)響應(yīng)(PR)消息發(fā)回至LAS設(shè)備20。
      每個(gè)基礎(chǔ)設(shè)備24、26、28只需要查看其自己的由LAS設(shè)備20發(fā)送的PT和PN消息。PT和PN消息具有編碼在DLPDU的第二字節(jié)中的指定地址(DA)。LAS設(shè)備20向分段12上的所有設(shè)備一次發(fā)送一個(gè)記號(hào)(PT)或探測(cè)一個(gè)節(jié)點(diǎn)(PN)。
      如果在基礎(chǔ)設(shè)備24、26或28接收到帶有與設(shè)備的唯一地址相等的指定地址(DA=V(TN))的PT消息,則它將向LAS設(shè)備20反饋RT消息。如果基礎(chǔ)設(shè)備24、26或28接收具有DA=V(TN)的PN DLPDU,則需要它反饋PR消息。
      從LAS 20發(fā)送PT和PN消息以及向LAS 20發(fā)送RT和PR消息在分段12上創(chuàng)建了若干消息,特定的基礎(chǔ)設(shè)備24、26、28并不需要接收這些消息并對(duì)其采取行動(dòng)。每個(gè)基礎(chǔ)設(shè)備24、26、28只需要響應(yīng)于尋址到該特定設(shè)備的PT和PN消息。持續(xù)地受到來自LAS 20的尋址到其它設(shè)備的PT和PN消息以及來自其它設(shè)備的尋址到LAS設(shè)備20的RT和PR消息的干擾,會(huì)產(chǎn)生過度的處理時(shí)間來解決這些“多余中斷”。利用基礎(chǔ)設(shè)備24、26和28,DLPDU過濾可以用于減少基礎(chǔ)設(shè)備必須處理的中斷的數(shù)量。另一方面,LAS設(shè)備20必須處理分段12上的每個(gè)消息。
      分段12上的所有設(shè)備將數(shù)據(jù)作為曼徹斯特編碼基帶信號(hào)發(fā)送到分段12上。由于曼徹斯特編碼,“0”和“1”分別表示比特周期中間發(fā)生的從低到高和從高到低的轉(zhuǎn)換。對(duì)于現(xiàn)場(chǎng)總線,標(biāo)稱比特時(shí)間是32微秒(μsec),轉(zhuǎn)換以16μsec的頻率發(fā)生。曼徹斯特編碼規(guī)則已經(jīng)被擴(kuò)大至包括兩種附加符號(hào),即非數(shù)據(jù)加(N+)和非數(shù)據(jù)減(N-),其中在比特周期過程中不發(fā)生轉(zhuǎn)換,而且曼徹斯特編碼基帶信號(hào)保持高(N+)或低(N-)。
      消息格式圖2示出了用于在分段12上發(fā)送消息的物理層協(xié)議單元(PhPDU)的格式。PhPDU包括前同步、開始分隔符(SD)、數(shù)據(jù)鏈路協(xié)議數(shù)據(jù)單元(DLPDU)和結(jié)束分隔符(ED)。所述前同步是PhPDU消息的前面若干比特?,F(xiàn)場(chǎng)總線規(guī)范允許1-8個(gè)字節(jié)的前同步。接收消息的設(shè)備使用前同步,以與輸入的消息同步。如圖2所示,前同步的首字節(jié)序列是10101010。
      開始分隔符(SD)緊接著前同步。這里每個(gè)消息有一個(gè)SD?,F(xiàn)場(chǎng)總線規(guī)范要求SD具有非字符數(shù)據(jù)(N+和N-),其總是以互補(bǔ)對(duì)的方式出現(xiàn)在SD消息中。此編碼方案使得SD唯一并且不可能與消息的數(shù)據(jù)部分(DLPDU)混淆。圖2中所示SD的序列為1N+N-10N-N+0。
      DLPDU是長(zhǎng)度可變的消息。它以幀控制(FC)字節(jié)作為第一字節(jié)以及以幀校驗(yàn)序列(FCS)校驗(yàn)和作為其最后兩個(gè)字節(jié)。DLPDU的長(zhǎng)度可變,最小是三個(gè)字節(jié)(在RT消息的情況下),大到例如大約300字節(jié)的超時(shí)傳輸(jabber)限制。
      結(jié)束分隔符(ED)在DLPDU之后。它表示在分段12上的發(fā)送PhPDU消息的最后字節(jié)。類似于SD,ED包括呈互補(bǔ)對(duì)的非字符數(shù)據(jù)。這個(gè)編碼方案使得ED唯一并且不可能與DLPDU混淆。圖2中所示結(jié)束分隔符的序列為1N+N-N+N-101。
      圖2還示出了載波檢測(cè)信號(hào)。載波檢測(cè)信號(hào)的目的是指示何時(shí)(a)分段12上存在輸入的PhPDU消息,或(b)設(shè)備正在將消息發(fā)送到分段12上。
      發(fā)送開始(SOT)發(fā)生在這樣的時(shí)刻發(fā)送使能(TxE)變得有效,即當(dāng)PhPDU的前同步被首先提供給分段12時(shí)。
      活動(dòng)開始(SOA)發(fā)生在載波檢測(cè)信號(hào)變得有效而且已經(jīng)穩(wěn)定了至少一個(gè)比特時(shí)間或兩個(gè)比特時(shí)間(大約16-31μsec)之后。這個(gè)時(shí)間取決于載波檢測(cè)相對(duì)于接收消息的設(shè)備的內(nèi)部時(shí)鐘何時(shí)變得有效。這使得設(shè)備的通信控制器可以忽略在前同步的前端十分容易發(fā)生的噪音干擾。附加時(shí)間用于與比特邊界同步,以消除分段12上的短噪聲脈沖被誤譯為有效的可能。對(duì)于發(fā)送消息,在發(fā)送使能變得有效之后發(fā)生SOA(即PhPDU的前同步被提供給分段12)。
      消息開始(SOM)發(fā)生在針對(duì)接收消息檢測(cè)到FC字節(jié)時(shí)的第一比特的開始處。
      SOM_xmt是消息發(fā)送開始,其發(fā)生在針對(duì)發(fā)送消息檢測(cè)到FC字節(jié)時(shí)的第一比特的開始處。
      SOMf是所接收已過濾的DLPDU的SOM。這發(fā)生在當(dāng)設(shè)備中的通信控制器已經(jīng)檢測(cè)到足夠的信息以確定過濾輸入消息的時(shí)候。
      消息結(jié)束(EOM)發(fā)生在接收消息中遇到的ED的最后比特的結(jié)尾。發(fā)送結(jié)束(EOT)發(fā)生在發(fā)送消息的ED的最后比特的結(jié)尾。
      有效結(jié)束(EOA)發(fā)生在載波檢測(cè)已經(jīng)變得無(wú)效的時(shí)候。發(fā)送DLPDU和接收DLPDU二者均發(fā)生EOA。
      設(shè)備結(jié)構(gòu)圖3示出了基礎(chǔ)設(shè)備24的通信部分的方框圖,其表示每一個(gè)設(shè)備20-28中的結(jié)構(gòu)?;A(chǔ)設(shè)備24包括中央處理器(CPU)30、隨機(jī)存取存儲(chǔ)器(RAM)32、閃存34、通信控制器36和媒體連接單元(MAU)38。
      在圖3所示的實(shí)施例中,CPU 30是微處理器,例如摩托羅拉68LC302、摩托羅拉Mcore 2075、摩托羅拉PowerPC 850、Atmel Thumb處理器AT91M40800和其它。CPU30是8比特或更高的處理器。
      在圖3所示的實(shí)施例中,通信控制器36是特殊應(yīng)用集成電路(ASIC),其作為MAU 38和CPU 30之間的接口工作。它向連接至現(xiàn)場(chǎng)總線分段12的外部模擬電路發(fā)送和從連接至現(xiàn)場(chǎng)總線分段12的外部模擬電路接收已編程的曼徹斯特?cái)?shù)據(jù)。在從MAU 38接收到串行數(shù)據(jù)之后,通信控制器36對(duì)數(shù)據(jù)解碼,將數(shù)據(jù)形成為字節(jié),去掉前同步、SD和ED(和可選地FCS字節(jié)),并為鏈路層提供消息數(shù)據(jù)以供讀取。對(duì)于數(shù)據(jù)發(fā)送,通信控制器36從鏈路層接收DLPDU數(shù)據(jù)的字節(jié),并添加前同步、SD,可選地產(chǎn)生FCS,以及添加ED。接著通信控制器36串行形成已編碼的曼徹斯特?cái)?shù)據(jù),將所述數(shù)據(jù)發(fā)送至MAU 38以供在現(xiàn)場(chǎng)總線分段12上發(fā)送。
      通過下列四種信號(hào)提供通信控制器36和MAU 38之間的通信RxS、RxA、TxS、TxE。RxS是所接收的曼徹斯特編碼串行數(shù)據(jù)。RxA是接收數(shù)據(jù)的載波檢測(cè)信號(hào)。TxS是發(fā)送的已編碼串行數(shù)據(jù)。TxE是發(fā)送使能信號(hào)。
      在本發(fā)明的其它實(shí)施例中,可以在具有CPU 30的公共集成電路上形成通信控制器36。而且,在有些實(shí)施例中,RAM 32和閃存34也可以和CPU 30合并。在LAS設(shè)備20的情況下,CPU 30、RAM 32和閃存34可以是進(jìn)程控制系統(tǒng)10的主計(jì)算系統(tǒng)的一部分。
      MAU 38向現(xiàn)場(chǎng)總線分段12提供網(wǎng)絡(luò)連接。MAU 38可以是集成電路,或者是可用于形成MAU 38的分立組件。
      通信控制器36圖4是通信控制器36的功能方框圖。在此實(shí)施例中,通信控制器36包括反跳電路42、數(shù)字鎖相環(huán)(PLL)44、前端狀態(tài)機(jī)46、接收消息過濾48、接收先入先出(FIFO)存儲(chǔ)器50、發(fā)送狀態(tài)機(jī)52、發(fā)送FIFO存儲(chǔ)器54、發(fā)送驅(qū)動(dòng)器電路56、接收/發(fā)送事件管理器58、寄存器60、時(shí)鐘生成電路62、振蕩器64、定時(shí)器68和CPU接口電路70。
      當(dāng)MAU 38檢測(cè)到輸入消息時(shí),在RxA輸入處向通信控制器36提供載波檢測(cè)信號(hào),而且在RxS輸入處提供輸入的異步曼徹斯特?cái)?shù)據(jù)。將RxA和RxS輸入提供給前端狀態(tài)機(jī)46。數(shù)字PLL 44從輸入的串行曼徹斯特編碼數(shù)據(jù)中再生和重建時(shí)鐘。然后將此重建的時(shí)鐘用于對(duì)前端狀態(tài)機(jī)46計(jì)時(shí)。
      前端狀態(tài)機(jī)46檢測(cè)輸入的串行比特流RxS。它去掉前同步、SD和ED,并將DLPDU存儲(chǔ)至接收FIFO存儲(chǔ)器50中。前端狀態(tài)機(jī)46和接收消息過濾48一起可以被配置用于濾除特殊幀控制,并加上尋址到其它設(shè)備的探測(cè)節(jié)點(diǎn)(PN)及傳遞令牌(PT)。前端狀態(tài)機(jī)46跟蹤已經(jīng)被寫入接收FIFO存儲(chǔ)器50中的字節(jié)數(shù)量。在每個(gè)消息的結(jié)尾處自動(dòng)驗(yàn)證FCS,并且可選地可以將FCS存儲(chǔ)至接收FIFO存儲(chǔ)器50中。
      前端狀態(tài)機(jī)46還提供表示它已經(jīng)檢測(cè)的特殊事件的信號(hào)。這些包括SOM、SOMf、EOM、SOA和EOA事件脈沖。
      當(dāng)RxA鏈路變得有效時(shí)前端狀態(tài)機(jī)46被激活。然后前端狀態(tài)機(jī)46與前同步字段的沿同步,并將RxS信號(hào)的曼徹斯特編碼數(shù)據(jù)解碼。SOA事件指示前端狀態(tài)機(jī)46已經(jīng)啟動(dòng)。
      在檢測(cè)到前同步之后,前端狀態(tài)機(jī)46等待開始分隔符(SD)序列。在已經(jīng)檢測(cè)到SD之后,前端狀態(tài)機(jī)46將串行數(shù)據(jù)流轉(zhuǎn)換為八位組,并以8比特字節(jié)將其寫入接收FIFO存儲(chǔ)器50。前端狀態(tài)機(jī)46繼續(xù)將數(shù)據(jù)的新八位組寫入接收FIFO存儲(chǔ)器50中,直到檢測(cè)到結(jié)束分隔符(ED),或直到接收FIFO存儲(chǔ)器50滿為止。
      當(dāng)已經(jīng)檢測(cè)到ED時(shí),前端狀態(tài)機(jī)46等候RxA線路變得無(wú)效,而這是由EOA事件指示的。
      當(dāng)RxA線路無(wú)效時(shí),前端狀態(tài)機(jī)46返回其初始狀態(tài)。它在現(xiàn)場(chǎng)總線分段12上的下一次有效之前(即在RxA處再次提供載波檢測(cè)信號(hào)之前)保持在此初始狀態(tài)中。
      過濾電路用于基礎(chǔ)設(shè)備,以減少加載在對(duì)于設(shè)備不重要的消息上的IRQ。相反地,配置作為L(zhǎng)AS的設(shè)備必須接收分段上的所有消息,并因此必然過濾被禁止。當(dāng)過濾被禁止時(shí),所有接收到的消息將被存儲(chǔ)在接收FIFO存儲(chǔ)器50中,并將被傳遞至寄存器60然后至CPU 30。SOMf是對(duì)于接收到的已過濾DLPDU的消息開始信號(hào)。它發(fā)生在前端狀態(tài)機(jī)46已經(jīng)確定已經(jīng)對(duì)接收消息檢測(cè)到足夠的信息以確定輸入的消息將被過濾的時(shí)候。
      由于可以過濾,則不將被過濾的消息存儲(chǔ)在接收FIFO存儲(chǔ)器50中。對(duì)于已過濾的消息,將不產(chǎn)生SOMf,因此將不發(fā)生事件或IRQ。
      已過濾的消息的例子有返回令牌(RT)、空閑、請(qǐng)求間隔(RI),并且總是丟棄探測(cè)響應(yīng)(PR)DLPDU消息。根據(jù)幀控制(FC)字節(jié)來識(shí)別這些消息。如果消息中的目標(biāo)地址與設(shè)備地址匹配,則接收傳遞令牌(PT)和探測(cè)節(jié)點(diǎn)(PN)消息。如果消息中的目標(biāo)地址與設(shè)備地址不匹配,則丟棄PT和PN消息。
      基于FC字節(jié)和根據(jù)目標(biāo)地址來過濾消息字節(jié)的能力通過限制CPU30必須處理的中斷請(qǐng)求(IRQ)的數(shù)量,減少了軟件中斷的加載。
      前端狀態(tài)機(jī)46和接收FIFO存儲(chǔ)器50用于解析來自MAU 38的串行數(shù)據(jù)幀。CPU 30從接收FIFO存儲(chǔ)器50讀取數(shù)據(jù),并將其放置在它的本地存儲(chǔ)器空間以對(duì)接收DLPDU進(jìn)行解碼。
      接收FIFO存儲(chǔ)器50具有8比特寬的63字節(jié)。接收FIFO存儲(chǔ)器50將存儲(chǔ)多達(dá)3個(gè)完整的接收消息的所有DLPDU字節(jié)(總體多達(dá)63字節(jié))。前端狀態(tài)機(jī)46將來自己過濾RxS信號(hào)的串聯(lián)數(shù)據(jù)流解碼,并將其轉(zhuǎn)換為8比特并行格式字節(jié)。在形成該字節(jié)之后,前端狀態(tài)機(jī)46創(chuàng)建寫入脈沖,其將已編碼數(shù)據(jù)存儲(chǔ)在寫入指針?biāo)赶虻奈恢谩T趯懭氩僮魍瓿芍?,使寫入指針遞增以存儲(chǔ)下一個(gè)DLPDU字節(jié)。
      CPU 30通過讀取指針與接收FIFO存儲(chǔ)器50連接。任何來自寄存器60的接收FIFO寄存器(其包含實(shí)際的DLPDU數(shù)據(jù))的讀取將來自接收FIFO存儲(chǔ)器50的8比特?cái)?shù)據(jù)立即放置在供CPU 30讀取的數(shù)據(jù)總線上。在讀取操作完成之后,使讀取指針遞增。在接收FIFO存儲(chǔ)器50為空之前可以繼續(xù)上述操作。
      為了防止在接收FIFO存儲(chǔ)器50中發(fā)生上溢情況,在寄存器60中有這樣一個(gè)寄存器,其可以在接收FIFO存儲(chǔ)器50接近滿的情況下產(chǎn)生IRQ。用于產(chǎn)生IRQ的閾值是可配置的。
      發(fā)送狀態(tài)機(jī)52讀取將從發(fā)送FIFO存儲(chǔ)器54發(fā)送來的DLPDU數(shù)據(jù)。自動(dòng)插入前同步、SD和ED。為了啟動(dòng)發(fā)送狀態(tài)機(jī)52,可選地需要激活interPDU事件觸發(fā)器或下一調(diào)度事件觸發(fā)器,以開始發(fā)送操作。發(fā)送狀態(tài)機(jī)52跟蹤已經(jīng)發(fā)送的字節(jié)的數(shù)量。如果存在下溢或發(fā)送計(jì)數(shù)破壞(violation),則將指示錯(cuò)誤狀況??蛇x地,可以自動(dòng)將FCS作為DLPDU的最后兩個(gè)字節(jié)進(jìn)行發(fā)送。
      發(fā)送狀態(tài)機(jī)52對(duì)通過TxS線路上的接口電路70提供給MAU 38的曼徹斯特串行數(shù)據(jù)進(jìn)行編碼,以提供在現(xiàn)場(chǎng)總線分段12上。發(fā)送狀態(tài)機(jī)52還在發(fā)送第一前同步的第一比特的時(shí)刻維護(hù)發(fā)送使能(TxE)線路,直到ED的最后字節(jié)出現(xiàn)。當(dāng)發(fā)送狀態(tài)機(jī)52維護(hù)TxE線路時(shí),它還產(chǎn)生發(fā)送開始(SOT)事件信號(hào),并在TxE線路返回至無(wú)效時(shí)產(chǎn)生發(fā)送結(jié)束(EOT)事件信號(hào)。
      發(fā)送FIFO存儲(chǔ)器54將存儲(chǔ)待發(fā)送消息所需要的所有DLPDU字節(jié),總體多達(dá)63字節(jié)??梢栽O(shè)定可配置的閾值,以在發(fā)送FIFO存儲(chǔ)器54幾乎空的時(shí)候發(fā)送IRQ來通知CPU 30。這樣,如果需要發(fā)送多于63字節(jié),則通知CPU 30以便其可以向發(fā)送FIFO存儲(chǔ)器54添加更多的數(shù)據(jù)。在所有DLPDU字節(jié)被寫入之前繼續(xù)上述操作。CPU 30使用寫入指針來向發(fā)送FIFO存儲(chǔ)器54寫入,而發(fā)送狀態(tài)機(jī)52使用讀取指針從發(fā)送FIFO存儲(chǔ)器54讀取字節(jié)。
      通信控制器36作用于事件,并必須能夠處理多個(gè)事件的發(fā)生。事件的例子包括SOM、EOM、或接收消息的EOA或發(fā)送消息的EOT。接收/發(fā)送事件管理器58管理總體上多達(dá)3個(gè)接收消息和一個(gè)發(fā)送消息所發(fā)生的所有事件。
      如圖4所示,接收/發(fā)送管理器58包括三個(gè)接收消息對(duì)象,標(biāo)為rcvmsg1、rcvmsg2和rcvmsg3,以及一個(gè)發(fā)送消息對(duì)象,標(biāo)為xmtmsg。此外,接收/發(fā)送管理器58包括消息隊(duì)列管理器(MsgQmngr)80、事件管理器(EventMngr)82、發(fā)送管理器(xmtmngr)84和事件MUX 86。
      接收FIFO存儲(chǔ)器50能夠存儲(chǔ)多達(dá)三個(gè)完整的接收消息的DLPDU字節(jié)。這三個(gè)消息的每一個(gè)具有相應(yīng)的對(duì)象,即rcvmsg1、rcvmsg2和rcvmsg3。每個(gè)對(duì)象包含其相應(yīng)接收消息發(fā)生的所有IRQ的狀態(tài)、消息錯(cuò)誤和時(shí)間記錄。這些信息構(gòu)成該消息的事件數(shù)據(jù)。
      將發(fā)送消息發(fā)生的所有IRQ的狀態(tài)、消息錯(cuò)誤和時(shí)間記錄存儲(chǔ)在xmtmsg對(duì)象中。所存儲(chǔ)的信息構(gòu)成發(fā)送消息的事件數(shù)據(jù)。
      MsgQmngr 80控制三個(gè)接收消息的選擇和使能。一次只能有一個(gè)rcvmsg對(duì)象是有效的。MsgQmngr 80使事件與有效的接收消息相關(guān)聯(lián)。在CPU 30已確認(rèn)其它三個(gè)消息之前接收到第四個(gè)消息的情況下,MsgQmngr 80在讀取或確認(rèn)事件數(shù)據(jù)之前,禁止接收其它任何消息。EventMngr 82管理事件發(fā)生的順序。隨著事件發(fā)生,EventMngr 82給每個(gè)事件分配一個(gè)發(fā)生順序標(biāo)識(shí)(OOO_ID)。這使得CPU 30能夠按照事件發(fā)生的順序一次讀取一個(gè)事件。CPU 30必須在每個(gè)事件發(fā)生時(shí)確認(rèn)每個(gè)事件。在已經(jīng)確認(rèn)第一事件之后,接下來的事件將就緒以供CPU 30讀取。
      Xmtmngr 84監(jiān)視interPDU觸發(fā)器(InterPDU_trig)和下一調(diào)度事件觸發(fā)器,并將發(fā)送觸發(fā)器命令(Xmt_Trig_Cmd)引入到發(fā)送狀態(tài)機(jī)52以開始發(fā)送下一個(gè)消息。
      通信控制器36包括寄存器60。這些標(biāo)為REG00-REG3F的寄存器可以由CPU 30讀取和寫入。通過寄存器60還可以操縱中斷(IRQ)。
      時(shí)鐘生成電路62接收外部時(shí)鐘,并且或者使用該時(shí)鐘或者使用來自其內(nèi)部振蕩器64的時(shí)鐘,來生成通信控制器36所需的所有時(shí)鐘信號(hào)。
      時(shí)鐘生成電路62優(yōu)選地具有及時(shí)地調(diào)整其節(jié)點(diǎn)定時(shí)器和其八位組定時(shí)器時(shí)鐘速率的能力。這使得通信控制器能夠使其節(jié)點(diǎn)時(shí)間與鏈路地址調(diào)度器(LAS 20)同步。八位組時(shí)間用于內(nèi)部消息的定時(shí),而節(jié)點(diǎn)時(shí)間用于在現(xiàn)場(chǎng)總線分段12上共享公共的時(shí)間感。
      定時(shí)器68分為兩組,代表不同的時(shí)間感。被稱為分段定時(shí)器的第一組定時(shí)器在來自CPU 30的軟件控制下,基于由時(shí)鐘生成電路62產(chǎn)生的可變的時(shí)鐘速率而運(yùn)行。被稱為消息定時(shí)器的第二組定時(shí)器以固定速率時(shí)鐘運(yùn)行。
      在通信控制器36中存在兩個(gè)分段定時(shí)器。第一分段定時(shí)器是節(jié)點(diǎn)定時(shí)器,其具有31.25μsec(32kHz)的時(shí)鐘報(bào)時(shí)速率。節(jié)點(diǎn)定時(shí)器用于實(shí)現(xiàn)下一功能塊執(zhí)行時(shí)間、鏈路調(diào)度時(shí)間V(LST)和數(shù)據(jù)鏈路時(shí)間(DL-Time)。
      第二分段定時(shí)器是八位組定時(shí)器,其具有2μsec(500kHz)的時(shí)鐘報(bào)時(shí)速率。八位組定時(shí)器用于下一調(diào)度事件觸發(fā)器(其與發(fā)送狀態(tài)機(jī)52連接以便在特定時(shí)間發(fā)送消息)。當(dāng)調(diào)整時(shí)鐘速率時(shí),節(jié)點(diǎn)和八位組定時(shí)器將以相同的速率相互跟蹤。這是因?yàn)轵?qū)動(dòng)節(jié)點(diǎn)定時(shí)器和八位組定時(shí)器的時(shí)鐘信號(hào)是由公共可變時(shí)鐘得到的。
      基于現(xiàn)場(chǎng)總線消息事件(發(fā)送和接收)而開始和停止消息定時(shí)器。消息定時(shí)器包括無(wú)效定時(shí)器、interPDU延遲定時(shí)器、接收應(yīng)答定時(shí)器、發(fā)送應(yīng)答定時(shí)器和代表令牌(delegated token)恢復(fù)定時(shí)器。
      無(wú)效定時(shí)器是遞減計(jì)數(shù)器。它用于測(cè)量?jī)蓚€(gè)PhPDU之間的空閑時(shí)間。無(wú)效定時(shí)器作用于已過濾的和未過濾的接收消息以及現(xiàn)場(chǎng)總線分段12上的任意發(fā)送消息。當(dāng)被命令開始時(shí),無(wú)效定時(shí)器每16μsec遞減一次。無(wú)效定時(shí)器的開始點(diǎn)是根據(jù)載入寄存器60之一的可配置預(yù)加載設(shè)置點(diǎn)確定的。通過與接收或發(fā)送消息相關(guān)的事件可以取消或停止無(wú)效定時(shí)器的遞減。如果定時(shí)器達(dá)到0或者期滿,將生成IRQ。在確認(rèn)IRQ之前無(wú)效定時(shí)器將保持為0。如果IRQ保持為高,則在確認(rèn)IRQ之前將不會(huì)發(fā)生影響無(wú)效定時(shí)器的附加消息事件。
      interPDU延遲定時(shí)器是遞增計(jì)數(shù)器。它用于與V(MID)閾值寄存器結(jié)合以實(shí)現(xiàn)現(xiàn)場(chǎng)總線V(MID)最小-interPDU延遲,其確保在發(fā)送或接收消息之間的無(wú)傳輸?shù)淖钚〕掷m(xù)時(shí)間(或間隙時(shí)間)。interPDU定時(shí)器受到現(xiàn)場(chǎng)總線分段上的已過濾的和未過濾的接收消息、以及任意發(fā)送消息的作用。當(dāng)不存在現(xiàn)場(chǎng)總線活動(dòng)時(shí),interPDU定時(shí)器將持續(xù)遞增。如果計(jì)數(shù)值等于或超過寄存器60中所存儲(chǔ)的預(yù)定值,則interPDU_trig信號(hào)將變得有效。該信號(hào)用于確定已經(jīng)滿足了interPDU延遲時(shí)間。信號(hào)與xmtmngr 84相連以給出發(fā)送DLPDU可以開始的命令。
      接收應(yīng)答定時(shí)器是遞減計(jì)數(shù)器。它用于訂閱設(shè)備以監(jiān)視對(duì)強(qiáng)制數(shù)據(jù)(CD)DLPDU的及時(shí)響應(yīng)。它還由設(shè)備用于在設(shè)備進(jìn)入鏈路上時(shí)監(jiān)視其自己的地址。當(dāng)被命令開始時(shí),接收應(yīng)答定時(shí)器每16μsec遞減一次。接收應(yīng)答定時(shí)器的開始點(diǎn)是根據(jù)載入寄存器60之一的可配置預(yù)加載16比特設(shè)置點(diǎn)確定的。通過SOM或SOT事件,可以取消或停止接收應(yīng)答定時(shí)器的遞減。如果接收應(yīng)答定時(shí)器達(dá)到0或者期滿,將生成IRQ。接收應(yīng)答定時(shí)器需要啟用IRQ以生成IRQ。在確認(rèn)IRQ之前接收應(yīng)答定時(shí)器將保持為0。如果IRQ保持為高,則在確認(rèn)IRQ之前將不會(huì)發(fā)生會(huì)影響接收應(yīng)答定時(shí)器的附加消息事件。
      發(fā)送應(yīng)答定時(shí)器是遞減計(jì)數(shù)器。它使得設(shè)備能夠在發(fā)送若干DLPDU(例如強(qiáng)制數(shù)據(jù)、傳遞令牌)之一后監(jiān)視及時(shí)響應(yīng)。當(dāng)被命令開始時(shí),發(fā)送應(yīng)答定時(shí)器每16μsec遞減一次。發(fā)送應(yīng)答定時(shí)器的開始點(diǎn)是根據(jù)載入寄存器60之一的可配置預(yù)加載設(shè)置點(diǎn)確定的。通過除了探測(cè)節(jié)點(diǎn)(PN)外的任何發(fā)送DLPDU的SOM事件或SOT事件,可以取消或停止發(fā)送應(yīng)答定時(shí)器的遞減。如果發(fā)送應(yīng)答定時(shí)器達(dá)到0或者期滿,將生成IRQ。在確認(rèn)IRQ之前發(fā)送應(yīng)答定時(shí)器將保持為0。如果IRQ保持為高,則在確認(rèn)IRQ之前將不會(huì)發(fā)生會(huì)影響發(fā)送應(yīng)答定時(shí)器的附加消息事件。
      代表令牌恢復(fù)定時(shí)器是遞減計(jì)數(shù)器。它用于監(jiān)視從另一個(gè)設(shè)備接收代表令牌的空閑時(shí)間。代表令牌恢復(fù)定時(shí)器作用于已過濾的和未過濾的接收消息以及現(xiàn)場(chǎng)總線分段12上的任意發(fā)送消息。當(dāng)被命令開始時(shí),代表令牌恢復(fù)定時(shí)器每16μsec遞減一次。代表令牌恢復(fù)定時(shí)器的開始點(diǎn)是根據(jù)載入寄存器60之一的可配置預(yù)加載設(shè)置點(diǎn)確定的。通過與接收或發(fā)送消息相關(guān)的事件,可以取消或停止代表令牌恢復(fù)定時(shí)器的遞減。如果代表令牌恢復(fù)定時(shí)器達(dá)到0或者期滿,將生成IRQ。在確認(rèn)IRQ之前發(fā)送反饋定時(shí)器將保持為0。如果IRQ保持為高,則在確認(rèn)IRQ之前將不會(huì)發(fā)生會(huì)影響代表令牌恢復(fù)定時(shí)器的附加消息事件。
      丟棄部分接收的消息典型地,通信硬件負(fù)責(zé)對(duì)從網(wǎng)絡(luò)接收的消息進(jìn)行過濾,并且只將那些感興趣的消息發(fā)送至軟件。消息過濾對(duì)硬件造成一種特殊問題,即在決定是否過濾消息之前消息過濾器可能需要部分接收消息。如果消息過濾器決定過濾消息,則需要丟棄部分接收的消息。如果消息過濾器決定不過濾消息,則硬件需要將整個(gè)消息發(fā)送至軟件,包括已經(jīng)部分接收到的部分。
      圖5是用于管理對(duì)由通信控制器36所接收的數(shù)據(jù)分組進(jìn)行處理的接收/發(fā)送事件管理器58的功能方框圖。接收/發(fā)送事件管理器58包括消息隊(duì)列管理(MsgQmngr)80、事件管理器(EventMngr)82、事件MUX 86、接收消息對(duì)象隊(duì)列100和多路復(fù)用器102、106和108。接收消息對(duì)象隊(duì)列100包括用于三個(gè)標(biāo)為rcvmsg1、rcvmsg2和rcvmsg3的接收消息對(duì)象的空間。接收/發(fā)送事件管理器58還包括當(dāng)前位置指針(CurPosition)116、指針使能邏輯118、寫入指針120和讀取指針122。圖5中還示出接收FIFO存儲(chǔ)器50和用于存儲(chǔ)與接收和發(fā)送消息對(duì)象相關(guān)的事件數(shù)據(jù)的寄存器60的一部分(Reg15-Reg1F)。
      接收/發(fā)送事件管理器58允許CPU 30依次讀取與已經(jīng)發(fā)生的各個(gè)消息相關(guān)聯(lián)的接收消息對(duì)象(rcvmsg1、rcvmsg2和rcvmsg3)。每個(gè)接收消息對(duì)象包含消息屬性的分類,包括消息IRQ、錯(cuò)誤狀況和普通消息信息。與接收消息對(duì)象相關(guān)的DLPDU數(shù)據(jù)被存儲(chǔ)在接收FIFO存儲(chǔ)器50中。
      發(fā)送消息對(duì)象(xmtmsg)接受來自發(fā)送管理器(xmtmngr)84、發(fā)送狀態(tài)器52、發(fā)送FIFO存儲(chǔ)器54和定時(shí)器68的輸入。從這些輸入,CPU 30可以讀取在寄存器60的寄存器Reg16、Reg17和Reg1B中的發(fā)送IRQ、錯(cuò)誤狀況和時(shí)間記錄信息。為了簡(jiǎn)明,從圖5中略去圖4中的接收/發(fā)送事件管理器58示出的xmtmngr 84、發(fā)送FIFO存儲(chǔ)器54和發(fā)送狀態(tài)器52,因?yàn)樗鼈冎慌c發(fā)送消息相關(guān)。
      MsgQmngr 80允許特殊接收消息事件與來自分段12的有效接收消息相關(guān)聯(lián)。這經(jīng)由MUX 102進(jìn)行控制,形成信號(hào)RcvMsg1_sel、RcvMsg2_sel和RcvMsg3_sel。一次只有這些選擇信號(hào)中的一個(gè)是有效的。因此,一次只有一個(gè)接收消息對(duì)象(rcvmsg1、rcvmsg2和rcvmsg3)具有與它相關(guān)的接收事件,同時(shí)消息是有效的。多個(gè)輸入進(jìn)入接收消息對(duì)象隊(duì)列100。這些信號(hào)包括讀取指針122的當(dāng)前位置值、寫入指針120、GetDataByte in(用于讀取RcvFIFO)和來自前端狀態(tài)機(jī)46的信號(hào)、以及來自定時(shí)器68的當(dāng)前時(shí)間值。這三個(gè)選擇信號(hào)(RcvMsg1_sel、RcvMsg2_sel和RcvMsg3_sel)允許輸入信號(hào)適當(dāng)?shù)刂慌c一個(gè)接收消息對(duì)象相關(guān)聯(lián)。
      如果在接收消息之后發(fā)生EOA事件脈沖同時(shí)在接收消息對(duì)象隊(duì)列100中仍然存在3個(gè)未確認(rèn)的接收消息對(duì)象,則MsgQmngr 80通過強(qiáng)制使RcvMsgQMux_enb信號(hào)為低(無(wú)效)來禁止接收第四個(gè)消息。還將MsgQ_over信號(hào)發(fā)送到指針使能邏輯118。這防止第四個(gè)接收消息破壞接收FIFO存儲(chǔ)器50中的DLPDU數(shù)據(jù)。為了再次啟用RcvMsgQMux_enb信號(hào),CPU 30必須確認(rèn)發(fā)生第一個(gè)接收消息對(duì)象(即時(shí)間上最早發(fā)生的消息)。CPU 30寫入寄存器60中的寄存器Reg15,產(chǎn)生Event_Ack信號(hào)(事件確認(rèn)),并且隨后根據(jù)OR門110的輸出來產(chǎn)生RcvMsg_Ack信號(hào)。
      EventMngr 82控制事件MUX 86的選擇,以在三個(gè)接收消息對(duì)象(rcvmsg1、rcvmsg2和rcvmsg3)和發(fā)送消息對(duì)象(xmtmsg)之一的讀取中進(jìn)行多路復(fù)用。CPU 30可經(jīng)由寄存器60的寄存器Reg15-Reg1F,讀取有效消息的接收消息對(duì)象。CPU 30讀取寄存器Reg15的兩個(gè)較低比特,以確定下一個(gè)待處理的事件是否是接收消息(“01”)、發(fā)送消息(“10”)或是否不存在要處理的事件(“00”)。對(duì)于接收消息,MUX106形成6個(gè)信號(hào)RcvMsg1_visible、RcvMsg2_visible、RcvMsg3_visible、RcvMsg1_Ackn、RcvMsg2_Ackn和RcvMsg3_Ackn。前面3個(gè)信號(hào)互相排斥,選擇三個(gè)接收消息對(duì)象的一個(gè)以通過事件MUX 86傳送以供CPU30處理。因此,一次只可以處理一個(gè)接收消息對(duì)象的相關(guān)事件信息和屬性數(shù)據(jù)。以與從分段12接收的順序相同的順序來處理所述事件。
      信號(hào)RcvMsg1_Ackn、RcvMsg2_Ackn和RcvMsg3_Ackn用于在CPU30已經(jīng)處理所有事件數(shù)據(jù)之后確認(rèn)當(dāng)前可視的接收消息對(duì)象。這三個(gè)信號(hào)被輸入OR門110,并且在OR門110的輸出產(chǎn)生RcvMsg_Ack信號(hào)。RcvMsg_Ack信號(hào)作為輸入被提供給MsgQmngr 80和讀取指針122。
      MsgQmngr 80還控制MUX 108,其用于創(chuàng)建信號(hào)CurMsg_Ack(當(dāng)前消息確認(rèn))。所述“當(dāng)前消息”是分段12上的有效接收消息,CPU 30正在處理該消息的事件數(shù)據(jù)(即消息對(duì)于CPU 30可視)。CurMsg_Ack由MsgQmngr 80使用,并(通過指針使能邏輯118)控制寫入指針120和當(dāng)前位置(CurPosition)116。當(dāng)接收消息對(duì)象是可視的并且接收消息對(duì)象的相應(yīng)選擇信號(hào)是有效的時(shí)(例如RcvMsg1_visible=RcvMsg1_sel=l),CurMsg_Ack是有效的。
      經(jīng)由GetDataByte_in信號(hào),CPU 30將讀取指針122與接收FIFO存儲(chǔ)器50連接。通過當(dāng)前對(duì)于CPU 30可視以供讀取的接收消息對(duì)象,CPU只可以訪問讀取指針122(即對(duì)于接收消息對(duì)象,RcvMsg_visible信號(hào)是有效的)。當(dāng)CPU 30準(zhǔn)備從接收FIFO存儲(chǔ)器50讀取存儲(chǔ)的DLPDU數(shù)據(jù)時(shí),經(jīng)由寄存器60的寄存器Reg1D,CPU中的軟件生成GetDataByte_in命令。任何從寄存器60的寄存器Reg1D中的讀取將來自接收FIFO寄存器的數(shù)據(jù)立即放置在數(shù)據(jù)總線上以供CPU 30讀取。將GetDataByte_in信號(hào)發(fā)給所有三個(gè)接收消息對(duì)象,但是一次三個(gè)接收消息對(duì)象中只有一個(gè)對(duì)于CPU 30是可讀取(或可視)的。EventMUX_sel(20)信號(hào)經(jīng)由MUX 106,選擇當(dāng)前可視的接收消息對(duì)象以供CPU 30讀取。例如,如果RcvMsg1_visible是有效的,則通過接收消息對(duì)象rcvmsg1生成GetDataByte1。GetDataByte1、GetDataByte2和GetDataByte3作為輸入被提供給OR門114,其輸出是全局GetDataByte信號(hào)。當(dāng)激活全局GetDataByte信號(hào)時(shí),接收FIFO存儲(chǔ)器50的讀取指針122遞增一個(gè)位置。當(dāng)從rcvmsg1執(zhí)行讀取操作時(shí),將讀取指針122與rcvmsg1的結(jié)束位置值相比較。這使得CPU 30知道對(duì)于與rcvmsg1相關(guān)的消息,接收FIFO存儲(chǔ)器50中的字節(jié)數(shù)量。
      前端狀態(tài)機(jī)46將串行數(shù)據(jù)流解碼,并將其轉(zhuǎn)換為8比特并行格式的字節(jié)。在形成所述字節(jié)后,前端狀態(tài)機(jī)46創(chuàng)建寫入脈沖(經(jīng)由RcvDataByte),其將已編碼數(shù)據(jù)存儲(chǔ)至由寫入指針?biāo)赶虻慕邮誇IFO存儲(chǔ)器50中的位置。寫入脈沖使寫入指針120遞增,以準(zhǔn)備寫入下一個(gè)DLPDU字節(jié)。在將有效接收消息的DLPDU數(shù)據(jù)寫入接收FIFO存儲(chǔ)器50中時(shí),接收FIFO存儲(chǔ)器50中的寫入指針的當(dāng)前值被連續(xù)地傳送到當(dāng)前位置116。由于以和將接收消息對(duì)象加入接收消息對(duì)象隊(duì)列100相同的順序?qū)LPDU數(shù)據(jù)加入接收FIFO存儲(chǔ)器50,所以在接收FIFO存儲(chǔ)器50和接收消息對(duì)象隊(duì)列100之間保持一致的排序。
      接收FIFO存儲(chǔ)器50中存儲(chǔ)的數(shù)據(jù)包含多達(dá)3個(gè)完整的接收消息的DLPDU數(shù)據(jù)(總體多達(dá)63字節(jié))。每個(gè)接收消息對(duì)象包含用于存儲(chǔ)可由軟件讀取的與有效接收消息的接收狀態(tài)有關(guān)的若干屬性(如由MsgQmngr 80選擇的)。這些屬性包括上溢、下溢、數(shù)據(jù)準(zhǔn)備好、消息結(jié)束位置(EndPosition)和有效標(biāo)記。
      上溢是Boolean屬性,當(dāng)設(shè)定它時(shí),指示在存儲(chǔ)來自分段12的接收消息的DLPDU數(shù)據(jù)時(shí)發(fā)生接收FIFO存儲(chǔ)器50的上溢。如果在由CPU30從接收FIFO存儲(chǔ)器50讀取DLPDU數(shù)據(jù)之前接收FIFO存儲(chǔ)器50滿了,則接收FIFO存儲(chǔ)器50向所已接收消息對(duì)象激活指示已經(jīng)發(fā)生上溢條件的信號(hào)。這將防止在從接收FIFO存儲(chǔ)器50中讀取一個(gè)DLPDU數(shù)據(jù)字節(jié)之前,再將數(shù)據(jù)寫入接收FIFO存儲(chǔ)器50。當(dāng)上溢條件發(fā)生時(shí),針對(duì)可視的接收消息對(duì)象,設(shè)定上溢屬性。當(dāng)具有上溢屬性設(shè)置的接收消息對(duì)象對(duì)于CPU 30可視以供其讀取時(shí),由CPU 30讀取并處理上溢條件。CPU 30通過向寄存器Reg16的合適比特進(jìn)行寫入而確認(rèn)設(shè)置上溢屬性(并且隨后清除上溢屬性)。
      下溢是Boolean屬性,其指示由于缺乏數(shù)據(jù)最后一次對(duì)接收FIFO存儲(chǔ)器50進(jìn)行讀取的嘗試失敗。這發(fā)生在當(dāng)接收FIFO存儲(chǔ)器50為空(即沒有DLPDU字節(jié)供讀取)時(shí)CPU 30試圖產(chǎn)生GetDataByte_in信號(hào)的時(shí)候。如果發(fā)生了上述情況,則將不增加讀取指針122,因此保持讀取指針122的合適定位。當(dāng)發(fā)生下溢條件時(shí),針對(duì)可視的接收消息對(duì)象,設(shè)定下溢屬性。CPU 30通過向寄存器Reg16的合適比特進(jìn)行寫入,確認(rèn)設(shè)置下溢屬性(并且隨后清除下溢屬性)。
      對(duì)于所有接收消息,當(dāng)從前端狀態(tài)機(jī)46發(fā)送數(shù)據(jù)以寫入接收FIFO存儲(chǔ)器50時(shí),接收FIFO存儲(chǔ)器50連續(xù)地監(jiān)視它是否接近它的63比特存儲(chǔ)限制。數(shù)據(jù)準(zhǔn)備好是可配置的Boolean屬性,它指示接收FIFO存儲(chǔ)器50接近滿的狀態(tài),并且需要由CPU 30對(duì)其進(jìn)行讀取以防止接收FIFO存儲(chǔ)器50的上溢。如果接收FIFO存儲(chǔ)器50中的未讀取DLPDU數(shù)據(jù)字節(jié)的數(shù)量等于或大于數(shù)據(jù)準(zhǔn)備好閾值,則在有效的接收消息對(duì)象中生成IRQ。當(dāng)接收消息對(duì)象對(duì)于CPU 30可視以供其讀取時(shí),CPU 30可以讀取并處理所述數(shù)據(jù)準(zhǔn)備好屬性。CPU 30通過對(duì)寄存器Reg16的合適比特進(jìn)行寫入,確認(rèn)設(shè)置數(shù)據(jù)準(zhǔn)備好屬性(并隨后清除數(shù)據(jù)準(zhǔn)備好屬性)。
      結(jié)束位置是整數(shù)屬性,它在為當(dāng)前有效消息寫入DLPDU數(shù)據(jù)時(shí)存儲(chǔ)接收FIFO存儲(chǔ)器50的寫入指針120的位置。當(dāng)寫入指針120遞增時(shí),持續(xù)地更新當(dāng)前有效接收消息對(duì)象的接收位置屬性。當(dāng)從接收FIFO存儲(chǔ)器50讀取DLPDU數(shù)據(jù)字節(jié)時(shí),讀取指針122遞增。當(dāng)讀取指針122的值等于結(jié)束位置值時(shí),對(duì)于當(dāng)前可視的接收消息對(duì)象,在接收FIFO存儲(chǔ)器50中未存儲(chǔ)其它數(shù)據(jù)。當(dāng)對(duì)于可視接收消息對(duì)象沒有可獲得的數(shù)據(jù)時(shí),設(shè)定空標(biāo)記,以防止生成可視接收消息對(duì)象的GetDataByte輸出。這有助于保持讀取指針122的合適定位和DLPDU數(shù)據(jù)關(guān)聯(lián)整體性。每個(gè)接收消息對(duì)象的結(jié)束位置屬性向MUX 112提供輸入,并且可視接收消息對(duì)象的結(jié)束位置屬性值被發(fā)給讀取指針122。
      有效標(biāo)記是Boolean屬性,其指示還(經(jīng)由信號(hào)RcvMsg_sel)選擇由CPU 30正在處理的接收消息對(duì)象(即可視接收消息對(duì)象)。當(dāng)針對(duì)接收消息檢測(cè)到EOA時(shí),有效標(biāo)記返回低。當(dāng)從分段12接收到消息時(shí),當(dāng)前所選的接收消息對(duì)象更新它的相關(guān)消息數(shù)據(jù)。例如,如果當(dāng)MAU 38接收消息時(shí)在接收FIFO存儲(chǔ)器50中不包含DLPDU數(shù)據(jù),則由MsgQmngr 80設(shè)定信號(hào)RcvMsg1_sel,因此在接收消息對(duì)象rcvmsg1中激活有效標(biāo)記屬性。當(dāng)針對(duì)接收消息對(duì)象設(shè)定了有效標(biāo)記時(shí),將寫入指針120的當(dāng)前位置存儲(chǔ)在所選接收消息對(duì)象的結(jié)束位置屬性中。
      對(duì)于某些接收消息,在將消息的所有DLPDU數(shù)據(jù)存儲(chǔ)在接收FIFO存儲(chǔ)器50中之前,CPU 30可以確定是否有必要處理整個(gè)消息。例如,假設(shè)分段12上的20字節(jié)的消息正在被接收的進(jìn)程中,并且接收消息對(duì)象rcvmsg1被選擇(RcvMsg1_sel=1)并且是可視的(RcvMsg1_visible=1)。在將一些DLPDU字節(jié)寫入接收FIFO存儲(chǔ)器50中之后,CPU 30可以讀取寄存器Reg1F,并且針對(duì)已經(jīng)寫入接收FIFO存儲(chǔ)器50中的rcvmsg1,確定DLPDU字節(jié)的數(shù)量。從寄存器Reg1F讀取的值是rcvmsg1的結(jié)束位置屬性值與讀取指針122的值的比較。然后,CPU 30可以經(jīng)由寄存器Reg1D,讀取存儲(chǔ)在接收FIFO存儲(chǔ)器50中的部分消息。由所述部分消息,CPU 30可以確定不需要對(duì)余下的字節(jié)進(jìn)行處理,并且可以丟棄(即過濾)消息的余下部分。在這一點(diǎn)上,CPU 30通過對(duì)寄存器Reg15執(zhí)行寫入操作,發(fā)起Event_Ack信號(hào)。所述Event_Ack信號(hào)通過MUX 108生成CurMsg_Ack信號(hào)。
      Event_Ack信號(hào)的發(fā)起產(chǎn)生要發(fā)生以為下一接收消息準(zhǔn)備接收FIFO存儲(chǔ)器50的事件的次序。首先,當(dāng)生成CurMsg_Ack信號(hào)時(shí),將通過MsgQmngr 80禁用信號(hào)RcvMsgQMux_enb。當(dāng)RcvMsgQMux_enb信號(hào)為低時(shí),將忽略任何在有效接收消息對(duì)象的輸入處發(fā)生的附加事件。CPU30保存讀取接收消息的余下部分的處理時(shí)間,這使CPU 30能夠在設(shè)備24中執(zhí)行其它處理。然后,由相應(yīng)的RcvMsg_Ackn信號(hào)(如接收消息對(duì)象rcvmsg1的RcvMsg1_Ackn)清除針對(duì)有效接收消息對(duì)象所設(shè)定的屬性狀態(tài)(如上溢、下溢等)。隨后,CurMsg_Ack信號(hào)禁用指針使能邏輯118,指針使能邏輯118控制接收FIFO存儲(chǔ)器50的寫入指針120的遞增。該行為防止將與有效接收消息對(duì)象相關(guān)的有效接收消息的附加DLPDU字節(jié)寫入接收FIFO存儲(chǔ)器50。由前端狀態(tài)機(jī)46對(duì)余下的DLPDU數(shù)據(jù)進(jìn)行解碼,但并不存儲(chǔ)。CurMsg_Ack信號(hào)還使CurPosition116的當(dāng)前值復(fù)制到寫入指針120。RcvMsg_Ack信號(hào)(從OR門110輸出)啟動(dòng)MUX 112輸出的有效接收消息對(duì)象的結(jié)束位置值的采樣(例如接收消息對(duì)象rcvmsg1的結(jié)束位置1),并且隨后啟動(dòng)向讀取指針122復(fù)制所采樣的結(jié)束位置值。因此,寫入指針120和讀取指針122被重新定位至相同值。
      當(dāng)部分接收的已丟棄的消息發(fā)生活動(dòng)結(jié)束(EOA)事件脈沖時(shí),接收消息對(duì)象隊(duì)列100中的下一接收消息對(duì)象的RcvMsg_sel信號(hào)變得有效。當(dāng)在分段12上接收新消息時(shí),將它寫入接收FIFO存儲(chǔ)器50。將下一接收消息對(duì)象的DLPDU數(shù)據(jù)的第一字節(jié)存儲(chǔ)在寫入指針120的新的重定位值處。結(jié)果,由新消息蓋寫了已丟棄的消息的部分接收部分。
      總之,消息過濾向硬件提出了特殊問題,因?yàn)橄⑦^濾器在決定是否對(duì)消息進(jìn)行過濾之前需要部分地接收消息。如果軟件消息過濾決定對(duì)消息的余下部分進(jìn)行過濾,則需要丟棄部分接收的消息。本發(fā)明是一種系統(tǒng)和方法,用于從接收數(shù)據(jù)存儲(chǔ)器中丟棄部分接收的消息。當(dāng)接收消息時(shí),激活接收消息對(duì)象,而且跟蹤接收數(shù)據(jù)存儲(chǔ)器中的寫入指針120的當(dāng)前位置,并將其存儲(chǔ)在有效接收消息對(duì)象中。然后從寫入指針120的初始位置處開始,將所述接收消息寫入接收FIFO存儲(chǔ)器50。當(dāng)向接收FIFO存儲(chǔ)器50寫入消息時(shí),寫入指針120的位置遞增。如果CPU 30確定將忽略所述消息,則禁用有效接收消息對(duì)象,因此忽略與所述消息有關(guān)的余下事件。此外,禁用接收數(shù)據(jù)存儲(chǔ)器,因此防止進(jìn)一步向接收FIFO存儲(chǔ)器50寫入與被忽略消息相關(guān)的DLPDU數(shù)據(jù)。當(dāng)忽略所述消息時(shí),將讀取指針122定位在接收FIFO存儲(chǔ)器50中的當(dāng)CPU 30決定過濾余下消息時(shí)的點(diǎn)處。然后優(yōu)選地,將寫入指針120重新定位至接收FIFO存儲(chǔ)器50中與讀取指針122相同的位置。
      在針對(duì)消息接收到所有DLPDU數(shù)據(jù)之前,通過使軟件軟件忽略消息,為CPU 30節(jié)約了寶貴的處理時(shí)間。此外,由于接收FIFO存儲(chǔ)器50可能包含多達(dá)三個(gè)接收消息對(duì)象的DLPDU數(shù)據(jù),所以重要的是,使硬件適當(dāng)?shù)馗櫤涂刂茖懭胫羔?20和讀取指針122的定位,以保持DLPDU數(shù)據(jù)與適當(dāng)?shù)慕邮障?duì)象的關(guān)聯(lián)。在CPU處理時(shí)間十分關(guān)鍵的情況下,使寫入指針120和讀取指針122正確對(duì)準(zhǔn)的重要性顯得尤為明顯,例如當(dāng)丟棄具有大量與它相關(guān)的DLPDU數(shù)據(jù)的接收消息時(shí),或者在對(duì)于低功率應(yīng)用以較低時(shí)鐘進(jìn)行操作的CPU中。
      雖然已經(jīng)參照優(yōu)選實(shí)施例描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到可以在形式和細(xì)節(jié)上進(jìn)行改變,而不脫離本發(fā)明的精神和范圍。
      權(quán)利要求
      1.一種用于在通信介質(zhì)上通信的設(shè)備,所述設(shè)備包括介質(zhì)連接單元(MAU),用于在通信介質(zhì)上接收和發(fā)送消息;中央處理單元(CPU),用于處理接收消息中所包含的數(shù)據(jù)和創(chuàng)建將包含在發(fā)送消息中的數(shù)據(jù);和通信控制器,用于連接在MAU和CPU之間,所述通信控制器包括數(shù)據(jù)隊(duì)列和接收消息對(duì)象的隊(duì)列,所述數(shù)據(jù)隊(duì)列用于存儲(chǔ)在通信介質(zhì)上接收的多個(gè)消息,每個(gè)接收消息對(duì)象與數(shù)據(jù)隊(duì)列中存儲(chǔ)的消息相對(duì)應(yīng);其中,當(dāng)在通信介質(zhì)上接收到消息時(shí),激活第一接收消息對(duì)象,并且將寫入指針的初始位置存儲(chǔ)在數(shù)據(jù)隊(duì)列中;和其中,如果要忽略所述消息,使第一接收消息對(duì)象無(wú)效。
      2.如權(quán)利要求1所述的設(shè)備,其中,設(shè)定有效標(biāo)記以激活接收消息對(duì)象,清除有效標(biāo)記以使接收消息對(duì)象無(wú)效。
      3.如權(quán)利要求1所述的設(shè)備,其中當(dāng)接收消息對(duì)象無(wú)效時(shí),將寫入指針移動(dòng)到接收消息對(duì)象中所存儲(chǔ)的初始位置。
      4.如權(quán)利要求1所述的設(shè)備,其中當(dāng)接收到消息的有效結(jié)束信號(hào)時(shí),激活第二接收消息對(duì)象。
      5.如權(quán)利要求1所述的設(shè)備,其中數(shù)據(jù)隊(duì)列存儲(chǔ)在環(huán)形緩沖器中。
      6.一種在接收整個(gè)消息之前對(duì)通信設(shè)備中的消息進(jìn)行過濾的方法,該方法包括啟用第一接收消息對(duì)象;將接收數(shù)據(jù)存儲(chǔ)器中的寫入指針的初始位置存儲(chǔ)在第一接收消息對(duì)象中;從寫入指針的初始位置開始,將消息寫入接收數(shù)據(jù)存儲(chǔ)器;當(dāng)將消息寫入接收數(shù)據(jù)存儲(chǔ)器時(shí),寫入指針的位置遞增;和當(dāng)通信設(shè)備確定將忽略所述消息時(shí),在消息接收期間禁用第一接收消息對(duì)象。
      7.如權(quán)利要求6所述的方法,其中,在從消息接收到有效開始信號(hào)時(shí),啟用所述第一接收消息對(duì)象。
      8.如權(quán)利要求6所述的方法,還包括使寫入指針返回至初始寫入指針位置。
      9.如權(quán)利要求8所述的方法,其中使寫入指針返回至初始寫入指針位置包括將寫入指針移動(dòng)至存儲(chǔ)在第一接收消息對(duì)象中的初始寫入指針位置。
      10.如權(quán)利要求8所述的方法,還包括當(dāng)接收到消息的有效結(jié)束信號(hào)時(shí),啟用第二接收消息對(duì)象。
      11.如權(quán)利要求6所述的方法,其中啟用第一接收消息對(duì)象包括設(shè)定第一接收消息對(duì)象的有效標(biāo)記。
      12.如權(quán)利要求6所述的方法,其中禁用第一接收消息對(duì)象包括清除第一接收消息對(duì)象的有效標(biāo)記。
      13.一種從通信設(shè)備的數(shù)據(jù)隊(duì)列中清除接收消息的方法,所述數(shù)據(jù)隊(duì)列用于存儲(chǔ)在通信介質(zhì)上接收的多個(gè)消息,所述方法包括將寫入指針的初始位置存儲(chǔ)在數(shù)據(jù)隊(duì)列中;從寫入指針的初始位置開始,將接收消息寫入數(shù)據(jù)隊(duì)列;當(dāng)向數(shù)據(jù)隊(duì)列寫入接收消息時(shí),寫入指針的位置遞增;和如果將清除所述消息,則使寫入指針返回至初始位置,以便由通信設(shè)備接收的下一消息蓋寫所述接收消息。
      全文摘要
      在進(jìn)程控制系統(tǒng)中的設(shè)備在通信介質(zhì)分段上對(duì)數(shù)據(jù)消息進(jìn)行通信。每個(gè)設(shè)備包括通信控制器,通信控制器包括接收數(shù)據(jù)存儲(chǔ)器和多個(gè)接收消息對(duì)象。當(dāng)接收到消息時(shí),激活接收消息對(duì)象并且將接收數(shù)據(jù)存儲(chǔ)器中的寫入指針的初始位置存儲(chǔ)在接收消息對(duì)象中。在接收消息期間,如果硬件設(shè)備確定要忽略所述消息,則使接收消息對(duì)象無(wú)效,因此防止再將消息寫入接收數(shù)據(jù)存儲(chǔ)器。然后優(yōu)選地使寫入指針返回至存儲(chǔ)在接收消息對(duì)象中的它的初始位置。
      文檔編號(hào)G06F3/00GK101052937SQ200580037695
      公開日2007年10月10日 申請(qǐng)日期2005年8月15日 優(yōu)先權(quán)日2004年9月8日
      發(fā)明者布賴恩·A·弗朗查克, 羅杰·R·本森 申請(qǐng)人:費(fèi)希爾-羅斯蒙德系統(tǒng)公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1