嵌入式控制器可重新配置的處理器間通信的機構(gòu)和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明一般涉及用于重新配置處理器間通信的系統(tǒng)和方法,并且更具體來說,涉 及提供多個處理器的系統(tǒng)和方法,所述多個處理器包括發(fā)送和接收緩沖區(qū)、發(fā)送和接收表 以及包括用于在控制器中的處理器之間發(fā)送和接收消息的協(xié)議的基礎(chǔ)設(shè)施軟件服務(wù)。
【背景技術(shù)】
[0002] 現(xiàn)代車輛使用改進車輛的性能、舒適性、安全性等的各種嵌入式電子控制器。這些 控制器包括發(fā)動機控制器、懸架控制器、轉(zhuǎn)向控制器、動力總成控制器、氣候控制控制器、信 息娛樂系統(tǒng)控制器、底盤系統(tǒng)控制器等。這些控制器通常需要專用軟件和算法來執(zhí)行其控 制功能。
[0003] 車輛電子控制器的當(dāng)前趨勢是提供用于在公共控制器上操作的不同功能的多個 軟件應(yīng)用程序。例如,自適應(yīng)巡航控制(ACC)系統(tǒng)、車道定中系統(tǒng)、車道保持系統(tǒng)、穩(wěn)定性控 制系統(tǒng)等都是本領(lǐng)域中已知的,所有這些系統(tǒng)都以某種方式自動地控制車輛轉(zhuǎn)向和/或制 動。這些系統(tǒng)經(jīng)常使用相同的傳感器輸入和其他變量(有時稱為全局變量),所述變量在存 儲于存儲器中時可由多于一個軟件應(yīng)用程序使用。例如,ACC系統(tǒng)可以在其在處理器上的 操作期間將傳感器數(shù)據(jù)寫入到控制器存儲器中,并且車道定中系統(tǒng)可以在其軟件在處理器 上運行時將那個數(shù)據(jù)寫入到其軟件中。因此,這在許多情況下是有意義的,諸如在相同的處 理器上運行多個軟件應(yīng)用程序的情況。
[0004] 提供在公共控制器上運行的多個相關(guān)軟件應(yīng)用程序?qū)τ跍p少系統(tǒng)硬件和成本具 有顯著優(yōu)點。然而,在相同的處理器上操作不同的軟件應(yīng)用程序因為運行不同的軟件程序 并且防止軟件應(yīng)用程序彼此干擾所需的排程而增加控制器的復(fù)雜度。當(dāng)車輛OEM在已經(jīng)具 有由供應(yīng)商提供的軟件的控制器上提供額外的軟件時,進一步增加在單個處理器上運行的 這種混合使用的應(yīng)用程序的復(fù)雜度。此外,單個處理器僅具有可用有限的資源,諸如存儲 器、CPU總處理能力等。運行多個應(yīng)用程序所需的資源通常超出單個處理器的能力。
[0005] 處理器間通信(IPC)是用于在一個或多個過程中在多個線程之間交換數(shù)據(jù)的一組 方法。一個或多個過程或可運行實體可以在由網(wǎng)絡(luò)連接的一個或處理器上運行。如本文所 使用,"可運行實體"包括在某個操作系統(tǒng)任務(wù)速率下運行的小的可執(zhí)行軟件部件或軟件功 能。在處理器間通信中,可運行實體可以被分配給不同的處理器。可運行實體還可以在具 有不同速率的不同線程中運行??蛇\行實體的分配需要頻率改變,這相對于芯/處理器的 總處理能力以及相對于總線/存儲器的帶寬而言可能是繁重的?,F(xiàn)行實踐假定可運行實體 不可以在設(shè)計期間重新分配可運行實體變得不可行。已知的控制器實施中的消息包括節(jié)點 專用的語法,即,硬編碼的源/目標(biāo)信息。將可運行實體從一個芯移動到另一個芯需要重大 努力以識別和修改IPC消息。因此,本領(lǐng)域中需要根據(jù)各種功能部署、功能執(zhí)行速率和低級 通信鏈路來重新配置處理器間通信的機構(gòu)。
【發(fā)明內(nèi)容】
[0006] 以下披露內(nèi)容描述用于控制器中的可重新配置的處理器間通信的系統(tǒng)和方法的 系統(tǒng)和方法。系統(tǒng)和方法包括在控制器中提供多個處理器以及產(chǎn)生用于每個處理器的發(fā)送 緩沖區(qū)和接收緩沖區(qū)。系統(tǒng)和方法進一步包括:產(chǎn)生用于每個處理器的發(fā)送表和接收表,其 中發(fā)送表存儲關(guān)于被發(fā)送的消息的識別信息,并且其中接收表存儲關(guān)于被接收的消息的識 別信息;以及提供基礎(chǔ)設(shè)施服務(wù),所述基礎(chǔ)設(shè)施服務(wù)包括用于在控制器中的多個處理器之 間發(fā)送和接收消息的協(xié)議。
[0007] 本發(fā)明包括以下技術(shù)方案: 1. 一種用于控制器中的可重新配置的處理器間通信的方法,所述方法包括: 在控制器中提供多個處理器,所述多個處理器運行控制器的可運行實體; 編碼由處理器建立的每個消息中的協(xié)議,所述協(xié)議用于從一個處理器到另一個處理器 的發(fā)送和接收消息; 提供用于將被發(fā)送的消息的發(fā)送緩沖區(qū)并且提供用于在處理器的每一個中接收的消 息的接收緩沖區(qū): 提供包括關(guān)于處理器的每一個中的消息的信息的發(fā)送表和接收表;以及 提供用于每個處理器的基礎(chǔ)設(shè)施服務(wù),所述服務(wù)包括確定在接收緩沖區(qū)中是否存在消 息、如果存在消息則將所述消息中的接收到的消息數(shù)據(jù)與接收表中的數(shù)據(jù)相比較以確保接 收到的消息正確以及解碼所述消息并將所述消息的信號數(shù)據(jù)復(fù)制到接收所述消息的處理 器上的變量。
[0008] 2.根據(jù)技術(shù)方案1所述的方法,其中所述處理器的每一個包括至少一個可運行 實體,所述可運行實體產(chǎn)生消息并且將所述消息發(fā)送到處理器的發(fā)送緩沖區(qū),當(dāng)所述可運 行實體需要將數(shù)據(jù)通信發(fā)送到不同處理器上的不同可運行實體時,所述可運行實體在所述 發(fā)送緩沖區(qū)上運行。
[0009] 3.根據(jù)技術(shù)方案1所述的方法,其中用于每個處理器的發(fā)送緩沖區(qū)、接收緩沖 區(qū)、發(fā)送表以及接收表中的每一個是在控制器的設(shè)計時產(chǎn)生。
[0010] 4.根據(jù)技術(shù)方案1所述的方法,其中每個緩沖區(qū)的大小是使用至少消息標(biāo)題大 小和消息大小來計算,從而使得每個緩沖區(qū)具有存儲消息的足夠容量。
[0011] 5.根據(jù)技術(shù)方案1所述的方法,其中每個表包括關(guān)于消息標(biāo)識、消息目的地、消 息計數(shù)、消息大小和變量列表的信息。
[0012] 6.根據(jù)技術(shù)方案5所述的方法,其進一步包括重新配置所述控制器以通過改變 至少一個發(fā)送表和一個接收表的內(nèi)容來改變處理器間通信。
[0013] 7.根據(jù)技術(shù)方案5所述的方法,其進一步包括將表中的信息與對應(yīng)消息中的消 息標(biāo)題信息相比較以確定所述對應(yīng)消息是否被破壞。
[0014] 8. -種用于控制器中的可重新配置的處理器間通信的系統(tǒng),所述系統(tǒng)包括: 控制器中的多個處理器; 產(chǎn)生用于處理器的每一個的發(fā)送緩沖區(qū)和接收緩沖區(qū),所述發(fā)送緩沖區(qū)用來寫入、存 儲和發(fā)送消息,所述接收緩沖區(qū)用來讀取、存儲和復(fù)制消息; 產(chǎn)生用于處理器的每一個的發(fā)送表和接收表,所述發(fā)送表存儲關(guān)于被發(fā)送的消息的識 別信息,并且所述接收表存儲關(guān)于被接收的消息的識別信息;以及 被編程到控制器中的基礎(chǔ)設(shè)施服務(wù),所述基礎(chǔ)設(shè)施服務(wù)包括用于在控制器中的處理器 之間發(fā)送和接收消息的協(xié)議。
[0015] 9.根據(jù)技術(shù)方案8所述的系統(tǒng),其中所述多個處理器的每一個包括至少一個可 運行實體,所述可運行實體產(chǎn)生消息并且將所述消息發(fā)送到處理器的發(fā)送緩沖區(qū),當(dāng)可運 行實體需要將數(shù)據(jù)通信發(fā)送到不同處理器上的不同可運行實體時,所述可運行實體在處理 器上運行。
[0016] 10.根據(jù)技術(shù)方案8所述的系統(tǒng),其中所述發(fā)送緩沖區(qū)、所述接收緩沖區(qū)、所述發(fā) 送表以及所述接收表中的每一個是在設(shè)計時產(chǎn)生。
[0017] 11.根據(jù)技術(shù)方案8所述的系統(tǒng),其中每個緩沖區(qū)的大小是使用至少消息標(biāo)題大 小和消息大小來計算,從而使得每個緩沖區(qū)具有存儲消息的足夠容量。
[0018] 12.根據(jù)技術(shù)方案8所述的系統(tǒng),其中每個表包括關(guān)于消息標(biāo)識、消息目的地、消 息計數(shù)、消息大小和作為每個消息的一部分的變量列表的信息。
[0019] 13.根據(jù)技術(shù)方案8所述的系統(tǒng),其進一步包括重新配置控制器以通過改變至少 一個發(fā)送表和一個接收表的內(nèi)容來改變處理器間通信。
[0020] 14. 一種用于控制器中的可重新配置的處理器間通信的方法,所述方法包括: 在控制器中提供多個處理器; 產(chǎn)生用于處理器的每一個的發(fā)送緩沖區(qū)和接收緩沖區(qū),所述發(fā)送緩沖區(qū)用來寫入、存 儲和發(fā)送消息,所述接收緩沖區(qū)用來讀取、存儲和復(fù)制消息; 產(chǎn)生用于處理器的每一個的發(fā)送表和接收表,所述發(fā)送表存儲關(guān)于被發(fā)送的消息的識 別信息,所述接收表存儲關(guān)于被接收的消息的識別信息;以及 提供基礎(chǔ)設(shè)施服務(wù),所述基礎(chǔ)設(shè)施服務(wù)包括用于在控制器中的多個處理器之間發(fā)送和 接收消息的協(xié)議。
[0021] 15.根據(jù)技術(shù)方案14所述的方法,其中所述處理器的每一個包括至少一個可運 行實體,所述可運行實體產(chǎn)生消息并且將所述消息發(fā)送到處理器的發(fā)送緩沖區(qū),當(dāng)所述可 運行實體需要將數(shù)據(jù)通信發(fā)送到不同處理器上的不同可運行實體時,所述可運行實體在處 理器上運行。
[0022] 16.根據(jù)技術(shù)方案14所述的方法,其中所述發(fā)送緩沖區(qū)、所述接收緩沖區(qū)、所述 發(fā)送表以及所述接收表中的每一個是在設(shè)計時產(chǎn)生。
[0023] 17.根據(jù)技術(shù)方案14所述的方法,其中每個緩沖區(qū)的大小是使用至少消息標(biāo)題 大小和消息大小來計算,從而使得每個緩沖區(qū)具有存儲消息的足夠容量。
[0024] 18.根據(jù)技術(shù)方案14所述的方法,其中每個表包括關(guān)于消息標(biāo)識、消息目的地、 消息計數(shù)、消息大小和用于所述表中列出的每個消息的變量列表的信息。
[0025] 19.根據(jù)技術(shù)方案