两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于資源共享的組件間通信方法

文檔序號(hào):6353297閱讀:213來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):一種基于資源共享的組件間通信方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)字信息的傳輸領(lǐng)域,尤其涉及汽車(chē)開(kāi)放系統(tǒng)架構(gòu)(AUT0SAR)中一種 基于資源共享的組件間通信方法。
背景技術(shù)
為了應(yīng)對(duì)當(dāng)代汽車(chē)中日益復(fù)雜的電子軟件系統(tǒng),控制電控軟件日益增長(zhǎng)的復(fù)雜 度,歐日的主要汽車(chē)生產(chǎn)商和一些芯片制造商推出了名為開(kāi)放汽車(chē)系統(tǒng)架構(gòu)(AUT0SAR)的 產(chǎn)業(yè)標(biāo)準(zhǔn)。與此同時(shí),伴隨著復(fù)雜的車(chē)載功能的增多,汽車(chē)上使用的電控芯片(ECU)的數(shù)量 也日益增多,對(duì)于大多數(shù)經(jīng)濟(jì)型轎車(chē)而言,過(guò)多的ECU對(duì)汽車(chē)的成本控制帶來(lái)了極大的考 驗(yàn)。因此,如何利用有限的資源部署更多的軟件功能,實(shí)現(xiàn)節(jié)能減排,是一個(gè)非常重要及有 意義的問(wèn)題。AUT0SAR將電子軟件架構(gòu)分成上層應(yīng)用軟件組件層、中間運(yùn)行時(shí)環(huán)境和下層基礎(chǔ) 服務(wù)以及硬件抽象層等四層。在應(yīng)用軟件層中,各個(gè)軟件組件遵照標(biāo)準(zhǔn)格式定義自己與外 部通信的端口和端口接口類(lèi)型,其通信行為的具體實(shí)現(xiàn)由下層的運(yùn)行時(shí)環(huán)境(RTE)來(lái)提供, RTE主要使用OS和COM服務(wù)來(lái)實(shí)現(xiàn)應(yīng)用軟件組件間的各種通信行為,同時(shí)也會(huì)轉(zhuǎn)發(fā)應(yīng)用軟 件組件對(duì)下層基礎(chǔ)服務(wù)層的通信服務(wù)請(qǐng)求,達(dá)到實(shí)現(xiàn)虛擬總線(xiàn)的效果。軟件組件的通信分 為S/R和C/S兩種,前者是數(shù)據(jù)傳遞,后者是服務(wù)調(diào)用。這兩種通信的實(shí)現(xiàn)方法是RTE代碼 生成器根據(jù)系統(tǒng)配置描述和ECU配置描述,動(dòng)態(tài)的生成實(shí)際的代碼。不同的配置描述所生 成的代碼完全不同。在這兩種通信中,AUT0SAR允許發(fā)起方組件設(shè)置一個(gè)超時(shí)時(shí)間,當(dāng)接收 方組件在給定時(shí)間內(nèi)收到所發(fā)數(shù)據(jù)或者完成所請(qǐng)求服務(wù)時(shí),返回給客戶(hù)組件一個(gè)完成事件 (S/R中是數(shù)據(jù)發(fā)送完成事件,C/S中是服務(wù)完成事件),否則返回通信超時(shí)事件?;诖?, RTE對(duì)此通行功能通常實(shí)現(xiàn)需要使用一個(gè)Alarm來(lái)定時(shí),兩個(gè)OS事件來(lái)表示通信完成事件 和通信超時(shí)事件。不同通信行為需要不同的靜態(tài)配置的Alarm和OS事件。而通常的嵌入 式操作系統(tǒng)允許使用的Alarm和OS事件資源都是有限的,且過(guò)多的這類(lèi)資源會(huì)嚴(yán)重影響系 統(tǒng)的性能。因此,當(dāng)系統(tǒng)中此類(lèi)通信行為增多時(shí),解決對(duì)上述兩類(lèi)資源的使用的限制問(wèn)題具 有很大的實(shí)際意義。

