顧海潮,麥云飛,張蘭春,石愛峰
(200093 上海市 上海理工大學 機械工程學院)
為了能夠實時了解駕駛員在駕駛過程的體征狀況,本文基于AWR1642BOOST 評估板(76~81 GHz)和QT 進行軟硬件設計。雖然76~81 GHz 雷達不能穿透皮膚[1],但是雷達可測量呼吸和心跳引起的體表運動,通過雷達對微小運動的靈敏度來檢測生命體征信號,采用URAT 串口協議進行采集信號傳輸,通過降噪算法處理采集數據,得到更準確的呼吸和心跳信號數據,并對體征信號數據做心率變異性(HRV)分析,將得出的分析結果進行指標分析,實現駕駛員駕駛狀況評估。最終通過QT 搭建的圖形用戶界面完成駕駛員生命體征和駕駛狀況顯示。
下位機采用TI 公司的AWR1642 BOOST 毫米波傳感器評估板,是工作在76~81 GHz 頻段的單片FMCW 雷達傳感器,包含開發軟件C67xDSP 內核、低功率ARM Cortex-R4F 控制器和片上存儲器所需要的一些組件,雷達發射前端有4 個接收通路,2 個發送通路。整體硬件部分邏輯圖如圖1 所示。

圖1 硬件組成邏輯圖Fig.1 Block Logic diagram of hardware composition
下位機運行流程如圖2 所示。AWR1642 BOOST毫米波傳感器評估板用于完成駕駛員生命體征信號的采集以及與上位機的通信,通過調用 QT 內置的QSerialPort 模塊,可以實現上位機與下位機的UART 串口通訊,能夠極大地保障發送與接收數據的準確性和抗干擾能力。QT 的上位機界面通過按鍵槽函數向其發送報文,控制毫米波雷達的啟停。

圖2 下位機流程圖Fig.2 Lower computer flow chart
AWR1642 BOOST 評估板內部的毫米波雷達發射脈沖信號,主要通過信號合成器、發射天線、接收天線、混頻器4 個模塊。通過毫米波雷達內部的信號合成器,可以調制脈沖頻率[2],本次實驗采用線性調頻脈沖,發射天線(TX)發射線性調頻脈沖。調頻脈沖在傳播的過程中遇到障礙將產生反射,反射的脈沖信號經由接收天線(RX)接收,發射天線和接收天線信號最后通過混頻器混合成中頻信號。整個信號發射和接收流程框圖如圖3 所示。選用TI 公司的AWR1642 BOOST(76~81 GHz)評估板進行檢測,此毫米波雷達使用的是4 發2 收天線。

圖3 毫米波雷達信號發射流程框圖Fig.3 Block flow diagram of millimeter-wave radar signal transmission
人體心跳和呼吸信號的檢測過程如圖4 所示,包括目標檢測、相位提取、信號分離與重構、呼吸和心跳頻率估計4 個步驟[3]。對中頻信號進行模數轉換后,首先要識別所檢測人體對應的距離范圍,對每個脈沖都進行距離快速傅立葉變換(FFT),得到距離信息[4],然后根據距離分布構造距離時間圖。在確定人體目標后,通過反正切進行相位求解并對反正切解調相位進行解纏繞。去除脈沖噪聲后,通過數字濾波器進行呼吸和心跳信號的分離。心跳信號進行隨機運動的檢測,去除無用信號。最后,采用峰值、頻域FFT 算法和時域自相關算法計算心率和呼吸頻率。整體信號處理流程如圖4 所示。

圖4 信號處理鏈中的生命體征檢測Fig.4 Vital sign detection in signal processing chain
QT 是一個跨平臺的C++應用程序開發框架,可以開發GUI 程序和非GUI 程序,被廣泛運用于各類嵌入式產品和設備的開發[5]。
生命體征檢測系統的圖形用戶界面開發,主要運用了QPushButto 控件、QLCDNumber 顯示控件、QCustomplot 控件、Line Edit 控件等。
在QT 中通過按鈕信號與槽函數的通信和聯系,以實現主界面與子界面的切換,還可實現自動檢測串口以及打開串口等功能。應用QT 串口類QSerialPort,QtSerialPort 模塊中提供的QSerialPort和QSerialPortInfo C++類,可分別提供操作串口的各種接口和計算機中可用串口的各種信息。
項目工程的建立,首先使用QT 設計器創建生命體征信號檢測系統的主窗口,即Windows 類,在此基礎上添加菜單欄,設置菜單欄名稱,創建對象然后添加槽函數,當菜單被點擊時,觸發綁定的函數事件。通過點擊菜單選項,進行界面切換。
為了進行實時的數據繪圖顯示,利用QCustomPlot 控件完成高質量的界面顯示。由官網下載QCustomPlot 源文件,在創建的項目中加入下載文件,創建一個widget,點擊左鍵選擇提升為QCustomPlot類,就可以使用它進行實時顯示繪圖[6]。
對信號進行處理,估計呼吸頻率和心跳頻率值,在QT 的GUI 界面上顯示,同時顯示信號波形圖和距離箱位置圖,圖形用戶界面如圖5 所示。

