1.3 RTU 微控制核电源
微控制器核的电源设计也是关键的一步。RTU 模块主控CPU 供电部分有其特殊的需求,分为工作模式和睡眠模式两种,工作模式下的电流100mA 左右,而睡眠模式下的电流仅为50μA。两种模式的差异导致了CPU 供电存在一定的难度。
一般开关电源甚至模块电源都有较大的静态功耗(40mA 左右),选用模块电源对主控CPU 的供电相当困难。负载在50μA~500mA 自身静态功耗小于50μA 的开关电源目前很难找到。有少数专供超低功耗模式CPU供电的LDO电压调整器可实现,如SPX3819,其100μA负载电流时的静态功耗为90μA。但效率太低,70-80%的电能被白白浪费了,不适合蓄电池供电。基于以上原因,对CPU 的供电另选用一款降压型的开关稳压器LT3481。它静态功耗仅为50μA,而且低输出时也有高的效率,50μA 时达60%,100mA 高达86%,特别适合微控制器核供电,如图1 蓄电池直接连到LT3481,向CPU 提供电源。
2 操作系统的移植
很多领域中使用μC/OS-II,如照相机业、航空业以及工业机器人等。从8 位到64 位,μC/OS-II 已经在40 多种不同架构的微处理器上使用。μC/OS-II 的功能和函数经过考验和测试,具有足够的安全性与稳定性。为此,操作系统选择μC/OS-II。μC/OS-II 是一种开放源代码的单用户多任务、完全占先式的硬实时内核,实时性好。μC/OS-Ⅱ本身只包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等功能,没有提供输入输出管理、文件系统、网络之类的额外服务。但是由于μC/OS-Ⅱ的可移植性和开源性,用户可以自己添加所需的各种服务。;一个基于μC/OS-II 的嵌入式应用系统由四部分组成: 应用程序代码、配置程序、移植代码、核心代码。操作系统移植通过编写移植代码来完成。除了编写OS_CPU.H、OS_CPU_A.S、OS_CPU_C.C 等几个文件外,还要编写初始化启动代码。我们通过改写周立功SmartARM2210 开发板的这部分代码完成了移植,并能在自研的核心板上稳定运行。
很多领域中使用μC/OS-II,如照相机业、航空业以及工业机器人等。从8 位到64 位,μC/OS-II 已经在40 多种不同架构的微处理器上使用。μC/OS-II 的功能和函数经过考验和测试,具有足够的安全性与稳定性。为此,操作系统选择μC/OS-II。μC/OS-II 是一种开放源代码的单用户多任务、完全占先式的硬实时内核,实时性好。μC/OS-Ⅱ本身只包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等功能,没有提供输入输出管理、文件系统、网络之类的额外服务。但是由于μC/OS-Ⅱ的可移植性和开源性,用户可以自己添加所需的各种服务。;一个基于μC/OS-II 的嵌入式应用系统由四部分组成: 应用程序代码、配置程序、移植代码、核心代码。操作系统移植通过编写移植代码来完成。除了编写OS_CPU.H、OS_CPU_A.S、OS_CPU_C.C 等几个文件外,还要编写初始化启动代码。我们通过改写周立功SmartARM2210 开发板的这部分代码完成了移植,并能在自研的核心板上稳定运行。
3 软件整体层次结构
RTU 中的程序有应用程序、μC/OS-II 操作系统、文件系统、硬件驱动程序,整体层次关系如图2。μC/OS-II 没有提供硬件驱动程序的内核接口和用户接口,为了让程序移植性好,需要对设备驱动程序按类型进行统一的封装,提供统一的编程接口,使应用程序开发人员可以不考虑具体硬件的细节就可以编程。给上层应用程序提供统一的系统设备调用接口,需要对设备的访问操作进行抽象,应用程序通过硬件驱动程序的上层访问抽象接口来访问底层硬件。驱动程序的设计借鉴了Linux 系统的成功经验,同时考虑到嵌入式操作系统的特殊性,为μC/OS-II 建立了如图2 中所示的驱动框架模型。驱动主要分两个层次:驱动程序的上层访问抽象接口和硬件设备驱动层。