EM9160L是一款與英創(chuàng)主力產(chǎn)品EM9160功能完全兼容,同時具有低功耗操作能力的高性能ARM9嵌入式主板產(chǎn)品。EM9160L主要應(yīng)用是作為以電池供電、無人值守的野外工作環(huán)境為特色的設(shè)備主控單元。作為通常的通訊控制功能,EM9160L與EM9160的使用是完全一樣的,客戶針對EM9160開發(fā)的應(yīng)用程序可不加修改的應(yīng)用于EM9160L上。本文主要介紹EM9160L低功耗功能方面的相關(guān)應(yīng)用。
相對EM9160,EM9160L采用了三個方面的措施來改進其功耗指標:(1)采用高效的Step-Down DC-DC電源代替普通的線性穩(wěn)壓電源;(2)采用具有低電壓內(nèi)核的CPU單元;(3)對外部接口單元添加電源管理功能。這三種措施使EM9160L的功耗指標得到大幅度提高,具體功耗測試結(jié)果如下表所示:
測試條件 |
平均功耗 |
峰值功耗 |
待機功耗 |
EM9160 |
235mA / 5V |
320mA / 5V |
|
EM9160L |
120mA / 5V |
160mA / 5V |
50mA / 5V |
作為野外監(jiān)測應(yīng)用,一般并不需要設(shè)備每時每刻都處于運行狀態(tài),而是全速工作一段時間后,設(shè)備轉(zhuǎn)入空閑一段時間,然后再進入工作狀態(tài),即設(shè)備實際處于“工作-空閑”的周期模式中。在實際應(yīng)用中,設(shè)備空閑的時間通常遠長于設(shè)備工作的時間,如每分鐘工作10秒、空閑50秒。正因為如此,才要求設(shè)備在空閑狀態(tài)的功耗盡可能低,以延長電池的使用壽命,降低設(shè)備的維護費用。
盡管WinCE操作系統(tǒng)對設(shè)備驅(qū)動提供了一套電源管理的機制,但這套機制的應(yīng)用主要是基于帶有標準Windows圖形界面的環(huán)境,而EM9160L則是不帶Windows圖形接口的系統(tǒng),因此CE的這套機制還不能非常方便地滿足EM9160L在實際應(yīng)用的需求。針對實際應(yīng)用的特點,我們?yōu)?EM9160L應(yīng)用程序?qū)iT提供了兩個系統(tǒng)功能調(diào)用:
//
// 設(shè)置用戶空閑標志:進入空閑待機狀態(tài)
//
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;
}
//
// 清用戶空閑標志:退出空閑待機狀態(tài)
//
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;
}
應(yīng)用程序可通過調(diào)用上述兩個API實現(xiàn)進入或退出用戶空閑狀態(tài),進入空閑狀態(tài)后,用戶程序可設(shè)定一定數(shù)量的Sleep(1000)循環(huán),來確定系統(tǒng)處于空閑狀態(tài)的時間。注意在空閑狀態(tài)中,EM9160L的以太網(wǎng)接口被關(guān)閉。典型的進入空閑狀態(tài)的應(yīng)用程序流程如下:
BOOL dEventFlag = FALSE; // 外部中斷事件標志
…。
// 關(guān)閉在空閑狀態(tài)中不再使用的通訊接口,如串口等
…。
// 進入空閑狀態(tài)
SetUserIdleFlag();
// 設(shè)置正常空閑狀態(tài)50秒,每秒進行一次異常檢查
for (i1 = 0; i1 《 50; i1++)
{
Sleep(1000); // 也可用WaitForSingleObject阻塞等待外部事件
if(dEventFlag)
break;
}
// 退出空閑狀態(tài)
ClearUserIdleFlag();
// 打開應(yīng)用所需的通訊接口,如串口等
…。
上述流程還支持空閑狀態(tài)的中途退出,這是因為系統(tǒng)在空閑狀態(tài)下仍然可以正常響應(yīng)外部硬件中斷。一種典型的空閑狀態(tài)中途退出應(yīng)用是保持EM9160L的IRQ1中斷線程,把GPRS模塊的振鈴信號RI#作為IRQ1中斷輸入信號。這樣應(yīng)用控制中心可在任意時間,通過撥號來喚醒基于EM9160L的野外設(shè)備,使其立即進入工作狀態(tài)。
由于以太網(wǎng)接口單元通常都是嵌入式系統(tǒng)功耗最大的單元之一,因此在EM9160L的空閑狀態(tài)中,其以太網(wǎng)接口單元被強制關(guān)閉。所以EM9160L不支持應(yīng)用程序通過以太網(wǎng)中途退出空閑狀態(tài)。當系統(tǒng)中空閑狀態(tài)退出后,以太網(wǎng)需要4–6秒才能恢復(fù)支持工作狀態(tài),這包括了網(wǎng)絡(luò)協(xié)商時間。
在進入空閑狀態(tài)前關(guān)閉不需要的通訊端口,應(yīng)不僅僅理解為關(guān)閉通訊端口,實際上任何耗電的單元,應(yīng)用程序都應(yīng)當把它們設(shè)置在省電的狀態(tài)。如正常運行時常亮的LED,應(yīng)設(shè)置成關(guān)閉或閃爍狀態(tài)。
注意:50mA的空閑電流,是在EM9160L不帶任何負載的情況下,進入空閑狀態(tài)后測試的。
-
WINDOWS
+關(guān)注
關(guān)注
4文章
3608瀏覽量
91023 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6097瀏覽量
36169
發(fā)布評論請先 登錄
英創(chuàng)信息技術(shù)嵌入式工控主板EM9160的PWM功能使用方法
英創(chuàng)信息技術(shù)嵌入式主板EM9160精簡ISA總線硬件中斷的使用方法

英創(chuàng)信息技術(shù)工控主板EM9360的GPIO介紹
英創(chuàng)信息技術(shù)工控主板的復(fù)位管理介紹

英創(chuàng)信息技術(shù)EM9000工控主板的版本信息管理概述

英創(chuàng)信息技術(shù)工控主板EM9160對紅外通訊用途介紹

英創(chuàng)信息技術(shù)工業(yè)主板EM9160介紹
英創(chuàng)信息技術(shù)工控主板EM9160介紹

英創(chuàng)信息技術(shù)主板EM9160硬件介紹
英創(chuàng)信息技術(shù)工控主板網(wǎng)絡(luò)變壓器連接方法介紹

英創(chuàng)信息技術(shù)WinCE工控主板開發(fā)工具綜述
英創(chuàng)信息技術(shù)主板EM9160測頻功能的使用介紹
英創(chuàng)信息技術(shù)主板EM9280的主要技術(shù)指標簡介
英創(chuàng)信息技術(shù)EM9380工控主板實時控制應(yīng)用介紹
英創(chuàng)信息技術(shù)工控主板EM335x主要技術(shù)指標介紹

評論