当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]引言随着我国在水情数据采集系统的信息化和现代化步伐的加快,需要采集的数据种类增多,采集的站点数增加,对数据采集的速度和质量都提出了新的要求,传统的水情数据测报系

引言

随着我国在水情数据采集系统的信息化和现代化步伐的加快,需要采集的数据种类增多,采集的站点数增加,对数据采集的速度和质量都提出了新的要求,传统的水情数据测报系统的RTU(远端数据采集器)已不能适应新的要求,亟需开发新的产品。

新开发的RTU,其处理能力要比较强,可扩展性要比较好,运行的软件系统具有可移植性,可以移植到不同的硬件平台,可以根据需要配置不同的传感器。为此技术上选用成熟可靠的RTOS 和层次化、构件化的设计思想构建平台软件,保证软件稳定、可靠,扩充新业务功能时软件结构体系保持不变。

RTU 对外有各种类型的传感器接口及通信接口,平时处于守侯状态,当有外部事件或定时处理事件时,由中断信号唤醒CPU 进行相应的处理,处理完及时返回低功耗守侯状态。

功耗设计是一个很重要的问题。因为RTU 是靠电池工作的,这就要求RTU 低功耗工作,考虑到RTU 大部分时间处于低功耗守候状态,守候时仅CPU 在工作,其它部分已关电,因此CPU 的功耗是设计的关键。

1 硬件设计

1.1 CPU 选型

早期的远端采集单元 RTU 一般选择单片机,最主要的原因是实现简单。但也带来了一个问题,功能扩充性特别差,稍作改变,软硬件就要重新设计。另外由于处理能力不强,功能的实现也受到限制。为此,我们选择近期上市的嵌入式CPU。

我们选择的原则是性价比好,功耗低。ARM7 系列处理器能较好满足需要,目前生产厂商也较多,有ATEMEL 的AT91SAM7X256; 恩智浦NXP 的LPC2214 ;ST 微电子的ST710FZ2;TI 的MSP430 等,通过综合比较我们认为,ST 微电子的ST710FZ2 比较好,该CPU 为32 位ARM7 内核的RISC 处理器,具有三级流水线指令结构,是一种高性能、低成本的方案。该CPU 具备多种省电模式,最小待机电流为30μA。

1.2 RTU 微控制核设计

STR710FZ2T6 是一颗基于ARM7TDMI 内核的32 位处理器,片上有丰富的资源:256+16K 片上 FLASH,64K 片内 RAM,4 路12 位AD,4 路硬件串行收发接口, 5 个16 位定时器,1 个硬件CAN 接口,1 个RTC 时钟,1 个WDT 看门狗。片上和外部扩展资源共同占据4GB 地址空间,可方便实现外部存储器和其它资源的扩充。

为了构建一个通用的硬件平台,对FLASH 和RAM 作适当扩展,保证RTU 模块将来的功能升级不受限制。FLASH 程序空间扩展为4MB,RAM 扩展为512KB。FLASH 选用SST 公司的SST39VF3201,容量为32Mb/16 位、低功耗模式典型3μA。RAM 选用ISSI 公司的IS61WV51216,容量为4Mb/16 位、低功耗待机工作9μW。由此构成一个非常紧凑的微控制器核,如图1 所示。整个处理机核的待机功耗小于50μA。

对于低功耗处理机核,还有一个重要的考虑是对外围接口和接口设备的电源控制,在待机时切断它们的供电,保证按需启动设备,为此设计扩展了一些控制接口。

 


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 开发板的这部分代码完成了移植,并能在自研的核心板上稳定运行。

3 软件整体层次结构

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

 


(1)上层访问抽象接口层:这层包括抽象接口和设备管理核心数据两部分。通过对设备访问操作的抽象,为上层应用提供了5 个访问接口API 函数: Open、Read、Write、Ioctrl、Close,用于打开、读、写、控制和关闭设备。设备管理核心数据结构是驱动框架的核心,为系统中的每个硬件设备分配唯一的设备名,上层应用程序通过将设备名作为参数传递给API 函数实现对相应设备的核心管理数据结构的定位寻址,实现对设备的统一访问控制。[!--empirenews.page--]

(2)硬件设备驱动模块层:这层是硬件设备驱动模块功能的实现层,对各个硬件设备的驱动在相应的硬件设备驱动模块中完成。分别完成设备的打开、读、写、控制和关闭功能。

为了使程序具有良好的可读性、可维性,采用了结构化程序设计方法,即"自顶向下,逐步求精"的程序设计方法和"单入口单出口"的控制结构,从问题本身开始,经过逐步细化,将解决问题的步骤分解为由基本程序结构模块组成的结构化程序框图,使每一个模块的功能变单纯而明确,为下一步软件的功能扩充和修改打下了良好的基础。

4 功耗的管理设计

4.1 外设的功耗管理

功耗管理,除CPU 核的控制外,还要保证外设在需要使用时及时上电,使用完后立即关闭,从而达到降低功耗的目的。对外设的功耗管理通过IO 输出口来控制MOS 管的通断,从而打开或关断外部设备的电源。

通信电台的功耗最大,占系统耗电量的比例大,需要严格的计算控制。电台设备从上电启动到关闭分三个阶段:上电启动阶段T1,数据发送阶段T2,等待数据发送阶段T3。

(1)设备上电的时机: 信道编码后,需要发送数据时打开。

(2)设备启动时间T1:设备从上电到可以发送数据需要一个过渡时间,具体的时间值与设备有关,需要看具体设备的手册。

