• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Linux的便攜嵌入式設備電源管理解決方案

    基于Linux的便攜嵌入式設備電源管理解決方案

    作者: 時間:2012-04-05 來源:網絡 收藏


    (3)實現設備

    這個設備實際是用于接受用戶空間程序的控制所用,所以只需要簡單的實現“ioctl”調用就可以了。
    /3 ioctl調用方法3 /
    static int do_ioctl ( struct inode 3 inode, struct file 3 filp, u_int
    cmd, u_long arg)
    { . . .
    switch ( cmd) {
    case APM_ IOC_STANDBY: {
    pm_send_all ( PM_SUSPEND, ( void 3 ) 2) ; /3 外設掛起3 /
    } break;
    case APM_ IOC_RESUME: {
    pm_send_all ( PM_RESUME, ( void 3 ) 0) ; /3 外設喚醒3 /
    } break;
    case APM_ IOC_SUSPEND: {
    pm_send_all ( PM_SUSPEND, ( void 3 ) 2) ; /3 外設掛起3 /
    sa1110_suspend ( ) ; /3 CPU進入休眠模式3 /
    /3 CPU醒來,繼續執行3 /
    pm_send_all ( PM_RESUME, ( void 3 ) 0) ; /3 喚醒外設3 /
    } break;
    default:
    return - EINVAL;
    }
    return 0;
    }

    最后,使用命令“mknod /dev/ apm c 254 0”,可以在文件系統中建立起該設備的訪問節點。該節點名為/dev/ apm,是一個字符設備( c) ,主設備號為254,此設備號為0。

    (4)編寫用戶空間程序

    用戶可以在適當的時候選擇是否改變CPU的時鐘頻率和顯示刷新率,是否關閉某些外部設備,是否使整個系統進入睡眠模式等等。這只需要使用“ioctl”對設備( /dev/ apm)發送命令就可以了。
    int fd;
    . . .
    fd = open ( " /dev/ apm" , O_RDONLY) ; /3 打開電源管理設
    備3 /
    ioctl ( fd, APM_ IOC_SUSPEND,NULL) ; /3 發送電源管理命
    令3 /
    close ( fd) ; /3 關閉電源管理設備3 /

    實現iPAQ電源管理前后耗電量比較

    實現電源管理以前:開啟LCD, CPU 處于空閑狀態,大多數其他芯片關閉,功耗為470mW。實現電源管理以后:在電源管理前的基礎上開啟SDRAM 的自動節能模式,功耗下降到280mW。然后降低LCD刷新率到30Hz, 功耗下降到238mW。再把CPU頻率降低到57. 3MHz,功耗下降到172mW。最后關閉LCD,功耗下降到98mW。可見,通過本文方案的調節和優化, iPAQ的耗電量確實可以得到有效地改善,最大優化后的耗電量僅為優化前的五分之一,從而大大提高了iPAQ的電池使用時間。

    結 論

    在嵌入式設備中,電源管理是一個硬件和軟件相結合的系統工程。本文介紹了已有的節能方法和Linux電源管理的機制, 并且以iPAQ 為例通過Linux的電源管理機制和上層應用軟件,設計和實現了一個較完整和有效的電源管理方案,為眾多基于的嵌入式設備的電源管理提供了一個有用的參考。


    上一頁 1 2 3 4 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 宁化县| 乌兰察布市| 兰坪| 平乡县| 临澧县| 通河县| 德保县| 克什克腾旗| 应城市| 乌拉特后旗| 大埔县| 黄陵县| 绵竹市| 龙州县| 涪陵区| 台湾省| 深水埗区| 武宣县| 兴义市| 德兴市| 灯塔市| 千阳县| 洪湖市| 井冈山市| 东宁县| 思南县| 奉贤区| 双牌县| 江西省| 清远市| 青川县| 龙陵县| 堆龙德庆县| 海晏县| 丰原市| 仲巴县| 南充市| 黑龙江省| 盈江县| 迁西县| 桂阳县|