国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

電控冰箱軟件模塊化設(shè)計

2019-02-26 01:53左秋杰汪良樹
日用電器 2019年12期
關(guān)鍵詞:功能模塊中斷模塊化

左秋杰 汪良樹 任 猛

(長虹美菱股份有限公司 合肥 230601)

引言

隨著科技發(fā)展、社會進步、人們生活水平的提高,電冰箱幾乎成為每個家庭必備的家用電器[1],電冰箱的發(fā)展也從最基本的低溫保鮮功能,發(fā)展到如今的多種功能俱全更智能化的現(xiàn)狀,導致電冰箱產(chǎn)品開發(fā)過程中軟件實現(xiàn)起來越發(fā)復雜。

把一個復雜問題分解為若干個基本問題,再分別求解這些容易解決的基本問題,就是使復雜問題簡單化。

軟件開發(fā)過程中,面對一個復雜的程序設(shè)計,通常做法是根據(jù)系統(tǒng)功能需求,一個功能需求整合成一個模塊,整個程序由多個模塊組成,每個模塊再細分為更小的模塊,直到每個小的模塊單獨完成一個特定的功能,實現(xiàn)模塊化程序設(shè)計。

軟件開發(fā)過程中,采用模塊化的方法,可以使每個模塊實現(xiàn)功能與結(jié)構(gòu)的獨立,同時每個模塊的工作量更小,可以將工作過程細分化,提高工作效率。

1 程序模塊化設(shè)計

1.1 模塊化程序設(shè)計結(jié)構(gòu)

一個完整的程序通常包括主程序和子程序,主程序負責調(diào)用職能,子程序負責實現(xiàn)具體的功能模塊,主程序調(diào)用子程序,這是程序模塊化的要求。在主程序運行完一個循環(huán)的過程中完成了對各功能模塊的順序調(diào)用,如圖1所示。

采用這種結(jié)構(gòu),各個模塊之間相互獨立、結(jié)構(gòu)清晰、接口簡單,我們可以象搭積木一樣,根據(jù)系統(tǒng)功能需求,來實現(xiàn)功能模塊的增減。

1.2 模塊的事件驅(qū)動機制

主程序按順序依次調(diào)用各個功能模塊,若每個模塊都執(zhí)行一遍,勢必會增加系統(tǒng)的運行時間,而有些模塊不需要執(zhí)行或不具備執(zhí)行的條件,就可以避免執(zhí)行這些模塊。采取事件驅(qū)動機制,避免執(zhí)行這些模塊,可以優(yōu)化主程序結(jié)構(gòu),提升程序的執(zhí)行速度。

事件驅(qū)動機制,就是設(shè)置若干使能標志,一一對應各功能模塊,通過此標志置一或清零觸發(fā)/不觸發(fā)該模塊代表的事件。即,在每次執(zhí)行某些功能時,先判斷該功能所在模塊是否滿足執(zhí)行條件,如果滿足則執(zhí)行[3]。

1.3 時間片與分時調(diào)度機制

當系統(tǒng)較復雜、功能需求較多時,為了保證每個功能都有充足的時間分配,需要采用分時調(diào)度機制。將系統(tǒng)時間分成若干份時間片,當滿足某一個時間片條件時,執(zhí)行一個或者多個功能模塊。

如果分時調(diào)度的執(zhí)行者是主程序,我們可以將應用程序的所有功能都按照分時調(diào)度機制調(diào)用(見圖3)。

1.4 中斷與前/后臺的程序結(jié)構(gòu)

如果采用依次調(diào)用各功能模塊外加分時調(diào)度機制,完全可以完成一般的程序設(shè)計工作。但是遇到突發(fā)事件時,不能實時響應,這時需要引入中斷。

中斷是獨立于主程序之外且優(yōu)先級高于主程序的程序流程,每次中斷產(chǎn)生均可暫停主程序正在處理的流程,待處理完中斷程序后,主程序再回到原來中斷的地方,繼續(xù)執(zhí)行原來被中斷的程序(見圖4)。

