注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- 工控机论坛 -- 工控机论坛(非专题) -- 结构与配置

中国工控网搜索:

 登陆:密码:  注册  密码

搜索:

工控机论坛(非专题)分类  

全部论题

结构与配置

数据 I/O

编程与维护

应用方案

发表人:emtronix 发表时间:2010/12/19 19:49:00  

 

 本栏论题: 工控主板EM9160L的低功耗应用方案  [1814]

    9160L是一款与英创主力产品EM9160功能完全兼容,同时具有低功耗操作能力的高性能ARM9嵌入式主板产品。EM9160L主要应用是作为以电池供电、无人值守的野外工作环境为特色的设备主控单元。作为通常的通讯控制功能,EM9160L与EM9160的使用是完全一样的,客户针对EM9160开发的应用程序可不加修改的应用于EM9160L上。本文主要介绍EM9160L低功耗功能方面的相关应用。
    相对EM9160,EM9160L采用了三个方面的措施来改进其功耗指标:(1)采用高效的Step-Down DC-DC电源代替普通的线性稳压电源;(2)采用具有低电压内核的CPU单元;(3)对外部接口单元添加电源管理功能。这三种措施使EM9160L的功耗指标得到大幅度提高,具体功耗测试结果如下表所示:
    测试条件
    EM9160
    EM9160L
   
    平均功耗
    235mA / 5V
    120mA / 5V
   
    峰值功耗
    320mA / 5V
    160mA / 5V
   
    空闲待机功耗
    -
    50mA / 5V
   
   
   
    作为野外监测应用,一般并不需要设备每时每刻都处于运行状态,而是全速工作一段时间后,设备转入空闲一段时间,然后再进入工作状态,即设备实际处于“工作-空闲”的周期模式中。在实际应用中,设备空闲的时间通常远长于设备工作的时间,如每分钟工作10秒、空闲50秒。正因为如此,才要求设备在空闲状态的功耗尽可能低,以延长电池的使用寿命,降低设备的维护费用。
    尽管WinCE操作系统对设备驱动提供了一套电源管理的机制,但这套机制的应用主要是基于带有标准Windows图形界面的环境,而EM9160L则是不带Windows图形接口的系统,因此CE的这套机制还不能非常方便地满足EM9160L在实际应用的需求。针对实际应用的特点,我们为 EM9160L应用程序专门提供了两个系统功能调用:
    //
    // 设置用户空闲标志:进入空闲待机状态
    //
    BOOL SetUserIdleFlag()
    {
    DWORD dwUserIdleFlag;
    DWORD dwInBufSize;
    DWORD dwReturnBytes;
    BOOL bRet;
   
    dwUserIdleFlag = 1;
    dwInBufSize = sizeof(dwUserIdleFlag);
   
    bRet = KernelIoControl(IOCTL_EM9X60_USER_IDLE_WRITE,
    (LPVOID)&dwUserIdleFlag,
    dwInBufSize,
    NULL,
    0,
    &dwReturnBytes);
   
    return bRet;
    }
   
    //
    // 清用户空闲标志:退出空闲待机状态
    //
    BOOL ClearUserIdleFlag()
    {
    DWORD dwUserIdleFlag;
    DWORD dwInBufSize;
    DWORD dwReturnBytes;
    BOOL bRet;
   
    dwUserIdleFlag = 0;
    dwInBufSize = sizeof(dwUserIdleFlag);
   
    bRet = KernelIoControl(IOCTL_EM9X60_USER_IDLE_WRITE,
    (LPVOID)&dwUserIdleFlag,
    dwInBufSize,
    NULL,
    0,
    &dwReturnBytes);
   
    return bRet;
    }
    应用程序可通过调用上述两个API实现进入或退出用户空闲状态,进入空闲状态后,用户程序可设定一定数量的Sleep(1000)循环,来确定系统处于空闲状态的时间。注意在空闲状态中,EM9160L的以太网接口被关闭。典型的进入空闲状态的应用程序流程如下:
   
    BOOL dEventFlag = FALSE; //外部中断事件标志
    ….
   
    //关闭在空闲状态中不再使用的通讯接口,如串口等
    ….
    //进入空闲状态
    SetUserIdleFlag();
   
    //设置正常空闲状态50秒,每秒进行一次异常检查
    for (i1 = 0; i1 < 50; i1++)
    {
    Sleep(1000); //也可用WaitForSingleObject阻塞等待外部事件
    if(dEventFlag)
    break;
    }
    //退出空闲状态
    ClearUserIdleFlag();
    //打开应用所需的通讯接口,如串口等
    ….
   
    上述流程还支持空闲状态的中途退出,这是因为系统在空闲状态下仍然可以正常响应外部硬件中断。一种典型的空闲状态中途退出应用是保持EM9160L的IRQ1中断线程,把GPRS模块的振铃信号RI#作为IRQ1中断输入信号。这样应用控制中心可在任意时间,通过拨号来唤醒基于EM9160L的野外设备,使其立即进入工作状态。
    由于以太网接口单元通常都是嵌入式系统功耗最大的单元之一,因此在EM9160L的空

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