圖5 GUI 界面顯示Fig.5 GUI interface display
選擇自動檢測串口后,檢測系統的圖形用戶界面設備找到對應的USB 串口號,分別為控制串口號和數據串口號。設置控制串口的波特率是115 200,數據位是8 位,停止位是0 位,奇偶位是0;數據串口的波特率是921 600,數據位是8 位,停止位是0 位,奇偶位是0。代碼如表1 和表2 所示。

表1 自動檢測串口代碼Tab.1 The code to detect serial port automatically

表2 串口配置代碼Tab.2 The code to configure serial port
根據不同的檢測環境,分別在人的不同部位檢測生命體征,如后背和前面。通過修改配置文件實現對毫米波雷達射頻配置的修改,也可以修改信號處理時所需要的參數配置。
嵌入式軟件采用QT Creator 進行編寫,這是因為QT 代碼有很好的移植性,加上自帶的界面編輯器,可以快速設計界面,并可移植到各個平臺。通過調用QSerialPort 模塊,可實現上位機與下位機的串口通訊。因為USB 串口每次插在不同的USB 口上時獲得的串口名稱可能有變化,這時可以利用串口的序列號,首先遍歷所有串口,找到所需串口,然后打開串口,設置波特率等參數,串口收到數據后會發出一個信號(signal),通過槽函數(solt)與信號相連接。在slot 中讀取接收到的新數據,用readAll() 函數讀取串口緩沖區中的全部數據,代碼如表3 所示。通過串口進行數據傳輸,實現了從下位機實時傳遞數據并在LCD 控件上實時顯示各采集的數據并繪制信號圖。

表3 讀取串口數據代碼表3 The code to read serial port data
本系統的數據存儲采用的是SQLite 數據庫。SQLite 是一款輕型的數據庫且遵守ACID 的關系型數據庫管理系統,接口簡單、速度快、體積小,它包含在一個相對小的C 庫中。因為設計目標是嵌入式的,所以本身占用資源非常低,并且它能夠支持Windows/Linux/Unix 等主流的操作系統,同時該系統操作簡單,功能強大,擴展性強,生成的數據庫文件可以在多個平臺移植。
心率變異性(HRV)作為評估人體健康的指標之一,評估心臟交感神經與迷走神經張力及其平衡性。通過毫米波雷達進行檢測后,生成報告。報告中會顯示檢測者本次的平均心率值、異常結果、8 個身體情況指標得分以及駕駛員駕駛狀況評估結果,檢測者可以根據這個報告了解自己的身體情況,及時做出調整,避免潛在的安全事故發生[7]。
在HRV 分析中,可以通過時域和頻域分析方法,其特征解釋如表4 所示。將從心率間隙值(RRI)估計得到的大部分時間域和頻域特征與參考值進行對比。由于RRI 的估計方法不同,額外的估計可能影響最小和最大心率的誤差,也可能會帶來其他某些參數的誤差,但是從雷達中提取的許多HRV參數仍然有用。測試結果如圖6 所示。

圖6 HRV 檢測界面顯示Fig.6 HRV detection interface display

表4 心率變異性特征解釋Tab.4 Interpretation of characteristics of heart rate variability
對RRI 和RRI 差值進行直方圖繪制,顯示間隙值的分布情況,通過散點圖形狀分析來進行特征指標評估。散點圖和直方圖顯示如圖7 所示。

圖7 散點圖和直方圖界面顯示Fig.7 Scatter diagram and histogram interface display
心率減速力(DC)的高低表示迷走神經興奮性的高低,如果其降低會增加患者猝死率,這將會大大提高潛在安全事故的發生率。其臨床上判定意義:DC 大于4.5 ms,被測人員處于猝死低危階段,即駕駛員駕駛狀況良好;如果DC 低于2.5 ms,被測人員處于猝死的高危階段[8],駕駛員駕駛狀況較差,此時發生交通事故的潛在性大大增加。
通過心率段數據進行減速力計算,得到DC 值,根據臨床判定的標準對DC 值進行判斷,進而篩選和判斷檢測人員的駕駛狀況。測試結果如圖8 所示。

圖8 心率減速力檢測界面顯示Fig.8 Heart rate deceleration force detection interface display
通過毫米波雷達進行檢測后,對指標進行分析,生成駕駛員駕駛狀況評估報告。報告中會顯示檢測者平均心率值、異常結果、HR、SDNN、RMSSD、SDSD、PNN20、PNN50、DC、LF/HF 以及對本次檢測給出的駕駛建議,檢測者可以根據這個報告實時了解自己的身體狀況,結果如圖9 所示。

圖9 駕駛狀況評估界面顯示Fig.9 Driving condition assessment interface display
基于QT 平臺搭建駕駛員生命體征檢測系統,通過毫米波雷達對駕駛員生命體征信號進行檢測,對檢測到的信號進行降噪處理,分離出心跳和呼吸信號,并對信號數據進行HRV 指標分析,評估駕駛員駕駛狀況,最后通過QT 設計的GUI 界面實時顯示駕駛員的體征數據,實現了駕駛員生命體征實時檢測與駕駛狀況評估的功能。