發(fā)明內(nèi)容
為解決上述問(wèn)題,本發(fā)明提供一種節(jié)約Alarm及OS資源的一種基于資源共享的組 件間通信方法。未達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是一種基于資源共享的組件間通信方 法,其特征在于所述的方法包括如下步驟
(1)設(shè)置各組件的操作系統(tǒng)(OS)和運(yùn)行環(huán)境(RTE):0S中包括多個(gè)OS任務(wù),OS任務(wù)可 包括多個(gè)通信事件,分配一個(gè)用于通信OS事件給需要通信的OS任務(wù),確定多個(gè)OS任務(wù)中 包括鬧鐘函數(shù)(Alarm) OS任務(wù)數(shù)量;
(2)RTE中包括RTE代碼生成器、RET開(kāi)始函數(shù),所述的RTE代碼生成器生成通信的實(shí)現(xiàn)代碼、Alarm回調(diào)函數(shù)、Alarm資源堆棧的實(shí)現(xiàn)代碼,RTE開(kāi)始函數(shù)初始設(shè)置包括Alarm的 OS任務(wù);
(3)當(dāng)有通信事件發(fā)生時(shí)通信事件的發(fā)起組件調(diào)用RTE的通信API,所述的通信API 從Alarm資源堆棧中摘取棧頂節(jié)點(diǎn)并設(shè)置棧頂節(jié)點(diǎn)對(duì)通信OS事件和OS任務(wù)的引用,啟動(dòng) Alarm ;
(4)通信事件結(jié)束后,發(fā)起組件所在的OS任務(wù)收到通信OS事件,根據(jù)通信的狀態(tài)位判 斷通信事件是否完成,是則進(jìn)入5,否則啟動(dòng)Alarm,啟動(dòng)Alarm回調(diào)函數(shù),進(jìn)入3 ;
(5)釋放Alarm,歸還棧頂節(jié)點(diǎn)給Alarm資源堆棧,進(jìn)入3。本發(fā)明的第一優(yōu)選方案為步驟(2)、(4)所述的Alarm回調(diào)函數(shù)讀取棧頂節(jié)點(diǎn),從 中取出OS任務(wù)和通信OS事件的引用,并為所述的OS任務(wù)重新設(shè)置通信OS事件。本發(fā)明的第二優(yōu)選方案為步驟(1)中,根據(jù)組件通信OS事件周期,將通信OS事 件的優(yōu)先級(jí)分為高和低,所有短周期的循環(huán)通信活動(dòng)為高,其余歸為低,高優(yōu)先級(jí)的通信OS 事件確定了所需Alarm的最少數(shù)量為所有需要超時(shí)監(jiān)控的通通信OS事件的數(shù)量確定 所需Alarm的最大數(shù)量為Nmax,實(shí)際分配數(shù)量值為Nact: {Nmin+Nmax) /2。本發(fā)明的第四優(yōu)選方案為步驟(2)中所述的RET開(kāi)始函數(shù)初始化Alarm資源堆 棧,在需要超時(shí)監(jiān)控的通信OS事件的通信應(yīng)用程序接口(API)的開(kāi)始處插入Alarm分配代 碼,在Alarm回調(diào)函數(shù)和通信API結(jié)束處插入Alarm釋放代碼。本發(fā)明的發(fā)明思想為通過(guò)維護(hù)一個(gè)全局的Alarm及其對(duì)應(yīng)的OS任務(wù)和通信 OS事件的共享資源堆棧,實(shí)現(xiàn)AUT0SAR組件間通信的超時(shí)監(jiān)控功能,并在不同通信中共享 Alarm,同時(shí)把同一個(gè)OS任務(wù)中的由通信活動(dòng)觸發(fā)的所有的通信完成事件和超時(shí)事件映射 到同一個(gè)通信OS事件,實(shí)現(xiàn)資源使用優(yōu)化。所述的同一個(gè)OS任務(wù)中的所有通信完成事件 和超時(shí)事件映射到同一個(gè)通信OS事件,是指不同通信活動(dòng)中各有通信完成事件或者超時(shí) 事件發(fā)生,且這些通信行為都位于同一個(gè)OS任務(wù),把所有組件關(guān)聯(lián)的通信完成事件和通信 超時(shí)事件映射到同一個(gè)通信OS事件上,由于同一個(gè)OS任務(wù)某時(shí)刻只可能處以一個(gè)通信活 動(dòng)中,可以通過(guò)所處的通信活動(dòng)來(lái)識(shí)別當(dāng)前通信OS事件對(duì)應(yīng)的通信事件,即用一個(gè)通信OS 事件對(duì)應(yīng)多個(gè)不同的通信事件。本發(fā)明的技術(shù)優(yōu)勢(shì)在于所述的實(shí)現(xiàn)資源優(yōu)化使用,在實(shí)際應(yīng)用中,根據(jù)通信的 活躍頻率,不需要為每個(gè)通信事件分配專(zhuān)有的Alarm和通信OS事件,減少實(shí)際需要的Alarm 和通信OS事件的數(shù)量。下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明做進(jìn)一步說(shuō)明。


