使用運(yùn)行時(shí)間執(zhí)行引擎的可重構(gòu)軟件模式管理的設(shè)備的制造方法
【專利摘要】本發(fā)明涉及使用運(yùn)行時(shí)間執(zhí)行引擎的可重構(gòu)軟件模式管理的設(shè)備。一種重構(gòu)用于系統(tǒng)的軟件模式管理的方法和構(gòu)造。識(shí)別子系統(tǒng)的前一狀態(tài)模式。該主控制器包括用于維持子系統(tǒng)的操作的主軟件算法。在表格中找到模式確定邏輯函數(shù),用于確定是否出現(xiàn)模式變化。執(zhí)行與前一模式相關(guān)聯(lián)的模式確定邏輯函數(shù)。根據(jù)來(lái)自模式確定邏輯函數(shù)的執(zhí)行的結(jié)果從表格確定當(dāng)前模式。識(shí)別與表格中的識(shí)別的當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表。該動(dòng)作列表識(shí)別用于把節(jié)點(diǎn)從前一模式轉(zhuǎn)換到當(dāng)前節(jié)點(diǎn)的函數(shù)。執(zhí)行與當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表,其包括用于轉(zhuǎn)換前一模式到當(dāng)前模式的動(dòng)作函數(shù)列表。該表格獨(dú)立于主軟件模式管理算法可進(jìn)行修改。
【專利說(shuō)明】
使用運(yùn)行時(shí)間執(zhí)行引擎的可重構(gòu)軟件模式管理的設(shè)備
技術(shù)領(lǐng)域
[0001] -種實(shí)施例涉及可重構(gòu)軟件模式管理。
【背景技術(shù)】
[0002] 各種系統(tǒng),例如機(jī)動(dòng)車、飛機(jī)以及其它系統(tǒng)采用控制器用于監(jiān)測(cè)和控制它們的系 統(tǒng)的操作。考慮到當(dāng)前的操作狀態(tài)或操作狀態(tài)的變化,這些系統(tǒng)中的各個(gè)控制器執(zhí)行軟件 算法以調(diào)整車輛操作參數(shù)。
[0003] 在許多情況中,對(duì)軟件算法做出不間斷的修改以修正或改善或改變系統(tǒng)的操作。 這些變化不僅僅包括與控制器所控制的系統(tǒng)的直接控制有關(guān)的修改,還包括對(duì)其它子系統(tǒng) 的檢索數(shù)據(jù)或狀態(tài)的改變,這些其它子系統(tǒng)的數(shù)據(jù)被主控制器使用。這些變化可以表達(dá)為 軟件模式,并且可以由軟件模式管理算法進(jìn)行管理,該算法的功能是仲裁來(lái)自不同來(lái)源的 模式變化請(qǐng)求、確定最終模式并且根據(jù)仲裁和確定結(jié)果執(zhí)行動(dòng)作。然而,對(duì)軟件模式管理 算法的修改通常需要掃描整個(gè)軟件代碼以識(shí)別受到模式管理影響的地方、建立新軟件代碼 的重要部分并且用新代碼替換整個(gè)代碼,即使軟件模式管理變化的功能內(nèi)容對(duì)控制器的主 軟件代碼來(lái)說(shuō)是微不足道的。對(duì)主軟件代碼做出改變通常是既費(fèi)時(shí)又費(fèi)錢的,因?yàn)椋仨?掃描并替換整個(gè)代碼,即使只做出小的改變,例如改變一個(gè)參數(shù)。
【發(fā)明內(nèi)容】
[0004] 實(shí)施例的一個(gè)優(yōu)勢(shì)在于軟件模式管理(SMM)系統(tǒng)的柔性且解耦執(zhí)行,該系統(tǒng)管理 系統(tǒng)的轉(zhuǎn)換,用于在出現(xiàn)模式變化時(shí)進(jìn)行驗(yàn)證并且把系統(tǒng)轉(zhuǎn)換成當(dāng)前模式,從而,根據(jù)當(dāng)前 模式設(shè)置參數(shù)及其它因素。與控制器的主軟件算法分離的表格識(shí)別前一模式狀態(tài)與當(dāng)前 模式狀態(tài)之間的關(guān)系,該表格包括模式確定邏輯函數(shù),其闡明用于確定是否出現(xiàn)模式變化 的邏輯和參數(shù)。此外,該表格是可重構(gòu)的,從而,該表格中闡明的邏輯函數(shù)以及值能夠很容 易被修改,而不必須修改主控制器的主軟件算法。這允許在不必修正和上傳主控制器內(nèi)的 整個(gè)軟件算法的情況下做出修改。
[0005] 此外,該表格闡明需要什么參數(shù)來(lái)確定是否出現(xiàn)狀態(tài)變化。該表格可以識(shí)別來(lái)自 副控制器的參數(shù),在此,主控制器僅需要訪問(wèn)副控制器來(lái)獲取所需的信息。這解除了主控 器不得不包括在獲取這樣的數(shù)據(jù)時(shí)執(zhí)行副控制器的功能的算法。
[0006] -種實(shí)施例設(shè)想一種為系統(tǒng)重構(gòu)軟件模式管理的方法。通過(guò)主控制器識(shí)別子系 統(tǒng)的前一狀態(tài)模式。該主控制器包括用于控制子系統(tǒng)的操作的主軟件算法。通過(guò)運(yùn)行時(shí) 間執(zhí)行引擎獲取表格識(shí)別參數(shù),用于識(shí)別子系統(tǒng)的前一模式并且確定其當(dāng)前模式。通過(guò)運(yùn) 行時(shí)間執(zhí)行引擎,在表格中檢索模式確定邏輯函數(shù),用于確定是否出現(xiàn)模式變化。通過(guò)運(yùn) 行時(shí)間執(zhí)行引擎,執(zhí)行與前一模式相關(guān)聯(lián)的模式確定邏輯函數(shù)。通過(guò)運(yùn)行時(shí)間執(zhí)行引擎, 從表格根據(jù)來(lái)自模式確定邏輯函數(shù)的執(zhí)行的結(jié)果確定當(dāng)前模式。通過(guò)運(yùn)行時(shí)間執(zhí)行引擎, 識(shí)別與表格中的所識(shí)別的當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表,該動(dòng)作列表識(shí)別用于從前一模式轉(zhuǎn) 換到當(dāng)前模式的函數(shù)。通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,執(zhí)行與當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表,包括 用于把前一模式轉(zhuǎn)換到當(dāng)前模式的動(dòng)作函數(shù)列表,其中,該表格可獨(dú)立于主軟件算法進(jìn)行 修改。
[0007] 本發(fā)明提供下列技術(shù)方案。
[0008] 技術(shù)方案1. 一種重構(gòu)用于系統(tǒng)的軟件模式管理的方法,包括的步驟是: 通過(guò)主控制器識(shí)別子系統(tǒng)的前一狀態(tài)模式,該主控制器包括用于控制子系統(tǒng)的操作的 主軟件算法; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,獲取表格識(shí)別參數(shù),用于識(shí)別子系統(tǒng)的前一模式并且確定其 當(dāng)前模式; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,在表格中找到模式確定邏輯函數(shù),用于確定是否出現(xiàn)模式變 化; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,執(zhí)行與前一模式相關(guān)聯(lián)的模式確定邏輯函數(shù); 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,根據(jù)來(lái)自模式確定邏輯函數(shù)的執(zhí)行的結(jié)果從表格確定當(dāng)前模 式; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,識(shí)別與表格中的所識(shí)別當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表,該動(dòng)作 列表識(shí)別用于從前一模式轉(zhuǎn)換到當(dāng)前模式的函數(shù); 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,執(zhí)行與當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表,其包括用于把前一模式 轉(zhuǎn)換到當(dāng)前模式的動(dòng)作函數(shù)列表; 其中,該表格獨(dú)立于主軟件算法可進(jìn)行修改。
[0009] 技術(shù)方案2.如技術(shù)方案2所述的方法,其中,該表格包括模式確定邏輯函數(shù),用于 確定當(dāng)前模式。
[0010] 技術(shù)方案3.如技術(shù)方案1所述的方法,其中,這些數(shù)值代表應(yīng)用程序組件操作的 可能的狀態(tài)。
[0011] 技術(shù)方案4.如技術(shù)方案1所述的方法,其中,這些數(shù)值代表應(yīng)用程序組件的子系 統(tǒng)狀態(tài)。
[0012] 技術(shù)方案5.如技術(shù)方案1所述的方法,其中,該表格存儲(chǔ)在除運(yùn)行時(shí)間執(zhí)行引擎 以外的位置。
[0013] 技術(shù)方案6.如技術(shù)方案1所述的方法,其中,該表格包括動(dòng)作函數(shù)列表,其包括提 供指導(dǎo)從前一模式向當(dāng)前模式的轉(zhuǎn)換的結(jié)構(gòu)的一組函數(shù),這組函數(shù)列出離散節(jié)點(diǎn),操作為 在指導(dǎo)向當(dāng)前模式的轉(zhuǎn)換中的步驟。
[0014] 技術(shù)方案7.如技術(shù)方案6所述的方法,進(jìn)一步包括的步驟是,產(chǎn)生返回代碼,表明 當(dāng)前動(dòng)作函數(shù)的成功完成。
[0015] 技術(shù)方案8.如技術(shù)方案7所述的方法,其中,響應(yīng)于由當(dāng)前動(dòng)作函數(shù)的錯(cuò)誤返回 代碼或者如果指向下一節(jié)點(diǎn)的指示符為空,主控制器終止動(dòng)作列表的執(zhí)行。
[0016] 技術(shù)方案9.如技術(shù)方案1所述的方法,其中,以相應(yīng)的模式確定速率周期性地分 析模式變量,其中,模式確定速率是預(yù)先確定的。
[0017] 技術(shù)方案10.如技術(shù)方案11所述的方法,其中,相應(yīng)的模式確定速率針對(duì)相應(yīng)的 模式被具體設(shè)計(jì)。
[0018] 技術(shù)方案11.如技術(shù)方案1所述的方法,進(jìn)一步包括的步驟是,解析表格信息并且 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎執(zhí)行軟件模式管理。
[0019] 技術(shù)方案12.如技術(shù)方案1所述的方法,其中,該表格是可重構(gòu)的,用于修改邏輯 確定函數(shù)。
[0020] 技術(shù)方案13.如技術(shù)方案1所述的方法,其中,該動(dòng)作列表被構(gòu)造,用于映射要轉(zhuǎn) 換到的一系列節(jié)點(diǎn),用于執(zhí)行每個(gè)所識(shí)別的節(jié)點(diǎn)內(nèi)的函數(shù)。
[0021] 技術(shù)方案14.如技術(shù)方案15所述的方法,其中,該動(dòng)作列表被構(gòu)造,用于順序地識(shí) 別要執(zhí)行的函數(shù),其中,該結(jié)構(gòu)包括動(dòng)作指示符函數(shù),其被運(yùn)行時(shí)間執(zhí)行引擎用于識(shí)別用于 在當(dāng)前節(jié)點(diǎn)內(nèi)執(zhí)行的相應(yīng)函數(shù),。
[0022] 技術(shù)方案15.如技術(shù)方案1所述的方法,其中,動(dòng)作包括下一函數(shù)指示符,用于識(shí) 別響應(yīng)于當(dāng)前節(jié)點(diǎn)的相應(yīng)函數(shù)的執(zhí)行的完成而要轉(zhuǎn)換到的下一節(jié)點(diǎn)。
[0023] 技術(shù)方案16.如技術(shù)方案1所述的方法,其中,該表格是可重構(gòu)的,用于修改動(dòng)作 列表。
[0024] 技術(shù)方案17.如技術(shù)方案1所述的方法,其中,該表格是可修改的,用于調(diào)整前一 模式可轉(zhuǎn)換到的狀態(tài)的數(shù)量。
【附圖說(shuō)明】
[0025] 圖1示出用在系統(tǒng)中的控制器的示范性構(gòu)造的配置。
[0026]圖2是運(yùn)行時(shí)間執(zhí)行引擎的框圖。
[0027]圖3說(shuō)明采用軟件管理系統(tǒng)的框圖。
【具體實(shí)施方式】
[0028] 圖1示出用在系統(tǒng)中的控制器的示范性構(gòu)造的配置。在本文示出的實(shí)施例中,主控 制器1〇(例如動(dòng)力傳動(dòng)系控制模塊(PCM))用于控制車輛子系統(tǒng)(例如動(dòng)力傳動(dòng)系統(tǒng))的主操 作。主控制器10包括至少一個(gè)軟件算法12,其監(jiān)測(cè)和控制主子系統(tǒng)的多個(gè)功能和因素。主 控制器10直接從動(dòng)力傳動(dòng)系統(tǒng)內(nèi)的多個(gè)主傳感器14 (例如Sp I、Sp2…Spn )獲取數(shù)據(jù)。應(yīng)當(dāng)理 解的是,雖然這個(gè)例子中描述的示范性主系統(tǒng)是基于車輛的系統(tǒng),但是,應(yīng)當(dāng)理解,此處描 述的本發(fā)明還可以適合非車輛系統(tǒng),包括但不限于飛機(jī)、船或任何其它采用多控制器的非 車輛應(yīng)用。
[0029] 主控制器10與多個(gè)副控制器16(例如Cl、C2、C3…Cn)通信,用于獲取維持和執(zhí)行主 操作所需的數(shù)據(jù)。副控制器16與多個(gè)副傳感器18(例如311、322、333 - 31111)通信,它們給副 控制器16提供與輔助于主子系統(tǒng)的主操作的操作有關(guān)的數(shù)據(jù)。這多個(gè)副控制器16是監(jiān)測(cè)和 控制除動(dòng)力傳動(dòng)系操作以外的子系統(tǒng)的功能/操作的控制器。由副控制器獲取的與其它子 系統(tǒng)有關(guān)的數(shù)據(jù)可以被主控制器10采用,用于各種目的。例如,動(dòng)力傳動(dòng)系模塊可以使用 來(lái)自車身控制模塊的數(shù)據(jù),用于確定影響動(dòng)力傳動(dòng)系統(tǒng)的當(dāng)前操作的狀態(tài)或狀態(tài)變化。應(yīng) 當(dāng)理解的是,本文描述的主控制器能夠是系統(tǒng)內(nèi)的任何控制器,其采用軟件算法來(lái)控制其 自身的子系統(tǒng),且副控制器是主子系統(tǒng)外部的任何控制器,主控制器與其通信以獲取數(shù)據(jù), 該數(shù)據(jù)可以被主控制器用來(lái)判定如何控制其主操作或者提供信號(hào)給副控制器以啟用/停用 相應(yīng)的功能。這些控制器彼此通信,以分享數(shù)據(jù),從而確定主控制器是否需要?jiǎng)幼骰驘o(wú)動(dòng) 作。
[0030] 關(guān)于軟件模式管理和本文描述的例子,軟件模式通常與軟件變量關(guān)聯(lián),軟件變量 用來(lái)代表運(yùn)行時(shí)子系統(tǒng)的模式(即狀態(tài)或狀況)。例如,在上面的PCM控制器中,由傳感器檢 測(cè)并報(bào)告發(fā)動(dòng)機(jī)轉(zhuǎn)速,由副控制器報(bào)告車輛車輪轉(zhuǎn)速。發(fā)動(dòng)機(jī)轉(zhuǎn)速能夠被劃分為三個(gè)模式 值:高、中和低。需要給出專門的RPM閾值和邏輯條件來(lái)確定當(dāng)前發(fā)動(dòng)機(jī)轉(zhuǎn)速模式。當(dāng)發(fā)動(dòng)機(jī) 轉(zhuǎn)速模式改變或者保持在相同值時(shí),需要執(zhí)行某些控制動(dòng)作。類似的動(dòng)作適用于車輪轉(zhuǎn)速 模式。此外,發(fā)動(dòng)機(jī)轉(zhuǎn)速模式和車輪轉(zhuǎn)速模式的組合能夠產(chǎn)生相應(yīng)的傳動(dòng)裝置模式,這將 再次觸發(fā)控制動(dòng)作,歸因于模式轉(zhuǎn)換或無(wú)轉(zhuǎn)換。另一例子是車輛動(dòng)力模式,其通常由點(diǎn)火鑰 匙位置例如斷開(kāi)、附件、曲柄和開(kāi)動(dòng)來(lái)確定。這個(gè)動(dòng)力模式用來(lái)觸發(fā)各個(gè)控制動(dòng)作,包括但 不限于激起控制模塊,啟用通信總線、限制附件的功率使用。
[0031 ]每個(gè)控制器都包括一個(gè)或多個(gè)軟件算法,它們被執(zhí)行來(lái)控制相應(yīng)的操作。相應(yīng)功 能的啟動(dòng)或停用基于車輛操作參數(shù)的變化,這由主、副控制器來(lái)不斷監(jiān)測(cè)。然而,在許多情 況中,出于各種原因必須改變軟件代碼,這些原因包括但不限于功能的改善或新增加、操作 效率的改善、滿足新規(guī)定的要求、代碼的錯(cuò)誤、校準(zhǔn)變化、操作參數(shù)的變化。例如,為了滿足 相應(yīng)的排放標(biāo)準(zhǔn),發(fā)動(dòng)機(jī)轉(zhuǎn)速模式會(huì)需要以更精確的方式進(jìn)行定義,其需要三個(gè)以上的模 式值(高、中、低)。因此將需要更新相應(yīng)的模式確定邏輯條件。因此,由模式轉(zhuǎn)換或無(wú)轉(zhuǎn)換觸 發(fā)的控制動(dòng)作也需要被調(diào)節(jié)。這些修改需要定位算法中的各個(gè)子程序并且對(duì)代碼做出相應(yīng) 修訂,然后上傳并替換整個(gè)軟件代碼。時(shí)常,這樣的變化是既費(fèi)時(shí)又費(fèi)錢來(lái)修正的,因?yàn)椋?整個(gè)軟件需要被掃描以識(shí)別受影響的功能,這些功能通常分散在不同的軟件模塊中,并且 在做出改變之后,整個(gè)軟件代碼必須重新上傳給控制器。
[0032]為了適應(yīng)軟件代碼的變化而不需要對(duì)軟件代碼做大范圍的修改,采用如本文描述 的可重構(gòu)軟件模式管理(SMM)系統(tǒng)。SMM系統(tǒng)負(fù)責(zé)確定車輛的狀態(tài)模式、識(shí)別子系統(tǒng)的當(dāng)前 模式、確定是否出現(xiàn)任何模式變化并且根據(jù)識(shí)別的模式執(zhí)行所需動(dòng)作。本文描述的SMM的 主要組件包括(1)模式定義組件;(2)模式確定組件;和(3)動(dòng)作列表組件。
[0033]模式定義組件是一組列舉且互斥的值。這些值可以被定義為單個(gè)值或值的組合。 在設(shè)計(jì)階段期間預(yù)先確定這些值。這些值能夠包括但不限于參數(shù)值、識(shí)別操作條件的狀態(tài) 值、定義模式的當(dāng)前狀態(tài)并且根據(jù)操作條件定義模式的當(dāng)前狀態(tài)應(yīng)該是什么的操作范圍 值。模式定義存為軟件模式變量,具有指定組的可能模式值。模式定義能夠由下列方程式 代表: SW模式變量e [模式1,模式2,模式2,……模式N]。
[0034]模式確定組件定義邏輯條件/功能,用于確定模式,并且更具體地說(shuō),確定是否出 現(xiàn)模式變化。用于邏輯條件/功能的參數(shù)以設(shè)計(jì)時(shí)間進(jìn)行設(shè)定并且存儲(chǔ)在表格中,這將在 后面進(jìn)行詳細(xì)描述。軟件模式變量將根據(jù)邏輯條件/功能采取可能的模式中的一個(gè)。根據(jù) 為各個(gè)模式定義的邏輯函數(shù)做出運(yùn)行時(shí)間上的確定??梢岳脙蓚€(gè)示范性確定表示。第一 確定表示靜態(tài)條件,第二確定表示可變條件。第一示范性確定說(shuō)明其中模式未改變的靜態(tài) 條件。這些條件基于專有值,因此,如果定義模式的這些參數(shù)在專有值范圍內(nèi),那么當(dāng)前模 式將保持與前一模式相同。邏輯條件保持不變的例子如下: 如果(變量l>kl) & & (變量2〈k2) & & (變量3! =k3) 那么,SW模式變量=模式2。
[0035]第二示范性確定表示可變邏輯條件。在可變邏輯條件下,邏輯條件校核是基于當(dāng) 前模式值自身。變量可以是單個(gè)變量或者可以是組合變量。因此,各個(gè)條件需要被識(shí)別, 以便確定是否從一個(gè)模式轉(zhuǎn)換到另一模式。這可以包括從另一子系統(tǒng)獲取數(shù)據(jù)以便校核 邏輯條件。可變條件的一個(gè)例子是車輛速度是否大于20mph,并且還根據(jù)與領(lǐng)先車輛相距 的距離是否大于相應(yīng)距離。取決于當(dāng)前模式的邏輯條件/功能的一個(gè)例子由下式表示: 如果(SW變量==模式2) 如果(變量4>k4) & & (變量5〈k5) & & (變量6! =k6) 那么,SW模式變量=模式3。
[0036] 為每個(gè)模式采用模式確定速率,該速率是在運(yùn)行時(shí)間計(jì)算和更新模式變量的速 率。模式確定速率是在設(shè)計(jì)時(shí)預(yù)先確定和設(shè)置的。例如,可以以各種時(shí)間間隔(例如10毫 秒、1秒或5秒)執(zhí)行校核。每個(gè)相應(yīng)的軟件子系統(tǒng)可以具有相應(yīng)的確定速率,其模式的分析 速率,用于確定是否出現(xiàn)模式變化。
[0037] 在動(dòng)作列表執(zhí)行模式中,動(dòng)作列表是由軟件模式或模式變化觸發(fā)的動(dòng)作序列???慮的兩個(gè)觸發(fā)機(jī)構(gòu)是(1)由變化觸發(fā)和(2 )由值觸發(fā)。
[0038] 在由變化觸發(fā)的情況下,如果檢測(cè)到模式轉(zhuǎn)換,則執(zhí)行動(dòng)作列表。由變化觸發(fā)的 例子如下: 如果(SW模式變量[前一]==模式I) & & (SW模式變量[現(xiàn)在]==模式2) 那么,執(zhí)行動(dòng)作列表Al。
[0039] 在由值觸發(fā)的情況下,周期地執(zhí)行動(dòng)作列表,只要SM模式變量采取某一模式值。執(zhí) 行速率等于模式確定速率。由值觸發(fā)的例子如下: 如果(SW模式變量==模式1) 那么,周期性地執(zhí)行動(dòng)作列表A2。
[0040] 雖然SSM系統(tǒng)的組件提供了定義模式、確定模式和執(zhí)行由模式值或模式變化觸發(fā) 的動(dòng)作列表的原則,提供邊界或邏輯表達(dá)式用于確定模式的參數(shù)或條件通常被修正以改善 子系統(tǒng)的操作。為了幫助修改代碼,構(gòu)造模式信息表格,其識(shí)別由三個(gè)組件用來(lái)確定模式的 參數(shù)。示范性表格如下。在這個(gè)表格中,我們假設(shè)模式變量具有三個(gè)可能模式值:M1、M2和
[0041] 如表格中示出的,第一列代表指示先前模式狀態(tài)的前一模式。這個(gè)用作識(shí)別當(dāng)前 模式是否保持不變還是改變。
[0042] 第二列代表模式確定功能,其包括對(duì)每個(gè)相應(yīng)模式的功能邏輯陳述,識(shí)別模式類 型和相關(guān)的邏輯,用于確定是否存在執(zhí)行模式變化的條件。
[0043]第三列代表當(dāng)前模式,其表明是否出現(xiàn)模式之間的轉(zhuǎn)換。例如,對(duì)于前一模式Ml, 要么可能沒(méi)出現(xiàn)轉(zhuǎn)換,當(dāng)前模式保持在模式M1,要么可能出現(xiàn)轉(zhuǎn)換,當(dāng)前模式可能是模式M2 或模式M3。應(yīng)當(dāng)理解的是,表格中識(shí)別的模式是示范性的,并且可以采用比表格中所示更 多或更少的模式。
[0044] 第四列代表用于每個(gè)可能得到的當(dāng)前模式的動(dòng)作列表。動(dòng)作列表識(shí)別用于啟動(dòng) 轉(zhuǎn)換的動(dòng)作,可以由模式值或模式變化觸發(fā)。如果前一模式和當(dāng)前模式保持相同,那么,動(dòng) 作列表被模式值觸發(fā)。如果前一模式和當(dāng)前模式是不同的,那么,動(dòng)作列表被模式變化觸 發(fā)。因此,表格識(shí)別可能的轉(zhuǎn)換,連同如何確定是否出現(xiàn)模式變化的功能一起。
[0045] 為了避免不得不改變軟件代碼本身,參數(shù)、條件和由值表示的狀態(tài)可以存儲(chǔ)在表 格中,其中主算法利用表格和其中的參數(shù)來(lái)識(shí)別是否出現(xiàn)轉(zhuǎn)換模式并且執(zhí)行必要的控制動(dòng) 作。在這個(gè)實(shí)施例中,這個(gè)算法被描述成運(yùn)行時(shí)間模式管理執(zhí)行引擎(以下稱作運(yùn)行時(shí)間執(zhí) 行引擎)。因此,能夠構(gòu)造并用適當(dāng)值和參數(shù)修正表格,而不是不得不改變實(shí)際軟件代碼。 軟件代碼將參照表格,這個(gè)表格列出識(shí)別是否出現(xiàn)模式變化所需的條件和值。因此,如果 軟件代碼需要更新參數(shù)或邏輯函數(shù),僅僅需要修改表格。因此,存儲(chǔ)在主控制器中的軟件 算法不需要被修改,并且更重要的,不需要修正整個(gè)軟件算法并上傳給控制器。表格可以 被修改,包括用于識(shí)別轉(zhuǎn)換的參數(shù)以及邏輯函數(shù)。另外,可以容易地增加、刪除或修改模 式,只是通過(guò)僅僅修改表格及其內(nèi)容。
[0046] 除了表格之外,還采用運(yùn)行時(shí)間執(zhí)行引擎。運(yùn)行時(shí)間執(zhí)行引擎解析表格信息并且 執(zhí)行軟件模式管理。運(yùn)行時(shí)間執(zhí)行引擎由圖2中的框圖表示。應(yīng)當(dāng)理解,模式管理算法變化 將僅僅影響模式構(gòu)造表格。運(yùn)行時(shí)間執(zhí)行引擎與模式管理算法無(wú)關(guān),因此,它不需要任何進(jìn) 一步的軟件更新。
[0047]在塊20,為前一模式找到表格條目。這在表格中識(shí)別為前一模式。
[0048] 在塊21,執(zhí)行模式確定功能。這包括邏輯函數(shù),用于確定操作狀態(tài)是否表明模式 保持相同還是需要變化模式。邏輯函數(shù)可以采用來(lái)自其它副控制器的軟件算法部分。例 如,主控制器例如PCM可以訪問(wèn)車身控制模塊(BCM)或巡航控制模塊(CCM)以確定某一操作 條件的狀態(tài),對(duì)主控制器是否需要轉(zhuǎn)換到另一模式所需要的。如所描述的,這個(gè)表格設(shè)置 邏輯函數(shù),其可包括來(lái)自其它控制器的數(shù)據(jù)輸入。因此,代替包含包括在主軟件算法內(nèi)的 邏輯函數(shù)和相應(yīng)的參數(shù)的軟件的主控制器,主控制器參照這個(gè)表格,其列出用來(lái)做出這樣 的確定的邏輯函數(shù)和相應(yīng)的參數(shù)。這個(gè)表格可以容易地被修改,而不是不得不改變主控制 器的軟件算法。
[0049] 在塊22,為當(dāng)前模式識(shí)別子表格條目。
[0050] 在塊23,執(zhí)行關(guān)聯(lián)的動(dòng)作列表,其包括動(dòng)作函數(shù)的列表。動(dòng)作列表將識(shí)別動(dòng)作函 數(shù)的列表(例如,F(xiàn)1、F2和F3),如塊24中所示。這是在設(shè)計(jì)時(shí)定義的。動(dòng)作列表提供一組功 能,其提供結(jié)構(gòu)或映射,指導(dǎo)例程從一個(gè)節(jié)點(diǎn)到下一節(jié)點(diǎn)。這提供通用的數(shù)據(jù)結(jié)構(gòu),用于通 過(guò)多個(gè)SSM要求的一致實(shí)施。動(dòng)作列表上的每個(gè)節(jié)點(diǎn)是軟件結(jié)構(gòu)的一個(gè)例子,如在塊24a-f 中更詳細(xì)表示定義的。這個(gè)結(jié)構(gòu)定義與這個(gè)節(jié)點(diǎn)相關(guān)聯(lián)的動(dòng)作函數(shù)的指示符和對(duì)相同結(jié) 構(gòu)的下一節(jié)點(diǎn)的指示符。例如,在塊24中,在執(zhí)行期間,運(yùn)行時(shí)間執(zhí)行引擎從表格獲取動(dòng)作 列表。這個(gè)動(dòng)作列表將識(shí)別第一動(dòng)作函數(shù)指示符24a,其指向要執(zhí)行的相應(yīng)的功能。在這 個(gè)例子中,第一動(dòng)作函數(shù)指示符24a指向第一功能24b以執(zhí)行第一軟件組件的相應(yīng)功能(例 如Fn A)。一旦完成第一功能24b,運(yùn)行時(shí)間執(zhí)行引擎將遵循指向下一節(jié)點(diǎn)的下一功能指示 符24c。下一節(jié)點(diǎn)將包含下一動(dòng)作函數(shù)指示符24d,運(yùn)行時(shí)間執(zhí)行引擎指向下一功能24e,用 于執(zhí)行第二軟件組件的相應(yīng)功能(例如Fn y)?;叵氲谝卉浖M件可以是與第一軟件組件 不同的軟件組件。一旦完成第二功能,過(guò)程繼續(xù)下一功能指示符24f并且執(zhí)行相關(guān)功能,直 到下一功能指示符指向無(wú)。
[0051]圖3說(shuō)明采用本文所述系統(tǒng)部分的框圖。塊30代表第一功能軟件組件,塊32代表 第二功能軟件組件,和塊34代表第η個(gè)功能軟件組件。每個(gè)相應(yīng)的功能軟件組件可以保存在 車輛的不同的控制器中。
[0052]塊36說(shuō)明模式管理表格,如先前描述的。模式管理表格36單獨(dú)地儲(chǔ)存在SMM系統(tǒng) 以外。
[0053]塊38代表運(yùn)行時(shí)間執(zhí)行引擎。運(yùn)行時(shí)間執(zhí)行從每個(gè)相應(yīng)的控制器獲取變量,用于 模式確定。運(yùn)行時(shí)間執(zhí)行引擎38也下載模式管理表格366。
[0054]運(yùn)行時(shí)間執(zhí)行引擎38與運(yùn)行系統(tǒng)/基礎(chǔ)服務(wù)器40通信。響應(yīng)于來(lái)自操作系統(tǒng)/基 礎(chǔ)服務(wù)器40的通信,觸發(fā)對(duì)運(yùn)行時(shí)間執(zhí)行引擎38的調(diào)用。在被觸發(fā)時(shí),運(yùn)行時(shí)間執(zhí)行引擎 38從組件、子系統(tǒng)、副控制器收集變量,并且與下載的模式管理表格36合作,根據(jù)收集到的 變量和數(shù)據(jù),確定和執(zhí)行表格中列出的適當(dāng)動(dòng)作。
[0055] 上述技術(shù)允許支持系統(tǒng)內(nèi)的多個(gè)軟件子系統(tǒng)模式。每個(gè)軟件子系統(tǒng)模式(例如發(fā) 動(dòng)機(jī)轉(zhuǎn)速模式、巡航控制模式、鑰匙開(kāi)/鑰匙閉模式)將具有相應(yīng)的執(zhí)行引擎,以相應(yīng)的確定 速率操作,用于校核其相應(yīng)的子系統(tǒng),識(shí)別子系統(tǒng)是否已經(jīng)出現(xiàn)任何變化,代表相應(yīng)的控制 器需要更新和動(dòng)作。
[0056] 盡管已經(jīng)詳細(xì)描述了本發(fā)明的某些實(shí)施例,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到各種替 代結(jié)構(gòu)和實(shí)施例,以按照下列權(quán)利要求限定的那樣實(shí)施本發(fā)明。
【主權(quán)項(xiàng)】
1. 一種重構(gòu)用于系統(tǒng)的軟件模式管理的方法,包括的步驟是: 通過(guò)主控制器識(shí)別子系統(tǒng)的前一狀態(tài)模式,該主控制器包括用于控制子系統(tǒng)的操作的 主軟件算法; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,獲取表格識(shí)別參數(shù),用于識(shí)別子系統(tǒng)的前一模式并且確定其 當(dāng)前模式; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,在表格中找到模式確定邏輯函數(shù),用于確定是否出現(xiàn)模式變 化; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,執(zhí)行與前一模式相關(guān)聯(lián)的模式確定邏輯函數(shù); 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,根據(jù)來(lái)自模式確定邏輯函數(shù)的執(zhí)行的結(jié)果從表格確定當(dāng)前模 式; 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,識(shí)別與表格中的所識(shí)別當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表,該動(dòng)作 列表識(shí)別用于從前一模式轉(zhuǎn)換到當(dāng)前模式的函數(shù); 通過(guò)運(yùn)行時(shí)間執(zhí)行引擎,執(zhí)行與當(dāng)前模式相關(guān)聯(lián)的動(dòng)作列表,其包括用于把前一模式 轉(zhuǎn)換到當(dāng)前模式的動(dòng)作函數(shù)列表; 其中,該表格獨(dú)立于主軟件算法可進(jìn)行修改。2. 如權(quán)利要求2所述的方法,其中,該表格包括模式確定邏輯函數(shù),用于確定當(dāng)前模式。3. 如權(quán)利要求1所述的方法,其中,這些數(shù)值代表應(yīng)用程序組件操作的可能的狀態(tài)。4. 如權(quán)利要求1所述的方法,其中,這些數(shù)值代表應(yīng)用程序組件的子系統(tǒng)狀態(tài)。5. 如權(quán)利要求1所述的方法,其中,該表格存儲(chǔ)在除運(yùn)行時(shí)間執(zhí)行引擎以外的位置。6. 如權(quán)利要求1所述的方法,其中,該表格包括動(dòng)作函數(shù)列表,其包括提供指導(dǎo)從前一 模式向當(dāng)前模式的轉(zhuǎn)換的結(jié)構(gòu)的一組函數(shù),這組函數(shù)列出離散節(jié)點(diǎn),操作為在指導(dǎo)向當(dāng)前 模式的轉(zhuǎn)換中的步驟。7. 如權(quán)利要求6所述的方法,進(jìn)一步包括的步驟是,產(chǎn)生返回代碼,表明當(dāng)前動(dòng)作函數(shù) 的成功完成。8. 如權(quán)利要求7所述的方法,其中,響應(yīng)于由當(dāng)前動(dòng)作函數(shù)的錯(cuò)誤返回代碼或者如果指 向下一節(jié)點(diǎn)的指示符為空,主控制器終止動(dòng)作列表的執(zhí)行。9. 如權(quán)利要求1所述的方法,其中,以相應(yīng)的模式確定速率周期性地分析模式變量,其 中,模式確定速率是預(yù)先確定的。10. 如權(quán)利要求11所述的方法,其中,相應(yīng)的模式確定速率針對(duì)相應(yīng)的模式被具體設(shè) 計(jì)。
【文檔編號(hào)】G06F9/445GK105843634SQ201610075310
【公開(kāi)日】2016年8月10日
【申請(qǐng)日】2016年2月3日
【發(fā)明人】C.劉, S.王
【申請(qǐng)人】通用汽車環(huán)球科技運(yùn)作有限責(zé)任公司