盧進 吳昌隆 柳建鑫
基于ICM20948多傳感器系統的FPGA數據同步采集方法*
盧進 吳昌隆 柳建鑫
(廣東人工智能與先進計算研究院,廣東 廣州,510000)
針對多個ICM20948九軸傳感器在采樣率上存在微小差異,且無法從芯片端輸入同步參考時鐘進行多片同步的問題,提出一種基于ICM20948多傳感器系統的FPGA數據同步采集方法。利用劃分置信區間的方法實現多個ICM20948九軸傳感器數據的同步采集,確保數據同步采集精度為毫秒級別。實驗結果表明,多個ICM20948九軸傳感器的加速度計和陀螺儀的數據同步采集精度約為10 ms,磁力計的數據同步采集精度約為 100 ms,驗證了該方法的有效性。
ICM20948九軸傳感器;數據同步采集;多傳感器系統;現場可編程門陣列;置信區間
隨著虛擬現實技術的快速發展,慣性測量單元(inertial measurement unit, IMU)在智能設備的目標定位[1-3]、目標追蹤[4-6]等方面的應用越來越廣。其中,ICM20948九軸傳感器(包含三軸加速度計、三軸陀螺儀、三軸磁力計)應用較為廣泛。文獻[7]基于IMU研究了多傳感信息融合的機械臂末端位姿測量技術,
將姿態傳感器與視覺傳感器進行融合測量,利用各個傳感器的互補優勢,先通過測量關節角并利用D-H模型得到末端位姿,再通過固定在末端的IMU得到末端姿態信息,提升了測量精度。文獻[8]將單個ICM20948九軸傳感器與藍牙芯片結合,設計人體姿態檢測器,實現角度解算與過偏提示、計步等功能。文獻[9]研制了一款基于ICM20948九軸傳感器的地磁數據采集設備,采集室內地磁數據來構建室內地磁導航圖,進行移動機器人的全局定位。文獻[10]基于ICM20948九軸傳感器設計了多模態精準康復系統,有效避免了個體生理性差異導致康復治療困難的情況。上述方法普遍采用單個ICM20948九軸傳感器實現了數據采集的功能,但使用單個ICM20948九軸傳感器的系統識別精度有限,在對大型、復雜系統進行目標識別的場合存在瓶頸。
文獻[11]采用多個ICM20948九軸傳感器組成傳感器陣列,設計了數據采集、分析、標定算法,通過并行數據總線實現多個傳感器的同步數據獲取,并對多個傳感器進行多數據融合處理,其精度相較于單個慣性傳感器提升至少5.7倍,實現位置和姿態數據的準確采集。但文獻中沒有考慮不同的ICM20948九軸傳感器存在的隨機差異性問題,且沒有給出并行采集后的同步精度數據,對后續數據融合處理誤差有一定的影響。
本文針對多個ICM20948九軸傳感器在同一采樣率下出現的周期差異性,且無法從芯片端輸入同步參考時鐘進行多片同步的問題,本文提出一種基于ICM20948多傳感器系統的FPGA數據同步采集方法。利用劃分置信區間的方法實現數據同步采集,避免傳感器數據沒有被讀完就更新的情況。
基于ICM20948多傳感器系統的FPGA數據同步采集方法框架如圖1所示。

圖1 基于ICM20948多傳感器系統的FPGA數據同步采集方法框架
現場可編程門陣列(field programmable gate array, FPGA)選用XC7Z020CLG400-2芯片,其PL端通過SPI通信接口與(為大于3的整數)個ICM20948九軸傳感器進行數據通信,檢測每個ICM20948九軸傳感器的狀態,并經過數據同步、數據緩存、數據打包后,通過AXI接口傳輸至PS端存儲。
首先,根據ICM20948九軸傳感器的采樣特點選擇采樣周期,以保證個ICM20948九軸傳感器的數據在同一個采樣周期內被讀取;然后,將采樣周期劃分為3個置信區間(、、),對ICM20948九軸傳感器進行數據同步;最后,通過判斷個ICM20948九軸傳感器在不同置信區間內的數據更新狀態來采集數據,保證每個采樣周期采集的ICM20948九軸傳感器數據同步且已更新完成。
置信區間數據就緒(data ready, DRDY)的時序關系圖如圖2所示。其中,DRDY為ICM20948九軸傳感器的數據更新狀態指示信號。

