依據(jù)軟件工程的原理,DC-618C機(jī)頂盒軟件采用從上到下的層次化設(shè)計(jì),依次由易到難,由具體到抽象和由軟件到硬件,主要包括如下幾層:
1) 應(yīng)用層:應(yīng)用層是控制整個(gè)機(jī)頂盒操作的高層代碼,也是需要程序員自己完全實(shí)現(xiàn)的代碼。在這一層中實(shí)現(xiàn)各種各樣的功能,包括初始化各種外設(shè)、創(chuàng)建任務(wù)、設(shè)置節(jié)目頻點(diǎn)、實(shí)現(xiàn)用戶輸入輸出操作等。對(duì)于與第三方的軟件合作,包括網(wǎng)絡(luò)瀏覽器,也嵌入在應(yīng)用層中,應(yīng)用程序可以直接調(diào)用驅(qū)動(dòng)層的應(yīng)用程序接口(API)。第三方的中間件可以通過(guò)驅(qū)動(dòng)使用層來(lái)調(diào)用應(yīng)用程序接口。所有的應(yīng)用層組件在功能上能通過(guò)操作系統(tǒng)移植層來(lái)訪問(wèn)實(shí)時(shí)操作系統(tǒng)。
2) 驅(qū)動(dòng)層:驅(qū)動(dòng)層通過(guò)調(diào)用硬件抽象層,來(lái)管理各種外設(shè)和內(nèi)部子系統(tǒng)模塊,將這些模塊的功能抽象化和屏蔽化,向上一層提供應(yīng)用層程序接口,使得應(yīng)用層的操作直觀和簡(jiǎn)潔。應(yīng)用層組件通過(guò)調(diào)用驅(qū)動(dòng)層API來(lái)控制系統(tǒng)硬件功能和服務(wù)。這些驅(qū)動(dòng)完成普通的低層任務(wù),如控制傳輸解復(fù)用和音視頻解碼等。
3) 硬件抽象層:對(duì)DC-618C的所有硬件的操作必須通過(guò)修改寄存器來(lái)實(shí)現(xiàn),DC-618C將所有寄存器與接口統(tǒng)一編址,使得通過(guò)軟件對(duì)寄存器的操作非常簡(jiǎn)單,硬件抽象層正是完成這一功能.可以說(shuō),H.A.L.是驅(qū)動(dòng)層的子集,負(fù)責(zé)直接編輯硬件。驅(qū)動(dòng)層提供通用的低層功能,同時(shí)H.A.L.在硬件上實(shí)現(xiàn)這些功能。為了響應(yīng)驅(qū)動(dòng)層的調(diào)用, H.A.L.執(zhí)行特定的芯片函數(shù),編輯芯片寄存器來(lái)完成一個(gè)特定的功能,它只與一種特定的芯片相對(duì)應(yīng),所以當(dāng)改變硬件平臺(tái)時(shí),只需要改變相應(yīng)的硬件抽象層。
圖 2.1 DC-618C軟件體系結(jié)構(gòu)