










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