新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM7的RTU微控制器的设计

基于ARM7的RTU微控制器的设计

作者: 时间:2011-02-14 来源:网络 收藏

(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 结束语

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

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

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


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