專利名稱:使用發送和接收緩沖器實現的消息防丟失的制作方法
技術領域:
本發明的實施例總體上涉及車輛內的控制器局域網系統。
背景技術:
控制器局域網(CAN)是一種車輛總線標準,用來允許電子控制單元(ECU)與其它裝置在沒有中央計算機或主機的情況下相互通信。車輛系統和子系統具有大量ECU,它們控制致動器或從傳感裝置接收車輛運行數據。CAN系統是異步廣播串行總線,該總線串行地傳遞消息。因此,同一時刻在通信總線上只傳遞一個消息。當預備向通信總線上傳送消息時, 總線控制器控制總線上的消息轉移。如果多個傳送器同時開始一個以上的消息傳輸,就傳送更占優勢的消息。這稱為仲裁過程。具有最高優先級的消息將贏得這個仲裁,并且以較低優先級傳送的消息將檢測到這種狀況并等待。在不同的情形中,可以通過CAN系統內連續的不同節點處理與車輛運行有關的消息。在這樣的情形中,向第一節點提供消息并且在不同時刻處理這些消息。當在相應節點處完成對第一消息的處理時,沿著通信總線傳遞其至下一節點進行另外的處理。同時,在第一節點處理下一消息并且隨后繼續沿著通信總線將其傳遞至下一節點進行另外的處理。這個過程針對連續消息而繼續。由于處理消息期間的固有延時或對通信總線的爭用,消息可能在通信過程中丟失,因為沒有中央計算機或主機確保每個消息得到保存且不遺漏。在這樣的情況中,丟失的消息可能被另一消息蓋寫。因此,需要確保可能由于抖動、異步時鐘和有限的總線控制器緩沖器大小而丟失的每個消息在CAN系統內得到適當地保存和處理。
發明內容
一個實施例的優點是減少了由對CAN系統中的通信總線的爭用而引起的消息丟失。發送緩沖器被加在每個節點中,這些緩沖器存儲消息,這些消息是為傳輸生成的,但是不能轉移給總線控制器,因為當前消息已經占用總線控制器的存儲器。接收緩沖器加在每個節點中用于存儲從通信總線收到的消息,在此,該消息所引向的節點內的應用部件不可用來接收和處理該收到的消息。因此,由抖動、有限的CAN控制器緩沖器大小和異步時鐘引起的在CAN系統中傳輸延遲的消息能夠存儲在緩沖器中,直到總線控制器可用或者應用部件預備處理該消息。—個實施例設想一種用于車輛的分布嵌入式實時控制器局域網系統。在控制器局域網系統內,通信總線傳送消息。多個節點形成通過通信總線可通信地連接的多個通信端點。每個節點包括用于生成車輛運行數據的至少一個應用部件和與該至少一個應用部件通信的電子控制單元。該電子控制單元生成包含車輛運行數據的消息。該電子控制單元在事件觸發模式中用于啟動向通信總線的消息傳輸。該電子控制單元包括發送緩沖器用于存儲生成的消息。總線控制器與該電子控制單元對接。總線控制器管理消息往返于通信總線的轉移。消息向通信總線上的轉移由總線控制器定期執行。當存儲在總線控制器的存儲器內的前一消息等待在通信總線上傳輸時,總線控制器不能用于從電子控制單元接收消息。當該存儲器空閑時,總線控制器可用于從電子控制單元接收消息。當總線控制器不可用時,消息被存儲在發送緩沖器中。當總線控制器可用時,發送緩沖器內的相應的消息被轉移給總線控制器。—個實施例設想一種在車輛的分布嵌入式實時控制器局域網系統內的節點之間傳送消息的方法。控制器局域網系統包括通信總線和用于控制消息在通信總線上的傳輸的總線控制器,其中消息向通信總線上的轉移是由總線控制器定期執行的。控制器局域網系統進一步包括多個節點,它們形成通過通信總線可通信地連接的多個通信端點。每個節點包括至少一個應用部件、電子控制單元、發送緩沖器和接收緩沖器。該方法包括下述步驟 電子控制單元從至少一個應用部件接收車輛運行數據并且生成包含車輛運行數據的消息用于在通信總線上傳輸。該電子控制單元在事件觸發模式中用于啟動通信總線上消息向下一相應節點的傳輸。響應于總線控制器表明通信總線不可用,將消息存儲在發送緩沖器中。 當總線控制器可用于接收下一消息時,從發送緩沖器轉移相應的消息。當存儲在總線控制器的存儲器內的前一消息等待在通信總線上傳輸時,總線控制器不能用于從電子控制單元接收下一消息。當該存儲器空閑時,總線控制器可用于從電子控制單元接收消息。在通信總線上傳送相應的消息。方案I. 一種用于車輛的分布嵌入式實時控制器局域網系統,包括
用于在所述控制器局域網系統內傳送消息的通信總線;
形成通過所述通信總線可通信地連接的多個通信端點的多個節點,其中每個節點包
括
用于生成車輛運行數據的至少一個應用部件;
與所述至少一個應用部件通信的電子控制單元,所述電子控制單元生成包含所述車輛運行數據的消息,所述電子控制單元在事件觸發模式中用于啟動所述消息向所述通信總線的傳輸,所述電子控制單元包括用于存儲所生成的消息的發送緩沖器;以及
與所述電子控制單元對接的總線控制器,所述總線控制器管理消息往返于所述通信總線的轉移,消息向所述通信總線上的轉移由所述總線控制器定期執行,當存儲在所述總線控制器的存儲器內的前一消息等待在所述通信總線上傳輸時,所述總線控制器不能用于從所述電子控制單元接收消息,并且其中當所述存儲器空閑時,所述總線控制器可用于從所述電子控制單元接收消息;
其中當所述總線控制器不可用時,消息被存儲在所述發送緩沖器中,并且其中當所述總線控制器可用時,所述發送緩沖器內的相應的消息被轉移給所述總線控制器。方案2.如方案I所述的系統,其中,所述發送緩沖器由相應節點內的多個應用部件共享。方案3.如方案I所述的系統,其中,所述電子控制單元包括管理從所述至少一個應用部件向所述發送緩沖器的消息轉移的入隊任務模塊,其中所述入隊任務模塊確定所述發送緩沖器內是否有可用的空閑單元,并且其中響應于所述發送緩沖器內有可用的空閑單元,所述消息被存儲在所述空閑單元中。方案4.如方案3所述的系統,其中,所述電子控制單元包括用于保存所述發送緩沖器內的存儲消息的優先級排序的發送消息鏈表,其中所述入隊任務模塊將所述消息加到所述發送消息鏈表中。
方案5.如方案4所述的系統,其中,響應于所述發送緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述發送緩沖器中的存儲消息,其中所述入隊任務模塊將所述消息加到所述發送消息鏈表中。方案6.如方案5所述的系統,其中,響應于所述發送緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述發送緩沖器內的最舊的存儲消息。方案7.如方案5所述的系統,其中,響應于所述發送緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述發送緩沖器內的具有最低優先級的消息。方案8.如方案5所述的系統,其中,所述電子控制單元包括管理從所述發送緩沖器向所述總線控制器的相應消息的轉移的出隊任務模塊,其中所述出隊任務模塊確定所述總線控制器是否可用于接收所述消息,并且其中響應于所述總線控制器存儲器可用于接收所述消息,所述出隊任務模塊將在所述發送緩沖器的發送消息鏈表中排隊的相應消息轉移給所述總線控制器。方案9.如方案8所述的系統,其中,從所述發送緩沖器轉移給所述總線控制器的所述相應消息是所述發送緩沖器中最舊的消息。方案10.如方案8所述的系統,其中,從所述發送緩沖器轉移給所述總線控制器的所述相應消息是所述發送緩沖器中具有最高優先級的消息。方案11.如方案I所述的系統,其中,所述電子控制單元包括接收緩沖器,該接收緩沖器用于在所述至少一個應用部件不可用時存儲所述通信總線上收到的消息,所述接收緩沖器包括多個緩沖單元。方案12.如方案11所述的系統,其中,所述接收緩沖器由相應節點內的多個應用部件共享。方案13.如方案12所述的系統,其中,所述電子控制單元包括管理從所述總線控制器向所述接收緩沖器的消息轉移的入隊任務模塊,其中所述入隊任務模塊確定所述接收緩沖器內是否有可用的空閑單元,其中響應于所述接收緩沖器的單元可用,從所述通信總線收到的消息存儲在所述接收緩沖器的所述空閑單元中,并且其中所述電子控制單元包括用于保存所述接收緩沖器內的存儲消息的優先級排序的收到消息鏈表,其中所述入隊任務模塊將所述收到的消息加到所述收到消息鏈表中。方案14.如方案13所述的系統,其中,響應于所述接收緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述接收緩沖器中的存儲消息,其中所述入隊任務模塊將所述收到的消息加到可用的緩沖單元中。方案15.如方案14所述的系統,其中,響應于所述接收緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述接收緩沖器內的最舊的存儲消息。方案16.如方案14所述的系統,其中,響應于所述接收緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述接收緩沖器內的具有最低優先級的消息。方案17.如方案14所述的系統,其中,出隊任務模塊管理從所述接收緩沖器向所述至少一個應用部件的下一消息的轉移,所述接收緩沖器中的最舊的存儲消息被從所述接收緩沖器轉移給所述至少一個應用部件。方案18. —種在車輛的分布嵌入式實時控制器局域網系統內的節點之間傳送消息的方法,所述控制器局域網系統包括通信總線和用于控制所述通信總線上的消息傳輸的總線控制器,其中消息向所述通信總線上的轉移是由所述總線控制器定期執行的,所述控制器局域網系統進一步包括形成通過所述通信總線可通信地連接的多個通信端點的多個節點,每個節點包括至少一個應用部件、電子控制單元、發送緩沖器和接收緩沖器,所述方法包括如下步驟
所述電子控制單元從所述至少一個應用部件接收車輛運行數據并且生成包含所述車輛運行數據的消息用于在所述通信總線上傳輸,所述電子控制單元在事件觸發模式中用于啟動所述通信總線上消息向下一相應節點的傳輸;
響應于所述總線控制器表明所述通信總線不可用,將所述消息存儲在所述發送緩沖器中;以及
當所述總線控制器可用于接收下一消息時,從所述發送緩沖器轉移相應的消息,當存儲在所述總線控制器的存儲器內的前一消息等待在所述通信總線上傳輸時,所述總線控制器不能用于從所述電子控制單元接收所述下一消息,并且其中當所述存儲器空閑時,所述總線控制器可用于從所述電子控制單元接收消息;以及在所述通信總線上傳送所述相應的消息。方案19.如方案18所述的方法,其中,入隊任務模塊管理從所述至少一個應用部件向所述發送緩沖器的消息轉移,其中所述入隊任務模塊確定所述發送緩沖器內是否有可用的空閑單元,并且其中響應于所述發送緩沖器內有可用的空閑單元,將所述相應的消息存儲在所述空閑單元中。方案20.如方案19所述的方法,其中,所述電子控制單元包括用于保存所述存儲消息的優先級排序的發送消息鏈表,其中響應于所述發送緩沖器中沒有可用的空閑單元, 所述入隊任務模塊刪除所述發送緩沖器中的存儲消息,其中所述入隊任務模塊將所述相應的消息加到所述空閑單元中。方案21.如方案18所述的方法,其中,出隊任務模塊管理從所述發送緩沖器向所述總線控制器的下一消息的轉移,并且其中響應于所述總線控制器可用于接受所述下一消息,所述出隊任務模塊將在所述發送緩沖器的發送消息鏈表中排隊的下一消息轉移給所述總線控制器。方案22.如方案18所述的方法,進一步包括如下步驟
在所述總線控制器中接收來自所述通信總線的所述下一消息;
將所述總線控制器收到的消息存儲在所述接收緩沖器中;以及
當所述至少一個應用部件可用于接收下一消息時,轉移所述存儲消息給所述至少一個應用部件。方案23.如方案22所述的方法,其中,入隊任務模塊管理從所述通信總線向所述接收緩沖器的消息轉移,其中響應于所述接收緩沖器中沒有可用的空閑單元,所述入隊任務模塊刪除所述接收緩沖器中的存儲消息,其中所述入隊任務模塊將所述消息加到所述空閑的緩沖單元中。方案24.如方案23所述的方法,其中,出隊任務模塊管理從所述接收緩沖器向所述至少一個應用部件的下一消息的轉移,其中所述接收緩沖器中的最舊的存儲消息被從所述接收緩沖器轉移給所述至少一個應用部件。
圖
圖
圖
圖
圖
圖
圖
圖
圖
I是控制器局域網系統的示意圖。
2是時間線,圖解了控制器局域網系統中的數據消息處理。
3是時間線,圖解了控制器局域網系統的緩沖技術。
4是根據本發明實施例的發送緩沖器的緩沖技術的流程圖。 5是根據本發明實施例的發送緩沖器的入隊任務的流程圖。 6是根據本發明實施例的發送緩沖器的出隊任務的流程圖。 7是根據本發明實施例的接收緩沖器的緩沖技術的流程圖。 8是根據本發明實施例的接收緩沖器的入隊任務的流程圖。 9是根據本發明實施例的接收緩沖器的出隊任務的流程圖。
具體實施例方式圖I示出的是控制器局域網(CAN)系統10。CAN系統10包括多個電子控制單元 (E⑶)12-18,它們與允許這些E⑶彼此通信的通信總線20連接。多個E⑶12-18中的每個都與一個或多個傳感器、致動器或控制裝置(這個群體在下文稱作應用部件)連接并且總體上分別由22-28代表。這些應用部件不直接連接到通信總線20,而是通過相應的ECU連接。這些應用部件還可以是ECU中的軟件部件。單個控制特征可以覆蓋多個應用部件,并且涉及從源頭到目的E⑶經由連接到同一通信總線的一個或多個中間處理/控制E⑶的控制信號。對本發明來說,應當理解,CAN系統是本領域已知的,并且ECU、應用裝置、CAN控制器和收發器稱為節點并且這里將不再詳細論述它們的結構的細節。在圖I中,如圖所示,在通信總線20上串聯地傳遞消息給每個E⑶12-18。每個節點NI、N2、N3和N4在傳送每個消息給下一相應的節點之前處理每個消息。圖2中圖示了五個消息dl-d5。消息dl-d5每個都連續地傳送給第一節點NI。在第一節點NI處,定期處理每個消息并且然后相應地將其傳送至第二節點N2進行另外的處理。時間線30代表消息 dl-d5輸入給第一節點NI時的相應時間。時間線32代表消息dl-d5提供給控制器局域網控制器(下文稱為總線控制器)用于經由通信總線傳輸給第二節點N2時的相應時間。由于通信總線上的爭用,消息可能不會立即加到總線控制器上。如果存在爭用,那么消息可能丟失。圖2圖解了消息丟失的一個例子。在第一節點NI處理第一消息dl然后在通信總線上將其傳送至第二節點N2。時間線34圖解了在第二節點N2收到消息dl時的時間。在第二節點N2處理第一消息dl然后將其提供給總線控制器用于在通信總線上傳輸。在第一節點NI中處理第二消息d2,如時間線30圖解的。消息d2成功地在通信總線上傳送并且被第二節點N2收到,如時間線32圖解的。 在消息d2到達節點N2之前,節點N2上應用部件的第二執行需要輸入,如38所示,在這種情況下,再使用第一消息dl,如圖2中的虛線36所示。在線34上的節點N2上的應用部件的第二執行與第三執行之間,兩個輸入消息d2和d3到達節點N2,如圖2中的線32所示。 因為每個節點的典型的緩沖器大小僅僅能夠容納一個消息,消息d2在能夠被節點N2上的應用部件使用之前將被消息d3蓋寫。因此,節點N2上應用部件的第三執行將使用消息d3, 并且消息d2將丟失。
圖2進一步示出了,由于消息蓋寫消息d3和d4也丟失了,并且消息dl被反復地重新使用。從第四節點N4輸出的處理過的消息包括dl-dl-dl-dl-d5。數據消息d2、d3、d4 丟失了,這歸因于可能是抖動、有限緩沖器或異步時鐘的直接后果的消息蓋寫。為了減少由總線控制器或通信總線上的爭用引起的消息丟失,在每個節點采用基于軟件的發送緩沖器和接收緩沖器。CAN控制器硬件包括用于數據傳輸和接收的硬件緩沖單元(CAN信箱區)。因此,本文描述的實施例關注基于軟件的緩沖策略,而不影響實際的 CAN控制器硬件緩沖器使用。節點內相應的ECU將包括被相應節點上的全部應用部件共享的發送緩沖器和接收緩沖器。例如,對于圖2中描繪的節點N1-N4,N1中的全部應用部件使用公用發送緩沖器和公用接收緩沖器,N2中的全部應用部件使用公用發送緩沖器和公用接收緩沖器,N3中的全部應用部件使用公用發送緩沖器和公用接收緩沖器,并且N4中的全部應用部件也使用公用發送緩沖器和公用接收緩沖器。圖3圖解了用于防止消息丟失的發送緩沖器和接收緩沖器的使用。如圖3所示, 以時間線40上示出的時間周期傳送消息dl-d5至第一節點NI。時間線41代表傳送出消息至總線控制器時的時間。時間線42代表在通信總線上傳送出消息時的時間。時間線43代表第二節點N2收到消息時的時間。發送緩沖器44集成在第一節點NI中的E⑶內并且被第一節點NI上的全部應用部件共享。發送緩沖器44臨時存儲消息,直到總線控制器預備接受在通信總線上傳輸的下
一消息。接收緩沖器45集成在第二節點N2中的E⑶內并且被第二節點N2上的全部應用部件共享。接收緩沖器45臨時存儲通信總線上收到的消息,直到消息預備轉移給應用部件。如圖3所圖解的,以時間線40上圖解出的時間周期輸入全部消息給第一節點NI。 在時間線41中,可以防止由于消息蓋寫或占用總線控制器的另一消息而將消息立即放入總線控制器中。這點通過消息d3而圖解出來。時間線40上示出的消息d2占用總線控制器存儲器,等待在通信總線上傳輸。典型地,總線控制器具有僅供單個消息的可用存儲器, 并且如果消息例如d2已經占用總線控制器,那么消息d3不能轉移給總線控制器。在現有技術條件下,消息d3將丟失。在如圖3圖解的優選實施例中,如果總線控制器沒有預備接受消息d3,那么,數據消息d3就臨時存儲在發送緩沖器44中。消息d3在它等到總線控制器可用的發送消息鏈表中被列入優先位置。各種規則可用來確定相應的消息是怎樣在消息鏈表中被列入優先位置,這將在隨后詳細論述。當總線控制器空閑并且消息d3是發送緩沖器44中的最高排序的消息時,那么消息d3就轉移給總線控制器,如時間線41上示出的,并且隨后在通信總線上傳送,如時間線42上示出的。接收緩沖器45是與第二節點N2的ECU集成的存儲裝置。當應用預備處理消息時, 應用部件從接收緩沖器45接收消息。如果應用部件不能接受從通信總線收到的消息,那么如果不立即取回該消息它就可能丟失。為了減少消息丟失,接收緩沖器45存儲總線控制器收到的相應的消息,直到應用部件預備接受該消息。存儲在接收緩沖器45中的消息被加到接收消息鏈表的末端并且等待相應的應用部件取回消息。如圖3所示,接收緩沖器45由第二節點N2中的全部應用部件共享。接收緩沖器45可以分隔成多個緩沖單元并且每個緩沖單元按照相應的排序方案保存在接收消息鏈表中。
9
從通信總線收到的消息的緩沖進程由兩個軟件任務模塊控制,這些模塊與發送緩沖器和接收緩沖器協作使用。第一任務模塊是入隊任務模塊。第二任務模塊是出隊任務模塊。對于每個發送緩沖器,包含有入隊任務模塊和出隊任務模塊。在由于總線控制器的存儲器被占用而使ECU不能傳送消息給總線控制器時,執行入隊任務。當總線控制器不可用時,入隊任務模塊提供程序,用于增加消息到發送緩沖器的相應單元中。發送緩沖器包括多個緩沖單元。將發送緩沖器內的每個緩沖單元當作獨立的存儲塊,并且不同緩沖單元中的消息在發送消息鏈表中排序。發送消息鏈表優先考慮緩沖單元的順序。ECU的入隊任務模塊保存每個緩沖單元的二進制標志。當對應的緩沖單元空閑時, 二進制標志設為I。當對應的緩沖單元被占用時,二進制標志設為O。當入隊任務模塊需要增加新消息給緩沖器時,首先檢查每個緩沖單元中二進制標志的狀態。如果二進制標志表明存在空閑的緩沖單元(即二進制標志設為I ),那么將輸入新消息到緩沖單元中并且相應的緩沖單元被加到發送消息鏈表的末端。相應的緩沖單元的標志從I變到O。如果不存在可用的空閑緩沖單元,那么,能夠采用不同的刪除策略來容納新消息,例如首先刪除最舊的消息或者首先刪除最低優先級的消息。第二軟件任務即出隊任務用來按順序從發送緩沖器轉移消息給總線控制器。出隊任務能夠由不同的方法觸發,例如定期觸發,或者在入隊任務模塊執行之后,或者一旦證實總線控制器成功傳輸了上一消息。在執行出隊任務時,消息是從發送緩沖器轉移給總線控制器。如果這個轉移是成功的,從而使得總線控制器可用來接受消息,那么將轉移消息并且將刪除發送緩沖器中的相應的消息;否則,該消息將留在發送緩沖器中并且出隊任務終止。 在證實總線控制器成功傳輸了上一消息之后,這表明總線控制器當前可用于接收消息,將再次執行出隊任務。各種出隊策略可用于確定選擇發送緩沖器中的哪個消息轉移給通信控制器。出隊策略可包括首先傳送最舊的消息或者首先傳送最高優先級的消息。對于接收緩沖器,也包含有入隊任務模塊和出隊任務模塊,用于從通信總線過渡消息到應用部件。當需要從通信總線取回消息時,應用入隊任務模塊。每當總線控制器收到新消息時,觸發入隊任務模塊。將接收緩沖器的每個單元當作獨立的存儲塊,并且將不同緩沖單元中的消息組織成接收消息鏈表。當對應單元空閑時,ECU的入隊任務模塊保存每個緩沖單元的二進制空閑標志(即二進制標志為I);否則二進制標志為O。當入隊任務模塊需要增加新消息到接收緩沖器中時,它首先檢查是否有空閑的緩沖單元。如果有空閑的緩沖單元,那么,新消息將存儲在空閑的緩沖單元中并且將該緩沖單元加到接收消息鏈表的末端。 緩沖單元的二進制標志從I變到O。如果接收緩沖器中不存在當前可用的空閑單元,那么可采用不同的刪除策略,例如首先刪除最舊的消息或者首先刪除最低優先級的消息。應用出隊任務模塊將消息從接收緩沖器轉移給相應的應用部件。出隊任務能夠在需要輸入消息時由應用部件觸發或者可以定期觸發。一旦從接收緩沖器成功移除消息,該消息將從接收緩沖器中去除并且轉移給應用部件或者與應用部件關聯的其它本地存儲裝置。出隊任務將總是從每個應用部件的接收緩沖器去除最舊的消息。圖4圖解了發送緩沖器管理技術的流程圖的寬泛概況,該技術用于從相應節點的應用部件轉移消息給總線控制器。在框50處,應用部件處理數據并且轉移給節點內的E⑶,用于生成消息并且在通信總線上傳送。在框51處,啟動發送緩沖器入隊任務。在框52處,相應的消息存儲在發送緩沖器的相應單元中。在框53處,啟動發送緩沖器出隊任務。在框54處,消息轉移給總線控制器用于在通信總線上傳輸。圖5圖解了如圖4的框51處標識的啟動的發送緩沖器入隊任務模塊的詳細過程。 在框60處,啟動發送緩沖器入隊算法。在框61處,確定發送緩沖器中是否有空閑的緩沖單元可用。這個確定是基于任一緩沖單元是否具有指示空閑單元狀態的二進制標志。如果確定緩沖單元是空閑的,那么程序繼續到步驟63。如果確定發送緩沖器中沒有可用的空閑緩沖單元,那么就在步驟62按照刪除策略刪除發送緩沖單元中當前存儲的消息(例如,首先刪除最舊的消息或者首先刪除最低優先級的消息)。在步驟63,將新消息存儲在空閑的緩沖單元中。緩沖單元的二進制標志設為1,并且該緩沖單元被加到發送消息鏈表中。在步驟 64,對于相應的轉移任務,入隊算法結束。圖6圖解了如圖4的框53處標識的啟動的發送緩沖器出隊任務的詳細過程。在框70處,啟動發送緩沖器出隊算法。在框71處,確定總線控制器是否可用于接受消息。如果確定總線控制器不可用,那么程序繼續到步驟73。如果確定總線控制器緩沖器可用來接受消息,那么就在步驟72中按照出隊過程策略從發送緩沖器移除消息到總線控制器緩沖器(例如,首先使最舊的消息出隊或者首先使最高優先級的消息出隊)。在步驟73,對于相應的轉移任務,出隊算法結束。圖7圖解了接收緩沖管理技術的流程圖的寬泛概況,該技術用于從總線控制器轉移消息給相應節點的應用部件。在框80處,應用總線控制器在通信總線上傳送消息并且在相應節點接收該消息。在框81處,啟動接收緩沖器的入隊任務。在框82處,相應的消息存儲在接收緩沖器的空閑單元中。在框83處,啟動接收緩沖器出隊任務。在框84處,相應的消息轉移給相應的應用部件。圖8圖解了如圖7的框81處標識的啟動的接收緩沖器入隊任務模塊的詳細過程。 在框90處,啟動接收緩沖器入隊算法。在框91處,通過確定任一接收緩沖單元是否具有表明空閑單元狀態的二進制標志來確定接收緩沖器中是否有可用的空閑緩沖單元。如果確定接收緩沖單元具有空閑單元狀態,那么程序繼續到步驟93。如果確定接收緩沖器中沒有可用的空閑緩沖單元,那么就按照刪除策略刪除接收緩沖單元中的消息(例如,首先刪除最舊的消息或者首先刪除最低優先級的消息)。在步驟93,接收到的消息存儲在空閑的緩沖單元中。相應的接收緩沖單元的二進制標志設為1,并且該相應的接收緩沖單元被加到消息鏈表的末端。在步驟94,對于相應的消息任務,入隊算法結束。圖9圖解了如圖7的框83處標識的啟動的接收緩沖器出隊任務的詳細過程。在框100處,啟動接收緩沖器出隊算法。在框101處,存儲在接收緩沖器中的最舊的消息被從接收緩沖器中移除并且提供給相應的應用部件。在框102處,對于相應的任務,程序結束。盡管已經詳細描述了本發明的某些實施例,但是本領域技術人員將認識到用于實施由所附權利要求限定的本發明的各種替代設計和實施例。
權利要求
1.一種用于車輛的分布嵌入式實時控制器局域網系統,包括用于在所述控制器局域網系統內傳送消息的通信總線;形成通過所述通信總線可通信地連接的多個通信端點的多個節點,其中每個節點包括用于生成車輛運行數據的至少一個應用部件;與所述至少一個應用部件通信的電子控制單元,所述電子控制單元生成包含所述車輛運行數據的消息,所述電子控制單元在事件觸發模式中用于啟動所述消息向所述通信總線的傳輸,所述電子控制單元包括用于存儲所生成的消息的發送緩沖器;以及與所述電子控制單元對接的總線控制器,所述總線控制器管理消息往返于所述通信總線的轉移,消息向所述通信總線上的轉移由所述總線控制器定期執行,當存儲在所述總線控制器的存儲器內的前一消息等待在所述通信總線上傳輸時,所述總線控制器不能用于從所述電子控制單元接收消息,并且其中當所述存儲器空閑時,所述總線控制器可用于從所述電子控制單元接收消息;其中當所述總線控制器不可用時,消息被存儲在所述發送緩沖器中,并且其中當所述總線控制器可用時,所述發送緩沖器內的相應的消息被轉移給所述總線控制器。
2.如權利要求I所述的系統,其中,所述發送緩沖器由相應節點內的多個應用部件共享。
3.如權利要求I所述的系統,其中,所述電子控制單元包括管理從所述至少一個應用部件向所述發送緩沖器的消息轉移的入隊任務模塊,其中所述入隊任務模塊確定所述發送緩沖器內是否有可用的空閑單元,并且其中響應于所述發送緩沖器內有可用的空閑單元, 所述消息被存儲在所述空閑單元中。
4.如權利要求3所述的系統,其中,所述電子控制單元包括用于保存所述發送緩沖器內的存儲消息的優先級排序的發送消息鏈表,其中所述入隊任務模塊將所述消息加到所述發送消息鏈表中。
5.如權利要求4所述的系統,其中,響應于所述發送緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述發送緩沖器中的存儲消息,其中所述入隊任務模塊將所述消息加到所述發送消息鏈表中。
6.如權利要求5所述的系統,其中,響應于所述發送緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述發送緩沖器內的最舊的存儲消息。
7.如權利要求5所述的系統,其中,響應于所述發送緩沖器內沒有可用的空閑單元,所述入隊任務模塊刪除所述發送緩沖器內的具有最低優先級的消息。
8.如權利要求5所述的系統,其中,所述電子控制單元包括管理從所述發送緩沖器向所述總線控制器的相應消息的轉移的出隊任務模塊,其中所述出隊任務模塊確定所述總線控制器是否可用于接收所述消息,并且其中響應于所述總線控制器存儲器可用于接收所述消息,所述出隊任務模塊將在所述發送緩沖器的發送消息鏈表中排隊的相應消息轉移給所述總線控制器。
9.如權利要求8所述的系統,其中,從所述發送緩沖器轉移給所述總線控制器的所述相應消息是所述發送緩沖器中最舊的消息。
10.一種在車輛的分布嵌入式實時控制器局域網系統內的節點之間傳送消息的方法,所述控制器局域網系統包括通信總線和用于控制所述通信總線上的消息傳輸的總線控制器,其中消息向所述通信總線上的轉移是由所述總線控制器定期執行的,所述控制器局域網系統進一步包括形成通過所述通信總線可通信地連接的多個通信端點的多個節點,每個節點包括至少一個應用部件、電子控制單元、發送緩沖器和接收緩沖器,所述方法包括如下步驟所述電子控制單元從所述至少一個應用部件接收車輛運行數據并且生成包含所述車輛運行數據的消息用于在所述通信總線上傳輸,所述電子控制單元在事件觸發模式中用于啟動所述通信總線上消息向下一相應節點的傳輸;響應于所述總線控制器表明所述通信總線不可用,將所述消息存儲在所述發送緩沖器中;以及當所述總線控制器可用于接收下一消息時,從所述發送緩沖器轉移相應的消息,當存儲在所述總線控制器的存儲器內的前一消息等待在所述通信總線上傳輸時,所述總線控制器不能用于從所述電子控制單元接收所述下一消息,并且其中當所述存儲器空閑時,所述總線控制器可用于從所述電子控制單元接收消息;以及在所述通信總線上傳送所述相應的消息。
全文摘要
本發明涉及使用發送和接收緩沖器實現的消息防丟失,具體提供一種車輛的分布嵌入式實時控制器局域網系統,該系統包括ECU,其在事件觸發模式中用于啟動消息向通信總線的傳輸。每個ECU包括用于存儲消息的發送緩沖器。總線控制器與ECU對接并且管理消息往返于通信總線的轉移。消息向通信總線上的轉移由總線控制器定期執行。當存儲在總線控制器的存儲器內的前一消息等待在通信總線上傳輸時,總線控制器不能用于從ECU接收消息。當存儲器空閑時,總線控制器可用于從ECU接收消息。當總線控制器不可用時,消息被存儲在發送緩沖器中。當總線控制器可用時,發送緩沖器內的相應的消息被轉移給總線控制器。
文檔編號H04L12/40GK102594640SQ201210002798
公開日2012年7月18日 申請日期2012年1月6日 優先權日2011年1月6日
發明者S.梅農, S.蔣 申請人:通用汽車環球科技運作有限責任公司