對于中斷程序來講,通常以越短越精簡為佳,盡量避免在中斷程序中進行大量的邏輯關(guān)系運算。原則上中斷函數(shù)的執(zhí)行時間需要遠遠小于中斷間隔時間。 避免出現(xiàn)因執(zhí)行時間過長導致主程序大部分時間處于等待狀態(tài)不能實時處理功能函數(shù)等問題。

圖1 程序結(jié)構(gòu)圖

圖2 功能模塊的程序結(jié)構(gòu)

2 控制軟件架構(gòu)

根據(jù)冰箱電控系統(tǒng)的工作原理制定模塊化控制策略,將控制軟件劃分為3大部分,系統(tǒng)初始化程序、主程序循環(huán)體、中斷程序。

2.1 系統(tǒng)初始化程序

單片機控制系統(tǒng)在上電之后,首先進行系統(tǒng)復位,然后跳轉(zhuǎn)到主程序運行。在系統(tǒng)實現(xiàn)主程序功能之前,首先對系統(tǒng)進行初始化,需要設(shè)定與對系統(tǒng)時鐘、中斷、串口相關(guān)的寄存器,設(shè)定各通用IO口的初始狀態(tài)、設(shè)置各功能模塊所涉及變量的定義與初始值等。初始化操作只需要執(zhí)行一次。

圖3 主程序采取分時調(diào)度結(jié)構(gòu)

圖4 前/后臺的程序結(jié)構(gòu)模型

2.2 主程序循環(huán)體

系統(tǒng)初始化之后,所需的工作環(huán)境就設(shè)置好了,下一步是進入主程序。主程序一般是個循環(huán)體,負責執(zhí)行系統(tǒng)需求各項功能任務(wù),如輸入檢測(AD采集、按鍵等)、負載輸出控制等。這些功能語句通常寫成子程序形式,由主程序進行調(diào)用。

根據(jù)目前電控冰箱的控制需求,需要執(zhí)行的任務(wù)主要有:通信數(shù)據(jù)的準備與讀取、顯示數(shù)據(jù)準備、按鍵讀取與處理、制冷邏輯計算、化霜邏輯計算、各負載的控制邏輯及控制數(shù)據(jù)準備。

如圖5所示,為主程序流程圖。

2.3 中斷程序

我們把實時性要求很高的功能函數(shù)模塊如通信數(shù)據(jù)的收發(fā)、LED顯示掃描、風門的單步驅(qū)動、PWM輸出,放在中斷中執(zhí)行;把實時性要求低的任務(wù)如制冷邏輯計算、負載輸出控制等交給主程序區(qū)調(diào)度。

圖5 主程序流程圖

圖6 定時器中斷程序流程圖

定時器中斷處理程序為系統(tǒng)提供一個基準時間,軟件各功能模塊中各類時間:如化霜時間、制冷時間、開門時間等計時均以此為基準。

3 結(jié)論

在電控冰箱軟件開發(fā)過程中,模塊化設(shè)計使模塊與模塊之間的相互影響降到最低,降低了產(chǎn)品設(shè)計的風險,同時也可以提高產(chǎn)品的可靠性和設(shè)計質(zhì)量,使程序設(shè)計、調(diào)試和后續(xù)維護等操作更加簡單化,可縮短控制軟件開發(fā)周期,降低研發(fā)成本。

猜你喜歡
功能模塊中斷模塊化
重卡內(nèi)飾模塊化技術(shù)
TMS320F28335外部中斷分析與研究
多級中斷屏蔽技術(shù)分析
模塊化住宅
馬勒推出新型模塊化混動系統(tǒng)
一種考慮GPS信號中斷的導航濾波算法
跟蹤導練(二)(5)
商業(yè)模式是新媒體的核心
基于ASP.NET標準的采購管理系統(tǒng)研究
高校二手交易網(wǎng)絡(luò)平臺功能及技術(shù)框架分析與設(shè)計