通過更簡單的途徑增加低功耗 9 軸運動跟蹤功能
發布時間:2018-03-13 責任編輯:wenwei
【導讀】越(yue)來(lai)越(yue)多(duo)的(de)可(ke)穿(chuan)戴(dai)設(she)備(bei)和(he)物(wu)聯(lian)網(wang)設(she)計(ji)將(jiang)檢(jian)測(ce)方(fang)向(xiang)和(he)跟(gen)蹤(zong)運(yun)動(dong)的(de)能(neng)力(li)視(shi)為(wei)重(zhong)要(yao)要(yao)求(qiu)。盡(jin)管(guan)已(yi)經(jing)有(you)各(ge)種(zhong)各(ge)樣(yang)的(de)可(ke)用(yong)運(yun)動(dong)傳(chuan)感(gan)器(qi),但(dan)工(gong)程(cheng)師(shi)還(hai)是(shi)不(bu)斷(duan)受(shou)到(dao)挑(tiao)戰(zhan),探(tan)索(suo)以(yi)更(geng)低(di)的(de)功(gong)耗(hao)更(geng)快(kuai)、更高效地集成這些設備,這在額外增加傳感器時尤其具有挑戰性。
為應對這些運動跟蹤挑戰,設計人員需要集成度更高的加速計、陀螺儀和磁力儀五金件以及更加高效且智能的數據融合算法。
本文將介紹 TDK InvenSense 提(ti)供(gong)的(de)同(tong)時(shi)為(wei)硬(ying)件(jian)和(he)軟(ruan)件(jian)提(ti)供(gong)幫(bang)助(zhu)的(de)解(jie)決(jue)方(fang)案(an)。然(ran)後(hou),本(ben)文(wen)還(hai)將(jiang)介(jie)紹(shao)設(she)計(ji)人(ren)員(yuan)如(ru)何(he)著(zhe)手(shou)將(jiang)該(gai)解(jie)決(jue)方(fang)案(an)應(ying)用(yong)於(yu)簡(jian)化(hua)需(xu)要(yao)複(fu)雜(za)的(de)運(yun)動(dong)感(gan)應(ying)功(gong)能(neng)的(de)複(fu)雜(za)低(di)功(gong)耗(hao)多(duo)傳(chuan)感(gan)器(qi)應(ying)用(yong)的(de)開(kai)發(fa)。
高效運動跟蹤的挑戰
liyongchuantongdeyundonggenzongfangfa,kaifarenyuankeyitongshiweiyingjianheruanjianchulizhongyaodejichengwenti。zaiyingjianfangmian,kaifarenyuantongchanghuinulizaicaiyongdandudechuanganqi(包括加速計、陀螺儀和磁力儀)構建的設計中最大限度減少其複雜性、尺chi寸cun和he零ling件jian的de數shu量liang。軟ruan件jian工gong程cheng師shi則ze需xu要yao特te別bie注zhu意yi同tong步bu各ge種zhong各ge樣yang的de傳chuan感gan器qi輸shu出chu,以yi創chuang建jian高gao級ji運yun動dong跟gen蹤zong應ying用yong中zhong所suo用yong傳chuan感gan器qi融rong合he算suan法fa所suo需xu的de統tong一yi數shu據ju流liu。對dui於yu硬ying件jian和he軟ruan件jian開kai發fa人ren員yuan而er言yan,需xu要yao在zai設she計ji中zhong集ji成cheng額e外wai傳chuan感gan器qi類lei型xing的de應ying用yong麵mian臨lin的de挑tiao戰zhan均jun顯xian著zhu增zeng加jia。
但是,使用 TDK InvenSense ICM-20948,開發人員便能夠以最少的工作量快速實現運動跟蹤設計或其他多傳感器係統。
運動跟蹤解決方案
TDK InvenSense ICM-20948 是一種多芯片模塊,尺寸隻有 3 mm x 3 mm x 1 mm,它集成了提供完整運動跟蹤解決方案所需的整套傳感器、信號鏈、數據處理和接口電路(圖 1)。

