顧海潮,麥云飛,張?zhí)m春,石愛峰
(200093 上海市 上海理工大學(xué) 機(jī)械工程學(xué)院)
為了能夠?qū)崟r了解駕駛員在駕駛過程的體征狀況,本文基于AWR1642BOOST 評估板(76~81 GHz)和QT 進(jìn)行軟硬件設(shè)計。雖然76~81 GHz 雷達(dá)不能穿透皮膚[1],但是雷達(dá)可測量呼吸和心跳引起的體表運動,通過雷達(dá)對微小運動的靈敏度來檢測生命體征信號,采用URAT 串口協(xié)議進(jìn)行采集信號傳輸,通過降噪算法處理采集數(shù)據(jù),得到更準(zhǔn)確的呼吸和心跳信號數(shù)據(jù),并對體征信號數(shù)據(jù)做心率變異性(HRV)分析,將得出的分析結(jié)果進(jìn)行指標(biāo)分析,實現(xiàn)駕駛員駕駛狀況評估。最終通過QT 搭建的圖形用戶界面完成駕駛員生命體征和駕駛狀況顯示。
下位機(jī)采用TI 公司的AWR1642 BOOST 毫米波傳感器評估板,是工作在76~81 GHz 頻段的單片F(xiàn)MCW 雷達(dá)傳感器,包含開發(fā)軟件C67xDSP 內(nèi)核、低功率ARM Cortex-R4F 控制器和片上存儲器所需要的一些組件,雷達(dá)發(fā)射前端有4 個接收通路,2 個發(fā)送通路。整體硬件部分邏輯圖如圖1 所示。
圖1 硬件組成邏輯圖Fig.1 Block Logic diagram of hardware composition
下位機(jī)運行流程如圖2 所示。AWR1642 BOOST毫米波傳感器評估板用于完成駕駛員生命體征信號的采集以及與上位機(jī)的通信,通過調(diào)用 QT 內(nèi)置的QSerialPort 模塊,可以實現(xiàn)上位機(jī)與下位機(jī)的UART 串口通訊,能夠極大地保障發(fā)送與接收數(shù)據(jù)的準(zhǔn)確性和抗干擾能力。QT 的上位機(jī)界面通過按鍵槽函數(shù)向其發(fā)送報文,控制毫米波雷達(dá)的啟停。
圖2 下位機(jī)流程圖Fig.2 Lower computer flow chart
AWR1642 BOOST 評估板內(nèi)部的毫米波雷達(dá)發(fā)射脈沖信號,主要通過信號合成器、發(fā)射天線、接收天線、混頻器4 個模塊。通過毫米波雷達(dá)內(nèi)部的信號合成器,可以調(diào)制脈沖頻率[2],本次實驗采用線性調(diào)頻脈沖,發(fā)射天線(TX)發(fā)射線性調(diào)頻脈沖。調(diào)頻脈沖在傳播的過程中遇到障礙將產(chǎn)生反射,反射的脈沖信號經(jīng)由接收天線(RX)接收,發(fā)射天線和接收天線信號最后通過混頻器混合成中頻信號。整個信號發(fā)射和接收流程框圖如圖3 所示。選用TI 公司的AWR1642 BOOST(76~81 GHz)評估板進(jìn)行檢測,此毫米波雷達(dá)使用的是4 發(fā)2 收天線。
圖3 毫米波雷達(dá)信號發(fā)射流程框圖Fig.3 Block flow diagram of millimeter-wave radar signal transmission
人體心跳和呼吸信號的檢測過程如圖4 所示,包括目標(biāo)檢測、相位提取、信號分離與重構(gòu)、呼吸和心跳頻率估計4 個步驟[3]。對中頻信號進(jìn)行模數(shù)轉(zhuǎn)換后,首先要識別所檢測人體對應(yīng)的距離范圍,對每個脈沖都進(jìn)行距離快速傅立葉變換(FFT),得到距離信息[4],然后根據(jù)距離分布構(gòu)造距離時間圖。在確定人體目標(biāo)后,通過反正切進(jìn)行相位求解并對反正切解調(diào)相位進(jìn)行解纏繞。去除脈沖噪聲后,通過數(shù)字濾波器進(jìn)行呼吸和心跳信號的分離。心跳信號進(jìn)行隨機(jī)運動的檢測,去除無用信號。最后,采用峰值、頻域FFT 算法和時域自相關(guān)算法計算心率和呼吸頻率。整體信號處理流程如圖4 所示。
圖4 信號處理鏈中的生命體征檢測Fig.4 Vital sign detection in signal processing chain
QT 是一個跨平臺的C++應(yīng)用程序開發(fā)框架,可以開發(fā)GUI 程序和非GUI 程序,被廣泛運用于各類嵌入式產(chǎn)品和設(shè)備的開發(fā)[5]。
生命體征檢測系統(tǒng)的圖形用戶界面開發(fā),主要運用了QPushButto 控件、QLCDNumber 顯示控件、QCustomplot 控件、Line Edit 控件等。
在QT 中通過按鈕信號與槽函數(shù)的通信和聯(lián)系,以實現(xiàn)主界面與子界面的切換,還可實現(xiàn)自動檢測串口以及打開串口等功能。應(yīng)用QT 串口類QSerialPort,QtSerialPort 模塊中提供的QSerialPort和QSerialPortInfo C++類,可分別提供操作串口的各種接口和計算機(jī)中可用串口的各種信息。
項目工程的建立,首先使用QT 設(shè)計器創(chuàng)建生命體征信號檢測系統(tǒng)的主窗口,即Windows 類,在此基礎(chǔ)上添加菜單欄,設(shè)置菜單欄名稱,創(chuàng)建對象然后添加槽函數(shù),當(dāng)菜單被點擊時,觸發(fā)綁定的函數(shù)事件。通過點擊菜單選項,進(jìn)行界面切換。
為了進(jìn)行實時的數(shù)據(jù)繪圖顯示,利用QCustomPlot 控件完成高質(zhì)量的界面顯示。由官網(wǎng)下載QCustomPlot 源文件,在創(chuàng)建的項目中加入下載文件,創(chuàng)建一個widget,點擊左鍵選擇提升為QCustomPlot類,就可以使用它進(jìn)行實時顯示繪圖[6]。
對信號進(jìn)行處理,估計呼吸頻率和心跳頻率值,在QT 的GUI 界面上顯示,同時顯示信號波形圖和距離箱位置圖,圖形用戶界面如圖5 所示。
圖5 GUI 界面顯示Fig.5 GUI interface display
選擇自動檢測串口后,檢測系統(tǒng)的圖形用戶界面設(shè)備找到對應(yīng)的USB 串口號,分別為控制串口號和數(shù)據(jù)串口號。設(shè)置控制串口的波特率是115 200,數(shù)據(jù)位是8 位,停止位是0 位,奇偶位是0;數(shù)據(jù)串口的波特率是921 600,數(shù)據(jù)位是8 位,停止位是0 位,奇偶位是0。代碼如表1 和表2 所示。
表1 自動檢測串口代碼Tab.1 The code to detect serial port automatically
表2 串口配置代碼Tab.2 The code to configure serial port
根據(jù)不同的檢測環(huán)境,分別在人的不同部位檢測生命體征,如后背和前面。通過修改配置文件實現(xiàn)對毫米波雷達(dá)射頻配置的修改,也可以修改信號處理時所需要的參數(shù)配置。
嵌入式軟件采用QT Creator 進(jìn)行編寫,這是因為QT 代碼有很好的移植性,加上自帶的界面編輯器,可以快速設(shè)計界面,并可移植到各個平臺。通過調(diào)用QSerialPort 模塊,可實現(xiàn)上位機(jī)與下位機(jī)的串口通訊。因為USB 串口每次插在不同的USB 口上時獲得的串口名稱可能有變化,這時可以利用串口的序列號,首先遍歷所有串口,找到所需串口,然后打開串口,設(shè)置波特率等參數(shù),串口收到數(shù)據(jù)后會發(fā)出一個信號(signal),通過槽函數(shù)(solt)與信號相連接。在slot 中讀取接收到的新數(shù)據(jù),用readAll() 函數(shù)讀取串口緩沖區(qū)中的全部數(shù)據(jù),代碼如表3 所示。通過串口進(jìn)行數(shù)據(jù)傳輸,實現(xiàn)了從下位機(jī)實時傳遞數(shù)據(jù)并在LCD 控件上實時顯示各采集的數(shù)據(jù)并繪制信號圖。
表3 讀取串口數(shù)據(jù)代碼表3 The code to read serial port data
本系統(tǒng)的數(shù)據(jù)存儲采用的是SQLite 數(shù)據(jù)庫。SQLite 是一款輕型的數(shù)據(jù)庫且遵守ACID 的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),接口簡單、速度快、體積小,它包含在一個相對小的C 庫中。因為設(shè)計目標(biāo)是嵌入式的,所以本身占用資源非常低,并且它能夠支持Windows/Linux/Unix 等主流的操作系統(tǒng),同時該系統(tǒng)操作簡單,功能強大,擴(kuò)展性強,生成的數(shù)據(jù)庫文件可以在多個平臺移植。
心率變異性(HRV)作為評估人體健康的指標(biāo)之一,評估心臟交感神經(jīng)與迷走神經(jīng)張力及其平衡性。通過毫米波雷達(dá)進(jìn)行檢測后,生成報告。報告中會顯示檢測者本次的平均心率值、異常結(jié)果、8 個身體情況指標(biāo)得分以及駕駛員駕駛狀況評估結(jié)果,檢測者可以根據(jù)這個報告了解自己的身體情況,及時做出調(diào)整,避免潛在的安全事故發(fā)生[7]。
在HRV 分析中,可以通過時域和頻域分析方法,其特征解釋如表4 所示。將從心率間隙值(RRI)估計得到的大部分時間域和頻域特征與參考值進(jìn)行對比。由于RRI 的估計方法不同,額外的估計可能影響最小和最大心率的誤差,也可能會帶來其他某些參數(shù)的誤差,但是從雷達(dá)中提取的許多HRV參數(shù)仍然有用。測試結(jié)果如圖6 所示。
圖6 HRV 檢測界面顯示Fig.6 HRV detection interface display
表4 心率變異性特征解釋Tab.4 Interpretation of characteristics of heart rate variability
對RRI 和RRI 差值進(jìn)行直方圖繪制,顯示間隙值的分布情況,通過散點圖形狀分析來進(jìn)行特征指標(biāo)評估。散點圖和直方圖顯示如圖7 所示。
圖7 散點圖和直方圖界面顯示Fig.7 Scatter diagram and histogram interface display
心率減速力(DC)的高低表示迷走神經(jīng)興奮性的高低,如果其降低會增加患者猝死率,這將會大大提高潛在安全事故的發(fā)生率。其臨床上判定意義:DC 大于4.5 ms,被測人員處于猝死低危階段,即駕駛員駕駛狀況良好;如果DC 低于2.5 ms,被測人員處于猝死的高危階段[8],駕駛員駕駛狀況較差,此時發(fā)生交通事故的潛在性大大增加。
通過心率段數(shù)據(jù)進(jìn)行減速力計算,得到DC 值,根據(jù)臨床判定的標(biāo)準(zhǔn)對DC 值進(jìn)行判斷,進(jìn)而篩選和判斷檢測人員的駕駛狀況。測試結(jié)果如圖8 所示。
圖8 心率減速力檢測界面顯示Fig.8 Heart rate deceleration force detection interface display
通過毫米波雷達(dá)進(jìn)行檢測后,對指標(biāo)進(jìn)行分析,生成駕駛員駕駛狀況評估報告。報告中會顯示檢測者平均心率值、異常結(jié)果、HR、SDNN、RMSSD、SDSD、PNN20、PNN50、DC、LF/HF 以及對本次檢測給出的駕駛建議,檢測者可以根據(jù)這個報告實時了解自己的身體狀況,結(jié)果如圖9 所示。
圖9 駕駛狀況評估界面顯示Fig.9 Driving condition assessment interface display
基于QT 平臺搭建駕駛員生命體征檢測系統(tǒng),通過毫米波雷達(dá)對駕駛員生命體征信號進(jìn)行檢測,對檢測到的信號進(jìn)行降噪處理,分離出心跳和呼吸信號,并對信號數(shù)據(jù)進(jìn)行HRV 指標(biāo)分析,評估駕駛員駕駛狀況,最后通過QT 設(shè)計的GUI 界面實時顯示駕駛員的體征數(shù)據(jù),實現(xiàn)了駕駛員生命體征實時檢測與駕駛狀況評估的功能。