欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

裝置的運(yùn)動(dòng)傳感器和接口應(yīng)用程序的制作方法

文檔序號(hào):6592619閱讀:203來源:國(guó)知局
專利名稱:裝置的運(yùn)動(dòng)傳感器和接口應(yīng)用程序的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及運(yùn)動(dòng)傳感裝置,并更特別地涉及裝置的運(yùn)動(dòng)傳感器的接口應(yīng)用程序。
背景技術(shù)
運(yùn)動(dòng)傳感器如加速計(jì)或陀螺儀經(jīng)常用在電子裝置中。加速計(jì)可以用于測(cè)量線性加 速度,并且陀螺儀可以用于測(cè)量角速度。運(yùn)動(dòng)傳感器的市場(chǎng)包括移動(dòng)電話、視頻游戲控制 器、PDA、移動(dòng)互聯(lián)網(wǎng)裝置(MID)、個(gè)人導(dǎo)航裝置(PND)、數(shù)碼照相機(jī)、數(shù)碼攝像機(jī)及更多。例 如,蜂窩電話可使用加速計(jì)以在空間檢測(cè)裝置的傾斜,其允許在對(duì)應(yīng)于傾斜的方位上顯示 視頻圖片。視頻游戲控制臺(tái)控制器可使用加速計(jì)和/或陀螺儀以檢測(cè)用于為游戲提供輸入 的人工控制器的運(yùn)動(dòng)。即使在低檔或中檔的照相機(jī)中,圖片和視頻的穩(wěn)定性也是重要的特 征,其中鏡頭或圖像傳感器被移動(dòng)以補(bǔ)償由陀螺儀測(cè)量的手抖。全球定位系統(tǒng)(GPS)和基 于位置的服務(wù)(LBS)應(yīng)用依賴于確定裝置的正確位置,并且當(dāng)GPS信號(hào)被削弱或難以獲得 時(shí),或者為了提高GPS位置查找的正確度,經(jīng)常需要運(yùn)動(dòng)傳感器。大部分現(xiàn)有的電子裝置趨向于僅使用非?;镜倪\(yùn)動(dòng)傳感器,如帶有“峰值檢測(cè)” 或穩(wěn)態(tài)測(cè)量的加速計(jì)。例如,當(dāng)前移動(dòng)電話使用加速計(jì)以確定裝置的傾斜,其可以使用穩(wěn)態(tài) 重力測(cè)量被確定。這種簡(jiǎn)單的確定不可以用在使用例如陀螺儀的更加復(fù)雜的應(yīng)用或具有精 確定時(shí)要求的其他應(yīng)用中。沒有在裝置中包括陀螺儀,裝置的傾斜和加速度不能被可靠地 傳感。這在無陀螺儀導(dǎo)航裝置中經(jīng)常引錯(cuò)方向;例如,當(dāng)汽車在傾斜的交通燈處停止時(shí),“無 陀螺儀”推算定位(dead reckoning)特征可以判斷錯(cuò)誤汽車的位置達(dá)幾個(gè)街區(qū)。并且因?yàn)?裝置的運(yùn)動(dòng)不總是線性或平行于地面的,所以為了較大的正確度,需要使用加速計(jì)或陀螺 儀來測(cè)量運(yùn)動(dòng)的幾個(gè)不同的坐標(biāo)軸。更加復(fù)雜的運(yùn)動(dòng)傳感器一般不用在電子裝置中。例如,對(duì)于帶有GPS或較高分辨 率照相機(jī)的移動(dòng)電話,圖像穩(wěn)定性和推算定位特征兩者都是重要特征,但是在當(dāng)前移動(dòng)電 話市場(chǎng)上沒有可用的解決方案。在特定應(yīng)用中,對(duì)于更加復(fù)雜的運(yùn)動(dòng)傳感器已經(jīng)做出一些 嘗試,如檢測(cè)帶有確定動(dòng)作的運(yùn)動(dòng)。但是這些努力中的大部分失敗了或作為產(chǎn)品不足夠健 全。這是因?yàn)闉榱说玫竭\(yùn)動(dòng)的運(yùn)動(dòng)傳感器的使用是復(fù)雜的。例如,當(dāng)使用陀螺儀時(shí),識(shí)別裝 置的傾斜或者移動(dòng)并非不重要。為了圖像穩(wěn)定性、傳感位置、或其他復(fù)雜的應(yīng)用而使用運(yùn)動(dòng) 傳感器需要對(duì)運(yùn)動(dòng)傳感器的深入理解,其使得運(yùn)動(dòng)傳感設(shè)計(jì)非常困難。運(yùn)動(dòng)傳感設(shè)計(jì)的難點(diǎn)還導(dǎo)致在將設(shè)計(jì)從一個(gè)系統(tǒng)移植到另一系統(tǒng)中的難點(diǎn)。來自
5運(yùn)動(dòng)傳感器的大部分原始數(shù)據(jù)在運(yùn)行在裝置上的應(yīng)用軟件級(jí)別被聚集和處理,其不允許其 他應(yīng)用利用相同的傳感器輸出。此外,運(yùn)動(dòng)傳感設(shè)計(jì)是依賴且用于一個(gè)具體應(yīng)用的一般真 實(shí)系統(tǒng),這阻止它被移植到其它系統(tǒng)。例如,圖像穩(wěn)定性軟件一般非常依賴于在其中使用它 的數(shù)碼照相機(jī)的特定硬件,如可用的圖片分辨率和縮放范圍。因此,在許多應(yīng)用中將期望一種系統(tǒng)和方法,其提供簡(jiǎn)單的應(yīng)用接口(API)以可 用于不同應(yīng)用,允許運(yùn)動(dòng)傳感器數(shù)據(jù)收集更加容易地由用戶定義和使用,以及允許對(duì)于不 同硬件要求的運(yùn)動(dòng)傳感設(shè)計(jì)的更加容易地移植和維護(hù)。

發(fā)明內(nèi)容
本申請(qǐng)的發(fā)明涉及將應(yīng)用程序接口到裝置的運(yùn)動(dòng)傳感器。在發(fā)明的一方面,向在 運(yùn)動(dòng)傳感裝置上設(shè)置的一個(gè)或多個(gè)應(yīng)用提供接口包括從在所述運(yùn)動(dòng)傳感裝置上運(yùn)行的應(yīng) 用程序接收高級(jí)命令,其中所述應(yīng)用程序?qū)崿F(xiàn)可在所述運(yùn)動(dòng)傳感裝置上使用的多種不同類 型的應(yīng)用之一。所述高級(jí)命令請(qǐng)求來源于所述運(yùn)動(dòng)傳感裝置的運(yùn)動(dòng)傳感器的輸出的高級(jí)信 息,所述運(yùn)動(dòng)傳感裝置包括旋轉(zhuǎn)運(yùn)動(dòng)傳感器和線性運(yùn)動(dòng)傳感器。轉(zhuǎn)變所述高級(jí)命令以引起 由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù)的低級(jí)處理,所述低級(jí)處理遵循應(yīng)用的類型的要 求并響應(yīng)于接收所述高級(jí)命令而智能地確定所述高級(jí)信息。所述應(yīng)用程序不知道所述低級(jí) 處理,并將所述高級(jí)信息提供給所述應(yīng)用程序。在發(fā)明的另一方面,將來自運(yùn)動(dòng)傳感器的運(yùn)動(dòng)傳感器數(shù)據(jù)提供給在運(yùn)動(dòng)傳感裝置 上運(yùn)行的應(yīng)用程序的方法包括,以第一采樣率采樣由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù) 據(jù),其中所述運(yùn)動(dòng)傳感器包括旋轉(zhuǎn)運(yùn)動(dòng)傳感器和線性運(yùn)動(dòng)傳感器。所述運(yùn)動(dòng)傳感器數(shù)據(jù)被 存儲(chǔ)在緩沖器中,以及以由所述應(yīng)用程序?qū)崿F(xiàn)的應(yīng)用所需要的第二采樣率,取回用于所述 應(yīng)用程序的至少一部分緩沖的運(yùn)動(dòng)傳感器數(shù)據(jù),所述第二采樣率比所述第一采樣率低。在發(fā)明的另一方面,處理來自在運(yùn)動(dòng)傳感器裝置上的運(yùn)動(dòng)傳感器的運(yùn)動(dòng)傳感器數(shù) 據(jù)的方法包括,以第一采樣率采樣由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù),以使所述運(yùn) 動(dòng)傳感器數(shù)據(jù)用于將信息提供給在所述運(yùn)動(dòng)傳感器裝置上實(shí)現(xiàn)第一應(yīng)用的第一應(yīng)用程序。 所述運(yùn)動(dòng)傳感器包括旋轉(zhuǎn)運(yùn)動(dòng)傳感器和線性運(yùn)動(dòng)傳感器。將所述運(yùn)動(dòng)傳感器數(shù)據(jù)低通濾波 到比所述第一采樣率低的第二采樣率,其中被濾波的運(yùn)動(dòng)傳感器數(shù)據(jù)用于將信息提供給在 所述運(yùn)動(dòng)傳感器裝置上實(shí)現(xiàn)不同于所述第一應(yīng)用的第二應(yīng)用的第二應(yīng)用程序。所述第一和 第二應(yīng)用程序同時(shí)在所述運(yùn)動(dòng)傳感器裝置上運(yùn)行,以及所述第一應(yīng)用需要運(yùn)動(dòng)傳感器數(shù)據(jù) 以比所述第二采樣率大的采樣率被采樣。本發(fā)明的方面提供可用于在運(yùn)動(dòng)傳感裝置上運(yùn)行的應(yīng)用的應(yīng)用程序接口。接口允 許在具有運(yùn)動(dòng)傳感器的裝置中使用復(fù)雜的運(yùn)動(dòng)傳感器數(shù)據(jù)容易地開發(fā)應(yīng)用程序,允許應(yīng)用 程序移植到具有不同硬件和操作系統(tǒng)的不同運(yùn)動(dòng)傳感裝置或從具有不同硬件和操作系統(tǒng) 的不同運(yùn)動(dòng)傳感裝置移植,以及提供系統(tǒng)的較容易的維護(hù)。發(fā)明的其他方面放寬采樣率要 求并將應(yīng)用程序的處理減少到與傳感器數(shù)據(jù)有關(guān)的采樣信息,以及允許具有不同傳感器數(shù) 據(jù)采樣要求的應(yīng)用程序同時(shí)在運(yùn)動(dòng)傳感裝置上運(yùn)行。附圖簡(jiǎn)述