圖 1: TDK InvenSense ICM-20948 通過其專用的信號鏈、可編程濾波器、接口電路和數字運動處理器執行運動跟蹤。(圖片來源: TDK InvenSense)
該模塊在全麵工作模式下僅需要 3 毫安 (mA) 左右便能實現其全部功能。對於功率受限的應用,開發人員可以關閉模塊的某些部分,從而將完全休眠模式下各階段的電流消耗降低至 8 微安 (μA)。產生的功耗取決於工作電壓 (VDD),根據設計要求,該電壓值可以介於 1.71 伏特和 3.6 伏特。
單獨的信號鏈集成在模塊中,為集成的 3 軸加速計、3 軸陀螺儀和 3 軸磁力儀以及集成的溫度傳感器的每個通道提供支持。每個信號鏈都包括緩衝放大器和一個專用的 16 位模數轉換器 (ADC),以及特定於傳感器的電路,如驅動模塊的霍爾效應磁力儀的電流源。
為wei了le提ti高gao每mei種zhong信xin號hao鏈lian的de輸shu出chu,模mo塊kuai包bao括kuo適shi用yong於yu每mei種zhong進jin一yi步bu傳chuan感gan器qi類lei型xing的de信xin號hao調tiao節jie階jie段duan。例li如ru,磁ci力li儀yi輸shu出chu通tong過guo算suan術shu電dian路lu進jin行xing基ji本ben信xin號hao處chu理li,而er其qi他ta傳chuan感gan器qi的de輸shu出chu各ge自zi饋kui入ru自zi動dong的de傳chuan感gan器qi特te定ding調tiao節jie階jie段duan,以yi執zhi行xing采cai樣yang平ping均jun等deng處chu理li功gong能neng。開kai發fa人ren員yuan可ke以yi將jiang ICM-20948 設置為平均多達 128 個陀螺儀數據采樣,或者將加速計設置為平均多達 32 個采樣。最終,每個通道的信號調節階段的輸出饋入一組專用的傳感器寄存器中。
ICM-20948 的核心是一個專有的數字運動處理器 (DMP),用於提供各種不同的功能,包括執行運動處理算法、校準和自測試。在正常工作期間,DMP 會處理來自專用傳感器寄存器的數據。然後再將結果存儲在模塊的集成式 FIFO 中,供主機 MCU 通過共享的 I2C 或 SPI 總線訪問。
DMP 和 FIFO degongnengweihenduoshijiyingyongtigongzhongyaogongneng。henduoqingkuangxia,yingyongyixiangduijiaomandesudugengxinqiyundonggenzongjieguo,shenzhiyunxuqizhujichuliqizaigengxinzhijianxiumian,yijiangdizonggonghao。raner,yundonggenzongsuanfaxuyaodegengxinsudumingxiangenggao,yiquebaoqizaiyingyongqingqiugengxinshiyizuidideyanshitigongjingquedeshuju。DMP 能夠在不需要主機參與的情況下維持高更新速度,這有助於確保準確性,而不會對主機應用本身的性能或功耗強加額外的要求。
簡單的集成
ICM-20948 結合了小封裝、係統集成功能及主機獨立操作等特點,特別適合在移動設備、可穿戴設備和物聯網設計中使用。模塊的高水平集成意味著,開發人員僅使用三個電容器便可以執行典型的運動跟蹤設計。按照 TDK InvenSense 使用陶瓷 X7R 零件的建議,開發人員將在模塊的 REGOUT 引腳上增加一個 0.1 μF 電容器進行穩壓器濾波,並在其 VDD 和 VDDIO 引腳上增加一個該電容器用於電源旁通(圖 2)。

圖 2: 設計人員可以將 TDK InvenSense ICM-20948 輕鬆添加到基於 MCU 的設計中,從而通過 SPI(此處所示)或 I2C 接口連接到 MCU,後者使用相同的配置,但引腳 22 (nCS) 與 VDDIO 相關聯。(圖片來源: TDK InvenSense)
雖然 ICM-20948 為(wei)運(yun)動(dong)跟(gen)蹤(zong)設(she)計(ji)提(ti)供(gong)了(le)近(jin)乎(hu)直(zhi)接(jie)替(ti)代(dai)型(xing)的(de)解(jie)決(jue)方(fang)案(an),但(dan)很(hen)多(duo)應(ying)用(yong)還(hai)是(shi)對(dui)其(qi)他(ta)傳(chuan)感(gan)器(qi)類(lei)型(xing)提(ti)出(chu)了(le)要(yao)求(qiu)。為(wei)幫(bang)助(zhu)開(kai)發(fa)人(ren)員(yuan)簡(jian)化(hua)這(zhe)些(xie)多(duo)傳(chuan)感(gan)器(qi)設(she)計(ji),ICM-20948 為其他外部傳感器提供單獨的 I2C 接口和內置支持。開發人員在此將兼容 I2C 的智能傳感器連接到模塊的專用輔助 I2C 端口(圖 3)。