圖1為本實(shí)施例組件通信流程圖。圖2為實(shí)施例Alarm資源堆棧圖。
具體實(shí)施例方式參考圖1、圖2,在完成了 OS與RTE初始配置后,各組件間通信事件按照下例步驟 進(jìn)行。1.根據(jù)配置描述配置Alarm,映射同一個(gè)OS任務(wù)中的通信事件到一個(gè)通信OS事
4件。2.初始化Alarm資源堆棧,使用數(shù)組表示Alarm資源堆棧,使用全局棧頂指針并 初始化為指向第0個(gè)元素,每個(gè)數(shù)組元素中的下一項(xiàng)索引初始化為其為下一個(gè)相鄰節(jié)點(diǎn)在 數(shù)組中的下標(biāo)。3.通信事件請(qǐng)求分配Alarm,根據(jù)棧頂指針從資源堆棧中取棧頂節(jié)點(diǎn)分配給該活 動(dòng),然后棧頂指針指向該節(jié)點(diǎn)中下一個(gè)節(jié)點(diǎn)索引項(xiàng)指示的下一個(gè)節(jié)點(diǎn)。設(shè)置該節(jié)點(diǎn)中的各 個(gè)域的值為當(dāng)前OS任務(wù)和任務(wù)配置的用于通信OS事件。4.啟動(dòng)Alarm,在Alarm定時(shí)觸發(fā)Alarm回調(diào)函數(shù)時(shí),歸還該Alarm所屬節(jié)點(diǎn)給 Alarm資源堆棧,即設(shè)置該節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)索引項(xiàng)為棧頂指針的值,并更新棧頂指針值為 該節(jié)點(diǎn)在資源數(shù)組中的下標(biāo),然后根據(jù)該節(jié)點(diǎn)中的任務(wù)和事件值,為其設(shè)置事件,進(jìn)入3。5.在Alarm觸發(fā)前,通信活動(dòng)完成,則取消Alarm,歸還棧頂節(jié)點(diǎn)給Alarm資源堆 棧,進(jìn)入3。本發(fā)明不僅限于上述實(shí)施例所示的保護(hù)范圍,所有基于本實(shí)施例的發(fā)明思想,皆 在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于資源共享的組件間通信方法,其特征在于所述的方法包括如下步驟(1)設(shè)置各組件的操作系統(tǒng)(OS)和運(yùn)行環(huán)境(RTE):0S中包括多個(gè)OS任務(wù),OS任務(wù)可 包括多個(gè)通信事件,分配一個(gè)用于通信OS事件給需要通信的OS任務(wù),確定多個(gè)OS任務(wù)中 包括鬧鐘函數(shù)(Alarm) OS任務(wù)數(shù)量;(2)RTE中包括RTE代碼生成器、RET開(kāi)始函數(shù),所述的RTE代碼生成器生成通信的實(shí) 現(xiàn)代碼、Alarm回調(diào)函數(shù)、Alarm資源堆棧的實(shí)現(xiàn)代碼,RTE開(kāi)始函數(shù)初始設(shè)置包括Alarm的 OS任務(wù);(3)當(dāng)有通信事件發(fā)生時(shí)通信事件的發(fā)起組件調(diào)用RTE的通信API,所述的通信API 從Alarm資源堆棧中摘取棧頂節(jié)點(diǎn)并設(shè)置棧頂節(jié)點(diǎn)對(duì)通信OS事件和OS任務(wù)的引用,啟動(dòng) Alarm ;(4)通信事件結(jié)束后,發(fā)起組件所在的OS任務(wù)收到通信OS事件,根據(jù)通信的狀態(tài)位判 斷通信事件是否完成,是則進(jìn)入5,否則啟動(dòng)Alarm,啟動(dòng)Alarm回調(diào)函數(shù),進(jìn)入3 ;(5)釋放Alarm,歸還棧頂節(jié)點(diǎn)給Alarm資源堆棧,進(jìn)入3。
2.根據(jù)權(quán)利要求1所述的一種基于資源共享的組件間通信方法,其特征在于步驟 (2)、(4)中所述的Alarm回調(diào)函數(shù)讀取棧頂節(jié)點(diǎn),從中取出OS任務(wù)和通信OS事件的引用, 并為所述的OS任務(wù)重新設(shè)置通信OS事件。
3.根據(jù)權(quán)利要求1所述的一種基于資源共享的組件間通信方法,其特征在于步驟(1) 中,根據(jù)組件通信OS事件周期,將通信OS事件的優(yōu)先級(jí)分為高和低,所有短周期的循環(huán)通 信活動(dòng)為高,其余歸為低,高優(yōu)先級(jí)的通信OS事件確定了所需Alarm的最少數(shù)量為,所 有需要超時(shí)監(jiān)控的通通信OS事件的數(shù)量確定所需Alarm的最大數(shù)量為Nmax,實(shí)際分配數(shù)量 馳 Nact:iNmin—NmaxV2。
4.根據(jù)權(quán)利要求1所述的一種基于資源共享的組件間通信方法,其特征在于步驟(2) 中所述的RET開(kāi)始函數(shù)初始化Alarm資源堆棧,在需要超時(shí)監(jiān)控的通信OS事件的通信應(yīng)用 程序接口(API)的開(kāi)始處插入Alarm分配代碼,在Alarm回調(diào)函數(shù)和通信API結(jié)束處插入 Alarm釋放代碼。
全文摘要
本發(fā)明涉及一種基于資源共享的組件間通信方法,通過(guò)維護(hù)一個(gè)全局的Alarm及其對(duì)應(yīng)的OS任務(wù)和通信OS事件的共享資源堆棧,實(shí)現(xiàn)AUTOSAR組件間通信的超時(shí)監(jiān)控功能,并在不同通信事件中共享Alarm,同時(shí)把同一個(gè)OS任務(wù)中的由通信活動(dòng)觸發(fā)的所有的通信完成事件和超時(shí)事件映射到同一個(gè)通信OS事件,實(shí)現(xiàn)資源使用優(yōu)化。
文檔編號(hào)G06F9/54GK102073549SQ20111000987
公開(kāi)日2011年5月25日 申請(qǐng)日期2011年1月18日 優(yōu)先權(quán)日2011年1月18日
發(fā)明者劉敏, 劉財(cái)志, 彭威, 楊國(guó)青, 田帥, 胡博, 趙民德 申請(qǐng)人:浙江大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
化德县| 隆化县| 杭锦后旗| 印江| 青海省| 灵川县| 蓝山县| 武清区| 灵山县| 丽江市| 上高县| 朝阳市| 龙里县| 什邡市| 舟山市| 长春市| 泽库县| 德钦县| 阿鲁科尔沁旗| 沂水县| 巴林左旗| 云安县| 哈巴河县| 恩平市| 东莞市| 静乐县| 来安县| 绍兴县| 句容市| 慈利县| 什邡市| 玉溪市| 临武县| 静宁县| 龙州县| 新乡县| 论坛| 左贡县| 民和| 尉氏县| 左贡县|