智能手機(jī)和平板電腦等手持設(shè)備有觸摸屏和很多功能按鍵,為了節(jié)省電能,如果用戶在一定時間內(nèi)沒有操作觸屏或按鍵,不管是否在運(yùn)動,顯示屏就會自動關(guān)閉;如用戶想要再使用設(shè)備,就必須按按鍵打開屏幕。 一個數(shù)字MEMS加速度計通常有一個到兩個中斷輸出引腳,可以連接外部微處理器的I/O引腳。加速度計可配置成后臺監(jiān)視加速度或運(yùn)動,同時微處理器可以處理其它任務(wù)或進(jìn)入低功耗的睡眠模式。當(dāng)加速度計檢測到一個中斷信號時,微處理器將會從睡眠模式喚醒,檢查是否需要處理這個中斷請求。 本文論述使用加速度計的一個中斷引腳執(zhí)行喚醒和非運(yùn)動檢測并自動打開和關(guān)閉屏幕的方法。微處理器只需監(jiān)測加速計中斷輸出引腳脈沖沿跳變,而無需讀取中斷信號源的寄存器。本文還附有加速度計配置代碼示例。 1. 前言 MEMS加速度計可輸出不同類型的中斷信號,例如,數(shù)據(jù)就緒、自由落體、豎屏/橫屏旋轉(zhuǎn)、單擊-雙擊、沖擊力檢測等[1]。某些加速度計還內(nèi)置喚醒和無運(yùn)動檢測功能,能夠根據(jù)運(yùn)動強(qiáng)度,在低功耗的低輸出速率(ODR)和正常模式的高數(shù)據(jù)速率之間自動轉(zhuǎn)換,但是,這項功能只節(jié)省加速度計本身的功耗。 某些微處理器有兩個或更多個GPIO引腳,用戶可使用加速度計的兩個中斷輸出引腳實現(xiàn)喚醒和運(yùn)動檢測兩項功能。不過,在某些情況下,微處理器只有一個GPIO引腳用作中斷處理,而用戶想還用一個中斷引腳實現(xiàn)兩項功能。 下面我們論述如何在一個中斷輸出引腳上使用高通濾波器(HPF)和自動落體AND邏輯來檢測喚醒運(yùn)動和無運(yùn)動條件,微處理器無需參與檢測過程。當(dāng)微處理器收到加速度計中斷信號的上升沿,表示手持設(shè)備處于非運(yùn)動狀態(tài),收到下降沿時,表示設(shè)備處于運(yùn)動狀態(tài)。 2. 硬件連接 圖1是加速度計與主處理器或微控制器的典型硬件連接圖。在初始化過程中通過I2C或SPI上電時,主處理器只需配置一次加速度計。然后,加速度計就會在后臺連續(xù)監(jiān)測運(yùn)動事件,功耗非常低。 加速度計的INT1引腳是推挽輸出,默認(rèn)高電平有效。用戶可根據(jù)自己的實際應(yīng)用將其改為開漏輸出或低電平有效。當(dāng)高電平有效時,INT1引腳的最低電壓是0.9 * Vdd_IO,而低電平有效時,最高電壓是0.1 * Vdd_IO。加速度計Vdd_IO能夠與主處理器的數(shù)字IO電壓Vcc_IO靈活匹配。如果主處理器只有一個電源,可將加速度計的Vdd和Vdd_IO連在一起,直接連到電源。 圖1:主處理器與加速度計之間的硬件連接 如果手持設(shè)備在靜止?fàn)顟B(tài)超過規(guī)定時間,加速度計將會通過INT1引腳發(fā)出從低電平向高電平跳變的上升沿中斷信號,主處理器將會關(guān)閉其它元器件,進(jìn)入睡眠省電模式。 只要檢測到運(yùn)動事件,加速度計就會發(fā)送一個從高電平向低電平跳變的下降沿的中斷信號。然后,主處理器被喚醒,并打開其它元器件,使設(shè)備正常工作。 如果手持設(shè)備在正常工作模式下保持運(yùn)動狀態(tài),加速度計INT1引腳上的中斷信號保持低電平。如果手持設(shè)備在任何傾斜位置始終保持靜止?fàn)顟B(tài),則加速度計中斷信號始終保持高電平。因此,主處理器能夠定期讀取加速度計INT1引腳的電平,再次檢查手持設(shè)備處于靜止?fàn)顟B(tài)還是運(yùn)動狀態(tài)。 3. 代碼示例 意法半導(dǎo)體開發(fā)的LIS3DH數(shù)字加速度計代碼示例[2] // Initialize accelerometer in the host processor. It only needs to be executed one time after power up in initialization routine. INT1_CFG配置與自由落體事件檢測相同,不同之處是:(1) 自由落體中斷無需使能HPF;(2) 自由落體時長在毫秒范圍內(nèi)。5秒相當(dāng)于自由落體距離122.5米,手持設(shè)備很少出現(xiàn)這種情況。 上述代碼示例如圖2所示。 圖2:加速度計INT1邏輯 ● 當(dāng)手持設(shè)備在任何傾斜位置保持靜止?fàn)顟B(tài)超過5秒時,加速度計INT1引腳從低電平跳變高電平,因為高通濾波器使能后,X/Y/Z軸加速度同時在±125mg THS內(nèi)。 ● 手持設(shè)備的自由落體事件不會觸發(fā)INT1引腳從低電平跳變高電平,因為X/Y/Z軸加速度同時在±125mg THS內(nèi)的時間少于5秒。 ● 如果因為運(yùn)動的原因,X、Y和Z中任何一軸的加速度超過±125mg,且設(shè)備繼續(xù)保持運(yùn)動狀態(tài),INT1引腳就會從高電平跳變低電平。 ● 如果設(shè)備進(jìn)入靜止?fàn)顟B(tài)還不到5秒再次進(jìn)入運(yùn)動狀態(tài),則INT1引腳繼續(xù)保持低電平,如果設(shè)備再次靜止,5秒時長將開始從50LSB倒計時,到0LSB終止,輸出數(shù)據(jù)速率為10Hz。 4. 結(jié)論 內(nèi)置HPF和自由落體檢測功能的加速度計能夠從一個中斷引腳為微處理器提供可靠的喚醒和無運(yùn)動檢測中斷信號。加速度計后臺工作,無需微處理器參與。用戶可按照自己的應(yīng)用設(shè)計靈活配置加速度計的門限值和時長參數(shù)。在功耗方面,該解決方案的能效高于使用觸摸屏、按鍵和微處理器定時器開閉屏幕的方法。 5. 參考文獻(xiàn) 1. STMicroelectronics, Inc. J. Esfandyari et al, “Applying the interrupt features of a MEMS accelerometer”, EETimes, December, 2011 2. STMicroelectronics, Inc. AN3308: LIS3DH: MEMS digital output motion sensor ultra low-power high performance 3-axis “nano” accelerometer (http://www.st.com/st-web-ui/static/active/en/resource/technical/document/application_note/CD00290365.pdf?s_searchtype=keyword) |