<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          Arm傳感器融合

          作者:Simon Bramble 時間:2020-03-30 來源:電子產(chǎn)品世界 收藏

            Phil?Burr?(Arm嵌入式產(chǎn)品組合管理總監(jiān)),Bryan?Cook?(Hillcrest?Labs/CEVA研發(fā)部首席工程師)

          本文引用地址:http://www.ex-cimer.com/article/202003/411464.htm

            摘?要:出色的=出色的算法+出色的平臺。要贏得一級方程式比賽,需要一名出色的車手和一輛出色的賽車。同樣,要為用戶提供最佳體驗,需要出色的算法和出色的處理器。本文旨在揭示將Freespace算法與Arm設(shè)備結(jié)合使用能帶來驚人的性能、高效的成本和功耗指標(biāo)的關(guān)鍵原因。

            關(guān)鍵詞:;;;

            0 引言:及其他

            雖然基于慣性運動傳感器的傳感器融合已經(jīng)存在了一段時間,但移動應(yīng)用程序的最新發(fā)展使人們開始逐漸關(guān)注消費類和工業(yè)設(shè)備上傳感器融合的算法、處理器以及基礎(chǔ)結(jié)構(gòu)。

            從游戲機(jī)到智能電視遙控器,再到最近的智能手機(jī),傳感器融合已被廣泛用于為消費類電子產(chǎn)品創(chuàng)建更直觀、有趣的交互體驗。十多年來,Hillcrest一直是這一領(lǐng)域的先驅(qū)。Hillcrest開發(fā)了專有的信號處理技術(shù),利用慣性和磁性傳感器將人類的運動轉(zhuǎn)化為高質(zhì)量的、隨時可使用的運動信息。

            隨著越來越多新型智能手機(jī)和平板電腦開始采用“”傳感器組,客戶一直在向Hillcrest尋求有關(guān)如何從這些傳感器中獲得最大性能的建議,以及如何應(yīng)用新的基于運動的應(yīng)用程序使其產(chǎn)品與眾不同。目標(biāo)應(yīng)用包括情境感知、室內(nèi)導(dǎo)航和手勢控制。但是,這些應(yīng)用需要“always-on(永遠(yuǎn)在線)”的運動感應(yīng),傳感器會不斷采樣數(shù)據(jù)并尋找有意義的動作。向“always-on”轉(zhuǎn)變需要改變架構(gòu)——將基于應(yīng)用處理器(AP)進(jìn)行的傳感器管理,轉(zhuǎn)變?yōu)閷S玫牡凸?a class="contentlabel" href="http://www.ex-cimer.com/news/listbylabel/label/傳感器中樞">傳感器中樞核心。

            隨著功耗和性能優(yōu)勢的日益明顯,這些傳感器中樞已經(jīng)迅速普及。但是,它們的成功將取決于算法和處理器的優(yōu)化,以確保高性能和低功耗。本文將說明傳感器融合算法(例如Hillcrest的Freespace軟件)和處理器(例如Arm Cortex-M系列)如何協(xié)同工作,以形成兼具低功耗、傳感無所不在這兩大優(yōu)點的成功產(chǎn)品。

            1 滿足“always-on”傳感要求的應(yīng)用

            在討論傳感器融合在傳感器中樞中的技術(shù)基礎(chǔ)之前,讓我們看一下這種發(fā)展背后的驅(qū)動力:利用技術(shù)基礎(chǔ)來改善移動用戶體驗的應(yīng)用程序。

            情境感知是涵蓋其中某些應(yīng)用程序的一類,從根本上講,這些應(yīng)用程序使用手機(jī)的傳感器來檢測正在發(fā)生的事情,并使用該信息來改變手機(jī)的行為。例如現(xiàn)在,某些手機(jī)內(nèi)置了多達(dá)20個物理傳感器(例如加速度計、GPS、Wi-Fi、氣壓計和照相機(jī)),每個傳感器都檢測手機(jī)、用戶和環(huán)境的不同之處。也有虛擬傳感器,例如您的日歷和本地流量報告。就像人腦解釋從其傳感器(觸覺、聽覺、視覺等)傳來的信息一樣,移動設(shè)備可以充當(dāng)“大腦”來解釋來自這些傳感器的數(shù)據(jù),以確定設(shè)備和用戶的情境,并利用這種情境提供更直觀的用戶體驗。

            但是,情境感知取決于時間并受時間驅(qū)動。情境的變化取決于電話是正面朝下放在桌子上的時間是1 s還是1天,取決于某人只是將視線從屏幕上移開1 s,還是已經(jīng)從屏幕上移開視線好幾分鐘。因此,為了確保正確解釋情境,必須不斷對其進(jìn)行采樣。如果移動設(shè)備依賴于零星的情境截圖,則在解釋該情境時會出錯。由此感知所產(chǎn)生的情境對用戶來說不僅沒有益處,而且會破壞體驗。因此,傳感器的“always-on”對于這些應(yīng)用程序的正常運行至關(guān)重要。

            如果我們能夠為這些應(yīng)用程序提供始終在線的智能情境感知信息,那么就可以為用戶帶來更有價值的體驗。一些比較常見的使用場景包括:在檢測到您正在駕駛并且不能用手和眼睛操作電話時啟用音頻通知和語音命令;在您離開辦公室之前提醒您通勤路上交通繁忙;當(dāng)您在圖書館時切換為振動;自動跟蹤您白天的活動情況和燃燒的卡路里。

            2 可靠性和準(zhǔn)確性始于精度

            1)算法端

            如果傳感器僅具有12位精度,那么16位的處理精度就足以實現(xiàn)出色的算法。畢竟還多出4位,不是嗎?

            好吧,不完全是。事實證明,對于算法設(shè)計師而言,最重要的事情之一是整個系統(tǒng)的數(shù)值精度。盡管傳感器分辨率也是關(guān)鍵因素,但它并不是所需條件的唯一決定因素。有許多用于校準(zhǔn)、解釋、融合和其他功能的內(nèi)部變量,它們需要各種級別的精度和范圍。比如在Kalman濾波器中進(jìn)行方差估計時,同一項需要較大才能處理主要調(diào)整,需要較小才能處理精細(xì)調(diào)整。實際上,有些甚至可能需要浮點。

            如果算法設(shè)計師無法提供足夠的分辨率,很可能影響到算法的性能。如果算法設(shè)計師在任何地方都使用完整的浮點運算,則會導(dǎo)致較差的平臺性能,產(chǎn)生額外的成本、運行時間變慢且功耗更高。正確的解決方案是將算法和平臺融合在一起。

            由于變量范圍是固定的,定點運算需要更高的精度以避免上溢和嚴(yán)重下溢。同樣,復(fù)雜的定點算法在整個算法中通常需要二進(jìn)制點(Q格式)的不同位置。

            2)平臺影響

            對于算法設(shè)計師來說,最好的平臺是在字長方面提供很大靈活性的平臺。這允許不同的算法設(shè)計要求在函數(shù)甚至變量基礎(chǔ)上與基礎(chǔ)處理器進(jìn)行自定義擬合。這正是Hillcrest使用Freespace所做的工作,而Arm的功能則可以使該過程更加順利。

            在Cortex-M系列處理器中,有許多可確保高效算法性能的功能。

            3)Cortex-M0+

            Cortex-M0+和Cortex-M23設(shè)計采用二級流水線,為傳感器融合應(yīng)用提供一流的能效。它實現(xiàn)了Armv6-M指令集,并支持帶有32位結(jié)果(MULS)的可選1周期乘法。這是傳感器處理算法的關(guān)鍵指令。

            Cortex-M0+還支持可選的單周期I/O總線,專用于外設(shè),并且獨立于存儲器子系統(tǒng)。

            4)Cortex-M3/Cortex-M4

            Cortex-M3實現(xiàn)了Armv7-M指令集,該指令集增加了一些功能,使其能夠非常有效地使用定點算法實現(xiàn)復(fù)雜算法。

            ● 長乘法指令:SMULL。這將兩個32位整數(shù)相乘并將結(jié)果保存為64位整數(shù)。該指令對于實現(xiàn)32位定點數(shù)乘法至關(guān)重要。具有32位結(jié)果的32位乘法是不夠的,因為很少有僅需要最低有效的32位的情況。

            ● 長乘累加指令:SMLAL。該指令提高了定點矩陣乘法的內(nèi)部循環(huán)和FIR濾波功能的效率。

            ● 對于大多數(shù)運算,靈活的操作數(shù)2允許按常數(shù)或寄存器進(jìn)行移位。在定點算法中,例如,當(dāng)對具有不同Q格式的定點變量進(jìn)行運算或在定點變量之間進(jìn)行轉(zhuǎn)換時,需要進(jìn)行一些移位。由于Q格式是固定的,并且是編譯器通常已知的格式,因此可以將其嵌入單個指令中,從而大大提高了性能。

            ● 計算前導(dǎo)零指令:CLZ。該指令對前導(dǎo)零進(jìn)行計數(shù),并實現(xiàn)快速歸一化和算法自適應(yīng),以提供浮點算法的某些優(yōu)點。

            ● 整數(shù)除法(UDIV和SDIV)。與在軟件中執(zhí)行相同的除法相比,硬件除法提供了可衡量的性能優(yōu)勢。請注意,這僅提供32位除法。對于定點數(shù)學(xué),通常的情況是將64位數(shù)字除以32位數(shù)字,得到32位結(jié)果(長乘法指令的反函數(shù))。雖然未提供此長除法指令,但此長除法可以利用UDIV指令進(jìn)行更有效的除法。Cortex-M4增加了對可選浮點單元的支持,這極大地加速了不容易適應(yīng)定點計算的算法,例如本應(yīng)依賴于軟浮點實現(xiàn)的矩陣分解。此外,通過將許多DSP擴(kuò)展利用到指令集,包括SIMD和具有飽和算法的指令,可以進(jìn)一步改善定點數(shù)學(xué)。

            Cortex-M4處理器中的浮點單元(FPU)提供如下。

            ● 單精度(C浮點)數(shù)據(jù)處理操作的32位指令。

            ● 乘法指令和累加指令的組合可提高精度(融合MAC)。

            ● 對轉(zhuǎn)換、加法、減法、與可選累加的乘法、除法和平方根運算的硬件支持。

            ● 對異常和所有IEEE舍入模式的硬件支持。

            ● 32個專用的32位單精度寄存器,也可尋址為16個雙字寄存器。

            ● 解耦的三級指令流水線。

            Cortex-M33處理器增加了TrustZone安全性,使開發(fā)人員能夠使用熟悉的編程模型來更輕松地實現(xiàn)軟件隔離,并為當(dāng)今的物聯(lián)網(wǎng)和嵌入式設(shè)備所需的安全性奠定了基礎(chǔ)。

            5)精度摘要

            Arm提供的字號選項和跨不同產(chǎn)品的智能功能安排可靈活地根據(jù)所需平臺定制算法。對于Freespace,有針對Cortex-M0+、Cortex-M23、Cortex-M3和Cortex-M4的版本。雖然每個平臺的具體實現(xiàn)各不相同,但是由于Arm設(shè)備中的智能體系結(jié)構(gòu),移植變得容易。然后,由于我們的算法在內(nèi)部是完全模塊化的,并且在結(jié)構(gòu)和流程上都具有自適應(yīng)性,因此Freespace與Arm平臺的配對非常簡單,并且可以在給定的功耗、成本和尺寸目標(biāo)下實現(xiàn)最佳性能。

            3 如果沒有接口,系統(tǒng)就沒用了

            1)算法端

            根據(jù)定義,傳感器融合是指讀取多個傳感器,然后計算并輸出一組推斷的組合輸出,以供系統(tǒng)其余部分使用。如果處理器中沒有良好的I/O接口和任務(wù)管理功能,則算法性能會受到影響。更好的算法至少需要減少采樣檢測、降低延遲和抖動、可靠的數(shù)據(jù)鏈接以及對輸入和輸出數(shù)據(jù)進(jìn)行分組的能力。

            2)平臺影響

            Cortex-M處理器支持線程模式和處理者模式,用于將應(yīng)用程序與系統(tǒng)資源正確隔離,支持SysTick計時器,用于在任務(wù)之間進(jìn)行時間分片,并支持具有復(fù)雜中斷管理方案的嵌套矢量中斷控制器,軟件開銷非常低。

            3)接口和平臺摘要

            Arm Cortex-M處理器系列提供了一組接口,I/O管理和任務(wù)管理技術(shù),以提供復(fù)雜的任務(wù)支持,例如Freespace傳感器融合軟件。復(fù)雜的算法需要復(fù)雜的硬件才能有效執(zhí)行低功耗。

            4 傳感器解釋和校準(zhǔn)

            1)算法端

            傳感器數(shù)據(jù)包括許多損傷——噪聲、非線性和失調(diào)。甚至對于許多傳感器而言,哪怕知道基準(zhǔn)點也是極其困難的。舉例如下。

            根據(jù)加速度計讀數(shù)計算出的重力矢量估算值將校準(zhǔn)后的磁力計傳感器讀數(shù)轉(zhuǎn)換為航向角。但是,航向的計算非常敏感。即使在零重力偏移(ZGO)估算中出現(xiàn)17 mg的誤差,也會導(dǎo)致1°的俯仰角誤差,進(jìn)而導(dǎo)致多達(dá)2°的航向角誤差。但是加速度計并不包含絕對零點或ZGO值。零重力偏移(ZGO)值隨每個單獨的傳感器而變化,甚至對于給定的傳感器也會隨時間變化。

            請注意,此ZGO示例針對具體情況而言只是嘈雜的加速度計數(shù)據(jù)(當(dāng)然針對一般情況而言只是嘈雜的傳感器數(shù)據(jù))的眾多可能來源之一。每個傳感器都有其自己的一系列噪聲挑戰(zhàn),可以說磁力計構(gòu)成了最大的困難(外界磁場變換導(dǎo)致的非線性偏移)。因此,高端算法(如Freespace)需要隨著時間的推移以及環(huán)境變化自動學(xué)習(xí)并跟蹤這些損害,以便從傳感器數(shù)據(jù)中消除噪聲。

            如果傳感器融合算法轉(zhuǎn)而將嘈雜的傳感器數(shù)據(jù)作為輸入,則生成的融合數(shù)據(jù)也將是嘈雜的。Freespace傳感器融合軟件具有卓越性能的主要原因在于盡力從輸入的原始、嘈雜的傳感器數(shù)據(jù)中找出真實的傳感器信息,從而從根源上優(yōu)化輸出的結(jié)果中的噪聲。

            2)平臺影響

            從嘈雜的傳感器數(shù)據(jù)中獲取真實信息取決于能否使用正確的平臺功能。首先,系統(tǒng)需要一種有效的方法來實現(xiàn)持久性存儲。除了在會話中之外,還允許在會話之間進(jìn)行累積學(xué)習(xí)。

            Cortex-M處理器通過支持閃存和EEPROM提供持久性存儲。處理器可以通過閃存或RAM運行。由于指令流水線的存在和Thumb-2指令集的使用,閃存提取已經(jīng)優(yōu)化。

            該算法模塊,特別對于磁力計而言,包括許多復(fù)雜的自適應(yīng)濾波、模式識別和矩陣管理組件。為此,需要支持性的計算和分支指令集以及先進(jìn)的內(nèi)存管理技術(shù)。如上所述,這包括支持除法、計數(shù)前導(dǎo)零,立即數(shù)據(jù)指令等。

            3)傳感器解釋和校準(zhǔn)摘要

            Arm處理器的豐富功能使Hillcrest能夠定制傳感器解釋和校準(zhǔn)模塊的實施,同時保持算法性能和系統(tǒng)性能。

            5 有時所需的輸出不是事實

            1)算法端

            想象一下,傳感器是完美的,傳感器融合算法也是完美的。進(jìn)一步想象一下,我們正在使用顯示器上的光標(biāo),在完美傳感器上運行的完美傳感器融合算法是否會產(chǎn)生用戶喜歡的完美光標(biāo)控制系統(tǒng)?其實不行。

            原因是手持設(shè)備的所有動作并不都是有意的。還有人為震動引起的無意動作。用戶實際上只希望看到有意動作去驅(qū)動光標(biāo),而不是因震動產(chǎn)生的無意動作。試想一下,就相當(dāng)于您將激光筆照在屏幕上時發(fā)生了抖動。但是這種抖動是用戶根本不想看到的。

            由于這種情況遠(yuǎn)遠(yuǎn)超出了震動。傳感器融合通常必須權(quán)衡平滑度和精度。有時所需的輸出是預(yù)期錯誤最少的輸出,有時則是與最近歷史記錄最一致的輸出。在所有這些情況下,所需的輸出并不是真正真實的信息,這代表了諸如Freespace的出色傳感器融合實施中的額外處理步驟。

            2)平臺影響

            Cortex-M4和Cortex-M33包括一個高效的單周期MAC,負(fù)責(zé)加速大多數(shù)DSP算法的運行,從而使自適應(yīng)濾波特別容易實現(xiàn)。MAC支持16位和32位數(shù)據(jù)的各種單周期指令。例如,在一個周期內(nèi)執(zhí)行(32 x 32 +64 → 64)運算。

            3)所需的輸出處理摘要

            Arm處理器的基本功能使此步驟易于實現(xiàn),并使Hillcrest可以將實現(xiàn)與處理器的特定功能進(jìn)行匹配,同時在保持低功耗的同時保持算法和系統(tǒng)性能指標(biāo)。

            6 沒有電源管理,我們就死定了

            1)算法端

            對于大多數(shù)客戶來說,會使用戶在10 min內(nèi)耗盡電池電量的出色性能是不被接受的。實際上,即使長時間沒電也不是很理想。因此,F(xiàn)reespace等復(fù)雜算法包括許多可優(yōu)化功耗的特殊功能。

            這些功率優(yōu)化技術(shù)包括混合模式運算、樣本間預(yù)測、多速率運算等。它們還充分利用了傳感器本身的電源管理功能,有時還會利用處理核心的電源管理功能。目標(biāo)是在不影響性能的情況下最大化處理核心、傳感器甚至I/O接口的空閑時間和范圍。

            2)平臺側(cè)

            Cortex-M包括許多功能,可支持處理器級別和設(shè)備級別的電源管理。當(dāng)處理器本身具有各種級別的睡眠模式時,可以按需關(guān)閉某些模塊的電源。喚醒中斷控制器可用于最大限度地節(jié)省功率。

            創(chuàng)建事件驅(qū)動的軟件需要2個指令和1個控制位:

            ● WFI等待中斷;

            ● WFE等待事件;

            ● SLEEP-ON-EXIT位。

            處理器保持睡眠模式,直到中斷或事件到來。處理程序代碼執(zhí)行完成后,處理器將返回睡眠模式。

            3)電源管理摘要

            電源管理的目標(biāo)是在不犧牲算法 性能的情況下實現(xiàn)出色的電源性能。通過將Freespace等復(fù)雜算法與Cortex-M等功能強(qiáng)大且架構(gòu)合理的處理器相結(jié)合,可以實現(xiàn)出色的系統(tǒng)設(shè)計。關(guān)鍵是隨著時間的推移提高能源效率,這是指能夠在整個運算時間范圍內(nèi)以最低功耗執(zhí)行具有等待時間的算法。諸如Cortex-M4之類的高性能處理器大部分時間都處于深度睡眠狀態(tài),因為它只需要短暫的活動時間即可執(zhí)行代碼。因此,平均功耗大大降低。最終結(jié)果是實現(xiàn)了更簡單、更低功耗的系統(tǒng)設(shè)計。

            7 軟件工具和生態(tài)系統(tǒng)

            毫無疑問,為傳感器融合系統(tǒng)開發(fā)復(fù)雜的算法需要好的工具。Arm擁有當(dāng)今市場上最大的工具生態(tài)系統(tǒng),擁有來自各類競爭性供應(yīng)商、開源社區(qū)和Arm的超過35種IDE和調(diào)試系統(tǒng)。構(gòu)建復(fù)雜系統(tǒng)需要多種編譯器、調(diào)試器、操作系統(tǒng)和各種軟件模塊。

            8 結(jié)論

            在配備適當(dāng)工具的前提下,出色的傳感器融合系統(tǒng)設(shè)計既需要出色的傳感器融合算法,也需要出色的平臺來運行。將兩者組合在一起就像為頂級賽車配備頂級車手一樣。Freespace和Arm就是這樣的組合。

            在http://bit.ly/DSPCortex-M,可發(fā)現(xiàn)Arm DSP擴(kuò)展、軟件庫、生態(tài)系統(tǒng)合作伙伴和資源。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();