圖2 X、Y、Z置信區間DRDY的時序關系圖
圖2中:0-3為個ICM20948九軸傳感器數據的采集周期;0-1、1-2、2-3分別對應、、3個置信區間;4為最后一個ICM20948九軸傳感器的數據更新狀態指示信號DRDY的上升沿到來的時刻。
0-1(置信區間)對個ICM20948九軸傳感器的DRDY上升沿進行檢測。若個ICM20948九軸傳感器的DRDY上升沿都在0-1內,表示在這個采樣周期內,個ICM20948九軸傳感器的數據都已更新完成,則在4時刻開始采集這個ICM20948九軸傳感器的數據。
1-2(置信區間)為采集個ICM20948九軸傳感器數據所需的時間。當4<1且接近1時刻時,在1時刻開始對個ICM20948九軸傳感器進行數據采集。
2-3(置信區間)是根據DRDY上升沿的周期浮動設置的一個固定時間,大小由個ICM20948九軸傳感器采樣周期差異的最大值決定。若沒有置信區間,則在1-2采集個ICM20948九軸傳感器數據的過程中,某個ICM20948九軸傳感器的DRDY出現一個上升沿,將導致該采樣周期的數據沒有被完整讀取,進而影響ICM20948九軸傳感器數據的解算。
基于ICM20948多傳感器系統的FPGA數據同步采集方法軟件流程如圖3所示。
基于ICM20948多傳感器系統的FPGA數據同步采集方法的數據同步采集步驟主要包括:
1)由于三軸磁力計的最大采樣率只有102 Hz,為保持采樣率一致,將個ICM20948九軸傳感器的采樣頻率設置為102 Hz(采樣周期約為9.8 ms);
2)將采樣周期劃分為、、3個置信區間,其中,置信區間時長為讀取寄存器數據的時間,為定值0.027 ms,置信區間時長為測試得到的經驗值0.023 ms,置信區間時長為采樣周期9.8 ms減去置信區間時長0.027 ms和置信區間時長0.023 ms,為9.75 ms;
3)根據DRDY的上升沿是否都出現在置信區間來決定是否采集該采樣周期內個ICM20948九軸傳感器的數據。如果都出現在置信區間內,則開始采集此采樣周期內個ICM20948九軸傳感器的數據;如果有一個ICM20948九軸傳感器的DRDY沒有出現在置信區間內,則這個采樣周期的ICM20948九軸傳感器數據被丟棄,數據采集結果保持上個采樣周期的數值;

圖3 基于ICM20948多傳感器系統的FPGA數據同步采集方法軟件流程
4)如果某個ICM20948九軸傳感器連續2個采樣周期內沒有出現DRDY的上升沿指示信號,則輸出告警信號;
5)根據告警信號先剔除步驟3)中對應的異常ICM20948九軸傳感器的DRDY判斷條件,再根據其余ICM20948九軸傳感器的DRDY狀態來采集數據,避免系統一直保持上個周期的數據而癱瘓;
6)返回步驟3)繼續檢測ICM20948九軸傳感器的DRDY信號。
為驗證本文提出的基于ICM20948多傳感器系統的FPGA數據同步采集方法的正確性,利用4個ICM20948九軸傳感器組成的多傳感器系統對以下3種情況分別進行驗證:將4個ICM20948九軸傳感器固定在水平桌面上,分別在繞軸規律緩慢旋轉、繞軸無規律快速旋轉、繞軸緩慢翻轉2次。其中,SPI接口時鐘為6MHz,采樣頻率為102Hz,三軸加速度計、三軸陀螺儀、三軸磁力計量程分別為±2 g、±250 d/s、±4 900 μT。
4個ICM20948九軸傳感器在繞軸規律緩慢旋轉時,采集的三軸加速度計軸的數據如圖4所示,放大圖4后的4個ICM20948九軸傳感器的數據比對結果如圖5所示。

圖4 4個ICM20948九軸傳感器加速度X軸數據

圖5 4個ICM20948九軸傳感器加速度X軸數據放大后效果
由圖4、圖5可以看出:4個ICM20948九軸傳感器在采樣點5 952~5 968范圍內數據變化趨勢、曲線相位關系保持一致,沒有超過1個點,即加速度計數據采集同步精度約為10 ms,與本文設置的每2個采樣點間的時間間隔9.8 ms一致。
4個ICM20948九軸傳感器在繞軸無規律快速旋轉時,采集的三軸陀螺儀軸的角度數據如圖6所示,放大圖6后的4個ICM20948九軸傳感器的數據比對結果如圖7所示。

圖6 4個ICM20948九軸傳感器陀螺儀Y軸數據

圖7 4個ICM20948九軸傳感器陀螺儀Y軸數據放大后效果
由圖7可以看出,4個ICM20948九軸傳感器的數據最低點的軸數據都為1 393,且所有采樣點的數據變化趨勢基本一致,三軸陀螺儀數據同步采集精度保持在10 ms左右。
4個ICM20948九軸傳感器在繞軸緩慢翻轉2次時采集的三軸磁力計軸數據如圖8所示,放大圖8后的4個ICM20948九軸傳感器的數據比對結果如圖9所示。

圖8 4個ICM20948九軸傳感器磁力計X軸數據

圖9 4個ICM20948九軸傳感器磁力計X軸數據放大后效果
圖8中,三軸磁力計數據曲線不重合是由于每個ICM20948九軸傳感器的磁力計數據基線值不同,且ICM20948九軸傳感器擺放位置也不同,翻轉后受到的磁強變化幅度也不同。
由圖9可以看出,4個ICM20948九軸傳感器的數據變化趨勢基本一致,4個最低點的軸數據最大值為2308,最小值為2298,得到磁力計的數據同步采集精度為98ms。
由4個ICM20948九軸傳感器組成的多傳感器系統同步采集的數據結果可以看出,本文提出的劃分置信區間的方法可以實時、準確地實現數據同步采集,避免了多傳感器系統中每個傳感器都要提供精確的參考工作時鐘的需求,且在多傳感器采樣頻率存在差異的情況下,可確保數據同步采集精度為毫秒級別。
[1] 李根龍.面向機器人裝配的目標識別與位姿獲取技術研究[D].西安:西安理工大學,2021.
[2] 白宇強.無人汽車的IMU/5G毫米波組合定位方法[D].北京:北京交通大學,2021.
[3] 李錦明,劉夢欣,成乃朋,等.基于FPGA的多路無線數據采集系統設計[J].中國測試,2019,45(12):102-105;118.
[4] 張金藝,徐德政,李若涵,等.9軸MEMS-IMU實時姿態估算算法[J].上海大學學報(自然科學版),2015,21(5):547-559.
[5] 唐悅.IMU的行人室內定位研究[D].杭州:浙江工商大學, 2018.
[6] 白悅章.基于多傳感器融合的目標追蹤與定位估計技術研究[D].長春:吉林大學,2019.
[7] 張天麟.多傳感信息融合的機械臂末端位姿測量[D].南京:南京郵電大學,2019.
[8] 陳飛.基于nRF52832藍牙芯片與ICM20948九軸傳感器的人運動姿態檢測器設計[D].南京:南京理工大學,2020.
[9] 李鵬飛.基于室內地磁信息的移動機器人定位方法[D].西安:電子科技大學,2019.
[10] 陳海魯.骨折康復的多模態診療系統研究[D].杭州:浙江大學, 2023.
[11] 朱辰霄,顏陸勝,劉東滟,等.陣列式MEMS-IMU系統的設計與實現[J].電子制作,2022,30(11):11-14.
FPGA Data Synchronization Acquisition Method Based on ICM20948 Multi-sensor System
LU Jin WU Changlong LIU Jianxin
(Guangdong Institute of Artificial Intelligence and Advanced Computing, Guangzhou 510000, China)
A FPGA data synchronization acquisition method based on the ICM20948 multi-sensor system is proposed to address the issue of small differences in sampling rates among multiple ICM20948 nine axis sensors and the inability to input synchronous reference clocks from the chip for multi-chip synchronization. The method of dividing confidence intervals is used to achieve synchronous collection of data from multiple ICM20948 nine axis sensors, ensuring that the accuracy of data synchronous collection is at the millisecond level. The experimental results show that the data synchronization acquisition accuracy of accelerometers and gyroscopes with multiple ICM20948 nine axis sensors is about 10 ms, and the data synchronization acquisition accuracy of magnetometers is about 100 ms, verifying the effectiveness of this method.
ICM20948 nine axis sensor; synchronous data collection; multi-sensor system; field programmable gate array; confidence interval
TP242.6
A
1674-2605(2023)04-0006-05
10.3969/j.issn.1674-2605.2023.04.006
基金項目:廣州市科技計劃項目(202201000009)
盧進,男,1990年生,碩士,工程師,主要研究方向:傳感器融合、超導量子計算測控系統、生物電數字信號處理。E-mail: 249510357@qq.com
吳昌隆,男,1995年生,本科,工程師,主要研究方向:自動化。E-mail: changlong.wu@giaiac.cn
柳建鑫,男,1995年生,本科,工程師,主要研究方向:數字信號處理。E-mail: jianxin.liu@giaiac.cn
:盧進,吳昌隆,柳建鑫.基于ICM20948多傳感器系統的FPGA數據同步采集方法[J].自動化與信息工程,2023, 44(4):28-32.
LU Jin, WU Changlong, LIU Jianxin. FPGA data synchronization acquisition method based on ICM20948 multi-sensor system[J]. Automation & Information Engineering, 2023,44(4):28-32.