依据软件工程的原理,DC-618C机顶盒软件采用从上到下的层次化设计,依次由易到难,由具体到抽象和由软件到硬件,主要包括如下几层:
1) 应用层:应用层是控制整个机顶盒操作的高层代码,也是需要程序员自己完全实现的代码。在这一层中实现各种各样的功能,包括初始化各种外设、创建任务、设置节目频点、实现用户输入输出操作等。对于与第三方的软件合作,包括网络浏览器,也嵌入在应用层中,应用程序可以直接调用驱动层的应用程序接口(API)。第三方的中间件可以通过驱动使用层来调用应用程序接口。所有的应用层组件在功能上能通过操作系统移植层来访问实时操作系统。
2) 驱动层:驱动层通过调用硬件抽象层,来管理各种外设和内部子系统模块,将这些模块的功能抽象化和屏蔽化,向上一层提供应用层程序接口,使得应用层的操作直观和简洁。应用层组件通过调用驱动层API来控制系统硬件功能和服务。这些驱动完成普通的低层任务,如控制传输解复用和音视频解码等。
3) 硬件抽象层:对DC-618C的所有硬件的操作必须通过修改寄存器来实现,DC-618C将所有寄存器与接口统一编址,使得通过软件对寄存器的操作非常简单,硬件抽象层正是完成这一功能.可以说,H.A.L.是驱动层的子集,负责直接编辑硬件。驱动层提供通用的低层功能,同时H.A.L.在硬件上实现这些功能。为了响应驱动层的调用, H.A.L.执行特定的芯片函数,编辑芯片寄存器来完成一个特定的功能,它只与一种特定的芯片相对应,所以当改变硬件平台时,只需要改变相应的硬件抽象层。
图 2.1 DC-618C软件体系结构