EM9160L是一款與英創主力產品EM9160功能完全兼容,同時具有低功耗操作能力的高性能ARM9嵌入式主板產品。EM9160L主要應用是作為以電池供電、無人值守的野外工作環境為特色的設備主控單元。作為通常的通訊控制功能,EM9160L與EM9160的使用是完全一樣的,客戶針對EM9160開發的應用程序可不加修改的應用于EM9160L上。本文主要介紹EM9160L低功耗功能方面的相關應用。
相對EM9160,EM9160L采用了三個方面的措施來改進其功耗指標:(1)采用高效的Step-Down DC-DC電源代替普通的線性穩壓電源;(2)采用具有低電壓內核的CPU單元;(3)對外部接口單元添加電源管理功能。這三種措施使EM9160L的功耗指標得到大幅度提高,具體功耗測試結果如下表所示:
測試條件 |
平均功耗 |
峰值功耗 |
待機功耗 |
EM9160 |
235mA / 5V |
320mA / 5V |
|
EM9160L |
120mA / 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的空閑狀態中,其以太網接口單元被強制關閉。所以EM9160L不支持應用程序通過以太網中途退出空閑狀態。當系統中空閑狀態退出后,以太網需要4–6秒才能恢復支持工作狀態,這包括了網絡協商時間。
在進入空閑狀態前關閉不需要的通訊端口,應不僅僅理解為關閉通訊端口,實際上任何耗電的單元,應用程序都應當把它們設置在省電的狀態。如正常運行時常亮的LED,應設置成關閉或閃爍狀態。
注意:50mA的空閑電流,是在EM9160L不帶任何負載的情況下,進入空閑狀態后測試的。
-
WINDOWS
+關注
關注
3文章
3545瀏覽量
88698 -
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35337
發布評論請先 登錄
相關推薦
評論