專利名稱:通信系統(tǒng)的具有功能分離的發(fā)送事件存儲器的用戶節(jié)點的制作方法
通信系統(tǒng)的具有功能分離的發(fā)送事件存儲器的用戶節(jié)點
現(xiàn)有技術本發(fā)明涉及一種通信系統(tǒng)的用戶節(jié)點。該通信系統(tǒng)包含有數(shù)據(jù)總線,在該數(shù)據(jù)總 線上連接有該用戶節(jié)點和至少另一用戶節(jié)點。該用戶節(jié)點具有通信控制器,用于通過該數(shù) 據(jù)總線發(fā)送消息和/或用于從該數(shù)據(jù)總線接收消息,該用戶節(jié)點還具有消息存儲器,用于 中間存儲要發(fā)送的及所接收的消息。本發(fā)明此外還涉及一種通信系統(tǒng),該通信系統(tǒng)包含有 數(shù)據(jù)總線和多個為了數(shù)據(jù)傳輸而連接到該數(shù)據(jù)總線上的用戶節(jié)點。用戶節(jié)點分別具有一個 通信控制器,用于通過該數(shù)據(jù)總線發(fā)送消息和/或用于從該數(shù)據(jù)總線接收消息,并具有消 息存儲器,用于中間存儲要發(fā)送的及所接收的消息。最后本發(fā)明還涉及用于通過該通信系 統(tǒng)的數(shù)據(jù)總線從通信系統(tǒng)的一個第一用戶節(jié)點向該通信系統(tǒng)的一個第二用戶節(jié)點傳輸消 息的方法。在此該第一用戶節(jié)點的應用程序把要發(fā)送的消息存儲在一個消息存儲器中,其 中該消息根據(jù)該應用程序的發(fā)送指令由通信控制器從中取出,并通過該數(shù)據(jù)總線被傳輸。上述種類的已知通信系統(tǒng)的一個例子是CAN(ControIler AreaNetwork,控制器局 域網(wǎng))通信系統(tǒng)。在此它是一種異步、串行總線系統(tǒng),該總線系統(tǒng)在1983年由博世公司為 了在汽車中控制設備的聯(lián)網(wǎng)而開發(fā),并在1986年(參見SAE文件860391,國際會議及展覽 會,底特律,密歇根,1986年2月M-28)與Intel —起被推出,以減少在機動車中線纜束的 長度并從而節(jié)省空間和重量。CAN總線的應用當然也并不局限于汽車領域。CAN總線在此 期間還進入了比如建筑管理技術以及機床中。在CAN中數(shù)據(jù)傳輸以數(shù)據(jù)幀來進行(所謂的 Frame),數(shù)據(jù)幀除了具有要傳輸?shù)挠杏脭?shù)據(jù)(真正的消息)外還具有在幀開頭(報頭部分) 的配置數(shù)據(jù)和在幀末尾(CRC部分)的校驗數(shù)據(jù)。上述種類的已知通信系統(tǒng)的其他例子是 FlexRay總線、MOST (Media Oriented SystemsiTransport,媒體導向系統(tǒng)傳輸)總線或者任 意的現(xiàn)場總線比如LIN(Locannterconnect Network,本地互連網(wǎng)絡)總線。在CAN和其他協(xié)議中消息在一個第一和一個第二用戶節(jié)點之間被傳輸,其方式 是,該第一用戶節(jié)點的應用程序把要發(fā)送的消息拷貝到一個消息存儲器中,其中該消息根 據(jù)該應用程序的發(fā)送指令由通信控制器從中取出,并通過該數(shù)據(jù)總線被傳輸。在此通常需 要向該應用程序通知該發(fā)送任務的結果以及發(fā)送任務的可能的撤回。比如如果在處理一個 發(fā)送任務期間到達了另一個更緊急的發(fā)送任務,那么就是這種情況。在這種情況下,掛起的 發(fā)送任務被撤回,但是可能已經(jīng)開始的發(fā)送過程(已發(fā)送的“幀開始”比特((SOF)-Bit))不 被中斷,而是繼續(xù),直到仲裁失敗、出現(xiàn)錯誤或者該消息已經(jīng)成功發(fā)送。因為在CAN或其他 協(xié)議中數(shù)據(jù)被串行傳輸,所以它可能可以持續(xù)相對長的時間,直到到達數(shù)據(jù)幀的末尾。在該 時間期間,該用戶節(jié)點的計算單元(CPU Central ProcessingUnit,中央處理單元)實際被 阻塞,因為它必須等待該數(shù)據(jù)幀的結束。此外這可能導致在處理其他緊急的發(fā)送任務時不 可接受的延遲。在到達該第一發(fā)送任務的數(shù)據(jù)幀末尾之后,該CPU才能夠轉向緊急的發(fā)送任務。 為此該用戶節(jié)點的應用程序把緊急發(fā)送任務的要發(fā)送的消息拷貝到消息存儲器中,其中該 消息根據(jù)該應用程序的發(fā)送指令由通信控制器從該消息存儲器中取出,并通過該數(shù)據(jù)總線 被傳輸。在執(zhí)行緊急的發(fā)送任務之后,該應用程序再次進行被中斷的傳輸。為此,需要向該應用程序提供與在該緊急命令之前所處理的發(fā)送任務的狀態(tài)有關的信息。該應用程序應該 能夠獲知該發(fā)送任務的結果以及該發(fā)送任務的可能的撤回。因此在已公開的用戶節(jié)點中,其內容應該被發(fā)送的消息存儲器與狀態(tài)比特相關 聯(lián)。在該狀態(tài)比特上經(jīng)常僅能夠指示一個發(fā)送任務的執(zhí)行。尤其在撤回發(fā)送任務(Tx取 消)的情況下,一些結果不能借助該狀態(tài)比特而顯示出來。根據(jù)所述的現(xiàn)有技術,本發(fā)明所基于的任務是,如下地構造并改進一種用戶節(jié)點, 使得能夠對與發(fā)送任務有關的信息進行管理,并能夠由該應用程序來訪問。本發(fā)明的公開為了解決該任務,根據(jù)開頭所述種類的用戶節(jié)點而推薦,該用戶節(jié)點具有至少一 個與消息存儲器在功能上相分離的發(fā)送事件存儲器,在該發(fā)送事件存儲器中存儲有針對至 少一個要發(fā)送的或者被發(fā)送了的消息的發(fā)送事件。根據(jù)本發(fā)明,從而與發(fā)送任務有關的信息不是存儲在其內容應該被發(fā)送的消息存 儲器中,而是存儲在一個作為發(fā)送事件存儲器的組成部分的單獨的列表中。這所具有的優(yōu) 點是,該應用程序不必從不同消息存儲器中收集信息,而是能夠在固定位置、優(yōu)選地按時間 順序地調用這些信息,并且消息存儲器在撤回一個發(fā)送任務之后能夠立即再次可用并被繼 續(xù)使用,而不必等待所述撤回的結果。該用戶節(jié)點的CPU尤其能夠在撤回一個發(fā)送任務之 后立即轉向下一發(fā)送任務的處理,并比如把消息存儲在該消息存儲器中。顯然該CPU在所 述撤回之后也提供用于其他任意的動作。利用本發(fā)明,從而在發(fā)送任務撤回的情況下能夠 加速彼此相繼的發(fā)送任務的處理,并改善了 CPU的效率。本發(fā)明此外還具有的優(yōu)點是,與發(fā) 送任務的狀態(tài)有關的狀態(tài)標志不再耦合到該消息存儲器上。根據(jù)本發(fā)明的有利改進而推薦,發(fā)送事件包含有至少一個以下的事件-消息成功發(fā)送,-消息成功發(fā)送,盡管發(fā)送任務撤回,-撤回發(fā)送任務,發(fā)送過程還未開始,-撤回發(fā)送任務,發(fā)送過程在仲裁失敗之后終止,以及-撤回發(fā)送任務,發(fā)送過程在錯誤之后終止。通過在該發(fā)送事件存儲器中所存儲的發(fā)送事件,該用戶節(jié)點的應用程序從而能夠 任何時間調用在前發(fā)送任務的精確狀態(tài)或者結果。不僅能夠調用數(shù)據(jù)傳輸是否已成功的信 息,而且還能夠附加地調用如下的信息所述傳輸是在何種情況下成功的(沒有撤回發(fā)送 任務或者雖然撤回發(fā)送任務),以及是否以及在何種情況下該發(fā)送任務被撤回(發(fā)送過程 還未開始(比如由于數(shù)據(jù)總線被占用),發(fā)送過程在仲裁失敗之后終止或者發(fā)送過程在錯 誤之后終止)。這些附加信息允許該應用程序在撤回了其發(fā)送任務的數(shù)據(jù)傳輸繼續(xù)進行時, 采取合適的措施比如提供一個新的發(fā)送任務。根據(jù)本發(fā)明的一個優(yōu)選實施方案而推薦,在該發(fā)送事件存儲器中存儲有至少一個 要發(fā)送或已發(fā)送的消息的標識。該標識優(yōu)選地允許明確地識別該消息或該發(fā)送任務。即使 在該事件存儲器中存儲有不同發(fā)送任務的多個發(fā)送事件,通過除了至少一個要發(fā)送或已發(fā) 送的消息的發(fā)送事件之外在該發(fā)送事件存儲器中還存儲標識,也能夠明確地把發(fā)送事件與 確定的消息或確定的發(fā)送任務相對應。這在該事件存儲器的存儲器容量的范圍內任何時間 都能夠讀出針對確定消息或針對確定命令的發(fā)送事件。該事件存儲器的容量越大,就能夠存儲越多的具有所屬信息的發(fā)送事件。顯然除了發(fā)送事件和標識之外,也可以在該發(fā)送事件存儲器中存儲其他的信息。 那么就比如推薦,在該發(fā)送存儲器中存儲以下一種或多種信息-至少一個要發(fā)送或已發(fā)送的消息的數(shù)據(jù)長度編碼,-時間標記,其表明了該事件何時發(fā)生,-發(fā)送任務所使用(vorlag)的消息存儲器的地址,以及-順序計數(shù)器,如果較大的數(shù)據(jù)量順序地在多個消息中以相同的標識被發(fā)送,那么 該順序計數(shù)器就對數(shù)據(jù)分組進行識別。通過所述的附加信息,便于該應用程序對所存儲的發(fā)送事件進行處理。時間標記 對于確定的應用程序可能是重要的。如果該用戶節(jié)點擁有多個發(fā)送消息存儲器(所謂的發(fā) 送緩沖器),那么借助該發(fā)送任務所使用的消息存儲器的地址就能夠確定哪個發(fā)送緩沖是 空閑的可用于新的發(fā)送任務。如果比如在制造完成或者在車間停產(chǎn)期間通信網(wǎng)絡的作為控 制設備而構造的用戶節(jié)點首次被新編程或者利用新的軟件版本被編程,那么順序計數(shù)器比 如在軟件下載時可能是重要的。在此軟件被劃分為多個比如8字節(jié)大的數(shù)據(jù)分組,這些數(shù) 據(jù)分組具有相同的標識。該順序計數(shù)器表明了發(fā)送事件針對哪個數(shù)據(jù)分組而被存儲在該事 件存儲器中以及哪個數(shù)據(jù)分組已經(jīng)成功被傳輸。有利地該發(fā)送事件存儲器作為一種FIFO (First In First Out,先進先出)存儲器 來組織。優(yōu)選地該發(fā)送事件存儲器具有多個存儲單元,其中在每個存儲單元中都存儲了與 要發(fā)送的或已發(fā)送的消息有關的信息。在實際中,通常幾個存儲單元的事件存儲器的容量 就足夠了。對于以下的情況,即由于該應用程序太少將其讀出而使該發(fā)送事件存儲器面臨 溢出的情況,可以輸出一個報警信號。如果該存儲器實際已溢出,那么就可以輸出一個錯誤 信號。代替地或附加地,可以考慮在超出該發(fā)送事件存儲器容量的情況下簡單地將最先存 儲的記錄丟棄。有利地該發(fā)送事件存儲器包含有隨機存取存儲器(RAM ;RandomAccess Memory,隨 機存取存儲器)。也可以考慮以其他方式來實現(xiàn),比如借助觸發(fā)電路,但其中這需要相對大 的硅面積,并從而產(chǎn)生相對高的造價。尤其有利的是本發(fā)明的一種擴展方案,其中該發(fā)送事 件存儲器作為消息存儲器的一部分來構造。雖然消息存儲器和發(fā)送事件存儲器在功能上相 分離,但二者都可以在硬件上用相同的存儲器單元、然而在不同的存儲器區(qū)域中來構造。有 利地該發(fā)送事件存儲器的大小、尤其該事件存儲器的存儲器單元的數(shù)量可以在軟件上比如 借助配置比特來自由配置。這樣該事件存儲器的大小就可以以簡單的方式靈活地與獨特的 要求相匹配。作為本發(fā)明任務的另一解決方案,根據(jù)開頭所述種類的通信系統(tǒng)而推薦,至少一 個用戶節(jié)點具有至少一個與消息存儲器功能分離的發(fā)送事件存儲器,在該發(fā)送事件存儲器 中存儲有至少一個要發(fā)送的或已發(fā)送的消息的發(fā)送事件。根據(jù)有利的改進,本發(fā)明的通信 系統(tǒng)的至少一個用戶節(jié)點此外還具有從屬權利要求2至8之一或多個中的特征。最后,作為本發(fā)明任務的另一解決方案,根據(jù)開頭所述種類的用于傳輸消息的方 法而推薦,要發(fā)送的或已發(fā)送的消息的發(fā)送事件存儲在與該消息存儲器功能分離的發(fā)送事 件存儲器中,并且該應用程序能夠任何時間來訪問在該事件存儲器中所存儲的信息。下面借助附圖來詳細解釋本發(fā)明的有利的擴展方案。其中
圖1示出了根據(jù)本發(fā)明的一種通信網(wǎng)絡的例子;圖2示出了根據(jù)本發(fā)明的、圖1的通信網(wǎng)絡的用戶節(jié)點的例子;以及圖3示出了根據(jù)本發(fā)明的、用于通過圖1的通信網(wǎng)絡進行消息傳輸?shù)姆椒鞒虉D 的例子。在圖1中根據(jù)本發(fā)明的通信系統(tǒng)其整體用參考符號1來表示。該網(wǎng)絡1包含有數(shù) 據(jù)總線2,其通過一個唯一的線來象征地示出。顯然該數(shù)據(jù)總線2也可以作為一線、二線或 多線總線來構造。該數(shù)據(jù)總線2的物理層可以包含有一個或多個銅導線、一個或多個玻璃 光纖或者光學(比如紅外)或無線電連接。在該數(shù)據(jù)總線2上連接有多個用戶節(jié)點3,其 中在圖1中僅示例地示出了三個。每個節(jié)點3都通過一個通信模塊4 (所謂的通信控制器 CC)連接到該數(shù)據(jù)總線2。該節(jié)點3此外還擁有一個主機應用5 (所謂的應用程序AP)。消息7可以通過該數(shù)據(jù)總線2按照一種串行通信協(xié)議(比如CAN,F(xiàn)lexRay, LIN, MOST等)來傳輸。該通信模塊4負責通過該數(shù)據(jù)總線2來接收和發(fā)送消息7。該消息7分 別具有所謂的報頭8,該報頭具有標識(所謂的標識符)和其他的配置比特。除了報頭8之 外,該消息7還具有有用數(shù)據(jù)部分9 (所謂的有效載荷)和所謂的報尾10。該標識實現(xiàn)了該 消息7的明確識別。在CAN(Controller Area Network,控制器局域網(wǎng))中,該標識比如是 一種發(fā)送器地址,其允許確定該消息7的來源并標識該消息7的內容9。邏輯上在應用程序5與通信控制器4之間設置有發(fā)送緩沖器11 (Tx)和接收緩沖 器12(Rx),用作對于發(fā)出及到達消息7的中間存儲器。該消息存儲器11、12主體上可以是 該通信控制器4的集成組成部分,或者與之分離地構造。該消息存儲器11、12優(yōu)選地按照 FIFO (First InFirst Out,先進先出)方式來構建。其比如作為隨機存取存儲器(所謂的 Random Access Memory ;RAM)來構造。如果用戶3之一的應用程序5想把一個消息7通過該數(shù)據(jù)總線2發(fā)送到另一用 戶3,那么它首先把要發(fā)送的消息7或其內容9存儲在該發(fā)送緩沖器11中(圖2中的箭頭 20)。根據(jù)該應用程序5的發(fā)送指令,該通信控制器4把該消息7或其內容9從該發(fā)送緩沖 器11中取出(圖2的箭頭21),將其按照該通信系統(tǒng)1中傳輸消息7所使用的通信協(xié)議而 變成正確的格式(比如添加報頭8和報尾10),并通過該數(shù)據(jù)總線2來傳輸該消息7 (圖2 的箭頭22)。該消息7通過該數(shù)據(jù)總線2的傳輸串行地進行,并從而可能持續(xù)相對長的時 間。本發(fā)明所涉及的情況是,在一個任意的時間點在處理該發(fā)送任務期間該發(fā)送任務又被 撤回(所謂的發(fā)送取消),比如由于應該首先處理另一尤其緊急的發(fā)送任務。該發(fā)送任務開 始于該消息7或其內容9在該發(fā)送緩沖器11中的存儲,并結束于接收到來自該通信控制器 4的、關于該消息是否成功發(fā)送的反饋。在這種情況下以及在其他情況下,需要向該應用程序5通知該發(fā)送任務的結果以 及該發(fā)送任務可能的撤回。因此在現(xiàn)有技術中,該發(fā)送緩沖器11與一個狀態(tài)比特相關聯(lián), 該狀態(tài)比特能夠提供關于該發(fā)送任務是否已成功完成的信息。尤其在發(fā)送任務撤回的情況 下,關于其他事件的信息不能從該狀態(tài)比特獲取。在發(fā)送任務撤回的情況下,在CAN中一個 可能已開始的發(fā)送過程(也即已發(fā)送了幀開始(SOF))不被中斷,而是繼續(xù)進行,直至仲裁 失敗、出現(xiàn)錯誤或消息已成功發(fā)送。該應用程序5不能從該狀態(tài)比特獲知在撤回該發(fā)送任 務之后最終哪個事件發(fā)生。此外該應用程序5還必須等待該發(fā)送任務的結果,并在該時間 期間在一定程度上進行阻塞。在此本發(fā)明能夠提供改善。
根據(jù)本發(fā)明,在該用戶節(jié)點3中分別設置了與該消息存儲器11、12功能上相分離 的發(fā)送事件存儲器13(Tx Mat),在該發(fā)送事件存儲器中存儲有發(fā)送事件或者至少一個要 發(fā)送或已發(fā)送的消息7的狀態(tài)。顯然不必為該通信網(wǎng)絡1的所有用戶節(jié)點3都設置有發(fā)送 事件存儲器13。該事件存儲器13優(yōu)選地作為隨機存取存儲器(RAM)來構造,并按照FIFO 方式來組織。顯然該事件存儲器13也可以作為一種只讀存儲器(比如閃存、R0M、EEPR0M) 來構造。該事件存儲器13可以作為該通信控制器4的集成組成部分或者與之分離地來構 造。此外該發(fā)送事件存儲器13也可以與該消息存儲器11、12相分離或者作為該消息存儲 器11、12的一部分來構造。如果該事件存儲器13是消息存儲器11、12的一部分,那么該事 件存儲器13的大小可以在軟件上比如借助配置比特與獨特的要求相應地被靈活定義。與該發(fā)送任務的狀態(tài)有關的信息從而不被存儲在其內容應該被發(fā)送的消息存儲 器11中,而是存儲在一個單獨的發(fā)送事件列表中。該發(fā)送事件列表優(yōu)選地包含有每個發(fā) 送或撤回事件的一個記錄。借助本發(fā)明,與發(fā)送任務的狀態(tài)有關的信息可以在該通信模塊 4中被管理,并可以被存儲在該事件存儲器13中(圖2中的箭頭23)。該應用程序5可以 時間上靈活地讀取出在該事件存儲器13中所存儲的信息(圖2中的箭頭24)。尤其有利 的是,與該發(fā)送任務有關的信息現(xiàn)在完全與該發(fā)送緩沖11相分離。另一優(yōu)點在于,該應用 程序5不必從不同的消息存儲器11中收集與該發(fā)送任務有關的狀態(tài)信息,而是能夠優(yōu)選時 間上分類地在固定的位置(在發(fā)送事件存儲器13的發(fā)送事件列表中)調用該信息。在發(fā) 送任務撤回之后,該消息存儲器11可以立即不再被使用,而不必等待該發(fā)送任務或該撤回 的結果。該應用程序5可以在稍后的時間點讀出在該事件存儲器13中所存儲的信息,它不 必立即(比如每個中斷)對其進行做出反應。如果由于該應用程序5太少對該事件存儲器 13進行讀出而使該事件存儲器13面臨溢出,那么在一個第一步驟中可以輸出一個報警信 號,其中該報警信號可以與相應的措施相關聯(lián),以加速或者更頻繁地讀出該信息的至少一 部分。如果該存儲器13實際已溢出,那么可以輸出一個錯誤信號。在該情況下,可以相應 丟棄在該發(fā)送事件存儲器13中最老的記錄,以便為當前發(fā)送任務的信息提供空間。在最簡單的情況下,該事件存儲器13包含有一些發(fā)送任務的時間上有序的事件 (發(fā)送消息7,撤回發(fā)送任務)。下面詳細闡述其他事件的一些例子,這些事件可以存儲在該 事件存儲器13中1)消息7已成功發(fā)送,2)消息7已成功發(fā)送,盡管該發(fā)送任務被撤回,3)發(fā)送任務被撤回,發(fā)送過程還未開始,4)發(fā)送任務被撤回,發(fā)送過程在仲裁失敗之后結束,以及5)發(fā)送任務被撤回,發(fā)送過程在錯誤之后終止。除了要發(fā)送或已發(fā)送消息7的發(fā)送事件之外,在該發(fā)送事件存儲器13中也可以存 儲其他的信息。對于該存儲器13的存儲單元的信息內容存在不同的構建等級。優(yōu)選地在 該存儲器13中還存儲有消息7的標識(比如CAN標識符)。該標識實現(xiàn)了所存儲消息與確 定消息的明確識別和分配,使得這些消息不一定必須按照時間順序存儲在該存儲器13中。 也可以考慮在該發(fā)送事件存儲器13中容納一個或多個以下的附加信息1)數(shù)據(jù)長度編碼,該數(shù)據(jù)長度編碼表明了至少一個要發(fā)送或已發(fā)送消息7的有用 數(shù)據(jù)部分9的長度,
2)時間標記,其表明在該存儲器13中所存儲的事件何時發(fā)生,3)發(fā)送任務所使用的消息存儲器11的地址,以及4)順序計數(shù)器,如果借助較高的傳輸協(xié)議將較大的數(shù)據(jù)量順序地在多個消息7中 以相同的標識發(fā)送,那么該順序計數(shù)器就對數(shù)據(jù)分組進行識別。通過所述的附加信息,便于通過該應用程序5對所存儲的發(fā)送事件進行處理。時 間標記對于確定的應用程序5可能是重要的。如果該用戶節(jié)點3擁有多個發(fā)送緩沖器11, 那么借助該發(fā)送任務所使用的消息存儲器11的地址,就可以確定哪個發(fā)送緩沖器11是空 閑的可用于新的發(fā)送任務。如果比如在制造完成或者在車間停產(chǎn)期間通信網(wǎng)絡1的作為控 制設備而構造的用戶節(jié)點3首次被編程或者利用新的軟件版本被編程,那么順序計數(shù)器比 如在軟件下載時可能是重要的。在此軟件被劃分為多個比如8字節(jié)大的數(shù)據(jù)分組,這些數(shù) 據(jù)分組都具有相同的標識。該順序計數(shù)器表明了發(fā)送事件針對哪個數(shù)據(jù)分組而被存儲在該 事件存儲器13中以及哪個數(shù)據(jù)分組已經(jīng)成功被傳輸。該發(fā)送計數(shù)器由該應用程序5在給 出該發(fā)送任務時已經(jīng)記錄在該消息存儲器11中。下面借助圖3中所示的流程圖來進一步解釋本發(fā)明的方法。該方法開始于一個功 能塊30。在功能塊31中該應用程序5把要傳輸?shù)臄?shù)據(jù)傳送到發(fā)送緩沖器11。該應用程序 5在功能塊32中發(fā)送一個發(fā)送指令。然后該通信控制器4在功能塊33中從該發(fā)送緩沖器 11中取出該數(shù)據(jù)。接著該控制器4在功能塊34中把數(shù)據(jù)9裝入到與所使用的通信協(xié)議相 對應的消息7中,并把數(shù)據(jù)變成相應的格式。之后在功能塊35中該消息7通過該數(shù)據(jù)總線 2被串行傳輸。消息傳輸開始于一個SOF比特的發(fā)送。在處理該發(fā)送任務期間(功能塊31至35)的一個任意時間點,可能發(fā)生一個事 件,該事件需要撤回該發(fā)送任務,以便比如希望盡可能快地發(fā)送另一消息,該另一消息比當 前發(fā)送任務的消息更緊急或更重要。這種事件的發(fā)生在圖3中通過功能塊36來表示。在 所示的例子中,該事件36在串行消息傳輸期間發(fā)生。該應用程序5撤回當前的發(fā)送任務。在撤回該發(fā)送任務之后,該應用程序5可以在功能塊37中立即再次把新的數(shù)據(jù) 存儲在發(fā)送緩沖器11中,也即更緊急或更重要的消息7的數(shù)據(jù)。該應用程序5不必等待 該第一消息傳輸?shù)慕Y束或該第一發(fā)送任務的結果。由此能夠改善該用戶節(jié)點3的主機 CPU (Central ProcessingUnit,中央處理單元)的工作負荷和效率。該第一發(fā)送任務的狀 態(tài)由該通信控制器4在該第一消息傳輸結束之后在一個稍晚的時間點存儲在該發(fā)送事件 存儲器13中。這可以在該第一消息傳輸結束之后的一個任意時間點進行,并在圖3中示例 地通過功能塊38來表示。在功能塊39中,該應用程序5發(fā)送一個發(fā)送指令用于傳送另一消息。之后該通信 控制器4在功能塊40中從該發(fā)送緩沖器11中取出新的數(shù)據(jù)。接著該控制器4在功能塊41 中把數(shù)據(jù)9裝入與所使用的通信協(xié)議相應的一個第二消息7中,并把所述數(shù)據(jù)變成相應的 格式。之后在功能塊42中該第二消息7通過該數(shù)據(jù)總線2被串行傳輸。該消息傳輸開始 于一個SOF比特的發(fā)送。該第二發(fā)送任務的狀態(tài)由該通信控制器4在該第二消息傳輸結束 之后在一個任意的稍晚的時間點存儲在該發(fā)送事件存儲器13中。這在圖3中示例地通過 功能塊43來表示。在該第一消息7傳輸結束之后的一個任意時間點,該應用程序把該第一發(fā)送任務 的結果從該發(fā)送事件存儲器13中取出。這在所示的例子中在功能塊44中在該第二消息7傳輸結束之后發(fā)生,其中該第二消息已導致該第一發(fā)送任務的撤回。根據(jù)所讀入的該第一 發(fā)送任務的結果,促使該應用程序5在功能塊45中重新傳輸該第一消息7 (消息未成功發(fā) 送)或不傳輸該第一消息7 (消息已成功發(fā)送)。然后該方法在功能塊46中結束。
本發(fā)明的重點應在于,該主機CPU的工作負荷被改善,在撤回一個發(fā)送任務之后 在最短的時間內可以開始傳送新的消息,為單個的發(fā)送任務提供有詳細的信息,并使得關 于發(fā)送任務的信息在事件存儲器中的存儲與該信息的讀出在時間上去耦,而不會由此導致 該主機CPU的阻塞。
權利要求
1.一種通信系統(tǒng)(1)的用戶節(jié)點(3),該通信系統(tǒng)包含有數(shù)據(jù)總線O),在該數(shù)據(jù)總線 上連接有所述用戶節(jié)點C3)和至少另一用戶節(jié)點(3),其中該用戶節(jié)點C3)具有通信控制器 (4),用于通過該數(shù)據(jù)總線(2)發(fā)送消息(7)和/或用于從該數(shù)據(jù)總線(2)接收消息(7),該 用戶節(jié)點(3)還具有消息存儲器(11,12),用于中間存儲要發(fā)送的或接收的消息(7),其特 征在于,該用戶節(jié)點(3)具有至少一個與該消息存儲器(11,12)功能上相分離的發(fā)送事件 存儲器(13),在該發(fā)送事件存儲器中存儲有至少一個要發(fā)送的或已發(fā)送的消息(7)的發(fā)送 事件。
2.根據(jù)權利要求1所述的用戶節(jié)點(3),其特征在于,該發(fā)送事件包含有至少一個以下 的事件-消息(7)已成功發(fā)送,-消息(7)已成功發(fā)送,盡管撤回發(fā)送任務,-撤回發(fā)送任務,發(fā)送過程還未開始,-撤回發(fā)送任務,發(fā)送過程在仲裁失敗之后終止,以及-撤回發(fā)送任務,發(fā)送過程在錯誤之后終止。
3.根據(jù)權利要求1或2所述的用戶節(jié)點(3),其特征在于,在該發(fā)送事件存儲器(13) 中存儲有至少一個要發(fā)送或已發(fā)送消息(7)的標識。
4.根據(jù)權利要求1至3之一所述的用戶節(jié)點(3),其特征在于,在該發(fā)送事件存儲器 (13)中存儲有一個或多個以下的信息-至少一個要發(fā)送或已發(fā)送消息(7)的數(shù)據(jù)長度編碼,-時間標記,其表明了該事件何時發(fā)生,-該發(fā)送任務所使用的消息存儲器(11,12)的地址,以及-順序計數(shù)器,如果較大的數(shù)據(jù)量順序地在多個消息(7)中用相同的標識被發(fā)送,那么 該順序計數(shù)器就對數(shù)據(jù)分組進行識別。
5.根據(jù)權利要求1至4之一所述的用戶節(jié)點(3),其特征在于,該發(fā)送事件存儲器(13) 具有多個存儲器單元,其中在每個存儲器單元中存儲有與要發(fā)送或已發(fā)送消息(7)有關的 fn息ο
6.根據(jù)權利要求1至5之一所述的用戶節(jié)點(3),其特征在于,該發(fā)送事件存儲器(13) 包含有隨機存取存儲器。
7.根據(jù)權利要求1至6之一所述的用戶節(jié)點(3),其特征在于,該發(fā)送事件存儲器(13) 作為消息存儲器(11,12)的組成部分來構造。
8.根據(jù)權利要求7所述的用戶節(jié)點(3),其特征在于,該發(fā)送事件存儲器(1 的大小 能夠借助配置比特來配置。
9.一種包含有數(shù)據(jù)總線( 和為數(shù)據(jù)傳輸而連接在該數(shù)據(jù)總線上的多個用戶節(jié)點(3) 的通信系統(tǒng)(1),其中這些用戶節(jié)點(3)分別具有通信控制器,用于通過該數(shù)據(jù)總線(2) 發(fā)送消息(7)和/或用于從該數(shù)據(jù)總線(2)接收消息(7),這些用戶節(jié)點(3)還具有消息 存儲器(11,12),用于中間存儲要發(fā)送的或已接收的消息(7),其特征在于,這些用戶節(jié)點 (3)中的至少一個具有至少一個與該消息存儲器(11,12)功能上相分離的發(fā)送事件存儲器 (13),在該發(fā)送事件存儲器中存儲有至少一個要發(fā)送或已發(fā)送消息(7)的發(fā)送事件。
10.一種用于從通信系統(tǒng)(1)的一個第一用戶節(jié)點(3)通過該通信系統(tǒng)(1)的數(shù)據(jù)總線O)向該通信系統(tǒng)(1)的一個第二用戶節(jié)點(3)傳輸消息(7)的方法,其中該第一用戶 節(jié)點⑶的應用程序(5)把要發(fā)送的消息(7)拷貝到消息存儲器(11,12)中,該消息根據(jù) 該應用程序(5)的發(fā)送指令被通信控制器⑷從所述消息存儲器(11,12)中取出,并通過 該數(shù)據(jù)總線(2)被傳輸,其特征在于,要發(fā)送或已發(fā)送消息(7)的發(fā)送事件被存儲在至少一 個與該消息存儲器(11,12)功能上相分離的發(fā)送事件存儲器(13)中,并且該應用程序(5) 能夠在任何時間對其進行訪問。
全文摘要
本發(fā)明涉及一種通信系統(tǒng)(1)的用戶節(jié)點(3)、一種通信系統(tǒng)(1)和一種用于在該通信系統(tǒng)(1)中傳輸消息(7)的方法。該消息(7)由該通信系統(tǒng)(1)的一個第一用戶節(jié)點(3)通過該通信系統(tǒng)(1)的數(shù)據(jù)總線(2)被傳輸?shù)皆撏ㄐ畔到y(tǒng)(1)的一個第二用戶節(jié)點(3)。該第一用戶節(jié)點(3)的應用程序(5)把要發(fā)送的消息(7)存儲在一個消息存儲器(11,12)中,該消息根據(jù)該應用程序(5)的發(fā)送指令由通信控制器(4)從該消息存儲器中取出,并通過該數(shù)據(jù)總線(2)被傳輸。為了尤其在撤回發(fā)送任務的情況下能夠改善主機CPU的工作負荷和效率,推薦把要發(fā)送或已發(fā)送消息(7)的發(fā)送事件存儲在至少一個與該消息存儲器(11,12)功能上相分離的發(fā)送事件存儲器(13)中,并且該應用程序(5)能夠在任何時間訪問在該事件存儲器(13)中所存儲的信息。
文檔編號H04L12/40GK102100037SQ200980116066
公開日2011年6月15日 申請日期2009年3月5日 優(yōu)先權日2008年5月5日
發(fā)明者C·霍爾斯特, F·哈特維希, F·拜勒, M·伊勒, M·施雷爾, T·洛倫茨 申請人:羅伯特.博世有限公司