圖 3: 在 SPI(或 I2C)與主機 MCU 連接的同時,開發人員可以使用 TDK InvenSense ICM-20948 模塊的輔助 I2C 接口(AUX_CL 和 AUX_DA)連接外部傳感器,並通過 ICM-20948 的輔助設備專用寄存器管理它們。(圖片來源: TDK InvenSense)
在正常操作中,ICM-20948 將充當 I2C 總線控製器,以與外部傳感器通信。在此模式下,開發人員可編程一組專用的模塊寄存器,以定義外部設備的 I2C 地址、輸出數據地址以及其他的傳輸參數。用此信息,模塊可以將外部傳感器數據讀入其 FIFO 和外部設備數據寄存器中,從而在傳感器 I2C 總線上使用單字節或多字節讀取,而不會涉及到主機 MCU。
ICM-20948 提供專門設計用於協調 ICM-20948 與外部傳感器之間時間的一項額外功能。除了使用模塊的專用中斷 INT 引腳之外,開發人員還可以使用外部傳感器的中斷或同步脈衝驅動模塊的 FSYNC 引腳。例如,在圖像穩定應用中,開發人員可以使用圖像傳感器的幀同步輸出來將圖像數據與 ICM-20948 傳感器讀數同步。使用模塊的 FSYNC_CONFIG 寄存器,開發人員甚至可以將模塊配置為測量外部傳感器 FSYNC 事件與 ICM-20948 數據事件之間的時間,從而在圖像和運動數據間提供更密集的同步。
但是,作為專用的運動跟蹤設備,ICM-20948 缺乏使用一般由主機 MCU 處chu理li的de那na種zhong設she備bei特te定ding設she置zhi操cao作zuo來lai配pei置zhi外wai部bu傳chuan感gan器qi所suo需xu的de功gong能neng。為wei簡jian化hua係xi統tong初chu始shi化hua過guo程cheng,該gai模mo塊kuai提ti供gong一yi種zhong直zhi通tong模mo式shi,以yi使shi用yong集ji成cheng的de接jie口kou旁pang通tong多duo路lu複fu用yong器qi將jiang主zhu機ji係xi統tong處chu理li器qi直zhi接jie連lian接jie到dao外wai部bu傳chuan感gan器qi上shang。
在直通模式下,該設備使用其集成的模擬開關將輔助 I2C 引腳 AUX_CL(引腳 7)和 AUX_DA(引腳 21)直接以電氣方式連接到主機 I2C 總線(引腳 23 和 24)。gaigongzuomoshitigongyizhongjiandandefangfa,yiyunxuzhujichuliqichuliyumeigewaibuchuanganqixiangguanderenhepeizhiheshezhiyaoqiu。chushihuahou,kaifarenyuanjinyongpangtongduolufuyongqi,yiyunxu ICM-20948 接管正常操作時的外部傳感器訪問。
快速開發
盡管 ICM-20948 提出了相對簡單的接口要求,但希望評估運動跟蹤解決方案的開發人員甚至可以避免該水平的硬件原型開發。TDK InvenSense 的 DK-20948 評估板和參考設計提供現成的開發平台,其結合了主機 MCU、嵌入式調試器、USB 接口和用於增加其他傳感器的多個連接器、無線連接和其他功能(圖 4)。

