<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 淺談嵌入式軟件系統(tǒng)設計中的正交性

          淺談嵌入式軟件系統(tǒng)設計中的正交性

          作者:上海新時達電氣有限公司 李興鶴 古俊銀 宋吉波 馬艷玲 吳蕓 時間:2008-09-04 來源:單片機與嵌入式系統(tǒng)應用 收藏

          摘要 軟件系統(tǒng)設計領域存在“正交”的思想。本文結(jié)合實際項目經(jīng)驗,總結(jié)了軟件系統(tǒng)正交化的方法,同時較全面地分析了帶來的諸多方便,最后回顧“正交”思想對不同自然科學領域的積極影響與啟發(fā)。

          本文引用地址:http://www.ex-cimer.com/article/87715.htm

          關鍵詞     

          漫談

            變換是20世紀最輝煌的科學成就之一,已經(jīng)廣泛應用于信號處理、圖像分析、非線性科學、地球科學、音樂雷達、CT成像、地震勘探、天體識別、量子場論、機械故障診斷、分形等科技領域。

            20世紀初,哈爾(Alfred Haar)對在函數(shù)空間中尋找一個與傅里葉類似的基非常感興趣。1909年他最早發(fā)現(xiàn)和使用了小波,后來這被命名為哈爾小波(Haar wavelets)。20世紀 70年代,當時在法國石油公司工作的地球物理學家 Jean Morlet提出了小波變換 WT(Wavelet Transform)的概念。 進入 20世紀 80年代,法國科學家 Y.Meyer和他的同事開始研究系統(tǒng)的小波分析方法。1985年,Daubechies提出“正交小波基”,并構(gòu)造具有緊支撐的光滑小波,以及隨后 Mallat提出的多分辨分析及快速小波變換,將小波研究推向高潮。小波分析己經(jīng)成為目前發(fā)展最快和最引入注目的學科之一,幾乎涉及信息領域的所有學科。

            為何“正交小波基”與多分辨分析的提出成為小波分析發(fā)展史中的重大突破成就?主要原因之一是:變換系數(shù)沒有冗余,能夠?qū)⑿盘柗纸獬苫ゲ挥绊懙恼蛔有盘枺@樣就可以根據(jù)需求方便地對所需特征的子信號進行分析,從而很好地反映信號的細節(jié)。

          2  嵌入式軟件系統(tǒng)設計的

            其實,在軟件系統(tǒng)設計領域同樣或多或少存在“正交”的思想。一個常被引用的模式是Smalltalk編程語言(Krasner和 Pope,1988)的模型視圖控制器(ModelViewController)框架。該模式強制性地將軟件系統(tǒng)的輸入、處理和輸出分開,形成數(shù)據(jù)模型、視圖、控制器三大模塊,如圖1所示。圖中“數(shù)據(jù)模型”包括程序的設計部分,“視圖”表示用戶界面,“控制器”定義用戶和視圖的交互方式。



          圖1  模型視圖控制器框架

            其中每部分都是一個獨立的對象,每個對象有自己處理數(shù)據(jù)的規(guī)則。這種功能的分離恰巧促成各個模塊的正交性、減少它們之間的冗余,因此也使該框架成為應用最為廣泛的模式之一。

          2.1  設計正交嵌入式軟件系統(tǒng)

            毫無疑問,正交的思想使得系統(tǒng)設計更加清晰和方便。那么如何才能更好地使嵌入式軟件系統(tǒng)具有“正交性”呢?

          (1)  設計具有正交性的系統(tǒng)體系結(jié)構(gòu)

            進行系統(tǒng)設計首先要進行系統(tǒng)的體系結(jié)構(gòu)設計。系統(tǒng)的宏觀設計同樣也體現(xiàn)正交性思想,如圖2所示。


          圖2  系統(tǒng)體系結(jié)構(gòu)

            其中,底層驅(qū)動與RTOS是唯一與系統(tǒng)硬件相聯(lián)系的模塊,直接負責與硬件打交道,對硬件進行管理與控制,并為其上層模塊提供所需的驅(qū)動支持;調(diào)度程序在RTOS支持下,根據(jù)系統(tǒng)需求對不同的任務模塊進行實時調(diào)度與管理,確保所有任務能順利、均衡地執(zhí)行;最上層的任務模塊具有不同的功能,以滿足用戶需求,它們各自獨立、正交、不存在冗余,同時提供相應數(shù)據(jù)接口,以便與其他模塊通信,形成有機整體。

            整個系統(tǒng)體系結(jié)構(gòu)同樣體現(xiàn)了正交思想,各個層的不同模塊負責相互獨立、正交的任務。從垂直角度看上去,該體系結(jié)構(gòu)同正交小波一樣,可以用多尺度空間思想表示,如圖3所示。越核心的地方,功能輪廓越粗略;越到外層,越體現(xiàn)細節(jié)、越貼近用戶需求。


          圖3  多尺度嵌入式軟件體系結(jié)構(gòu)

          (2)  保持模塊間的松耦合

            劃分軟件模塊時很重要的一個原則是:盡可能地保證各模塊間的松耦合和模塊內(nèi)部的高聚合。這實際上就實現(xiàn)了系統(tǒng)的正交化,減少了模塊間的冗余與關聯(lián)。理想的系統(tǒng)結(jié)構(gòu)呈樹狀,如圖4所示。


          圖4  嵌入式系統(tǒng)的理想樹狀結(jié)構(gòu)

            整個系統(tǒng)呈樹狀結(jié)構(gòu),模塊間的連接只能存在上下級之間的調(diào)用關系,不能有同級模塊之間的橫向關系,即不能出現(xiàn)網(wǎng)狀結(jié)構(gòu)或交叉調(diào)用關系。

            如圖4所示,通過調(diào)用I2C總線讀寫子模塊可以實現(xiàn)I2C一主多從通信子模塊以及RTC和EEPROM的讀寫子模塊,但是這些子模塊之間彼此不能互相調(diào)用。所以,當系統(tǒng)對EEPROM沒有需求時,可以方便地將EEPROM讀寫子模塊移除,而不會影響到其他模塊。

          (3)  保持任務間的松耦合

            嵌入式系統(tǒng)中常常會用到RTOS,根據(jù)系統(tǒng)需求確定不同的任務以及任務執(zhí)行的頻率或次序。在滿足需求的前提下,盡可能地保證每個任務有固定的執(zhí)行周期,因為這樣可以讓任務按照既定頻率執(zhí)行,減少任務間的通信和調(diào)用,同時也增強了系統(tǒng)的可預見性。

            例如,系統(tǒng)SPI通信解析任務(即ProcSPI任務)的執(zhí)行頻率為10 Hz,為了保證通信正常,需要一個任務實時檢測SPI通信是否出現(xiàn)故障(即FaultSPI任務)。為說明簡便,假設SPI通信故障的唯一來源是數(shù)據(jù)解析時校驗不通過,并且當出錯概率超過50%時即可判定SPI通信故障。圖5所示為FaultSPI任務被調(diào)用的2種方式。

            圖中,MCscheduler為系統(tǒng)調(diào)度程序,能以固定頻率調(diào)用不同的任務。圖5(a)表明每次解析SPI數(shù)據(jù)時,都直接觸發(fā)FaultSPI 任務。顯然,根據(jù)需求,該方式做了許多無用的判斷。圖5(b)表明FaultSPI任務由系統(tǒng)調(diào)度程序以1 Hz的頻率調(diào)用。該任務只需要確定SPI數(shù)據(jù)有5次以上校驗錯誤,即可判斷SPI通信故障。這種方式消除了2個任務的直接調(diào)用關系,即保持了任務間的松耦合。

          (4)  合并同類項

            以模塊或文件為單位,每個模塊或文件面向獨立的設備或需求,每個模塊又由許多子模塊構(gòu)成,這些子模塊盡可能負責獨立、單一的任務或功能。如 GetTime()、SetTime()、GetFault()、PushFault()等,這些子模塊可能會調(diào)用相同的函數(shù)或方法,也可能會使用同一個屬性變量,如果將這些子模塊歸在一起,封裝成一個文件,那么這些被調(diào)用的函數(shù)、方法或變量就不需要“extern”聲明(C語言中),因此對于其他文件是隱藏的、不可見的,增加了系統(tǒng)的安全性;另外,當不需要該功能或設備時,可以方便地將該文件從項目中移除,而不會影響到其他模塊的工作。

          (5)  避免編寫相似函數(shù)

            功能相似的函數(shù)往往很難保持正交性,所以應該避免相似函數(shù)的出現(xiàn),或者將其統(tǒng)一成一個函數(shù)。比如,一個系統(tǒng)存在著多種通信方式,而在通信過程中,常常需要開發(fā)者確定自己的通信協(xié)議以及校驗方式;如果每一種通信方式都編寫自己的校驗函數(shù),則增加代碼量的同時,也使得系統(tǒng)通信校驗函數(shù)過于零散;在設計時,可以考慮統(tǒng)一系統(tǒng)中的通信校驗方式,編寫一個校驗函數(shù),以支持各類通信的校驗。這樣既能使系統(tǒng)簡潔,同時也便于維護。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();