基于ARM7的RTU微控制器的设计
3 软件整体层次结构
RTU 中的程序有应用程序、μC/OS-II 操作系统、文件系统、硬件驱动程序,整体层次关系如图2。μC/OS-II 没有提供硬件驱动程序的内核接口和用户接口,为了让程序移植性好,需要对设备驱动程序按类型进行统一的封装,提供统一的编程接口,使应用程序开发人员可以不考虑具体硬件的细节就可以编程。给上层应用程序提供统一的系统设备调用接口,需要对设备的访问操作进行抽象,应用程序通过硬件驱动程序的上层访问抽象接口来访问底层硬件。驱动程序的设计借鉴了Linux 系统的成功经验,同时考虑到嵌入式操作系统的特殊性,为μC/OS-II 建立了如图2 中所示的驱动框架模型。驱动主要分两个层次:驱动程序的上层访问抽象接口和硬件设备驱动层。
(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 时间由接口设备自动控制。
图3 通信设备功耗控制示意图
评论