










摘" 要:工程車曲軸、凸輪軸信號發生器需要上位機存儲和管理波形配置參數,傳統信號發生器的上位機一般為PC機,存在體積龐大不便于攜帶的缺點。針對該問題,采用Android智能手機作為上位機,設計基于藍牙通信的曲軸、凸輪軸信號發生器上位機軟件。波形配置參數采用云數據庫存儲,通過后臺管理系統進行有效管理。用戶只需在客戶端中根據波形類型請求相應參數并通過藍牙發送給信號發生器,大大提高設備的便攜性,降低操作難度,節約信號發生器的片上資源。
關鍵詞:曲軸凸輪軸;信號發生器;上位機;Android;軟件研發
中圖分類號:TP317" " " "文獻標志碼:A" " " " " 文章編號:2095-2945(2024)04-0033-06
Abstract: Engineering vehicle crankshaft and camshaft signal generators require a host computer to store and manage waveform configuration parameters, and the host computer of traditional signal generators is usually a PC, which has the disadvantage of being bulky and not portable. To address this problem, the crankshaft and camshaft signal generator upper computer software based on Bluetooth communication was designed using an Android smartphone as the upper computer. The waveform configuration parameters are stored in cloud database and effectively managed by the background management system. The user only needs to request the corresponding parameters in the client according to the waveform type and send them to the signal generator through Bluetooth, which greatly improves the portability of the equipment, reduces the difficulty of operation, and saves the on-chip resources of the signal generator.
Keywords: crankshaft and camshaft; signal generator; host computer; Android; software development
工程車通常采用柴油發動機,電子控制單元(Electronic Control Unit,ECU)是發動機核心部件,控制著發動機的噴油量以及工程車的工作狀態[1]。由于工程車長期在強震動、高輻射、電磁干擾等惡劣的環境下作業,ECU故障頻發。發動機發生故障后很難對工程車進行托運,常見做法是技術人員前往工作場地進行檢修,因此對檢修設備的便攜性有著很高的要求[2]。
曲軸、凸輪軸信號是ECU判缸和噴油驅動程序所需要的最基本的信號[3]。當發動機發生故障時,需要對信號發生器產生曲軸、凸輪軸的模擬信號進行仿真,實現離線檢測。常見的信號發生器體積較大,采用PC機作為上位機,存在攜帶不便捷的問題。而且不同品牌車型的發動機結構不同,相應的曲軸、凸輪軸信號也各不相同,傳統信號發生器所產生的波形無法滿足不同型號的工程車發動機[4]。為提高信號發生器便攜性,增加信號種類,專用的便攜式工程車曲軸、凸輪軸激勵信號發生器一般采用STM32結合FPGA實現[5]。如圖1所示,上位機存儲、管理波形的配置參數,并按需發送給信號發生器。核心控制器STM32中的曲軸、凸輪軸生成算法會根據用戶提供的不同配置參數生成不同種類的波形數據,STM32控制FPGA多通道產生所需波形[6]。
本文為便攜式工程車曲軸、凸輪軸信號發生器研發了上位機軟件,用來存儲和管理不同品牌工程車發動機曲軸、凸輪軸信號發生的配置參數,為用戶提供友好的操作界面,根據用戶需求查詢信號發生所需要的配置參數并通過藍牙發送給信號發生器。
1" 上位機軟件總體設計方案
上位機為Android智能手機,下位機為任意波形生成系統,上位機軟件的設計方案如圖2所示。
用戶信息、工程車品牌、發動機型號和波形生成所需配置參數等信息存儲在云端數據庫,管理員可通過波形配置參數管理系統對工程車品牌、工程車發動機型號和波形配置參數進行管理。普通用戶在Android APP上選擇工程車品牌、工程車發動機型號等信息,向后臺管理系統請求得到生成該型號發動機曲軸、凸輪軸波形所需要的配置參數,通過低功耗藍牙BLE發送至波形發生器上的藍牙模塊,STM32得到配置參數后,進一步生成所需波形。
上位機軟件的設計需求如下:①數據通信。實現上位機與任意波形生成系統之間的數據通信,可以通過藍牙與下位機建立連接,并發送波形生成所需參數;②波形配置參數管理。實現對工程車品牌、發動機型號、波形生成所需配置參數等信息的增、刪、改、查;③狀態顯示。顯示并記錄波形生成系統工作狀態,形成波形發生“歷史記錄”;④用戶管理。實現對普通用戶和管理員用戶賬戶信息的管理。
2" 上位機軟件功能設計
上位機軟件主要由Android APP和波形配置參數管理系統2部分構成。圖3為上位機軟件的系統模塊圖。
Android APP面向普通用戶,主要功能模塊:①用戶信息管理模塊。該模塊實現用戶的注冊與登錄,用戶信息的查看與修改等功能;②藍牙建立與連接模塊。該模塊實現上位機與信號發生器數據通信鏈路的建立,實時反饋上位機和信號發生器藍牙連接狀態;③波形配置參數查詢與發送模塊。該模塊引導用戶選擇需要生成波形的工程車品牌、發動機型號等信息,向后臺管理系統查詢得到匹配的配置參數并顯示到界面。能夠向波形發生器正確無誤地發送查詢到的波形配置參數并反饋發送結果;④歷史數據模塊。該模塊主要實現歷史波形配置參數發送記錄的查詢。
波形配置參數管理系統面向管理員用戶,主要功能模塊:①用戶信息管理模塊。該模塊主要實現管理員用戶的注冊與登錄,普通用戶賬號的管理;②工程車品牌管理模塊。該模塊主要實現工程車品牌的添加、修改、刪除等功能;③發動機型號管理模塊。該模塊主要實現發動機型號的添加、修改、刪除的功能;④波形配置參數管理模塊。該模塊是整個后臺管理系統的核心模塊,主要實現添加、修改、刪除不同型號發動機曲軸、凸輪軸信號發生的配置參數;⑤歷史數據模塊。該模塊主要實現歷史波形配置參數獲取記錄的查詢。
3" 上位機軟件詳細設計
上位機軟件用戶端基于Android Studio開發,使用的編程語言是Java,軟件可以在裝有Android4.0版本操作系統以上的設備上安裝運行。實現藍牙設備連接、波形類型的選擇、波形數據的查詢和波形參數的下發等功能。上位機界面主要有藍牙連接界面、波形類型選擇及波形配置參數查詢界面、用戶管理界面。可根據工程車品牌、發動機信號、所需曲軸、凸輪軸信號類型向后臺管理系統查詢得到生成該波形的配置參數和控制字,如曲軸、凸輪軸類型、缺齒數等,通過藍牙將這些參數傳遞給下位機。界面會回顯參數傳遞狀態和下位機波形生成狀態,并產生一條波形生成記錄。
波形參數管理系統后端基于Spring Boot框架,前端采用Vue+Element UI,實現前后端分離。后端為前端提供一系列操作接口,如修改用戶信息接口、工程車品牌操作接口、發動機型號操作接口等。管理員用戶可以很方便地管理波形配置參數和用戶信息。為了保證波形配置參數和用戶信息的安全性,波形配置參數管理系統和數據庫均部署在云端,并定期進行維護。
3.1" 軟件工作流程
普通用戶端軟件使用流程:①用戶在“藍牙連接”界面打開藍牙,選擇要連接的設備,等待藍牙連接成功;②用戶在“波形配置參數獲取”界面選填工程車品牌、發動機型號、曲軸和凸輪軸波形類型等信息,點擊“獲取波形配置參數”按鈕,等待查詢相關配置參數,如果查詢成功,配置參數將會顯示在界面,否則給出錯誤信息;③波形參數獲取完成后,用戶檢查無誤后點擊“發送波形數據”按鈕,等待波形參數發送成功以及波形生成結果反饋;④如果波形生成成功,斷開藍牙連接;如果生成失敗,重復步驟2和步驟3。使用流程如圖4所示。
3.2" 基于藍牙通信的波形數據傳輸方法
用戶在APP中授予相關操作權限后,打開藍牙,點擊搜索藍牙設備,便能在藍牙設備類表中看到可連接的藍牙設備。為了方便用戶連接,下位機藍牙命名為STM32F103。首次連接需要用過數據配對碼先進行配對,配對成功會提示用戶,即可開始相關數據的傳輸。完成配對的Android設備可用過調用BluetoothSocket中的方法實現跨設備通信[7]。
與STM32上的藍牙模塊通信時,需要事先約定好通信協議。在APP和下位機中都需要配置好對應的協議,才能實現正確的通信。上位機向波形發生器硬件中斷發送參數的數據協議如圖5所示。幀頭標志一個數據幀的開始,幀尾標志數據幀的結束,需要傳遞的參數在中間的數據部分。由于數據采用串行傳輸,只需在開發過程中事先約定好參數在每個數據段中的位置即可。校驗碼用于檢驗傳輸過程中有無傳輸錯誤[8]。
以工程車曲軸激勵信號為例,數據段傳遞的參數包括曲軸信號類型、曲軸圈數、曲軸信號是否取反、總齒數和缺齒數等。Android端發送網絡請求得到波形參數,將波形參數添加幀頭幀尾封裝成幀后轉為字節流形式,通過藍牙向下位機串行發送字節流,接收端接收到的數據中參數的順序不會發生變化,下位機按照事先規定依次取出這些參數。數據傳輸的流程圖如圖6所示。
3.3" 波形配置參數請求流程
管理員用戶需在波形參數管理系統中添加相應的工程車品牌,每種工程車品牌下有不同的發動機型號,每種型號的發動機的曲軸、凸輪軸型號配置參數也不盡相同,管理員用戶需要在波形配置參數管理系統中添加波形配置參數,普通用戶才能根據需求請求相關的波形配置參數。
管理員添加波形配置參數流程:①以管理員身份登錄波形配置參數管理系統;②添加工程車品牌信息;③添加該品牌下的發動機型號信息;④添加該型號對應的曲軸、凸輪軸信號配置參數。
普通用戶請求波形配置參數流程:①以普通用戶身份登錄Android 應用;②選擇工程車品牌、發動機型號、波形類型等信息;③獲取波形配置參數;④等待結果反饋。
4" 上位機軟件實現
4.1" 藍牙配對與連接
藍牙配對連接界面主要實現藍牙設備的查找和通信的建立功能。點擊“添加藍牙設備按鈕”后,手機開始搜索周圍可連接設備,為了精確搜索到周圍的設備,我們對藍牙掃描范圍進行了設置。在下位機藍牙模塊連通的情況下,可根據設備名稱搜索到下位機。在搜索到的可用設備列表中,點擊想要添加設備的名稱,即可添加該設備。在藍牙設備列表中選擇想要連接的設備,跳轉到波形配置參數選擇界面,等待日志信息顯示“連接成功”提示后,即可開始數據通信。圖8為藍牙設備搜索界面,圖9為已添加設備列表界面。
4.2" 波形配置參數獲取與發送
波形配置參數獲取與發送界面主要實現波形工程車品牌選擇、發動機型號選擇、波形類型的選擇、波形參數的查詢與發送。用戶在如圖10所示的界面中選擇工程車品牌、發動機型號、波形類型等選項后,后臺會根據設置的選項在數據庫查詢該信號生成所需要的參數和控制字。檢查查詢的結果無誤后,點擊“發送”按鈕,即可將參數發送給下位機,如果下位機接收成功,會向手機反饋成功信息。
4.3" 用戶信息及歷史波形查看
用戶信息管理及歷史波形查看界面主要實現用戶賬號的管理和歷史生成波形信息的查看。APP只有在用戶登錄的情況下才能正常生成波形,在該界面可以看到用戶頭像、用戶名等基本信息,用戶可以對頭像、用戶名、密碼等信息進行修改。歷史波形列表顯示用戶生成過的歷史波形,在此列表中,用戶再次點擊生成過的波形,可直接查詢得到波形參數,無需再次選擇工程車品牌、發動機型號等信息。
4.4" 波形參數后臺管理系統
波形參數管理系統后端基于Java語言結合Spring Boot框架開發,前端網頁基于Vue+Element UI開發,實現了前后端分離,后端提供的接口Android在網絡請求時可以直接調用。管理人員在管理系統中可以查看修改用戶信息,對波形類型及波形參數進行增、刪、改、查等操作。波形參數管理系統的界面如圖11所示。
5" 結束語
本文為基于FPGA和STM32的便攜式微型任意波形發生器設計了上位機軟件,實現波形發生配置參數和控制字的獲取與發送。上位機軟件基于Android平臺開發,上、下位機之間通過藍牙實現數據傳送。波形配置參數存儲在云端數據庫,通過參數管理系統管理。解決了傳統任意波形發生器上位機體型龐大、不便于攜帶的問題,節省了下位機片上資源,降低了操作難度。
參考文獻:
[1] 鄭興建.基于虛擬儀器的工程車發動機ECU檢測系統[D].銀川:寧夏大學,2022.
[2] 王博.基于卷積神經網絡的工程車EECU激勵信號分類方法研究[D].銀川:寧夏大學,2022.
[3] 田飛,王貴勇,趙應兵,等.電控柴油機曲軸與凸輪軸同步脈沖信號模擬[J].信息與電子工程,2012,10(5):643-647.
[4] 徐金帥.基于STM32車載診斷與上位機軟件的設計與實現[D].杭州:浙江工業大學,2015.
[5] 馬啟晟.基于STM32單片機的信號發生器設計[J].中國軍轉民,2022(11):64-68.
[6] 臧譜陽,王正斌.基于FPGA的信號發生器的設計與實現[J].電腦知識與技術,2020,16(27):220-221.
[7] 熊小軍,萬輝勇,陳泓屹.基于Android的低功耗藍牙通訊研究與實現[J].科技廣場,2015(7):122-127.
[8] 閻占林,黃健文,黃健,等.BLE藍牙通信卡藍牙功能的技術研究與測試[J].電子產品世界,2022,29(4):41-48.