圖1是適合用于本發(fā)明的運(yùn)動(dòng)傳感裝置的方塊圖;圖2是適合用于本發(fā)明的運(yùn)動(dòng)處理單元的一種實(shí)施方式的方塊6
圖3是說明本發(fā)明的軟件層次的例子的方塊圖;圖4是說明在應(yīng)用處理器上運(yùn)行的圖3的軟件層的例子的方塊圖;圖5是說明訪問在運(yùn)動(dòng)傳感裝置上實(shí)現(xiàn)的API的應(yīng)用程序的本發(fā)明的方法的流程 圖;圖6是說明與在運(yùn)動(dòng)傳感裝置上實(shí)現(xiàn)的其他軟件層接口的API的本發(fā)明的方法的 流程圖;圖7是說明用于同時(shí)處理在移動(dòng)傳感器裝置上并發(fā)運(yùn)行的不同應(yīng)用的數(shù)據(jù)的本 發(fā)明的方法的流程圖;圖8A-8D是說明用于提供緩沖以減少應(yīng)用處理器在接收運(yùn)動(dòng)傳感器輸出中的處 理的本發(fā)明的方法的流程圖。詳細(xì)描述本發(fā)明通常涉及運(yùn)動(dòng)傳感裝置,并更特別地涉及裝置的運(yùn)動(dòng)傳感器的接口應(yīng)用程 序。提出以下描述以使本領(lǐng)域普通技術(shù)人員能夠進(jìn)行并使用本發(fā)明,并且在專利申請(qǐng)和它 的要求的背景下提供以下描述。對(duì)優(yōu)選的實(shí)施方式和在此描述的一般原則和特征的多種修 改對(duì)于那些本領(lǐng)域技術(shù)人員將容易是明顯的。從而,本發(fā)明不是用來被限制到所示的實(shí)施 方式,而是要符合與在此描述的原則和特征一致的最寬范圍。為了更加詳細(xì)地描述本發(fā)明的特征,請(qǐng)參考附圖1-8D連同下面的討論。圖1是適合用于本發(fā)明的運(yùn)動(dòng)傳感系統(tǒng)或裝置10的方塊圖。裝置10可以作為裝 置或設(shè)備被提供,如可以由用戶在空間移動(dòng)并且它在空間的運(yùn)動(dòng)和/或方位因此被感測(cè)的 便攜式裝置。這種便攜式裝置可以是移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、視頻游戲機(jī)、視頻游戲 控制器、導(dǎo)航裝置、移動(dòng)互聯(lián)網(wǎng)裝置(MID)、個(gè)人導(dǎo)航裝置(PND)、數(shù)碼照相機(jī)、數(shù)碼攝像機(jī)、 雙目望遠(yuǎn)鏡、望遠(yuǎn)鏡頭、或其他便攜式裝置,或者這些裝置中的一個(gè)或多個(gè)的結(jié)合。在其他 實(shí)施方式中,裝置10的一些部分可以在便攜式或可移動(dòng)裝置中被提供,而其他部分可以在 非便攜式裝置如臺(tái)式計(jì)算機(jī)、電子桌面裝置、服務(wù)器計(jì)算機(jī)等中被提供,非便攜式裝置可以 例如通過網(wǎng)絡(luò)連接與可移動(dòng)或便攜式部分通信。裝置10包括應(yīng)用處理器12、存儲(chǔ)器14、接口裝置16、運(yùn)動(dòng)處理單元20、模擬傳感 器22、以及數(shù)字傳感器24。應(yīng)用處理器12可以是微處理器、中央處理單元(CPU)、或運(yùn)行用 于裝置10的不同軟件程序的其他處理器中的一個(gè)或多個(gè)。例如,可以提供不同軟件應(yīng)用程 序如菜單導(dǎo)航軟件、游戲、照相機(jī)功能控制、導(dǎo)航軟件、以及電話或其他功能接口。在一些實(shí) 施方式中,多種不同的應(yīng)用可以在單個(gè)裝置10上被提供,并且在那些實(shí)施方式的一些中, 多種應(yīng)用可以在裝置10上同時(shí)運(yùn)行。在應(yīng)用處理器上運(yùn)行的軟件的例子關(guān)于圖3和4在 下面被更加詳細(xì)地描述。裝置10還包括輔助應(yīng)用處理器12的組件,如存儲(chǔ)器14 (RAM、ROM、閃存等)和接 口裝置16。接口裝置16可以是將輸入和/或輸出提供給用戶的各種不同的裝置中的任一 種,如顯示屏、音頻揚(yáng)聲器、按鈕、觸摸屏、操縱桿、滑動(dòng)器(slider)、打印機(jī)、掃描儀、照相機(jī) 等。存儲(chǔ)器14和接口裝置16可以通過總線18被耦合到應(yīng)用處理器12。裝置10還可以包括運(yùn)動(dòng)處理單元(MPU ) 20。MPU是包括可以測(cè)量裝置10 (或它 的一部分)在空間中的運(yùn)動(dòng)的運(yùn)動(dòng)傳感器的裝置。例如,MPU可以測(cè)量裝置的一個(gè)或多個(gè) 旋轉(zhuǎn)坐標(biāo)軸和一個(gè)或多個(gè)加速度坐標(biāo)軸。在一些實(shí)施方式中,執(zhí)行這些功能的組件被集成在單個(gè)封裝中。MPU20可以將運(yùn)動(dòng)傳感器數(shù)據(jù)傳遞到接口總線21,應(yīng)用處理器12也連接到 該接口總線21。在一種實(shí)施方式中,處理器12是總線21的控制器或母版。例如,在一些實(shí) 施方式中接口總線21可以是根據(jù)像I2C或串行外圍接口(SPI)總線這樣的標(biāo)準(zhǔn)實(shí)現(xiàn)的數(shù) 字串行接口總線。一些實(shí)施方式可以提供總線18作為與接口總線21相同的總線。MPU 20包括運(yùn)動(dòng)傳感器,其包括一個(gè)或多個(gè)旋轉(zhuǎn)運(yùn)動(dòng)傳感器26和一個(gè)或多個(gè)線 性運(yùn)動(dòng)傳感器28。例如,在一些實(shí)施方式中,旋轉(zhuǎn)運(yùn)動(dòng)傳感器是陀螺儀,以及線性運(yùn)動(dòng)傳感 器是加速計(jì)。陀螺儀26可以測(cè)量包含陀螺儀26的裝置10 (或它的一部分)的角速度。一 般可以提供從一個(gè)到三個(gè)陀螺儀,其取決于在特定實(shí)施方式中期望被感測(cè)的運(yùn)動(dòng)。加速計(jì) 28可以測(cè)量包含加速計(jì)28的裝置10 (或它的一部分)的線性加速度。一般可以提供從一 個(gè)到三個(gè)加速計(jì),其取決于在特定實(shí)施方式中期望被感測(cè)的運(yùn)動(dòng)。例如,如果使用三個(gè)陀螺 儀26和三個(gè)加速計(jì)28,那么提供6-坐標(biāo)軸感測(cè)裝置,用于提供全部六個(gè)自由度的感測(cè)。在一些實(shí)施方式中,陀螺儀26和/或加速計(jì)28可以作為微機(jī)電系統(tǒng)(MEMS)來實(shí) 現(xiàn)。還可以提供支持硬件,如對(duì)于來自運(yùn)動(dòng)傳感器26和28的數(shù)據(jù)的存儲(chǔ)寄存器。在一些實(shí)施方式中,MPU 20還可以包括硬件處理塊30。硬件處理塊30可以包括 邏輯或控制器以提供以硬件方式的運(yùn)動(dòng)傳感器數(shù)據(jù)的處理。例如,在一些實(shí)施方式中,運(yùn)動(dòng) 算法或算法的部分可由塊30來實(shí)現(xiàn)。一些實(shí)施方式可以包括在塊30中的硬件緩沖器,以 存儲(chǔ)從運(yùn)動(dòng)傳感器26和28接收的傳感器數(shù)據(jù)。例如,在此處描述的一些實(shí)施方式中,硬件 緩沖器存儲(chǔ)由運(yùn)動(dòng)算法采樣的傳感器數(shù)據(jù),如在下面關(guān)于圖8A-8D更加詳細(xì)地描述的。參考圖2,下面描述了 MPU 20的一個(gè)例子。適合用于本發(fā)明的MPU的其他例子 在 2007 年 7 月 6 日提交的題目為 “Integrated Motion Processing Unit(MPU)With MEMS Inertial Sensing And Embedded Digital Electronics (帶有 MEMS 慣性傳感和嵌入式數(shù) 字電子裝置的集成運(yùn)動(dòng)處理單元(MPU)) ”的第11/774,488號(hào)共同未決的美國(guó)專利申請(qǐng)中 被描述,并在此全文并入作為參考。從Invensense,Inc. of Santa Clara,CA可得到用于裝 置10中的MPU 20的適當(dāng)?shù)膶?shí)現(xiàn)。裝置10還可以包括其他類型的傳感器。模擬傳感器22和數(shù)字傳感器24可以用 于提供關(guān)于裝置10所處于的環(huán)境附加的傳感器數(shù)據(jù)。例如,可以提供傳感器如氣壓計(jì)、羅 盤(compass)、溫度傳感器、光傳感器(如照相機(jī)傳感器、紅外傳感器等)、超聲波傳感器、射 頻傳感器、或其他類型傳感器。在所示的代表性實(shí)現(xiàn)中,數(shù)字傳感器24可以提供直接到接 口總線21的傳感器數(shù)據(jù),而模擬傳感器可以提供到模數(shù)轉(zhuǎn)換器(ADC) 34的傳感器數(shù)據(jù),其 中ADC 34將數(shù)字形式的傳感器數(shù)據(jù)提供給接口總線21。在圖1的例子中,ADC 34在MPU 20中被提供,以便使ADC 34可以提供轉(zhuǎn)換的數(shù)字?jǐn)?shù)據(jù)到MPU的硬件處理30或到總線21。 在其他實(shí)施方式中,ADC 34可以在裝置10的別處實(shí)現(xiàn)。圖2顯示適合用于在此描述的發(fā)明的運(yùn)動(dòng)處理單元20的實(shí)施方式的一個(gè)例子。 圖2的MPU 20包括算術(shù)邏輯單元(ALU) 36,其執(zhí)行對(duì)傳感器數(shù)據(jù)的處理。ALU36可以由存 儲(chǔ)在程序RAM(隨機(jī)存取存儲(chǔ)器)37中并從程序RAM37取回的一個(gè)或多個(gè)程序智能地控制。 ALU 36可以控制直接存儲(chǔ)器存取(DMA)塊38,其可以從運(yùn)動(dòng)傳感器如陀螺儀26和加速計(jì) 28、以及其他傳感器如溫度傳感器39,獨(dú)立地讀取ALU 36或其他處理單元的傳感器數(shù)據(jù)。 一些或全部傳感器可以在MPU 20上被提供或者是在MPU 20外部被提供;舉例來說,在圖2 中所示的加速計(jì)28在MPU 20外部。DMA 38還可以關(guān)于讀或?qū)懖僮鞯臓顟B(tài)而將中斷信號(hào)提
8供給ALU。DMA 38可以將從傳感器讀取的傳感器數(shù)據(jù)提供給數(shù)據(jù)RAM 40用于存儲(chǔ)。數(shù)據(jù) RAM 40將數(shù)據(jù)提供給ALU 36用于處理,以及ALU 36將包括所處理的數(shù)據(jù)的輸出提供給數(shù) 據(jù)RAM 40用于存儲(chǔ)??偩€21 (也在圖1中示出)可以被耦合到數(shù)據(jù)RAM 40和/或FIFO 緩沖器42的輸出,以便使應(yīng)用處理器12可以讀取由MPU 20讀取和/或處理的數(shù)據(jù)。FIFO(先入先出)緩沖器42可以用作為硬件緩沖器,用于存儲(chǔ)可由應(yīng)用處理器12 通過總線21訪問的傳感器數(shù)據(jù)。在下面的幾個(gè)實(shí)施方式中,描述了硬件緩沖器如緩沖器42 的使用。例如,多路復(fù)用器44可以用于選擇DMA 38將原始傳感器數(shù)據(jù)寫到FIFO緩沖器 42,或是數(shù)據(jù)RAM 40將所處理的數(shù)據(jù)寫到FIFO緩沖器42 (舉例來說,由ALU 36處理的數(shù) 據(jù))。如在圖2中所示的MPU 20從而可以支持處理運(yùn)動(dòng)傳感器數(shù)據(jù)的一個(gè)或多個(gè)實(shí)現(xiàn)。 例如,MPU 20可以充分地處理原始傳感器數(shù)據(jù),其中在程序RAM 37中的程序可以控制ALU 36智能地處理傳感器數(shù)據(jù)并將高級(jí)數(shù)據(jù)提供給應(yīng)用處理器12,并且應(yīng)用程序在其上運(yùn)行。 或者,原始傳感器數(shù)據(jù)可以使用ALU 36由MPU 20預(yù)處理或部分地處理,其中在將作為結(jié)果 的高級(jí)信息提供給應(yīng)用程序之前,所處理的數(shù)據(jù)然后可以由應(yīng)用處理器12取回,用于在應(yīng) 用處理器12上附加的低級(jí)處理。或者,原始傳感器數(shù)據(jù)僅僅可以由MPU 20緩沖,其中原始 傳感器數(shù)據(jù)由應(yīng)用處理器12取回,用于轉(zhuǎn)為應(yīng)用程序的高級(jí)數(shù)據(jù)的所需要的低級(jí)處理。在 一些實(shí)施方式中,在相同的裝置10上運(yùn)行的不同應(yīng)用或應(yīng)用程序可以使用最適合于應(yīng)用 或程序的這些處理方法中的不同的幾種。圖3是說明本發(fā)明的軟件層次50的例子的方塊圖,其可以在運(yùn)動(dòng)傳感裝置10的 應(yīng)用處理器12上實(shí)現(xiàn)/執(zhí)行??梢栽谟?jì)算機(jī)可讀介質(zhì)如電子存儲(chǔ)器或其他存儲(chǔ)介質(zhì)如硬 盤、光盤等上提供軟件的層。應(yīng)用軟件層52包括一般由一個(gè)或多個(gè)應(yīng)用開發(fā)人員提供的并在應(yīng)用處理器12上 運(yùn)行的一個(gè)或多個(gè)應(yīng)用程序。應(yīng)用程序在裝置10上實(shí)現(xiàn)特定應(yīng)用(或它的部分)(其還可 以被稱為“模式”),舉例來說,每個(gè)應(yīng)用由一個(gè)或多個(gè)應(yīng)用程序來實(shí)現(xiàn)。應(yīng)用程序可以提供 處理和輸入/輸出功能以及對(duì)其應(yīng)用特有的適當(dāng)?shù)挠脩艚涌诠δ埽缭谡障鄼C(jī)應(yīng)用中控制 照相機(jī)鏡頭和顯示圖像、在游戲應(yīng)用中實(shí)現(xiàn)游戲、在導(dǎo)航應(yīng)用中輸出裝置10的方向和當(dāng)前 位置等。應(yīng)用軟件層52與系統(tǒng)軟件54通信,其管理裝置的資源,包括在硬件和軟件組件之 間的通信。在嵌入式系統(tǒng)應(yīng)用中用于運(yùn)動(dòng)感測(cè)的軟件結(jié)構(gòu)可以在如圖3中所示的單獨(dú)的層 中被定義。從而,系統(tǒng)軟件54包括應(yīng)用程序接口(API)層56、實(shí)時(shí)操作系統(tǒng)(RTOS)層58、 運(yùn)動(dòng)算法層60、以及傳感器裝置驅(qū)動(dòng)器層62。適當(dāng)?shù)?,還可以包括附加層。API層56提供提取的且高級(jí)的功能集用于應(yīng)用程序使用,其使在應(yīng)用程序和裝置 10的較低級(jí)組件如運(yùn)動(dòng)傳感器之間的接口和通信大大簡(jiǎn)單化。通過提供與運(yùn)動(dòng)傳感器數(shù)據(jù) 有關(guān)的使用的不同低級(jí)功能或算法的“運(yùn)動(dòng)庫”,API層促進(jìn)到裝置10的運(yùn)動(dòng)感測(cè)引擎的接 口。在API層56內(nèi)的特定API可以被定義,以對(duì)應(yīng)于一個(gè)或多個(gè)運(yùn)動(dòng)算法,其中那些對(duì)應(yīng) 的算法可以通過應(yīng)用訪問該API而被使用?;趶难b置10的運(yùn)動(dòng)傳感器采樣的運(yùn)動(dòng)傳感器數(shù)據(jù),API層56可以提供預(yù)先確 定的、高級(jí)的、提取的命令以及關(guān)聯(lián)的控制參數(shù)或設(shè)置以由應(yīng)用程序使用來接收信息,包括 高級(jí)信息。API層56將高級(jí)命令從應(yīng)用程序轉(zhuǎn)變?yōu)閷?shí)現(xiàn)命令所需要的必要的運(yùn)動(dòng)算法,并
9且從而可以將對(duì)與特定應(yīng)用有關(guān)的信息的請(qǐng)求轉(zhuǎn)變?yōu)樵撎囟☉?yīng)用必要的處理。在裝置10 上運(yùn)行的每種類型的應(yīng)用需要基于該應(yīng)用類型的功能的基于運(yùn)動(dòng)的高級(jí)數(shù)據(jù)特定集合。例 如,用戶運(yùn)動(dòng)/光標(biāo)控制類型的應(yīng)用基于裝置10的運(yùn)動(dòng)可需要2-D或3-D坐標(biāo),而圖像穩(wěn) 定性類型的應(yīng)用基于裝置10的運(yùn)動(dòng)可需要模糊指示或有關(guān)信息。API訪問的運(yùn)動(dòng)算法知道 與運(yùn)動(dòng)傳感器數(shù)據(jù)的低級(jí)處理關(guān)聯(lián)的精確要求,以獲得由應(yīng)用程序命令的特定類型的高級(jí) 信息,其與關(guān)聯(lián)于高級(jí)命令的應(yīng)用有關(guān)。例如,運(yùn)動(dòng)算法在已接收到指示它將用于圖像穩(wěn)定 性應(yīng)用或功能的高級(jí)命令后,知道以較高的采樣率如500Hz采樣來自運(yùn)動(dòng)傳感器的運(yùn)動(dòng)傳 感器數(shù)據(jù),用于圖像穩(wěn)定性應(yīng)用。從而低級(jí)處理可以智能地確定被應(yīng)用程序所需要的高級(jí)信息,并將它提供給應(yīng)用 程序,而應(yīng)用程序可以不知道運(yùn)動(dòng)傳感器數(shù)據(jù)的任何所需的低級(jí)處理和在該處理中使用 的、被需要以用來獲得高級(jí)信息的處理和定時(shí)要求。例如,應(yīng)用程序開發(fā)人員僅需要用API 命令構(gòu)成調(diào)用,例如,以接收適合于開發(fā)人員的應(yīng)用的所處理的運(yùn)動(dòng)傳感器數(shù)據(jù),沒有必要 知道如何收集和處理原始傳感器數(shù)據(jù)。API層56可以被定義為盡可能獨(dú)立的操作系統(tǒng),以 使應(yīng)用軟件盡可能可移植。API層56可以提供多種特定類型的API,其對(duì)于可以在裝置10上實(shí)現(xiàn)和使用的一 種或多種類型的應(yīng)用是有用的。例如,特定的運(yùn)動(dòng)傳感類型的API可以被提供,其可由確定 的應(yīng)用如蜂窩電話或游戲應(yīng)用來使用。多種不同類型的應(yīng)用可以優(yōu)選地在裝置10上實(shí)現(xiàn), 并且提供對(duì)于這些應(yīng)用的多個(gè)不同的API。一些類型的應(yīng)用可不需要特定類型的API。例 如,導(dǎo)航應(yīng)用可不需要使用圖像穩(wěn)定性API。在一些實(shí)施方式中,API可以被分解為低級(jí)API (舉例來說,原始數(shù)據(jù)獲得、校準(zhǔn)數(shù) 據(jù)獲得、初始化傳感器、設(shè)置參數(shù)、執(zhí)行數(shù)學(xué)功能),中級(jí)API (舉例來說,獲得所處理的數(shù)據(jù) 如滾動(dòng)、傾斜、以及偏航、航向、位置、或模糊數(shù)量),以及高級(jí)API (舉例來說,在一行代碼中 運(yùn)行DRKalman濾波)。中級(jí)API可由希望由更加基本的算法組合塊構(gòu)造它們自己的應(yīng)用的 應(yīng)用開發(fā)人員使用。其他實(shí)施方式可以僅提供兩個(gè)API層級(jí)。在系統(tǒng)操作的期間,API軟件 有效地在后臺(tái)運(yùn)行,并且在層52中的應(yīng)用程序可以以幾種不同的計(jì)算機(jī)語言或格式中的 任一種被提供。從而,可以為允許其用于其他程序語言的API層56創(chuàng)建“組合(binding)”。RTOS層58可以作為裝置10的操作系統(tǒng)被提供,以實(shí)時(shí)控制和管理系統(tǒng)資源并啟 用應(yīng)用軟件52以及其他層如API層56、運(yùn)動(dòng)算法層60以及運(yùn)動(dòng)傳感器裝置驅(qū)動(dòng)器62的功 能。操作系統(tǒng)可以將應(yīng)用程序與裝置10的其他軟件和功能接口。RTOS層58可以是適于具 有實(shí)時(shí)操作的嵌入式系統(tǒng)的多種可用的操作系統(tǒng)中的任一種。RTOS層58可以與其他層中 的任一層通信,其包括使用由RTOS層58提供的功能的應(yīng)用軟件52。RTOS層58可以作為 裝置10的具體操作系統(tǒng)或作為適用于裝置10的更加普通的操作系統(tǒng)來實(shí)現(xiàn)。運(yùn)動(dòng)算法層60提供運(yùn)動(dòng)算法的“運(yùn)動(dòng)庫”,其向由運(yùn)動(dòng)傳感器和其他傳感器提供 的原始傳感器數(shù)據(jù)提供智能、低級(jí)處理。在層60中的這些算法可以獲得原始傳感器數(shù)據(jù)并 將數(shù)據(jù)結(jié)合和形成為高級(jí)信息、和/或具體應(yīng)用信息。例如,運(yùn)動(dòng)算法可以從幾個(gè)運(yùn)動(dòng)傳感器獲得運(yùn)動(dòng)傳感器數(shù)據(jù),并將數(shù)據(jù)處理和/ 或結(jié)合為對(duì)于特定應(yīng)用有用的高級(jí)信息,特定應(yīng)用如裝置的滾動(dòng)/傾斜/偏航,或用于在二 維屏幕上定位光標(biāo)的X和Y坐標(biāo)。算法一般具有精確的定時(shí)要求,用于采樣來自運(yùn)動(dòng)傳感 器的運(yùn)動(dòng)傳感器數(shù)據(jù)。例如,算法可以積累運(yùn)動(dòng)傳感器數(shù)據(jù)并合并數(shù)據(jù)點(diǎn),以獲得裝置10
10的運(yùn)動(dòng)角度或其他運(yùn)動(dòng)特征。另外,除運(yùn)動(dòng)傳感器數(shù)據(jù)之外,算法還可以使用來自一個(gè)或多 個(gè)其他傳感器的數(shù)據(jù)以確定高級(jí)信息,來自其他傳感器如來自壓力、溫度、和/或方向傳感 器。算法的輸出可以被上報(bào)到API層56或由API層56取回,API層56將高級(jí)信息提供給 應(yīng)用程序,并因此由運(yùn)動(dòng)算法執(zhí)行的處理不需要被任何應(yīng)用開發(fā)人員知道。開發(fā)人員僅需 要使用在API層56提供的API功能,以請(qǐng)求期望的基于運(yùn)動(dòng)傳感器數(shù)據(jù)的高級(jí)信息。運(yùn)動(dòng)算法可以與一個(gè)或多個(gè)特定應(yīng)用和/或API關(guān)聯(lián)。例如,“運(yùn)動(dòng)感測(cè)” API可 以使用手勢(shì)識(shí)別運(yùn)動(dòng)算法,其檢查傳感器數(shù)據(jù)序列并當(dāng)確定的“特征”如手勢(shì)被檢測(cè)時(shí)輸出 這樣的特征。在API層56中依次定義該手勢(shì)檢測(cè)為簡(jiǎn)單命令、應(yīng)用軟件的輸入或事件。運(yùn) 動(dòng)算法可以被設(shè)計(jì)為盡可能獨(dú)立的操作系統(tǒng),其減少在不同系統(tǒng)之間移植算法的阻礙。傳感器裝置驅(qū)動(dòng)器層62將軟件接口提供給裝置10的硬件傳感器。驅(qū)動(dòng)器層62 提供與裝置10的多種類型傳感器的接口,傳感器包括陀螺儀26、加速計(jì)28、以及如參考圖1 描述的其他傳感器22和24。例如,來自運(yùn)動(dòng)傳感器26和28的所感測(cè)的結(jié)果可以被硬件寫 入在MPU中的寄存器內(nèi),并且那些寄存器然后由裝置驅(qū)動(dòng)器層62訪問。驅(qū)動(dòng)器層62然后可 以將所訪問的傳感器數(shù)據(jù)提供給在運(yùn)動(dòng)算法層60中的一個(gè)或多個(gè)運(yùn)動(dòng)算法用于處理。在 一些實(shí)施方式中,裝置驅(qū)動(dòng)器層62與MPU的硬件處理30接口,其中硬件處理可已經(jīng)使用運(yùn) 動(dòng)算法處理一些傳感器數(shù)據(jù)。圖4是說明在應(yīng)用處理器12上運(yùn)行的圖3的軟件層的例子的方塊圖。應(yīng)用軟件 層52可以包括多個(gè)不同的應(yīng)用程序以實(shí)現(xiàn)多種不同類型的應(yīng)用。例如,移動(dòng)電話應(yīng)用可以 通過一個(gè)或多個(gè)應(yīng)用程序60來實(shí)現(xiàn),用于實(shí)現(xiàn)電話功能(呼叫其他電話、接收呼叫并將它 們提供給用戶等)以及菜單導(dǎo)航。一個(gè)或多個(gè)游戲應(yīng)用可以通過應(yīng)用程序62來實(shí)現(xiàn),其提 供不同的視頻游戲,如在裝置10的二維顯示屏上顯示圖形圖像并從裝置10的音頻揚(yáng)聲器 輸出聲音,以及基于通過按鈕、旋鈕、操縱桿、觸針、觸摸墊或觸摸屏、麥克風(fēng)、或其他輸入裝 置的用戶輸入改變輸出。健康應(yīng)用可以通過健康和計(jì)步器應(yīng)用程序64來實(shí)現(xiàn),用于控制和 顯示測(cè)量用戶的步行距離并測(cè)量其他身體特征的計(jì)步器。數(shù)碼照相機(jī)應(yīng)用可以通過應(yīng)用程 序66來實(shí)現(xiàn),用于控制數(shù)碼照相機(jī)或數(shù)碼攝像機(jī),包括圖像穩(wěn)定性、縮放和分辨率功能等。 導(dǎo)航應(yīng)用可以通過應(yīng)用程序68來實(shí)現(xiàn),用于個(gè)人導(dǎo)航裝置(PND)、步行推算定位(PDR)、或 其他導(dǎo)航功能,并可以包括應(yīng)用程序以控制這些裝置和輸出導(dǎo)航結(jié)果到用戶,如當(dāng)前位置。RTOS層58可以監(jiān)視包括API層56、運(yùn)動(dòng)算法層60以及傳感器裝置驅(qū)動(dòng)器層62 的其他軟件層。API層56可以包括不同類型的API,每個(gè)API表現(xiàn)為具體類型的高級(jí)信息, 其可用于可以由裝置10執(zhí)行的一個(gè)或多個(gè)應(yīng)用程序。在圖4的例子中,API層56包括運(yùn) 動(dòng)感測(cè)API 70、圖像穩(wěn)定API 72以及導(dǎo)航API 74。運(yùn)動(dòng)傳感API 70可以包括高級(jí)命令和功能,用于請(qǐng)求描述裝置10的運(yùn)動(dòng)(或它 的一部分)或描述由裝置的運(yùn)動(dòng)確定的特征的高級(jí)信息。這種高級(jí)功能可以包括手勢(shì)識(shí) 別,其識(shí)別由用戶輸入的特定運(yùn)動(dòng)以調(diào)用特定的命令。例如,手勢(shì)可以包括在特定的方向/ 方位或在方向/方位的序列中、和/或在指定的持續(xù)時(shí)間段移動(dòng)裝置10,以啟動(dòng)與該手勢(shì)關(guān) 聯(lián)的功能,如“刪除”、“隨動(dòng)拍攝”、“縮放”等。API 70可以允許應(yīng)用程序開發(fā)人員簡(jiǎn)單地請(qǐng) 求特定的預(yù)先確定的手勢(shì)中的任一個(gè)是否已經(jīng)被檢測(cè),開發(fā)人員沒有必要知道如何使用原 始運(yùn)動(dòng)傳感器數(shù)據(jù)檢查那些手勢(shì)或如何使用適當(dāng)?shù)乃惴ㄌ幚碓搨鞲衅鲾?shù)據(jù)。其他運(yùn)動(dòng)傳感 器應(yīng)用包括請(qǐng)求有關(guān)于用戶接口功能如滾動(dòng)圖像或光標(biāo)控制的運(yùn)動(dòng)數(shù)據(jù),以及請(qǐng)求指示輸
11入已經(jīng)提供給游戲的數(shù)據(jù),如運(yùn)動(dòng)/方位數(shù)據(jù)或在屏幕上移動(dòng)圖形對(duì)象或激活在游戲中的 功能的手勢(shì),如使武器開火或打開門。在API層56中的不同API的另一例子是圖像穩(wěn)定API 72。該API允許應(yīng)用程序 請(qǐng)求有關(guān)于高級(jí)圖像穩(wěn)定功能的裝置10的狀態(tài),舉例來說,用于數(shù)碼照相機(jī)或攝像機(jī)中。 例如,這種高級(jí)圖像穩(wěn)定功能可以包括估計(jì)在圖像中的模糊的數(shù)量或程度,其中圖像基于 在圖像捕獲期間檢測(cè)的特定運(yùn)動(dòng)的數(shù)量由照相機(jī)鏡頭捕獲。API 72可以允許應(yīng)用程序簡(jiǎn)單 地請(qǐng)求在圖像中模糊的數(shù)量,其中應(yīng)用程序不必須使用原始傳感器數(shù)據(jù)計(jì)算該模糊或用算 法處理原始傳感器數(shù)據(jù)。其他高級(jí)圖像穩(wěn)定功能可以包括圖像重組,其中應(yīng)用程序可以請(qǐng) 求在捕獲的圖像上進(jìn)行數(shù)字處理,以糾正或重組原始色彩或模糊圖像的其他特征,沒有必 要執(zhí)行該數(shù)字處理本身。其他圖像穩(wěn)定功能可以包括對(duì)于有關(guān)于運(yùn)動(dòng)感測(cè)的特定特征(如 模糊)產(chǎn)生點(diǎn)擴(kuò)展函數(shù)(PSF)、混合圖像、或評(píng)估圖像。在API層56中的不同的API的另一例子是導(dǎo)航API 74。該API允許應(yīng)用程序請(qǐng) 求有關(guān)于高級(jí)導(dǎo)航功能的裝置10的狀態(tài),舉例來說,用于導(dǎo)航裝置。例如,這種高級(jí)導(dǎo)航功 能可以包括提供裝置10的推算定位位置,以及在這種推算定位估計(jì)中補(bǔ)償重力。API 74可 以允許應(yīng)用程序簡(jiǎn)單地請(qǐng)求在數(shù)據(jù)中補(bǔ)償該重力,而不必要執(zhí)行該補(bǔ)償本身。其他高級(jí)導(dǎo) 航功能可以包括將導(dǎo)航Kalman濾波應(yīng)用到傳感器數(shù)據(jù),以當(dāng)提供關(guān)于裝置10的位置和/ 或速度的連續(xù)更新信息時(shí),補(bǔ)償在記錄的位置中的誤差,以及設(shè)置噪聲矩陣或處理矩陣。在API層56中的不同API可以全部在單個(gè)裝置10上被提供,其實(shí)現(xiàn)在應(yīng)用層52 中的不同的多個(gè)應(yīng)用。使用API的方便允許大量的完全不同種類的應(yīng)用在單個(gè)裝置10上 被提供,而不需要每個(gè)應(yīng)用開發(fā)人員在對(duì)于特定應(yīng)用的運(yùn)動(dòng)傳感器數(shù)據(jù)的收集和處理中具 有專業(yè)知識(shí)。在一些實(shí)施方式中,多個(gè)應(yīng)用可以在裝置10上被同時(shí)執(zhí)行。這在下面關(guān)于圖 7被更加詳細(xì)地描述。運(yùn)動(dòng)算法層60可以包括算法,如濾波,其被在API層56中的API調(diào)用。運(yùn)動(dòng)算法 中的一些可以是基本功能算法,如提供裝置30在空間中的當(dāng)前方位,或指示在空間中裝置 當(dāng)前是否被移動(dòng)。算法可以結(jié)合不同傳感器的輸出并處理結(jié)果(舉例來說,使用積分、導(dǎo)數(shù) 等),以傳送較高精確性的感測(cè)結(jié)果,以及提供來源于原始傳感器數(shù)據(jù)的較高級(jí)信息。還可以對(duì)于特定的應(yīng)用包括更加具體的算法。例如,運(yùn)動(dòng)算法程序可以包括手勢(shì) 識(shí)別算法80,用于和運(yùn)動(dòng)傳感API 70 一起使用,其確定是否由用戶使用輸入裝置已經(jīng)做出 特定的手勢(shì)。這種算法可以基于傳感器數(shù)據(jù)等確定用戶是否輸入“輕敲”手勢(shì)或其他手勢(shì), 或?qū)τ诟印爸屑?jí)”的API提供裝置的滾動(dòng)、傾斜、以及偏航或裝置的ζ-旋轉(zhuǎn)。同樣地,基 于來自原始運(yùn)動(dòng)傳感器數(shù)據(jù)的由算法確定的滾動(dòng)、傾斜和偏航數(shù)據(jù),光標(biāo)控制算法82可以 與運(yùn)動(dòng)傳感API 70 一起使用以確定用戶輸入裝置的X-Y坐標(biāo),在其位置處光標(biāo)被顯示在顯 示屏上。其他用戶接口和連續(xù)的控制算法還可以用于,如確定在顯示屏上的圖標(biāo)是否已經(jīng) 基于傳感器輸入被用戶選擇、在光標(biāo)控制期間手抖的補(bǔ)償、以及基于運(yùn)動(dòng)傳感器數(shù)據(jù)移動(dòng) 一個(gè)或多個(gè)所顯示的圖像。游戲算法84可以用于運(yùn)動(dòng)傳感API70以提供有關(guān)于游戲應(yīng)用 的數(shù)據(jù),如特定手勢(shì)或運(yùn)動(dòng)是否被接收,應(yīng)用將其用作輸入以控制游戲功能。圖像穩(wěn)定算法可以包括模糊估計(jì)和圖像重組算法。模糊算法86可以用于在圖 像捕獲時(shí),例如通過照相機(jī)鏡頭捕獲圖像的時(shí)候,基于運(yùn)動(dòng)傳感器數(shù)據(jù)確定在圖像中模糊 是否發(fā)生。例如,點(diǎn)擴(kuò)展函數(shù)(PSF)可以被算法使用以確定模糊。圖像重組算法88可以用于糾正或重組圖像的特征,其例如通過模糊已失真或被移除。其他圖像穩(wěn)定算法在第 11/774,488號(hào)共同未決專利申請(qǐng)的美國(guó)專利申請(qǐng)中被描述,并在此全文并入作為參考。導(dǎo) 航算法可以包括可以用于當(dāng)確定推算定位時(shí)補(bǔ)償重力的推算定位重力補(bǔ)償算法90和可以 用于在感測(cè)位置補(bǔ)償誤差的導(dǎo)航Kalman濾波92。例如,推算定位位置算法可以使用來自一 個(gè)或多個(gè)加速計(jì)的數(shù)據(jù)以確定裝置10的位置,以及來自一個(gè)或多個(gè)陀螺儀26的數(shù)據(jù)以確 定裝置10的運(yùn)動(dòng)航向或方向。裝置驅(qū)動(dòng)器層62將軟件接口提供給裝置10的硬件運(yùn)動(dòng)傳感器26和28以及其他 傳感器22和24,如上關(guān)于圖3所描述的。層62可以包括用于陀螺儀26、加速計(jì)28、氣壓 計(jì)、羅盤傳感器、以及如參考圖1所描述的其他傳感器的驅(qū)動(dòng)器。圖5是說明訪問在運(yùn)動(dòng)傳感裝置10上實(shí)現(xiàn)的API的應(yīng)用程序的本發(fā)明的方法200 的流程圖。方法200和在此描述的其他方法,如果沒有具體描述,可以在硬件、軟件、或硬件 和軟件兩者的組合中實(shí)現(xiàn)。在此的方法可以使用程序指令或程序代碼來實(shí)現(xiàn),程序指令或 程序代碼可以由處理器或計(jì)算機(jī)執(zhí)行并可以在計(jì)算機(jī)可讀介質(zhì)如電子存儲(chǔ)器、磁帶、磁盤、 光盤等上被提供。在方法200,應(yīng)用程序與提供對(duì)于應(yīng)用程序有用的運(yùn)動(dòng)傳感功能的API層56的特 定API接口。在一些實(shí)施方式中,多個(gè)應(yīng)用可以與單個(gè)API接口,而其他應(yīng)用程序可具有對(duì) 于他們唯一使用的專用API。當(dāng)需要時(shí)應(yīng)用程序還可以訪問多種類型API。與API的接口 是在高級(jí)別上,允許應(yīng)用程序忽視它請(qǐng)求的信息的實(shí)現(xiàn)細(xì)節(jié)。從而,例如,到API的命令可 以相當(dāng)于“提供裝置的當(dāng)前位置”或“提供最近的圖像的模糊核心”或“提供裝置當(dāng)前正呈 現(xiàn)的移動(dòng)的類型”。本發(fā)明的API還可以使用“事件驅(qū)動(dòng)程序設(shè)計(jì)”。例如,當(dāng)使用運(yùn)動(dòng)傳感API時(shí),應(yīng) 用程序一般不需要每IOms檢查運(yùn)動(dòng)傳感器的輸入。代替地,如果應(yīng)用程序正在尋找包括特 定運(yùn)動(dòng)傳感器數(shù)據(jù)的手勢(shì),當(dāng)該手勢(shì)被檢測(cè)到(這是“事件”)時(shí)它請(qǐng)求API中斷應(yīng)用程序。 下面在列表1和2中顯示應(yīng)用程序使用本發(fā)明的API的例子,其中“ml”代表“運(yùn)動(dòng)庫”。mllnitializeSensors ();mlRegisterGestures(ML_D0UBLE_TAP I ML_R0LL);mlGestureCalIBack(got Gesture);...void gotGesture(gesture){if (gesture = = ML_D0UBLE_TAP) {[...如果檢測(cè)到雙擊手勢(shì),則執(zhí)行這里列出的功能或操作。]}else if (gesture == ML_R0LL) {[...如果檢測(cè)到滾動(dòng)手勢(shì),則執(zhí)行這里列出的功能或操作。]}}列表 1ml. Bind (ml. EVT_D0UBLE_TAP, OnDoubleTap) // 當(dāng)檢測(cè)到雙擊手勢(shì)時(shí),運(yùn)行功能"OnDoubleTap”
13
ml. Bind (ml. EVT_0RIENTAT10N_CHANGE, OnOrientationChange) //當(dāng)改變方向時(shí),運(yùn)行功能“ OnOr ientati onChange,,ml. Bind (ml. EVT_M0TI0N, OnMotion)// 當(dāng)便攜式裝置移動(dòng)時(shí),運(yùn)行功能“OnMotion”ml.MainLoopO//開始無限循環(huán),運(yùn)行在后臺(tái)的引擎。除非事件需要,不再運(yùn)行程序。def OnDoubleTap ()[...如果檢測(cè)到雙擊手勢(shì),則執(zhí)行這里列出的功能或操作。]def OnOrientationChange ()[...如果檢測(cè)到方向改變,則執(zhí)行這里列出的功能或操作。]def OnMotion ()[...如果檢測(cè)到移動(dòng),則執(zhí)行這里列出的功能或操作。]列表2圖5的方法200在202開始,并在步驟204,應(yīng)用程序開始發(fā)送命令到API以提供 設(shè)置,其設(shè)置或“記錄”在裝置10的操作期間在后臺(tái)作為“回調(diào)函數(shù)”運(yùn)行的一個(gè)或多個(gè)算 法(如濾波)。設(shè)置可以在系統(tǒng)操作期間指定應(yīng)用程序想要的哪種類型的信息。這種設(shè)置 指示給API哪些算法應(yīng)運(yùn)行,并提供信息(如位置、方位、通知等)回到應(yīng)用程序。例如,當(dāng) 應(yīng)用程序被用戶在空間中四處移動(dòng)時(shí),應(yīng)用程序可希望通過裝置10的位置和方位被連續(xù) 地更新。應(yīng)用程序可以發(fā)送設(shè)置到將設(shè)置算法的API,以將期望的信息連續(xù)提供給應(yīng)用程 序。在一些實(shí)施方式中,應(yīng)用程序可以可選地指定參數(shù)以定制它將接收的高級(jí)信息,如設(shè)置 應(yīng)用程序?qū)腁PI接收信息的速率、在其期間這種信息將被發(fā)送到應(yīng)用程序的持續(xù)時(shí)間的 總量、其應(yīng)被通知的次數(shù)等。另外,應(yīng)用程序可以發(fā)送指示一個(gè)或多個(gè)條件的設(shè)置,當(dāng)基于 傳感器數(shù)據(jù)確定那些條件被滿足時(shí),一個(gè)或多個(gè)條件引起信息被發(fā)送到應(yīng)用程序。例如,設(shè) 置可以指定哪些特定運(yùn)動(dòng)或手勢(shì)在被檢測(cè)時(shí)將觸發(fā)API以通知應(yīng)用程序其事件,或指定為 了將它認(rèn)為是“雙擊”手勢(shì)的兩次所檢測(cè)的敲擊之間所需要的時(shí)間總量。應(yīng)用程序還可指定 數(shù)據(jù)被處理要用的算法或?yàn)V波,或指定詳細(xì)資料,如指定使裝置旋轉(zhuǎn)所通過的連續(xù)運(yùn)動(dòng)和/ 或角度的積分,以引起觸發(fā)。在步驟206,應(yīng)用程序基于被請(qǐng)求在后臺(tái)運(yùn)行的調(diào)回函數(shù)算法而從API接收信息, 包括高級(jí)信息。API基于適當(dāng)?shù)乃惴ǖ牟僮鳎瑢⑵谕男畔⑻峁┙o應(yīng)用程序,適當(dāng)?shù)乃惴ɑ?于步驟204的信息開始并在后臺(tái)運(yùn)行。根據(jù)由應(yīng)用程序指定的或?qū)τ谟葾PI和較低層實(shí)現(xiàn) 的請(qǐng)求所固有的任何要求,步驟206可以連續(xù)地被執(zhí)行。例如,在照相機(jī)應(yīng)用中,應(yīng)用程序 可需要連續(xù)地知道在照相機(jī)上是否有過多的手抖,其中如果確實(shí)如此,應(yīng)用程序可以發(fā)布 警報(bào)信號(hào)給用戶。步驟206還可在不規(guī)則的間隔中被執(zhí)行,如當(dāng)符合條件(如由應(yīng)用程序 在前指定的)時(shí)。例如,如果裝置10在某方向上傾斜得太多,應(yīng)用程序可能需要發(fā)布輸出 到用戶,并需要被通知這一傾斜。步驟206可在方法200的其他步驟的執(zhí)行期間被執(zhí)行。在步驟208,應(yīng)用程序檢查它是否需要信息以完成它的執(zhí)行,這樣的信息是(至少 部分地)基于由裝置10的運(yùn)動(dòng)傳感器讀出的傳感器數(shù)據(jù)。例如,應(yīng)用程序可需要知道裝置 的當(dāng)前位置以響應(yīng)于來自用戶的對(duì)于裝置位置的請(qǐng)求。如果在步驟208沒有信息被需要, 那么處理返回到步驟206以接收信息(如果合適)。如果需要信息,那么在步驟210應(yīng)用
14程序使用由API定義的高級(jí)命令從API請(qǐng)求所需的高級(jí)信息。在步驟212,應(yīng)用程序從API 接收所請(qǐng)求的信息。處理然后返回到步驟206。圖6是說明API與在運(yùn)動(dòng)傳感裝置10上實(shí)現(xiàn)的其他軟件層接口的本發(fā)明的方法 250的流程圖。過程在252開始,并在步驟254,API從應(yīng)用程序接收高級(jí)命令以設(shè)置運(yùn)行 的算法。高級(jí)命令提供設(shè)置,設(shè)置指示應(yīng)用程序(至少部分地)基于由裝置10的傳感器 提供的運(yùn)動(dòng)傳感器數(shù)據(jù)期望從運(yùn)行的算法接收的哪項(xiàng)高級(jí)信息。參考圖5如上說明的,設(shè) 置可指定哪種類型的信息、信息要被發(fā)送的速率、信息要被發(fā)送的條件等。API將來自應(yīng)用 程序的命令和設(shè)置轉(zhuǎn)變?yōu)樘囟ㄟ\(yùn)動(dòng)算法,其將遵循關(guān)聯(lián)的應(yīng)用的精確要求提供所請(qǐng)求的信 息,舉例來說,通過處理以該應(yīng)用所需的采樣率從適當(dāng)?shù)膫鞲衅鞑蓸拥倪\(yùn)動(dòng)傳感器數(shù)據(jù)。在步驟256,API基于接收到的命令和設(shè)置啟動(dòng)所請(qǐng)求的運(yùn)動(dòng)算法,并且這些算法 在裝置10的操作期間在后臺(tái)運(yùn)行。API可以運(yùn)行滿足應(yīng)用程序的請(qǐng)求和設(shè)置的特定算法。 在一些實(shí)施方式中,來自應(yīng)用程序的命令是足夠高級(jí)的,它沒有指定在后臺(tái)運(yùn)行的特定算 法,而API可以將正確的算法關(guān)聯(lián)到接收到的命令。在可選擇的實(shí)施方式中,接收到的命令 可以指定特定的算法。算法可以用應(yīng)用所需要的精確定時(shí)采樣并處理傳感器數(shù)據(jù),并以應(yīng) 用程序的所需定時(shí)向應(yīng)用程序上報(bào)所得到的信息。算法還可以檢查由應(yīng)用程序指定的任何 條件。在一些實(shí)施方式中,較高軟件層,如在API中,可以檢查一些或全部這樣的指定條件。在步驟258,如果請(qǐng)求任何這樣的信息,其包括高級(jí)信息,則API將連續(xù)的信息提 供給應(yīng)用程序。例如,API可以從運(yùn)動(dòng)算法層60中的一個(gè)或多個(gè)算法接收所處理的信息, 并將該數(shù)據(jù)提供給應(yīng)用程序。API或算法以適合于由應(yīng)用程序?qū)崿F(xiàn)的應(yīng)用的特定速率,優(yōu)選 地提供信息,或允許應(yīng)用程序取回和采樣信息。在步驟260,API檢查以查看它是否對(duì)于特定信息從應(yīng)用程序接收請(qǐng)求。如果沒 有,則啟動(dòng)步驟264,在下面描述。如果接收到,則在步驟262,API將所請(qǐng)求的信息提供給應(yīng) 用程序。通過查詢適當(dāng)?shù)乃惴ê蛷乃惴ń邮招畔?,獲得該信息。過程然后返回到步驟258。 在步驟264,API檢查以查看觸發(fā)了信息到應(yīng)用程序的發(fā)送的事件是否發(fā)生。例如,事件可 以是由應(yīng)用程序指定的或符合API的一個(gè)或多個(gè)條件。如果沒有事件發(fā)生,則過程返回到 步驟258。如果事件發(fā)生,在步驟266,API將所觸發(fā)的信息(一般地,高級(jí)信息)提供給應(yīng) 用程序。從適當(dāng)?shù)乃惴ǐ@得該信息。過程然后返回到步驟258。在一些實(shí)施方式中,運(yùn)動(dòng)算法的低級(jí)處理包括智能處理,其對(duì)于由接收到的高級(jí) 命令所指示的應(yīng)用的類型和由API發(fā)送到運(yùn)動(dòng)算法的參數(shù)或指令是所特有的?!皟?nèi)容感 知”API從而可以被提供,其足夠地智能以知道裝置10的什么應(yīng)用當(dāng)前正在運(yùn)行并相應(yīng)地 啟用與那些應(yīng)用關(guān)聯(lián)的關(guān)鍵特征。例如,如果當(dāng)前在使用中的運(yùn)行的應(yīng)用是游戲應(yīng)用或?qū)?航應(yīng)用,則API分別啟用有關(guān)于游戲或?qū)Ш降倪m當(dāng)?shù)奶卣鳎ㄗx取的適當(dāng)傳感器和用于 讀取這些傳感器的定時(shí)要求,以及啟用適當(dāng)?shù)母呒?jí)信息和功能,以將包括接口功能和輸出 的信息和功能提供給用戶。例如,低級(jí)處理可以包括檢查運(yùn)動(dòng)傳感裝置的全部運(yùn)動(dòng)傳感器的全部輸出,以確 定由應(yīng)用程序所實(shí)現(xiàn)的應(yīng)用類型所需要的高級(jí)信息。依賴于應(yīng)用的類型,低級(jí)處理在檢查 全部的運(yùn)動(dòng)傳感器的輸出后,可以選擇性地僅使用應(yīng)用的類型所需要的運(yùn)動(dòng)傳感器的坐標(biāo) 軸的子集。例如,在運(yùn)行在6-坐標(biāo)軸裝置10上的特定的應(yīng)用中,算法可以檢查全部三個(gè)陀 螺儀和全部三個(gè)加速計(jì)以確定裝置10或者是在空間保持垂直,而在這樣情況下僅來自加
15速計(jì)的感測(cè)的數(shù)據(jù)被處理以產(chǎn)生該應(yīng)用的高級(jí)信息;或是裝置在空間保持水平,而在這樣 情況下僅來自陀螺儀的感測(cè)的數(shù)據(jù)對(duì)于該應(yīng)用被處理。在其他實(shí)施方式中,基于應(yīng)用的類 型,由API接收的高級(jí)命令可以確定運(yùn)動(dòng)傳感器的哪些坐標(biāo)軸和輸出選擇性地用于確定高 級(jí)信息。在一些實(shí)施方式中,高級(jí)命令不需要指定使用的特定坐標(biāo)軸和輸出;相反地,基于 特定的高級(jí)命令是什么和API與該高級(jí)命令關(guān)聯(lián)的處理,低級(jí)處理可以知道使用哪些傳感 器輸出。在一些實(shí)施方式中,運(yùn)動(dòng)傳感器的僅一些坐標(biāo)軸或輸出的選擇使用可以進(jìn)一步地 通過關(guān)閉沒有用于任何當(dāng)前運(yùn)行應(yīng)用的運(yùn)動(dòng)傳感器(或它的特定的坐標(biāo)軸)的操作或感測(cè) 功能來使用。這可以節(jié)省裝置10的能量消耗和/或處理帶寬。進(jìn)一步地電源管理特征還可以被包括在API層中,包括睡眠模式和喚醒模式,以 及運(yùn)動(dòng)傳感器資源的全部功率管理。例如,API層可以實(shí)現(xiàn)一個(gè)或(多個(gè))在應(yīng)用處理器 12或MPU 20上運(yùn)行的程序,應(yīng)用處理器12或MPU 20在任何陀螺儀26沒有感測(cè)任何數(shù)據(jù) 的時(shí)候或如果它們感測(cè)的數(shù)據(jù)沒在使用時(shí),關(guān)閉陀螺儀26的電源,其中陀螺儀26可消耗被 其他傳感器更多的能量。在一種實(shí)施方式中,一旦由其他運(yùn)動(dòng)傳感器感測(cè)裝置10的某一運(yùn) 動(dòng),陀螺儀就可以被“喚醒”。
0103]下面提供了根據(jù)本發(fā)明可用于API的API命令的例子。0104]mlInitializeSensors ()0105]mlGetRawData ()0106]mlGetCalibratedData ()0107]mlGetAugmentedData ()0108]ml Ge t HumanMo t i on ()0109]mlGetRotationMatrix ()0110]mlGetQuaternion ()0111]mlGetRoll0112]mlGetPitch ()0113]mlGetYaw ()0114]mlHeadingO0115]mlGetLocation ()0116]mlGetPSF ()0117]mlGetBlurAmount ()0118]mlCalibrate ()0119]mlUpdateState ()0120]mlUpdateRotationMatrix()0121]m 1 Up da t eHumanMo t i on ()0122]mlUpdateGesture ()0123]mlRegisterGestures()0124]mlGestureCalIBack()0125]mlUpdateKalmanFilter()0126]mlUpdateSensorCalibration()
16
mlSetNoiseMatrixOmlSetProcessMatrix ()mlGeneratePSF ()mlBlendlmagesOmlEvaluatelmage ()同時(shí)的多個(gè)應(yīng)用的處理圖7是說明通過一個(gè)或多個(gè)并發(fā)運(yùn)行的應(yīng)用程序,用于同時(shí)處理同時(shí)在移動(dòng)傳感 器裝置10上運(yùn)行(即,同時(shí)被實(shí)現(xiàn))的不同應(yīng)用的數(shù)據(jù)的本發(fā)明的方法300的流程圖。方 法300假定多個(gè)應(yīng)用正并發(fā)運(yùn)行且需要運(yùn)動(dòng)傳感器數(shù)據(jù)或來源于運(yùn)動(dòng)傳感器數(shù)據(jù)的數(shù)據(jù)。 在一些實(shí)施方式中,方法300可以由運(yùn)動(dòng)算法層60來實(shí)現(xiàn)。至少兩個(gè)并發(fā)運(yùn)行的應(yīng)用需要運(yùn)動(dòng)傳感器數(shù)據(jù)以不同的最小采樣率被采樣。例 如,圖像穩(wěn)定性應(yīng)用需要運(yùn)動(dòng)傳感器數(shù)據(jù)以高速率如500Hz被采樣,而用戶接口應(yīng)用可需 要運(yùn)動(dòng)傳感器數(shù)據(jù)以較低速率如50Hz被采樣。處理在302開始,并且在步驟304,傳感器數(shù)據(jù)在第一采樣率被接收。第一采樣率 被確定為被在裝置10上當(dāng)前運(yùn)行的任何應(yīng)用所需要的最高的最小采樣率(還可以使用比 所需的最小值大的采樣率)。在系統(tǒng)10上可得到的但非當(dāng)前運(yùn)行的其他應(yīng)用程序的采樣率 與該第一采樣率的確定無關(guān)。在步驟306,以第一(最高)采樣率采樣的傳感器數(shù)據(jù)用于在 裝置10上運(yùn)行的第一應(yīng)用(或如果多于一個(gè)應(yīng)用需要數(shù)據(jù)以第一采樣率被最低限度地采 樣,則用于多個(gè)第一應(yīng)用)。如上所描述,在層60中的運(yùn)動(dòng)算法可以處理傳感器數(shù)據(jù)并將所 處理的高級(jí)信息提供給API和實(shí)現(xiàn)第一應(yīng)用的第一應(yīng)用程序。在步驟308,對(duì)在步驟304以第一采樣率接收的傳感器數(shù)據(jù)使用低通濾波,以實(shí)現(xiàn) 適合于在裝置10上并發(fā)運(yùn)行的不同的第二應(yīng)用的較低的第二采樣率,但是其是過低的速 率而不能用于第一應(yīng)用。例如,第二應(yīng)用可僅需要以比第一應(yīng)用低的速率采樣的傳感器數(shù) 據(jù),以便可以使用濾波來減少第一采樣率。步驟308的低通濾波可以是多種不同類型中的 任一種,如點(diǎn)運(yùn)行平均(point running average)、無限沖激響應(yīng)(IIR)濾波、有限沖激響應(yīng) (FIR)濾波等。在步驟310,在第二采樣率采樣的傳感器數(shù)據(jù)用于第二應(yīng)用(或如果多于一 個(gè)應(yīng)用可以在第二采樣率使用傳感器數(shù)據(jù),則用于多種應(yīng)用)。對(duì)于方法300的其他步驟, 步驟310和306可以同時(shí)執(zhí)行。如果附加的應(yīng)用當(dāng)前正運(yùn)行且可以用不同的采樣率使用數(shù)據(jù),那么在步驟312,低 通濾波類似地用在被濾波的傳感器數(shù)據(jù)上,以實(shí)現(xiàn)對(duì)于當(dāng)前運(yùn)行的附加的應(yīng)用更加較低的 采樣率,如果合適,并且采樣數(shù)據(jù)用于那些附加的應(yīng)用。如果這種應(yīng)用正在運(yùn)行,步驟308 的第二采樣率是被當(dāng)前正運(yùn)行的任何應(yīng)用程序所需要的第二最高采樣率,并且步驟312的 采樣率是比步驟308的第二采樣率更低的采樣率。例如,如果兩個(gè)附加的應(yīng)用可以使用不 同的較低采樣率,那么以第二采樣率提供的數(shù)據(jù)被濾波,以為應(yīng)用中的適當(dāng)?shù)囊粋€(gè)提供第 三采樣率,并且以第三采樣率的數(shù)據(jù)被濾波,以為其他應(yīng)用提供第四較低采樣率。然后在 314過程完成。方法300從而允許帶有不同采樣率要求的不同應(yīng)用在裝置10上通過以樹的形式 低通濾波數(shù)據(jù)而同時(shí)被執(zhí)行,其通常是困難的任務(wù)。例如,模糊計(jì)算可需要傳感器數(shù)據(jù)以 500Hz被采樣,用戶接口應(yīng)用可需要100Hz的采樣率,且導(dǎo)航應(yīng)用可需要20Hz的采樣率。在應(yīng)用程序級(jí)別,用戶接口顯示可以IOHz被更新,而導(dǎo)航數(shù)據(jù)以IHz與GPS數(shù)據(jù)結(jié)合。為了 同時(shí)處理多個(gè)應(yīng)用的傳感器數(shù)據(jù),同時(shí)運(yùn)行這些應(yīng)用的運(yùn)動(dòng)傳感引擎必須能夠以不同采樣 率同時(shí)接收運(yùn)動(dòng)傳感器數(shù)據(jù)。例如,當(dāng)用運(yùn)動(dòng)手勢(shì)控制照相機(jī)用戶接口時(shí),用戶可想要獲得 沒有模糊的圖片。同時(shí),裝置可以是推算定位,以使在照相機(jī)應(yīng)用期間不失去裝置的位置。 對(duì)于啟用了 GPS的照相機(jī)-電話,每當(dāng)獲得圖片時(shí),用戶可能不想失去他的或她的位置。在方法300中描述的以樹的形式的濾波允許不同的采樣率從單個(gè)最高采樣率被 提取。例如,為了電子圖像穩(wěn)定性,原始傳感器數(shù)據(jù)可以用250Hz抗混疊濾波器以500Hz被 采樣。步驟308的10點(diǎn)運(yùn)行平均(舉例來說,可以使用的一種類型的低通濾波)提供更多 抗混疊,將帶寬從500Hz減少到50Hz,對(duì)于用戶接口應(yīng)用允許IOOHz采樣率(應(yīng)用可以被 允許采樣率等于兩倍的傳感器采樣率)。可以在IOOHz使用另一 10點(diǎn)運(yùn)行平均,提供適合 于20Hz導(dǎo)航濾波的IOHz帶寬。全部這些濾波的輸出可以它們各自的采樣率被更新,而用 戶并不知道。由于僅圖像穩(wěn)定濾波需要以最高采樣率運(yùn)行,這最小化了應(yīng)用處理器時(shí)間。在另一例子中,圖像穩(wěn)定性應(yīng)用可以與用戶接口應(yīng)用結(jié)合。原始加速計(jì)數(shù)據(jù)或增 加的數(shù)據(jù)(在該例子中,來源于來自加速計(jì)28和陀螺儀26兩者的傳感器數(shù)據(jù)的重力加速 度)可以用于跟蹤照相機(jī)的方位,用于圖像旋轉(zhuǎn)(人像或風(fēng)景)和校平(leveling)信息。 同時(shí),手勢(shì)還可以由用戶輸入以控制照相機(jī)模式,例如從照相機(jī)模式轉(zhuǎn)換成攝像機(jī)模式。使 用本發(fā)明,與用于手勢(shì)識(shí)別數(shù)據(jù)的低采樣率陀螺儀傳感器數(shù)據(jù)同時(shí),捕獲用于模糊數(shù)據(jù)的 高采樣率陀螺儀傳感器數(shù)據(jù)。而在另一例子中,導(dǎo)航可以與用戶接口應(yīng)用結(jié)合。除為了導(dǎo)航應(yīng)用運(yùn)行推算定位 算法之外,還可需要手提裝置運(yùn)行地圖旋轉(zhuǎn)算法和對(duì)于用戶接口應(yīng)用的用戶輸入算法。使 用本發(fā)明,由于地圖旋轉(zhuǎn)需要低等待時(shí)間以便成為有效用戶接口,因此這些算法可以不同 的采樣率同時(shí)運(yùn)行,但是導(dǎo)航算法可僅需要以20Hz運(yùn)行。由本發(fā)明提供的不同的采樣率還可以用于裝置10的功率管理。在一些實(shí)施方式 中,可以減少裝置10的功率消耗,其對(duì)于手持和便攜式應(yīng)用如步行導(dǎo)航可以是重要的。例 如,在導(dǎo)航應(yīng)用中,GPS單元(未示出)可以是連接到裝置10的附加單元,以確定裝置的位 置。如果與GPS接收機(jī)單獨(dú)用于確定位置相比,與GPS接收機(jī)結(jié)合使用的在層60中的推算 定位算法可以更加準(zhǔn)確地確定當(dāng)前位置。推算定位濾波具有附加的益處,其可以減少GPS 單元所需要的處理,從而減低功率。如果和GPS位置確定一起使用推算定位,IHz的GPS采 樣率可下降到0. IHz,或衛(wèi)星跟蹤器可跟蹤僅3個(gè)衛(wèi)星而不是12個(gè)衛(wèi)星。在GPS算法中的 任何錯(cuò)誤可以由通過推算定位算法實(shí)現(xiàn)的附加的信息來補(bǔ)償。硬件和軟件緩沖硬件如MPU 20用在裝置10中的一個(gè)原因是減少在裝置10的應(yīng)用處理器12和/ 或其他處理器上的處理負(fù)荷。由于處理器/CPU的系統(tǒng)開銷、定時(shí)約束、以及編碼或用戶化 和可移植性的難點(diǎn),僅使用軟件來捕獲運(yùn)動(dòng)傳感器數(shù)據(jù)可以是效率低的。運(yùn)動(dòng)傳感驅(qū)動(dòng)器 理想地應(yīng)使用CPU時(shí)間的僅僅1%,且保證正確的定時(shí)在移動(dòng)裝置操作系統(tǒng)內(nèi)可能是困難 的。然而,由于幾個(gè)原因,包括增加的成本,以及不準(zhǔn)確且有限的特征,硬件不用于執(zhí)行全部 傳感器功能。例如,將附加的硬件處理增加到傳感器集成電路增加了芯片區(qū)域,如果該相同 的處理可以在應(yīng)用處理器12上以軟件執(zhí)行,則其可能是不必要的。對(duì)算法的數(shù)據(jù)的輸入而非對(duì)用戶的輸出經(jīng)常需要運(yùn)動(dòng)傳感所必需的精確定時(shí),
18即,定時(shí)要求對(duì)于用戶的應(yīng)用程序的輸出更加放寬。例如,在用戶接口應(yīng)用中,運(yùn)動(dòng)傳感經(jīng) 常在IOOHz被執(zhí)行,帶有精確地定時(shí)以捕獲全部必要運(yùn)動(dòng)。然而,通過應(yīng)用程序的對(duì)用戶的 輸出可僅在10Hz,帶有不精確的定時(shí)。本發(fā)明的實(shí)施方式可以使用硬件和/或軟件以獲得對(duì)于應(yīng)用程序輸出放寬的定 時(shí)約束的優(yōu)點(diǎn),并從而減少應(yīng)用處理器的處理時(shí)間。一些實(shí)施方式可以為那些具有快速處 理器的系統(tǒng)提供更多使用軟件的處理,而其他實(shí)施方式可以為帶有較慢處理器或其他處理 負(fù)荷的系統(tǒng)提供更多使用硬件的處理。在任何實(shí)施方式中,相同的API層56可以用于將作 為結(jié)果的高級(jí)信息提供給應(yīng)用程序,允許到任何系統(tǒng)的最大化可移植性。圖8A是說明用于提供緩沖以減少應(yīng)用處理器在接收運(yùn)動(dòng)傳感器輸出中的處理的 本發(fā)明的第一方法400的流程圖。方法400使用硬件緩沖以允許應(yīng)用處理器12放寬在獲 取傳感器數(shù)據(jù)中它的定時(shí)約束。方法在402開始,并且在步驟404,MPU 20以較高速率采樣運(yùn)動(dòng)傳感器數(shù)據(jù)并將傳 感器數(shù)據(jù)記錄到硬件緩沖器。例如,硬件緩沖器可以在如在圖1中所示的MPU 20的硬件處 理塊30中,或在裝置10的不同的所連接的硬件中。MPU以高速率和捕獲運(yùn)動(dòng)數(shù)據(jù)用于特定 應(yīng)用通常所需的精確定時(shí)來采樣傳感器數(shù)據(jù)。在步驟406,應(yīng)用處理器12讀取自從它最后一次讀取緩沖器后在硬件緩沖器中積 累的全部傳感器數(shù)據(jù),其中處理器12以比用于記錄傳感器數(shù)據(jù)的MPU低的速率采樣硬件緩 沖器(和傳感器數(shù)據(jù))。處理器在硬件緩沖器中一次讀取全部這些傳感器數(shù)據(jù)點(diǎn)。在步驟408,基于取回的多個(gè)傳感器數(shù)據(jù)點(diǎn)快速連續(xù)地更新運(yùn)動(dòng)算法,并且以較低 的采樣率將算法的最終輸出提供給應(yīng)用程序。這以較低的所需采樣率將信息提供給應(yīng)用程 序。處理然后返回到步驟404。在緩沖器中的傳感器數(shù)據(jù)的積累允許應(yīng)用處理器12的應(yīng)用程序放寬用于從MPU 采樣數(shù)據(jù)的定時(shí)約束而沒有遺漏任何運(yùn)動(dòng)信息。例如,MPU硬件可在IOOHz的較高速率將 傳感器數(shù)據(jù)記錄在緩沖器中。在應(yīng)用處理器12上的應(yīng)用程序可需要以僅IOHz的采樣率基 于運(yùn)動(dòng)更新顯示屏。使用方法400,運(yùn)動(dòng)算法可以在IOHz的速率一次讀取存儲(chǔ)在MPU緩沖 器中的全部數(shù)據(jù)。從而,如果10個(gè)數(shù)據(jù)點(diǎn)在緩沖器中,運(yùn)動(dòng)算法快速連續(xù)地更新10次,并 且有效地以IOHz將通過運(yùn)動(dòng)算法輸出的顯示信息提供給應(yīng)用程序。這允許僅當(dāng)應(yīng)用處理 器12需要時(shí),應(yīng)用處理器12例如以IOHz的速率(顯示刷新率)讀取緩沖器,這減少處理 器12的總處理時(shí)間。因?yàn)檫\(yùn)動(dòng)算法使用接收到的運(yùn)動(dòng)數(shù)據(jù)的全部數(shù)據(jù)點(diǎn)而平均起來仍將 以較高的速率運(yùn)行,因此減少可能并非是大量的。圖8B是說明用于提供緩沖以減少應(yīng)用處理器在接收運(yùn)動(dòng)傳感器輸出中的處理的 本發(fā)明的第二方法420的流程圖。方法420使用軟件緩沖以允許應(yīng)用處理器12放寬在獲 取傳感器數(shù)據(jù)中它的定時(shí)約束。方法在422開始,并且在步驟424,中斷程序以較高速率采樣運(yùn)動(dòng)傳感器數(shù)據(jù)。例 如,中斷程序是在應(yīng)用處理器12上運(yùn)行的軟件程序,并可以在算法層60中提供。中斷程 序以高速率以及捕獲適用于應(yīng)用的運(yùn)動(dòng)數(shù)據(jù)通常所需的正確和精確的定時(shí)來采樣來自MPU 20的傳感器數(shù)據(jù)。在步驟426,中斷程序存儲(chǔ)在步驟424在軟件緩沖器中讀取的數(shù)據(jù),沒有 處理數(shù)據(jù)。例如,軟件緩沖器是應(yīng)用處理器可訪問的存儲(chǔ)器,并可以在應(yīng)用處理器12(寄存 器、RAM等)中、在裝置10的存儲(chǔ)器14中、或在其他可用的存儲(chǔ)器中被提供。
在步驟428,中斷程序中斷處理器12以指示積累了足夠的傳感器數(shù)據(jù)以被讀取。 在步驟430,應(yīng)用處理器12 (舉例來說,運(yùn)動(dòng)算法)讀取自從它最后一次讀取緩沖器后在軟 件緩沖器中積累的全部傳感器數(shù)據(jù)。從而,處理器12以比中斷程序用于采樣和存儲(chǔ)傳感器 數(shù)據(jù)低的速率讀取傳感器數(shù)據(jù)。在步驟432,基于取回的多個(gè)傳感器數(shù)據(jù)點(diǎn),快速連續(xù)地更 新運(yùn)動(dòng)算法,并且將算法的最終輸出以較低的采樣率提供給應(yīng)用程序。這將信息以較低的 所需采樣率提供給應(yīng)用程序。過程然后返回到步驟424。如同用圖8A的硬件緩沖的實(shí)施方式,在緩沖器中的傳感器數(shù)據(jù)的積累允許應(yīng)用 處理器12放寬關(guān)于應(yīng)用程序輸出的它的定時(shí)約束,而沒有遺漏任何運(yùn)動(dòng)信息。例如,中斷 程序可在IOOHz的較高速率在緩沖器中采樣和存儲(chǔ)傳感器數(shù)據(jù),但是應(yīng)用程序12可以在放 寬的速率一次讀取存儲(chǔ)在軟件緩沖器中的全部數(shù)據(jù)。從而,以IOHz的采樣率,應(yīng)用處理器 可以取回在緩沖器中的最近的10個(gè)數(shù)據(jù)點(diǎn),并快速連續(xù)地處理運(yùn)動(dòng)算法10次,允許顯示應(yīng) 用程序以IOHz從算法接收適當(dāng)?shù)男畔?,并以IOHz提供它的輸出。圖8C是說明用于提供緩沖以減少應(yīng)用處理器在接收運(yùn)動(dòng)傳感器輸出中的處理的 本發(fā)明的第三方法450的流程圖。方法450使用硬件中斷,以允許應(yīng)用處理器12減少在獲 得傳感器數(shù)據(jù)中它的定時(shí)約束。方法在452開始,并且在步驟454,MPU 20接收傳感器數(shù)據(jù)且將傳感器數(shù)據(jù)存儲(chǔ) 在緩沖器中。以高速率以及捕獲運(yùn)動(dòng)傳感器數(shù)據(jù)通常所需的正確和精確的定時(shí)來執(zhí)行該采 樣。傳感器數(shù)據(jù)可以被存儲(chǔ)在硬件緩沖器或軟件緩沖器中。在步驟456,MPU掃描緩沖的傳感器數(shù)據(jù)。在步驟458,MPU檢查在所掃描的傳感器 數(shù)據(jù)中是否有任何“感興趣的”特性已被檢測(cè)。這樣的特性是在數(shù)據(jù)中的模式或特征,其可 與特定算法或應(yīng)用有關(guān),以便它們應(yīng)被上報(bào)到應(yīng)用處理器12。例如,特性可以包括已經(jīng)被 超過的預(yù)先確定的閾值,或指示特定類型的運(yùn)動(dòng)的在數(shù)據(jù)中的模式。例如,當(dāng)由用戶作出手 勢(shì)時(shí),可在至少一個(gè)運(yùn)動(dòng)傳感器上超過閾值?;蛘咛囟ㄩ撝档闹悼梢呀?jīng)被超過,指示在裝置 10的照相機(jī)鏡頭部分上抖動(dòng)的級(jí)別。在步驟458如果沒有感興趣的特性被MPU檢測(cè)到,那 么過程返回到步驟454。如果一個(gè)或多個(gè)感興趣的特性被檢測(cè)到,那么在步驟460,MPU將中斷發(fā)送到應(yīng)用 處理器。該中斷指示到應(yīng)用處理器感興趣的特性已經(jīng)被檢測(cè)到并應(yīng)被應(yīng)用處理器檢查。從 而,在步驟462,應(yīng)用處理器12取回在包括所檢測(cè)的感興趣的特性的緩沖器中存儲(chǔ)的數(shù)據(jù), 舉例來說,MPU可以在不同的緩沖器或緩沖器的其他區(qū)域中緩沖感興趣的特性數(shù)據(jù),處理器 12可以從其中讀取,或者M(jìn)PU可以在主要緩沖器中指定位置以從該指定的位置讀取。應(yīng)用 處理器12然后分析取回的作為適合于應(yīng)用的數(shù)據(jù),舉例來說,在算法層60中用算法處理數(shù) 據(jù)并以已減少的采樣率通過API 56將數(shù)據(jù)提供給應(yīng)用程序。過程然后返回到步驟454。使用MPU硬件以檢查所感測(cè)的數(shù)據(jù)中的特定的特征,可以減少應(yīng)用處理器的處理 系統(tǒng)開銷。即使MPU以高速率將中斷發(fā)送到應(yīng)用處理器,如每秒5次檢測(cè)感興趣的特性,它 仍將必須運(yùn)行的算法處理和應(yīng)用程序處理的次數(shù)從IOOHz減少到5Hz。使用該實(shí)施方式,對(duì) 于在應(yīng)用處理器12上的全部軟件減少了定時(shí)約束,并且也因而減少了處理器12的處理時(shí) 間。圖8D是說明用于提供緩沖以減少應(yīng)用處理器在接收運(yùn)動(dòng)傳感器輸出中的處理的 本發(fā)明的第四方法470的流程圖。方法470使用硬件預(yù)處理的更加改進(jìn)的方法,以允許應(yīng)
20用處理器12減少在獲得傳感器數(shù)據(jù)中它的定時(shí)約束。方法在472開始,并且在步驟474,MPU 20接收傳感器數(shù)據(jù)且將傳感器數(shù)據(jù)存儲(chǔ)在 緩沖器中,如MPU的硬件緩沖器。以高速率以及捕獲運(yùn)動(dòng)傳感器數(shù)據(jù)通常所需的精確的定 時(shí)來采樣并存儲(chǔ)數(shù)據(jù)。在步驟476,MPU預(yù)處理傳感器數(shù)據(jù)以將數(shù)據(jù)減少到對(duì)于一個(gè)或多個(gè) 應(yīng)用的有關(guān)特性集。MPU可以包括與在應(yīng)用處理器軟件的運(yùn)動(dòng)算法層60中存在的運(yùn)動(dòng)算法 類似的運(yùn)動(dòng)算法,或者可以包括在應(yīng)用處理器軟件的運(yùn)動(dòng)算法層60中存在的運(yùn)動(dòng)算法的 子集。例如,在一些實(shí)施方式中,MPU可以通過處理傳感器數(shù)據(jù)檢測(cè)特定的手勢(shì)。該處理能 力可以確定哪個(gè)特征與在應(yīng)用處理器12上運(yùn)行的應(yīng)用有關(guān),和/或?yàn)閼?yīng)用程序提供高級(jí)信 息。例如,有關(guān)特征可以是從附加的慣性數(shù)據(jù)導(dǎo)數(shù)和積分中計(jì)算的參數(shù)。在步驟478,以比用于捕獲運(yùn)動(dòng)傳感器數(shù)據(jù)的采樣率低的采樣率,將有關(guān)特征集提 供給在應(yīng)用處理器12上的應(yīng)用程序。從而,例如,用于捕獲傳感器數(shù)據(jù)的IOOHz采樣率可 以減少到僅將有關(guān)信息提供給應(yīng)用處理器的5Hz采樣率。然后,可以將有關(guān)特征以減少的 采樣率提供給應(yīng)用程序(或提供給為了進(jìn)一步處理的適當(dāng)?shù)倪\(yùn)動(dòng)算法,其以減少的采樣率 將信息提供給應(yīng)用程序)。類似于圖8C的實(shí)施方式,使用該實(shí)施方式,對(duì)于在應(yīng)用處理器 12上的全部軟件減少了定時(shí)約束,并且從而也減少了處理器12的處理時(shí)間。盡管根據(jù)所示的實(shí)施方式已經(jīng)描述了本發(fā)明,但是本領(lǐng)域普通技術(shù)人員將容易地 看出,應(yīng)存在實(shí)施方式的變化并且那些變化在本發(fā)明的主旨和范圍內(nèi)。相應(yīng)地,可由本領(lǐng)域 普通技術(shù)人員作出許多修改,而不脫離所附權(quán)利要求的主旨和范圍。
2權(quán)利要求
一種用于向在運(yùn)動(dòng)傳感裝置上提供的一個(gè)或多個(gè)應(yīng)用提供接口的方法,所述方法包括從在所述運(yùn)動(dòng)傳感裝置上運(yùn)行的應(yīng)用程序接收高級(jí)命令,其中所述應(yīng)用程序?qū)崿F(xiàn)可用于在所述運(yùn)動(dòng)傳感裝置上使用的多種不同類型的應(yīng)用之一,所述高級(jí)命令請(qǐng)求來源于所述運(yùn)動(dòng)傳感裝置的多個(gè)運(yùn)動(dòng)傳感器的輸出的高級(jí)信息;轉(zhuǎn)變所述高級(jí)命令以引起由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù)的多個(gè)坐標(biāo)軸的低級(jí)處理,所述低級(jí)處理遵循應(yīng)用的類型的要求并響應(yīng)于接收所述高級(jí)命令而智能地根據(jù)所述運(yùn)動(dòng)傳感器數(shù)據(jù)確定所述高級(jí)信息,其中所述運(yùn)動(dòng)傳感器包括多個(gè)旋轉(zhuǎn)運(yùn)動(dòng)傳感器和多個(gè)線性運(yùn)動(dòng)傳感器,以及其中所述應(yīng)用程序不知道所述低級(jí)處理;以及將所述高級(jí)信息提供給所述應(yīng)用程序。
2.如權(quán)利要求1所述的方法,其中所述應(yīng)用的類型的要求包括用于從所述運(yùn)動(dòng)傳感器 獲得的所述運(yùn)動(dòng)傳感器數(shù)據(jù)的精確的采樣率。
3.如權(quán)利要求1所述的方法,其中以遵循所述應(yīng)用的要求的精確的采樣率從所述運(yùn)動(dòng) 傳感器獲得所述運(yùn)動(dòng)傳感器數(shù)據(jù),以及其中可用于在所述運(yùn)動(dòng)傳感裝置上使用的所述多種 不同類型的應(yīng)用中的至少兩種具有對(duì)于所述運(yùn)動(dòng)傳感器數(shù)據(jù)的不同采樣率要求。
4.如權(quán)利要求1所述的方法,其中將所述高級(jí)信息提供給所述應(yīng)用程序包括提供所述 高級(jí)信息,以便使它以適合于由所述應(yīng)用程序?qū)崿F(xiàn)的所述應(yīng)用的類型的采樣率被所述應(yīng)用 程序接收。
5.如權(quán)利要求1所述的方法,其中所述高級(jí)信息以比用于采樣所述運(yùn)動(dòng)傳感器數(shù)據(jù)的 采樣率低的采樣率被所述應(yīng)用程序接收。
6.如權(quán)利要求1所述的方法,其中實(shí)現(xiàn)可用于在所述運(yùn)動(dòng)傳感裝置上使用的所述不同 類型的應(yīng)用的多個(gè)不同應(yīng)用程序同時(shí)在所述運(yùn)動(dòng)傳感裝置上運(yùn)行。
7.如權(quán)利要求6所述的方法,其中所述多個(gè)不同應(yīng)用程序要求所述高級(jí)信息以彼此不 同的采樣率被提供,以及其中用于所述應(yīng)用中的一個(gè)的所述運(yùn)動(dòng)傳感器數(shù)據(jù)的采樣率通過 對(duì)用于所述應(yīng)用中的不同一個(gè)的所述運(yùn)動(dòng)傳感器數(shù)據(jù)的采樣率進(jìn)行濾波而獲得。
8.如權(quán)利要求1所述的方法,其中可用于在所述運(yùn)動(dòng)傳感裝置上使用的所述多種不同 類型的應(yīng)用包括運(yùn)動(dòng)傳感應(yīng)用、圖像穩(wěn)定性應(yīng)用、以及導(dǎo)航應(yīng)用中的至少一個(gè)。
9.如權(quán)利要求1所述的方法,其中所述運(yùn)動(dòng)傳感器數(shù)據(jù)的處理包括在所述運(yùn)動(dòng)傳感裝 置的操作期間在后臺(tái)運(yùn)行一個(gè)或多個(gè)運(yùn)動(dòng)算法,所述運(yùn)動(dòng)算法為了滿足一個(gè)或多個(gè)條件而 檢查所述運(yùn)動(dòng)傳感器數(shù)據(jù),這引起所述應(yīng)用程序被通知。
10.如權(quán)利要求1所述的方法,還包括緩沖以較高采樣率和精確定時(shí)要求獲得的所述 運(yùn)動(dòng)傳感器數(shù)據(jù),以及處理所緩沖的運(yùn)動(dòng)傳感器數(shù)據(jù)并以較低采樣率和放寬的定時(shí)要求將 所緩沖的運(yùn)動(dòng)傳感器數(shù)據(jù)提供給所述應(yīng)用程序。
11.如權(quán)利要求1所述的方法,其中所述多個(gè)旋轉(zhuǎn)運(yùn)動(dòng)傳感器包括三個(gè)陀螺儀,以及其 中所述多個(gè)線性運(yùn)動(dòng)傳感器包括三個(gè)加速計(jì),所述陀螺儀和加速計(jì)提供6-坐標(biāo)軸感測(cè)。
12.如權(quán)利要求1所述的方法,其中從所述運(yùn)動(dòng)傳感裝置的附加的傳感器進(jìn)一步確定 所述高級(jí)信息,所述附加的傳感器包括溫度傳感器、壓力傳感器、以及羅盤中的至少一個(gè)。
13.如權(quán)利要求1所述的方法,其中所述低級(jí)處理包括檢查所述運(yùn)動(dòng)傳感裝置的全部 所述運(yùn)動(dòng)傳感器的全部輸出以確定所述高級(jí)信息。
14.如權(quán)利要求13所述的方法,其中在檢查所述運(yùn)動(dòng)傳感器的所述全部輸出之后,所 述低級(jí)處理確定對(duì)于所述應(yīng)用的類型選擇性地僅使用所述運(yùn)動(dòng)傳感器的坐標(biāo)軸的子集。
15.如權(quán)利要求14所述的方法,其中所述低級(jí)處理關(guān)閉不用于所述應(yīng)用的類型的運(yùn)動(dòng) 傳感器的操作,以節(jié)省能量消耗或處理帶寬。
16.如權(quán)利要求1所述的方法,其中所述低級(jí)處理基于特定的高級(jí)命令確定所述運(yùn)動(dòng) 傳感器的哪些輸出選擇性地用于確定所述高級(jí)信息。
17.如權(quán)利要求1所述的方法,其中所述低級(jí)處理至少部分地由不同于所述運(yùn)動(dòng)傳感 裝置的應(yīng)用處理器且與所述運(yùn)動(dòng)傳感裝置的應(yīng)用處理器通信的運(yùn)動(dòng)處理單元來執(zhí)行。
18.一種將來自在運(yùn)動(dòng)傳感裝置上的運(yùn)動(dòng)傳感器的運(yùn)動(dòng)傳感器數(shù)據(jù)提供給在所述運(yùn)動(dòng) 傳感裝置上運(yùn)行的應(yīng)用程序的方法,所述方法包括以第一采樣率采樣由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù),其中所述運(yùn)動(dòng)傳感器包 括多個(gè)旋轉(zhuǎn)運(yùn)動(dòng)傳感器和多個(gè)線性運(yùn)動(dòng)傳感器;在緩沖器中存儲(chǔ)所述運(yùn)動(dòng)傳感器數(shù)據(jù);以及以由所述應(yīng)用程序?qū)崿F(xiàn)的應(yīng)用所要求的第二采樣率,取回用于所述應(yīng)用程序的至少一 部分緩沖的運(yùn)動(dòng)傳感器數(shù)據(jù),所述第二采樣率比所述第一采樣率低。
19.如權(quán)利要求18所述的方法,其中所述緩沖器是在與應(yīng)用處理器分離的運(yùn)動(dòng)處理單 元中實(shí)現(xiàn)的硬件緩沖器。
20.如權(quán)利要求18所述的方法,其中所述緩沖器是在存儲(chǔ)器中實(shí)現(xiàn)的軟件緩沖器,以 及其中中斷程序采樣所述運(yùn)動(dòng)傳感器數(shù)據(jù)并中斷運(yùn)行所述應(yīng)用程序的應(yīng)用處理器,以取回 至少一部分所述緩沖的運(yùn)動(dòng)傳感器數(shù)據(jù)。
21.如權(quán)利要求18所述的方法,其中與應(yīng)用處理器分離的運(yùn)動(dòng)處理單元掃描所存儲(chǔ)的 運(yùn)動(dòng)傳感器數(shù)據(jù)以檢測(cè)與所述應(yīng)用程序有關(guān)的特性。
22.如權(quán)利要求18所述的方法,其中與應(yīng)用處理器分離的運(yùn)動(dòng)處理單元將所述緩沖器 中的所述運(yùn)動(dòng)傳感器數(shù)據(jù)減少到與所述應(yīng)用程序有關(guān)的特征集,以及其中所述緩沖的運(yùn)動(dòng) 傳感器數(shù)據(jù)的所取回的部分是所述特征集。
23.一種處理來自在運(yùn)動(dòng)傳感器裝置上的運(yùn)動(dòng)傳感器的運(yùn)動(dòng)傳感器數(shù)據(jù)的方法,所述 方法包括以第一采樣率采樣由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù),以便使所述運(yùn)動(dòng)傳感器 數(shù)據(jù)用于將信息提供給在所述運(yùn)動(dòng)傳感器裝置上實(shí)現(xiàn)第一應(yīng)用的第一應(yīng)用程序,其中所述 運(yùn)動(dòng)傳感器包括多個(gè)旋轉(zhuǎn)運(yùn)動(dòng)傳感器和多個(gè)線性運(yùn)動(dòng)傳感器;以及將所述運(yùn)動(dòng)傳感器數(shù)據(jù)低通濾波到比所述第一采樣率低的第二采樣率,其中所濾波的 運(yùn)動(dòng)傳感器數(shù)據(jù)用于將信息提供給在所述運(yùn)動(dòng)傳感器裝置上實(shí)現(xiàn)不同于所述第一應(yīng)用的 第二應(yīng)用的第二應(yīng)用程序,其中所述第一應(yīng)用程序和所述第二應(yīng)用程序同時(shí)在所述運(yùn)動(dòng)傳 感器裝置上運(yùn)行,以及其中所述第一應(yīng)用要求運(yùn)動(dòng)傳感器數(shù)據(jù)以比所述第二采樣率大的采 樣率被采樣。
24.一種計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)程序指令,所述程序指令由計(jì)算機(jī)執(zhí) 行并用于向在運(yùn)動(dòng)傳感裝置上提供的一個(gè)或多個(gè)應(yīng)用提供接口,所述程序指令執(zhí)行步驟, 所述步驟包括從在所述運(yùn)動(dòng)傳感裝置上運(yùn)行的應(yīng)用程序接收高級(jí)命令,其中所述應(yīng)用程序?qū)崿F(xiàn)可用于在所述運(yùn)動(dòng)傳感裝置上使用的多種不同類型的應(yīng)用之一,所述高級(jí)命令請(qǐng)求來源于所述 運(yùn)動(dòng)傳感裝置的多個(gè)運(yùn)動(dòng)傳感器的輸出的高級(jí)信息;轉(zhuǎn)變所述高級(jí)命令以引起由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù)的多個(gè)坐標(biāo)軸的 低級(jí)處理,所述低級(jí)處理遵循應(yīng)用的類型的要求并響應(yīng)于接收所述高級(jí)命令而智能地根據(jù) 所述運(yùn)動(dòng)傳感器數(shù)據(jù)確定所述高級(jí)信息,其中所述運(yùn)動(dòng)傳感器包括多個(gè)旋轉(zhuǎn)運(yùn)動(dòng)傳感器和 多個(gè)線性運(yùn)動(dòng)傳感器,以及其中所述應(yīng)用程序不知道所述低級(jí)處理;以及將所述高級(jí)信息提供給所述應(yīng)用程序。
25.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其中所述應(yīng)用的類型的要求包括用于從所 述運(yùn)動(dòng)傳感器獲得的所述運(yùn)動(dòng)傳感器數(shù)據(jù)的精確的采樣率。
26.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其中所述運(yùn)動(dòng)傳感器數(shù)據(jù)以遵循所述應(yīng)用 的要求的精確的采樣率從所述運(yùn)動(dòng)傳感器獲得,以及其中可用于在所述運(yùn)動(dòng)傳感裝置上使 用的所述多種不同類型的應(yīng)用中的至少兩種具有對(duì)于所述運(yùn)動(dòng)傳感器數(shù)據(jù)的不同采樣率 要求。
27.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其中將所述高級(jí)信息提供給所述應(yīng)用程序 包括提供所述高級(jí)信息,以便使它以適合于由所述應(yīng)用程序?qū)崿F(xiàn)的所述應(yīng)用的類型的采樣 率被所述應(yīng)用程序接收。
28.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其中實(shí)現(xiàn)可用于在所述運(yùn)動(dòng)傳感裝置上使 用的所述不同類型的應(yīng)用的多個(gè)不同應(yīng)用程序同時(shí)在所述運(yùn)動(dòng)傳感裝置上運(yùn)行。
29.如權(quán)利要求28所述的計(jì)算機(jī)可讀介質(zhì),其中所述多個(gè)不同應(yīng)用程序要求所述高級(jí) 信息以彼此不同的采樣率被提供,以及其中用于所述應(yīng)用中的一個(gè)的所述運(yùn)動(dòng)傳感器數(shù)據(jù) 的采樣率通過對(duì)用于所述應(yīng)用中的不同一個(gè)的所述運(yùn)動(dòng)傳感器數(shù)據(jù)的采樣率進(jìn)行濾波而 獲得。
30.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),還包括緩沖以較高采樣率和精確定時(shí)要 求獲得的所述運(yùn)動(dòng)傳感器數(shù)據(jù),以及處理所緩沖的運(yùn)動(dòng)傳感器數(shù)據(jù)并以較低采樣率和放寬 的定時(shí)要求將所緩沖的運(yùn)動(dòng)傳感器數(shù)據(jù)提供給所述應(yīng)用程序。
31.一種運(yùn)動(dòng)傳感裝置,該運(yùn)動(dòng)傳感裝置包括用于在運(yùn)動(dòng)傳感裝置上提供的一個(gè)或多 個(gè)應(yīng)用的接口,所述運(yùn)動(dòng)傳感裝置包括運(yùn)動(dòng)處理單元,該運(yùn)動(dòng)處理單元包括用于感測(cè)所述運(yùn)動(dòng)傳感裝置的運(yùn)動(dòng)的多個(gè)運(yùn)動(dòng)傳 感器,所述運(yùn)動(dòng)傳感器包括多個(gè)旋轉(zhuǎn)運(yùn)動(dòng)傳感器和多個(gè)線性運(yùn)動(dòng)傳感器;以及應(yīng)用處理器,該應(yīng)用處理器耦合到所述運(yùn)動(dòng)處理單元,所述應(yīng)用處理器提供應(yīng)用程序,該應(yīng)用程序?qū)崿F(xiàn)可用于在所述運(yùn)動(dòng)傳感裝置上使用的多種不同類型的應(yīng)用 之一,以及應(yīng)用接口,該應(yīng)用接口從所述應(yīng)用程序接收高級(jí)命令,所述高級(jí)命令請(qǐng)求來源于所述 運(yùn)動(dòng)傳感裝置的所述運(yùn)動(dòng)傳感器的輸出的高級(jí)信息,其中所述應(yīng)用接口轉(zhuǎn)變所述高級(jí)命令 以引起由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù)的低級(jí)處理,所述低級(jí)處理遵循應(yīng)用的類 型的要求并響應(yīng)于接收所述高級(jí)命令而確定所述高級(jí)信息,其中所述應(yīng)用程序不知道所述 低級(jí)處理,以及其中所述應(yīng)用接口將所述高級(jí)信息提供給所述應(yīng)用程序。
全文摘要
裝置的運(yùn)動(dòng)傳感器和接口應(yīng)用程序。在一方面,從在運(yùn)動(dòng)傳感裝置上運(yùn)行的應(yīng)用程序接收高級(jí)命令,其中所述應(yīng)用程序?qū)崿F(xiàn)可用于在所述裝置上使用的多種不同類型的應(yīng)用之一。所述高級(jí)命令請(qǐng)求來源于所述裝置的運(yùn)動(dòng)傳感器的輸出的高級(jí)信息,所述運(yùn)動(dòng)傳感器包括旋轉(zhuǎn)運(yùn)動(dòng)傳感器和線性運(yùn)動(dòng)傳感器。轉(zhuǎn)變命令以引起由所述運(yùn)動(dòng)傳感器輸出的運(yùn)動(dòng)傳感器數(shù)據(jù)的低級(jí)處理,所述低級(jí)處理遵循應(yīng)用的類型的要求并響應(yīng)于所述命令確定所述高級(jí)信息。所述應(yīng)用程序不知道所述低級(jí)處理,以及將所述高級(jí)信息提供給所述應(yīng)用程序。
文檔編號(hào)G06F15/76GK101911048SQ200980102343
公開日2010年12月8日 申請(qǐng)日期2009年1月15日 優(yōu)先權(quán)日2008年1月18日
發(fā)明者史蒂文·S·納西里, 大衛(wèi)·薩克斯, 約瑟夫·姜 申請(qǐng)人:因文森斯公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
洞头县| 仙桃市| 开封市| 格尔木市| 大足县| 丘北县| 镇安县| 高密市| 慈溪市| 西畴县| 荔波县| 琼海市| 翁牛特旗| 都兰县| 泰兴市| 罗江县| 安多县| 吉木萨尔县| 浏阳市| 万宁市| 麻城市| 菏泽市| 徐汇区| 故城县| 育儿| 华宁县| 蓬安县| 廊坊市| 应城市| 鞍山市| 桂平市| 车险| 苗栗县| 新丰县| 明星| 玉溪市| 永州市| 桂东县| 镇原县| 博兴县| 松原市|