(3)数据发送时间T2:这里的数据发送时间是指数据通过串口发送出去的时间,当数据从串口发出后,程序会返回一个数据发送完毕的信息,T2 时间由接口设备自动控制。

 


图3 通信设备功耗控制示意图

(4)等待数据发送结束时间T3:有些通信设备带有数据缓冲区,当数据从串口发送给通信设备时,不是立即就将数据发送出去,而是先暂存在数据缓冲区,此时如果立即关闭设备电源,可能有数据没有发送完,所以需要一个等待时间。

(5)设备关电时机:当T3 结束后,立即关闭设备的电源。

实际编程时T1 的值根据具体的设备的数据手册来确定;T3 的值也需要根据具体的设备来调试,以接收端能准确可靠的接收到数据,T3 的值最小为准。

4.2 CPU 核的功耗管理

CPU 核在没有任务可做时要进入低功耗状态STOP 模式,在程序中通过空闲任务连续运行状态来判定。当所有的任务都不运行时,操作系统会自动运行空闲任务,当空闲任务连续运行超过一定的时间后(超过程序中需要的最大等待时间),关闭所有的外设,让CPU进入STOP 模式。具体的实现是将原有的空闲任务程序进行修改,增加一个记数器,当记数到一定的数值(即一定的时间)后,进入STOP 模式。

修改后的OS_TaskIdle 程序如下:

void OS_TaskIdle (void *pdata)

{

#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */

OS_CPU_SR cpu_sr;

#endif

pdata = pdata;

for (;;)

{

OS_ENTER_CRITICAL();

OSIdleCtr++;

OS_EXIT_CRITICAL();

Count = count +1;

If (count > 某个数值)

{ 将CPU 进入STOP 模式;

}

OSTaskIdleHook();

}

}

由于空闲任务随时可能被别的任务抢先,当重新执行空闲任务时,如接着抢先点继续执行,全局变量COUNT 没有被清零,所以在每个任务开始运行或执行结束后,都需要对COUNT 清零,这样可以保证COUNT 重新记数,在FOR 循环语句中,当COUNT 记数到一定值,CPU 将进入STOP 模式。

5 结束语

本RTU 微控制器经过试运行后,功耗满足要求,静态功耗小于500μA/12V,在采用10AH 的蓄电池加太阳能板(容量灵活组合),可以保证系统无日照50 天正常工作。由于采用了μCOS-II 操作系统,并编写了硬件驱动程序的内核接口和用户接口,使程序具有良好的移植性,也方便了应用程序开发人员编写程序。

本文作者创新点:提出了一种基于ARM7 和μCOSII 的RTU 低功耗设计方案。采用ARM7 处理机,又根据RTU 设备工作特点设计了电源功耗管理软件,实现了RTU 高的处理能力、低的功耗及长时间的电池供电。

该设计可大规模应用在全国水情测报系统中,将会有500 万以上的经济效益。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

电源系统设计包括设计参数之间的许多权衡,例如尺寸、成本、效率和负载瞬态性能。为了设计功率级,必须建立各种特性,例如瞬态容限、纹波电压和负载特性。

关键字: 降压转换器 电源设计 控制

引领供应链数字化转型新潮流 上海2024年5月16日 /美通社/ -- 5月14日,"第七届亚太智慧供应链与物流创新博览会"在上海顺利举办,作为中国和亚太区最大规模,最有影响力的顶流供应链物流盛会,...

关键字: 数字化 软件 供应链管理 控制

上海2024年5月13日 /美通社/ -- CONNECT 2 是更加用户友好的声卡,仅需轻点几下,它就能为人声和乐器的录制增添异彩。触控面板触感舒适、控制精准、一目了然。所有输入输出信号均可独立静音。自动设置功能通过内...

关键字: NEC 声卡 控制 软件

【2024年5月13日,德国慕尼黑和斯图加特讯】随着汽车行业向软件定义汽车和新E/E架构过渡,市场对高性能硬件和强大网络安全解决方案的需求也逐渐增加。为满足这一需求,全球功率系统和物联网领域的半导体领导者英飞凌科技股份公...

关键字: 微控制器 半导体 物联网

本文针对电动两轮车自燃防控装置的开发与分析进行了研究。通过电动两轮车自燃原因分析,提出了电动两轮车的自燃防控智能装置设计思路,介绍了电动两轮车的自燃防控智能

关键字: STC89C52RC 单片机 微控制器

【2024年5月9日,德国慕尼黑讯】信息安全与功能安全在汽车行业发挥着日益重要的作用,即便在低端微控制器应用中也不例外。与此同时,汽车制造商正在用触摸表面取代机械按钮,实现简洁的驾驶舱和方向盘。因此,电子电路的空间受到很...

关键字: 物联网 电子电路 微控制器

【2024年5月8日,德国慕尼黑讯】Rust编程语言凭借其独特的内存安全特性,已经成为汽车软件开发中C/C++的有效补充和潜在替代品。全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OT...

关键字: 编译器 微控制器

2024年5月6日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起开售Analog Devices, Inc. (ADI) 的MAX32690微控制...

关键字: 可穿戴设备 微控制器 片上系统

【2024年4月29日, 德国慕尼黑讯】嵌入式安全被认为是物联网(IoT)应用部署的一个重要属性。英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)近日宣布,其新型PSOC™ Edge E8x MC...

关键字: 微控制器 MCU 物联网

2024年4月26日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体 (STMicroelectronics,简称ST;纽约证券交易所代码:STM) 公布了按照美国通用会计准则 (U.S. GAAP)...

关键字: 微控制器 模拟器件
关闭
关闭