圖 4: TDK InvenSense DK-20948 板提供一種完整的運動感應設計,其結合了 ICM-20948 模塊與 Microchip Technology ATSAMG55J19B MCU(左側中間)和基於 Microchip AT32UC3A4256 MCU(位於板的後側)的嵌入式調試器。(圖片來源: TDK InvenSense)
DK-20948 板基於 Microchip Technology ATSAMG55J19B MCU,使用 ICM-20948 提供完整的運動傳感器設計。同時,該板包括一個提供嵌入式調試功能的 Microchip AT32UC3A4256 MCU,從而在與主機 ATSAMG55 MCU 結合使用時消除對外部工具的需求。開發人員可以使用該板評估 ICM-20948,在此過程中,無需進一步的硬件工作或者其他定製或可用子板來擴展其功能。開發人員完成其 ICM-20948 評估後,可以使用套件的示意圖、詳細的 BOM 和板設計文件創建定製設計。
對於軟件工程師而言,DK-20948 套件同樣包括用於快速評估和定製開發的選項。對於評估,公司基於 MotionLink GUI 的de工gong具ju可ke使shi開kai發fa人ren員yuan探tan索suo不bu同tong的de配pei置zhi設she置zhi及ji評ping估gu它ta們men對dui所suo產chan生sheng運yun動dong數shu據ju的de影ying響xiang。然ran而er,對dui於yu大da多duo數shu開kai發fa人ren員yuan來lai說shuo,套tao件jian的de軟ruan件jian開kai發fa包bao將jiang很hen快kuai成cheng為wei他ta們men的de主zhu要yao關guan注zhu點dian。
定製軟件
對於定製軟件開發,TDK InvenSense eMD(嵌入式運動驅動器)SmartMotion 軟件包提供應用編程接口 (API) 說明文檔、驅動源代碼、傳感器融合文庫以及預建的 DMP 固件圖像。同時,該軟件包還包括構建和閃現定製固件圖像的工具以及與評估板進行控製台交互的命令行實用程序。
eMD 軟件平台設計用於與 Atmel/Microchip Technology Atmel Studio 配合使用,包含兩個 Atmel Studio 包:內核和應用。內核包包含編程和操作 ICM-20948 所需的底層驅動器和固件,以及 DK-20948 板的 Microchip ATSAMG55J19B 主機 MCU 的預建運動算法和 math 文件。
應用包包含一個樣例應用程序,用於演示內核包的使用,包括從頂層應用向下延伸到串行總線交易的主要設計模式。例如,主要的 C 例程展示開發人員如何初始化 ICM-20948 和獲取數據(列表 1)。
int main (void)
{
...
/* Initialize icm20948 serif structure */
struct inv_icm20948_serif icm20948_serif;
icm20948_serif.context = 0; /* no need */
icm20948_serif.read_reg = idd_io_hal_read_reg;
icm20948_serif.write_reg = idd_io_hal_write_reg;
icm20948_serif.max_read = 1024*16; /* max num bytes allowed per serial read */
icm20948_serif.max_write = 1024*16; /* max num bytes allowed per serial write */
icm20948_serif.is_spi = interface_is_SPI();
...
* Setup the icm20948 device */
icm20948_sensor_setup();
/*
* Now that Icm20948 device was initialized, proceed with DMP image loading
* This step is mandatory as DMP image are not store in non volatile memory
*/
load_dmp3();
/*
* Initialize Dynamic protocol stuff
*/
DynProTransportUart_init(&transport, iddwrapper_transport_event_cb, 0);
DynProtocol_init(&protocol, iddwrapper_protocol_event_cb, 0);
/*
* Initializes the default sensor ODR in order to properly init the algorithms
*/
sensor_configure_odr(period_us);
InvScheduler_init(&scheduler);
...
while (1) {
InvScheduler_dispatchTasks(&scheduler);
if (irq_from_device == 1) {
inv_icm20948_poll_sensor(&icm_device, (void *)0, build_sensor_event_data);
__disable_irq();
irq_from_device = 0;
__enable_irq();
}
}
return 0;
}
列表 1: 開發人員可以檢查 DK-20948 eMD SmartMotion 軟件包中提供的示例源代碼,以了解主要設計模式,如示例應用的 main.c 例程中此代碼片段所列的 ICM-20948 初始化和傳感器輪詢模式。(代碼來源: TDK InvenSense)
編程 ICM-20948 等高度集成的設備時,開發人員很容易發現自己不僅要應付設備的很多配置選項,還要應付高效操作設備所需的大量軟件組件。eMD 內核包通過一係列的抽象(包括軟件結構和服務層)消除了該複雜性。例如,關鍵軟件結構 inv_icm20948 收集了操作 ICM-20948 所需的所有數據和元數據,包括其串行接口定義(列表 2)。
/** @brief ICM20948 serial interface
*/
struct inv_icm20948_serif {
void * context;
int (*read_reg)(void * context, uint8_t reg, uint8_t * buf, uint32_t len);
int (*write_reg)(void * context, uint8_t reg, const uint8_t * buf, uint32_t len);
uint32_t max_read;
uint32_t max_write;
inv_bool_t is_spi;
};
列表 2: 為幫助降低軟件複雜性,DK-20948 eMD SmartMotion 軟件內核例程提供很多 C 語言結構,這就是其中一個例子,該示例定義 ICM-20948 串行接口的設置及 I2C 或 SPI 交易所需的適當底層讀取和寫入例程的指示器。(代碼來源: TDK InvenSense)
在實例化 eMD 結構及初始化設備本身之後,開發人員可以調用單個例程 inv_icm20948_poll_sensor(),以使用 inv_icm20948 結構實例讀取傳感器和通過 DMP 處理數據。這份記錄齊全的例程有 900 多行,為開發人員詳細演示了操作傳感器、管理 FIFO 和利用 DMP 的核心功能的使用。
有興趣從更基礎的層麵了解 ICM-20948 操作的開發人員可以轉向底層內核例程,如設備自測試 Icm20948SelfTest.c 模塊中使用的例程。在此模塊中,int inv_do_test_accelgyro 等例程顯示了控製設備的典型寄存器操作(列表 3)。
static int inv_do_test_accelgyro(struct inv_icm20948 * s, enum INV_SENSORS sensorType, int *meanValue, int *stMeanValue)
{
...
// Set Self-Test Bit
if (sensorType == INV_SENSOR_GYRO)
{
// Enable gyroscope Self-Test by setting register User Bank 2, Register Address 02 (02h) Bit [5:3] to b111
result = inv_icm20948_write_single_mems_reg(s, REG_GYRO_CONFIG_2, BIT_GYRO_CTEN | SELFTEST_GYRO_AVGCFG);
} else
{
result = inv_icm20948_write_single_mems_reg(s, REG_ACCEL_CONFIG_2, BIT_ACCEL_CTEN | SELFTEST_ACCEL_DEC3_CFG);
}
...
}
列表 3: 開發人員可以在 DK-20948 eMD SmartMotion 軟件包中發現演示 ICM-20948 在多個抽象層麵使用的例程,包括 Icm20948SelfTest.c 模塊此代碼片段中顯示的寄存器級訪問。(代碼來源: TDK InvenSense)
在列表 3 中,(相對)高級的 inv_icm20948_write_single_mems_reg() 函數會調用低級例程 inv_icm20948_write_reg(),從而傳遞給常見的 inv_icm20948 結(jie)構(gou)實(shi)例(li)。該(gai)調(tiao)用(yong)會(hui)向(xiang)下(xia)傳(chuan)達(da)到(dao)低(di)層(ceng),最(zui)終(zhong)到(dao)達(da)實(shi)際(ji)執(zhi)行(xing)寄(ji)存(cun)器(qi)寫(xie)入(ru)操(cao)作(zuo)的(de)例(li)程(cheng)中(zhong)。為(wei)執(zhi)行(xing)此(ci)操(cao)作(zuo),該(gai)最(zui)終(zhong)低(di)級(ji)函(han)數(shu)使(shi)用(yong)軟(ruan)件(jian)初(chu)始(shi)化(hua)期(qi)間(jian)加(jia)載(zai)到(dao) inv_icm20948_serif 串行接口結構實例中的寄存器寫入例程指示器,如前麵的列表 2 所示。這種分層方法對於幫助最大限度降低軟件複雜性和最大限度提高性能是必不可少的。
對於開發人員,eMD SmartMotion 架構提供一個在一組一致的關鍵預定義結構上構建的靈活框架。使用 eMD ruanjianbao,kaifarenyuankeyizaigaoshuipingshanggongzuo,congershiyongchouxiangkuaisuzhixingyingyong。tongshi,kaifarenyuankeyiqingsongtiaorudicengyizhixingdingzhigongneng,erbuhuishiquyugenggaojiruanjiandeyizhixing。eMD SmartMotion 軟件包和 DK-20948 開發板一起使用,可以提供全麵的平台來快速開發運動感應應用。
總結
TDK InvenSense ICM-20948 模塊為運動感應提供了完全集成的解決方案。使用相關的 DK-20948 開發套件和 eMD SmartMotion 軟件包,開發人員可以快速構建能夠滿足最低尺寸和功耗要求的運動感應解決方案。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻


