盧進 吳昌隆 柳建鑫
基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法*
盧進 吳昌隆 柳建鑫
(廣東人工智能與先進計算研究院,廣東 廣州,510000)
針對多個ICM20948九軸傳感器在采樣率上存在微小差異,且無法從芯片端輸入同步參考時鐘進行多片同步的問題,提出一種基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法。利用劃分置信區(qū)間的方法實現(xiàn)多個ICM20948九軸傳感器數(shù)據(jù)的同步采集,確保數(shù)據(jù)同步采集精度為毫秒級別。實驗結(jié)果表明,多個ICM20948九軸傳感器的加速度計和陀螺儀的數(shù)據(jù)同步采集精度約為10 ms,磁力計的數(shù)據(jù)同步采集精度約為 100 ms,驗證了該方法的有效性。
ICM20948九軸傳感器;數(shù)據(jù)同步采集;多傳感器系統(tǒng);現(xiàn)場可編程門陣列;置信區(qū)間
隨著虛擬現(xiàn)實技術(shù)的快速發(fā)展,慣性測量單元(inertial measurement unit, IMU)在智能設(shè)備的目標(biāo)定位[1-3]、目標(biāo)追蹤[4-6]等方面的應(yīng)用越來越廣。其中,ICM20948九軸傳感器(包含三軸加速度計、三軸陀螺儀、三軸磁力計)應(yīng)用較為廣泛。文獻[7]基于IMU研究了多傳感信息融合的機械臂末端位姿測量技術(shù),
將姿態(tài)傳感器與視覺傳感器進行融合測量,利用各個傳感器的互補優(yōu)勢,先通過測量關(guān)節(jié)角并利用D-H模型得到末端位姿,再通過固定在末端的IMU得到末端姿態(tài)信息,提升了測量精度。文獻[8]將單個ICM20948九軸傳感器與藍牙芯片結(jié)合,設(shè)計人體姿態(tài)檢測器,實現(xiàn)角度解算與過偏提示、計步等功能。文獻[9]研制了一款基于ICM20948九軸傳感器的地磁數(shù)據(jù)采集設(shè)備,采集室內(nèi)地磁數(shù)據(jù)來構(gòu)建室內(nèi)地磁導(dǎo)航圖,進行移動機器人的全局定位。文獻[10]基于ICM20948九軸傳感器設(shè)計了多模態(tài)精準(zhǔn)康復(fù)系統(tǒng),有效避免了個體生理性差異導(dǎo)致康復(fù)治療困難的情況。上述方法普遍采用單個ICM20948九軸傳感器實現(xiàn)了數(shù)據(jù)采集的功能,但使用單個ICM20948九軸傳感器的系統(tǒng)識別精度有限,在對大型、復(fù)雜系統(tǒng)進行目標(biāo)識別的場合存在瓶頸。
文獻[11]采用多個ICM20948九軸傳感器組成傳感器陣列,設(shè)計了數(shù)據(jù)采集、分析、標(biāo)定算法,通過并行數(shù)據(jù)總線實現(xiàn)多個傳感器的同步數(shù)據(jù)獲取,并對多個傳感器進行多數(shù)據(jù)融合處理,其精度相較于單個慣性傳感器提升至少5.7倍,實現(xiàn)位置和姿態(tài)數(shù)據(jù)的準(zhǔn)確采集。但文獻中沒有考慮不同的ICM20948九軸傳感器存在的隨機差異性問題,且沒有給出并行采集后的同步精度數(shù)據(jù),對后續(xù)數(shù)據(jù)融合處理誤差有一定的影響。
本文針對多個ICM20948九軸傳感器在同一采樣率下出現(xiàn)的周期差異性,且無法從芯片端輸入同步參考時鐘進行多片同步的問題,本文提出一種基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法。利用劃分置信區(qū)間的方法實現(xiàn)數(shù)據(jù)同步采集,避免傳感器數(shù)據(jù)沒有被讀完就更新的情況。
基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法框架如圖1所示。
圖1 基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法框架
現(xiàn)場可編程門陣列(field programmable gate array, FPGA)選用XC7Z020CLG400-2芯片,其PL端通過SPI通信接口與(為大于3的整數(shù))個ICM20948九軸傳感器進行數(shù)據(jù)通信,檢測每個ICM20948九軸傳感器的狀態(tài),并經(jīng)過數(shù)據(jù)同步、數(shù)據(jù)緩存、數(shù)據(jù)打包后,通過AXI接口傳輸至PS端存儲。
首先,根據(jù)ICM20948九軸傳感器的采樣特點選擇采樣周期,以保證個ICM20948九軸傳感器的數(shù)據(jù)在同一個采樣周期內(nèi)被讀取;然后,將采樣周期劃分為3個置信區(qū)間(、、),對ICM20948九軸傳感器進行數(shù)據(jù)同步;最后,通過判斷個ICM20948九軸傳感器在不同置信區(qū)間內(nèi)的數(shù)據(jù)更新狀態(tài)來采集數(shù)據(jù),保證每個采樣周期采集的ICM20948九軸傳感器數(shù)據(jù)同步且已更新完成。
置信區(qū)間數(shù)據(jù)就緒(data ready, DRDY)的時序關(guān)系圖如圖2所示。其中,DRDY為ICM20948九軸傳感器的數(shù)據(jù)更新狀態(tài)指示信號。
圖2 X、Y、Z置信區(qū)間DRDY的時序關(guān)系圖
圖2中:0-3為個ICM20948九軸傳感器數(shù)據(jù)的采集周期;0-1、1-2、2-3分別對應(yīng)、、3個置信區(qū)間;4為最后一個ICM20948九軸傳感器的數(shù)據(jù)更新狀態(tài)指示信號DRDY的上升沿到來的時刻。
0-1(置信區(qū)間)對個ICM20948九軸傳感器的DRDY上升沿進行檢測。若個ICM20948九軸傳感器的DRDY上升沿都在0-1內(nèi),表示在這個采樣周期內(nèi),個ICM20948九軸傳感器的數(shù)據(jù)都已更新完成,則在4時刻開始采集這個ICM20948九軸傳感器的數(shù)據(jù)。
1-2(置信區(qū)間)為采集個ICM20948九軸傳感器數(shù)據(jù)所需的時間。當(dāng)4<1且接近1時刻時,在1時刻開始對個ICM20948九軸傳感器進行數(shù)據(jù)采集。
2-3(置信區(qū)間)是根據(jù)DRDY上升沿的周期浮動設(shè)置的一個固定時間,大小由個ICM20948九軸傳感器采樣周期差異的最大值決定。若沒有置信區(qū)間,則在1-2采集個ICM20948九軸傳感器數(shù)據(jù)的過程中,某個ICM20948九軸傳感器的DRDY出現(xiàn)一個上升沿,將導(dǎo)致該采樣周期的數(shù)據(jù)沒有被完整讀取,進而影響ICM20948九軸傳感器數(shù)據(jù)的解算。
基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法軟件流程如圖3所示。
基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法的數(shù)據(jù)同步采集步驟主要包括:
1)由于三軸磁力計的最大采樣率只有102 Hz,為保持采樣率一致,將個ICM20948九軸傳感器的采樣頻率設(shè)置為102 Hz(采樣周期約為9.8 ms);
2)將采樣周期劃分為、、3個置信區(qū)間,其中,置信區(qū)間時長為讀取寄存器數(shù)據(jù)的時間,為定值0.027 ms,置信區(qū)間時長為測試得到的經(jīng)驗值0.023 ms,置信區(qū)間時長為采樣周期9.8 ms減去置信區(qū)間時長0.027 ms和置信區(qū)間時長0.023 ms,為9.75 ms;
3)根據(jù)DRDY的上升沿是否都出現(xiàn)在置信區(qū)間來決定是否采集該采樣周期內(nèi)個ICM20948九軸傳感器的數(shù)據(jù)。如果都出現(xiàn)在置信區(qū)間內(nèi),則開始采集此采樣周期內(nèi)個ICM20948九軸傳感器的數(shù)據(jù);如果有一個ICM20948九軸傳感器的DRDY沒有出現(xiàn)在置信區(qū)間內(nèi),則這個采樣周期的ICM20948九軸傳感器數(shù)據(jù)被丟棄,數(shù)據(jù)采集結(jié)果保持上個采樣周期的數(shù)值;
圖3 基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法軟件流程
4)如果某個ICM20948九軸傳感器連續(xù)2個采樣周期內(nèi)沒有出現(xiàn)DRDY的上升沿指示信號,則輸出告警信號;
5)根據(jù)告警信號先剔除步驟3)中對應(yīng)的異常ICM20948九軸傳感器的DRDY判斷條件,再根據(jù)其余ICM20948九軸傳感器的DRDY狀態(tài)來采集數(shù)據(jù),避免系統(tǒng)一直保持上個周期的數(shù)據(jù)而癱瘓;
6)返回步驟3)繼續(xù)檢測ICM20948九軸傳感器的DRDY信號。
為驗證本文提出的基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法的正確性,利用4個ICM20948九軸傳感器組成的多傳感器系統(tǒng)對以下3種情況分別進行驗證:將4個ICM20948九軸傳感器固定在水平桌面上,分別在繞軸規(guī)律緩慢旋轉(zhuǎn)、繞軸無規(guī)律快速旋轉(zhuǎn)、繞軸緩慢翻轉(zhuǎn)2次。其中,SPI接口時鐘為6MHz,采樣頻率為102Hz,三軸加速度計、三軸陀螺儀、三軸磁力計量程分別為±2 g、±250 d/s、±4 900 μT。
4個ICM20948九軸傳感器在繞軸規(guī)律緩慢旋轉(zhuǎn)時,采集的三軸加速度計軸的數(shù)據(jù)如圖4所示,放大圖4后的4個ICM20948九軸傳感器的數(shù)據(jù)比對結(jié)果如圖5所示。
圖4 4個ICM20948九軸傳感器加速度X軸數(shù)據(jù)
圖5 4個ICM20948九軸傳感器加速度X軸數(shù)據(jù)放大后效果
由圖4、圖5可以看出:4個ICM20948九軸傳感器在采樣點5 952~5 968范圍內(nèi)數(shù)據(jù)變化趨勢、曲線相位關(guān)系保持一致,沒有超過1個點,即加速度計數(shù)據(jù)采集同步精度約為10 ms,與本文設(shè)置的每2個采樣點間的時間間隔9.8 ms一致。
4個ICM20948九軸傳感器在繞軸無規(guī)律快速旋轉(zhuǎn)時,采集的三軸陀螺儀軸的角度數(shù)據(jù)如圖6所示,放大圖6后的4個ICM20948九軸傳感器的數(shù)據(jù)比對結(jié)果如圖7所示。
圖6 4個ICM20948九軸傳感器陀螺儀Y軸數(shù)據(jù)
圖7 4個ICM20948九軸傳感器陀螺儀Y軸數(shù)據(jù)放大后效果
由圖7可以看出,4個ICM20948九軸傳感器的數(shù)據(jù)最低點的軸數(shù)據(jù)都為1 393,且所有采樣點的數(shù)據(jù)變化趨勢基本一致,三軸陀螺儀數(shù)據(jù)同步采集精度保持在10 ms左右。
4個ICM20948九軸傳感器在繞軸緩慢翻轉(zhuǎn)2次時采集的三軸磁力計軸數(shù)據(jù)如圖8所示,放大圖8后的4個ICM20948九軸傳感器的數(shù)據(jù)比對結(jié)果如圖9所示。
圖8 4個ICM20948九軸傳感器磁力計X軸數(shù)據(jù)
圖9 4個ICM20948九軸傳感器磁力計X軸數(shù)據(jù)放大后效果
圖8中,三軸磁力計數(shù)據(jù)曲線不重合是由于每個ICM20948九軸傳感器的磁力計數(shù)據(jù)基線值不同,且ICM20948九軸傳感器擺放位置也不同,翻轉(zhuǎn)后受到的磁強變化幅度也不同。
由圖9可以看出,4個ICM20948九軸傳感器的數(shù)據(jù)變化趨勢基本一致,4個最低點的軸數(shù)據(jù)最大值為2308,最小值為2298,得到磁力計的數(shù)據(jù)同步采集精度為98ms。
由4個ICM20948九軸傳感器組成的多傳感器系統(tǒng)同步采集的數(shù)據(jù)結(jié)果可以看出,本文提出的劃分置信區(qū)間的方法可以實時、準(zhǔn)確地實現(xiàn)數(shù)據(jù)同步采集,避免了多傳感器系統(tǒng)中每個傳感器都要提供精確的參考工作時鐘的需求,且在多傳感器采樣頻率存在差異的情況下,可確保數(shù)據(jù)同步采集精度為毫秒級別。
[1] 李根龍.面向機器人裝配的目標(biāo)識別與位姿獲取技術(shù)研究[D].西安:西安理工大學(xué),2021.
[2] 白宇強.無人汽車的IMU/5G毫米波組合定位方法[D].北京:北京交通大學(xué),2021.
[3] 李錦明,劉夢欣,成乃朋,等.基于FPGA的多路無線數(shù)據(jù)采集系統(tǒng)設(shè)計[J].中國測試,2019,45(12):102-105;118.
[4] 張金藝,徐德政,李若涵,等.9軸MEMS-IMU實時姿態(tài)估算算法[J].上海大學(xué)學(xué)報(自然科學(xué)版),2015,21(5):547-559.
[5] 唐悅.IMU的行人室內(nèi)定位研究[D].杭州:浙江工商大學(xué), 2018.
[6] 白悅章.基于多傳感器融合的目標(biāo)追蹤與定位估計技術(shù)研究[D].長春:吉林大學(xué),2019.
[7] 張?zhí)祺?多傳感信息融合的機械臂末端位姿測量[D].南京:南京郵電大學(xué),2019.
[8] 陳飛.基于nRF52832藍牙芯片與ICM20948九軸傳感器的人運動姿態(tài)檢測器設(shè)計[D].南京:南京理工大學(xué),2020.
[9] 李鵬飛.基于室內(nèi)地磁信息的移動機器人定位方法[D].西安:電子科技大學(xué),2019.
[10] 陳海魯.骨折康復(fù)的多模態(tài)診療系統(tǒng)研究[D].杭州:浙江大學(xué), 2023.
[11] 朱辰霄,顏陸勝,劉東滟,等.陣列式MEMS-IMU系統(tǒng)的設(shè)計與實現(xiàn)[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年生,碩士,工程師,主要研究方向:傳感器融合、超導(dǎo)量子計算測控系統(tǒng)、生物電數(shù)字信號處理。E-mail: 249510357@qq.com
吳昌隆,男,1995年生,本科,工程師,主要研究方向:自動化。E-mail: changlong.wu@giaiac.cn
柳建鑫,男,1995年生,本科,工程師,主要研究方向:數(shù)字信號處理。E-mail: jianxin.liu@giaiac.cn
:盧進,吳昌隆,柳建鑫.基于ICM20948多傳感器系統(tǒng)的FPGA數(shù)據(jù)同步采集方法[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.