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