(1)上层访问抽象接口层:这层包括抽象接口和设备管理核心数据两部分。通过对设备访问操作的抽象,为上层应用提供了5 个访问接口API 函数: Open、Read、Write、Ioctrl、Close,用于打开、读、写、控制和关闭设备。设备管理核心数据结构是驱动框架的核心,为系统中的每个硬件设备分配唯一的设备名,上层应用程序通过将设备名作为参数传递给API 函数实现对相应设备的核心管理数据结构的定位寻址,实现对设备的统一访问控制。
(2)硬件设备驱动模块层:这层是硬件设备驱动模块功能的实现层,对各个硬件设备的驱动在相应的硬件设备驱动模块中完成。分别完成设备的打开、读、写、控制和关闭功能。
为了使程序具有良好的可读性、可维性,采用了结构化程序设计方法,即"自顶向下,逐步求精"的程序设计方法和"单入口单出口"的控制结构,从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图,使每一个模块的功能变单纯而明确,为下一步软件的功能扩充和修改打下了良好的基础。
4 功耗的管理设计
4.1 外设的功耗管理
功耗管理,除CPU 核的控制外,还要保证外设在需要使用时及时上电,使用完后立即关闭,从而达到降低功耗的目的。对外设的功耗管理通过IO 输出口来控制MOS 管的通断,从而打开或关断外部设备的电源。
通信电台的功耗最大,占系统耗电量的比例大,需要严格的计算控制。电台设备从上电启动到关闭分三个阶段:上电启动阶段T1,数据发送阶段T2,等待数据发送阶段T3。
(1)设备上电的时机: 信道编码后,需要发送数据时打开。
(2)设备启动时间T1:设备从上电到可以发送数据需要一个过渡时间,具体的时间值与设备有关,需要看具体设备的手册。
(3)数据发送时间T2:这里的数据发送时间是指数据通过串口发送出去的时间,当数据从串口发出后,程序会返回一个数据发送完毕的信息,T2 时间由接口设备自动控制。
(4)等待数据发送结束时间T3:有些通信设备带有数据缓冲区,当数据从串口发送给通信设备时,不是立即就将数据发送出去,而是先暂存在数据缓冲区,此时如果立即关闭设备电源,可能有数据没有发送完,所以需要一个等待时间。
(5)设备关电时机:当T3 结束后,立即关闭设备的电源。
实际编程时T1 的值根据具体的设备的数据手册来确定;T3 的值也需要根据具体的设备来调试,以接收端能准确可靠的接收到数据,T3 的值最小为准。