通過更簡單的途徑增加低功耗 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。
高效運動跟蹤的挑戰
利(li)用(yong)傳(chuan)統(tong)的(de)運(yun)動(dong)跟(gen)蹤(zong)方(fang)法(fa),開(kai)發(fa)人(ren)員(yuan)可(ke)以(yi)同(tong)時(shi)為(wei)硬(ying)件(jian)和(he)軟(ruan)件(jian)處(chu)理(li)重(zhong)要(yao)的(de)集(ji)成(cheng)問(wen)題(ti)。在(zai)硬(ying)件(jian)方(fang)麵(mian),開(kai)發(fa)人(ren)員(yuan)通(tong)常(chang)會(hui)努(nu)力(li)在(zai)采(cai)用(yong)單(dan)獨(du)的(de)傳(chuan)感(gan)器(qi)(包括加速計、陀螺儀和磁力儀)構建的設計中最大限度減少其複雜性、尺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),以及特定於傳感器的電路,如驅動模塊的霍爾效應磁力儀的電流源。
weiletigaomeizhongxinhaoliandeshuchu,mokuaibaokuoshiyongyumeizhongjinyibuchuanganqileixingdexinhaotiaojiejieduan。liru,ciliyishuchutongguosuanshudianlujinxingjibenxinhaochuli,erqitachuanganqideshuchugezikuiruzidongdechuanganqitedingtiaojiejieduan,yizhixingcaiyangpingjundengchuligongneng。kaifarenyuankeyijiang ICM-20948 設置為平均多達 128 個陀螺儀數據采樣,或者將加速計設置為平均多達 32 個采樣。最終,每個通道的信號調節階段的輸出饋入一組專用的傳感器寄存器中。
ICM-20948 的核心是一個專有的數字運動處理器 (DMP),用於提供各種不同的功能,包括執行運動處理算法、校準和自測試。在正常工作期間,DMP 會處理來自專用傳感器寄存器的數據。然後再將結果存儲在模塊的集成式 FIFO 中,供主機 MCU 通過共享的 I2C 或 SPI 總線訪問。
DMP 和 FIFO 的(de)功(gong)能(neng)為(wei)很(hen)多(duo)實(shi)際(ji)應(ying)用(yong)提(ti)供(gong)重(zhong)要(yao)功(gong)能(neng)。很(hen)多(duo)情(qing)況(kuang)下(xia),應(ying)用(yong)以(yi)相(xiang)對(dui)較(jiao)慢(man)的(de)速(su)度(du)更(geng)新(xin)其(qi)運(yun)動(dong)跟(gen)蹤(zong)結(jie)果(guo),甚(shen)至(zhi)允(yun)許(xu)其(qi)主(zhu)機(ji)處(chu)理(li)器(qi)在(zai)更(geng)新(xin)之(zhi)間(jian)休(xiu)眠(mian),以(yi)降(jiang)低(di)總(zong)功(gong)耗(hao)。然(ran)而(er),運(yun)動(dong)跟(gen)蹤(zong)算(suan)法(fa)需(xu)要(yao)的(de)更(geng)新(xin)速(su)度(du)明(ming)顯(xian)更(geng)高(gao),以(yi)確(que)保(bao)其(qi)在(zai)應(ying)用(yong)請(qing)求(qiu)更(geng)新(xin)時(shi)以(yi)最(zui)低(di)的(de)延(yan)時(shi)提(ti)供(gong)精(jing)確(que)的(de)數(shu)據(ju)。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 degongjukeshikaifarenyuantansuobutongdepeizhishezhijipinggutamenduisuochanshengyundongshujudeyingxiang。raner,duiyudaduoshukaifarenyuanlaishuo,taojianderuanjiankaifabaojianghenkuaichengweitamendezhuyaoguanzhudian。
定製軟件
對於定製軟件開發,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 軟ruan件jian包bao,開kai發fa人ren員yuan可ke以yi在zai高gao水shui平ping上shang工gong作zuo,從cong而er使shi用yong抽chou象xiang快kuai速su執zhi行xing應ying用yong。同tong時shi,開kai發fa人ren員yuan可ke以yi輕qing鬆song跳tiao入ru低di層ceng以yi執zhi行xing定ding製zhi功gong能neng,而er不bu會hui失shi去qu與yu更geng高gao級ji軟ruan件jian的de一yi致zhi性xing。eMD SmartMotion 軟件包和 DK-20948 開發板一起使用,可以提供全麵的平台來快速開發運動感應應用。
總結
TDK InvenSense ICM-20948 模塊為運動感應提供了完全集成的解決方案。使用相關的 DK-20948 開發套件和 eMD SmartMotion 軟件包,開發人員可以快速構建能夠滿足最低尺寸和功耗要求的運動感應解決方案。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 從機械執行到智能互動:移遠Q-Robotbox助力具身智能加速落地
- 品英Pickering將亮相2026航空電子國際論壇,展示航電與電池測試前沿方案
- 模擬芯片設計師的噩夢:晶體管差1毫伏就廢了,溫度升1度特性全飄
- 3A大電流僅需3x1.6mm?意法半導體DCP3603重新定義電源設計
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
按鈕開關
白色家電
保護器件
保險絲管
北鬥定位
北高智
貝能科技
背板連接器
背光器件
編碼器型號
便攜產品
便攜醫療
變容二極管
變壓器
檳城電子
並網
撥動開關
玻璃釉電容
剝線機
薄膜電容
薄膜電阻
薄膜開關
捕魚器
步進電機
測力傳感器
測試測量
測試設備
拆解
場效應管
超霸科技



