揚(yáng)州萬方電子技術(shù)有限責(zé)任公司 郭 斌
電臺產(chǎn)品因其嚴(yán)苛的使用環(huán)境要求其必須通過高低溫測試,而高低溫測試時間跨度長且測試環(huán)境密封,測試人員無法實(shí)時監(jiān)控其狀態(tài),也無法及時的保護(hù)被測產(chǎn)品。所以需要設(shè)計(jì)一套系統(tǒng),用于監(jiān)測管理被測產(chǎn)品,該系統(tǒng)一方面保存測試數(shù)據(jù)為下一次的產(chǎn)品及其設(shè)計(jì)可靠性設(shè)計(jì)提供數(shù)據(jù),另一方面可減輕測試人員負(fù)擔(dān),保護(hù)被測產(chǎn)品。
stm32因其簡單易用且性能強(qiáng)大被廣泛使用,其片上資源豐富,能夠工作在-40至105攝氏度,滿足高低溫環(huán)境測試的需要,故采用其作為設(shè)備狀態(tài)監(jiān)測管理系統(tǒng)的SOC。
為此,選擇以STM32為SOC,以其內(nèi)置的串口、CAN口等通信端口與被測設(shè)備進(jìn)行交互,以各傳感器監(jiān)測被測設(shè)備在高低溫環(huán)境下的狀態(tài)信息。通過融合通信端口及傳感器數(shù)據(jù),根據(jù)內(nèi)置的判據(jù)文件進(jìn)行運(yùn)算,以保護(hù)高低溫環(huán)境下的被測設(shè)備。
高低溫測試中設(shè)備狀態(tài)的監(jiān)測管理系統(tǒng)由采集模塊、被測設(shè)備通信模塊、無線傳輸模塊、存儲模塊、保護(hù)模塊、上位機(jī)系統(tǒng)構(gòu)成。
采集模塊用于采集被測設(shè)備的信息,主要包括電壓傳感器、電流傳感器、亮度傳感器、聲音傳感器構(gòu)成。電壓傳感器用于獲取電臺設(shè)備的輸入電壓值、電流傳感器用于獲取電臺設(shè)備的輸入電流值,亮度傳感器用于采集電臺設(shè)備顯示屏的亮度值,聲音傳感器主要用于采集電臺設(shè)備輸出話音的頻率及強(qiáng)度。
被測設(shè)備通信模塊用于與被測電臺進(jìn)行通信,通過發(fā)送心跳包數(shù)據(jù)實(shí)時監(jiān)控其運(yùn)行狀態(tài),根據(jù)不同型號可選用串口、網(wǎng)口、CAN口進(jìn)行交互。
無線傳輸模塊是Stm32與上位機(jī)交互的通道,考慮到測試環(huán)境中難以有線連接所以采用了無線傳輸,又因?yàn)閭鬏敂?shù)據(jù)量小,STM32與上位機(jī)距離近的現(xiàn)狀,采用藍(lán)牙作為無線傳輸設(shè)備進(jìn)行數(shù)據(jù)交互。
存儲模塊是stm32判據(jù)文件存儲的地方,因?yàn)槠淙萘枯^小,故采取eeprom進(jìn)行儲存,其能夠被上位機(jī)修改,采用自定義協(xié)議的16進(jìn)制文件存儲。
保護(hù)模塊為斷電模塊,其通過控制繼電器進(jìn)行電臺設(shè)備的通斷電控制。
上位機(jī)系統(tǒng)通過藍(lán)牙與STM32進(jìn)行交互,其功能為接收STM32上傳的信息,配置STM32的判據(jù)文件,存儲STM32的信息,在保護(hù)模式下輸出報(bào)警信息。
高低溫測試環(huán)境下電臺設(shè)備的監(jiān)測管理系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 高低溫測試環(huán)境下電臺設(shè)備的監(jiān)測管理系統(tǒng)結(jié)構(gòu)框圖
本監(jiān)測管理系統(tǒng)主要是以STM32為核心,穩(wěn)定、可靠的采集、控制各管腳,這就要求在軟硬件上進(jìn)行篩選、選型工作
該系統(tǒng)可能運(yùn)行幾天甚至十幾天,其穩(wěn)定性、可靠性、實(shí)時性較為重要,為此應(yīng)選取一款實(shí)時操作系統(tǒng)以任務(wù)及任務(wù)間通信的形式進(jìn)行功能開發(fā)。該系統(tǒng)運(yùn)行于高低溫箱內(nèi),無需GUI,為此選取RTOS作為STM32運(yùn)行的操作系統(tǒng)。
目前RTOS種類較多,如u/KOS、BeRTOS、FreeRTOS、ucos等,考慮到授權(quán)及實(shí)時性、穩(wěn)定性等方面,擬采用ucos作為STM32的操作系統(tǒng)。
ucos由各任務(wù)組成,根據(jù)該系統(tǒng)的功能分配及總體框架,將任務(wù)分為:
A.初始化任務(wù):用于初始化各傳感器,進(jìn)行傳感器的使能及寄存器配置,讀取內(nèi)置存儲器中的初始判據(jù)文件;
B.無線傳輸任務(wù):用于自定義通信協(xié)議組包,自定義協(xié)議包括心跳信息、傳感器數(shù)據(jù)信息、控制指令信息;
C.采集任務(wù):按順序采集電壓、電流、亮度、聲音信息;
D.判斷任務(wù):根據(jù)采集的信息進(jìn)行運(yùn)算,如果超出判據(jù)則斷開觸發(fā)器,如果未超出則不斷開觸發(fā)器;
E.配置任務(wù):能夠配置刷新內(nèi)置eeprom內(nèi)的判據(jù)文件。整個系統(tǒng)的運(yùn)行順序如圖2所示。
圖2 系統(tǒng)運(yùn)行流程
串口、CAN口采用STM32內(nèi)置資源,藍(lán)牙模塊采用透傳方式與上位機(jī)通信,繼電器采用GPIO管腳進(jìn)行控制,存儲模塊采用標(biāo)準(zhǔn)eeprom進(jìn)行設(shè)計(jì)。為此在整個系統(tǒng)中只需要選型藍(lán)牙模塊。
采用獨(dú)立封裝的模塊,根據(jù)穩(wěn)定性、易用的需求,選取基于英國CSR公司BlueCore4系列芯片的HC05模塊。該模塊滿足溫度要求,使用簡單,穩(wěn)定性高。
該模塊的原理圖如圖3所示。
圖3 HC05藍(lán)牙模塊原理圖
由于整個系統(tǒng)是單機(jī)系統(tǒng),不涉及分布式存儲或大量計(jì)算,所以采用SQLite作為數(shù)據(jù)庫,QT作為上位機(jī)的開發(fā)環(huán)境。
為開發(fā)上述系統(tǒng),采用的QT中非GUI類有:
A.QBluetooth類,用于與STM32系統(tǒng)進(jìn)行通信,通信內(nèi)容為自定義數(shù)據(jù)格式,自定義數(shù)據(jù)分為數(shù)據(jù)信息、指令信息、判據(jù)文件傳輸指令;
B.QFile類,用于讀取二進(jìn)制文件判據(jù)文件,為后續(xù)發(fā)送提供幫助;
C.QSql類,用于讀寫SQLite,將STM32傳出的數(shù)據(jù)解析后寫入數(shù)據(jù)庫。
系統(tǒng)測試涉及上位機(jī)部分及嵌入式部分,為此采用python語言進(jìn)行測試,利用python強(qiáng)大的構(gòu)造能力及測試能力進(jìn)行測試。
對于上位機(jī)采取合法數(shù)據(jù)長時間測試及非法數(shù)據(jù)高頻率沖擊測試,驗(yàn)證其可靠性和健壯性。對于STM32進(jìn)行合法數(shù)據(jù)長時間測試,確保其穩(wěn)定性。
測試過程及測試結(jié)果如表1所示。
表1 系統(tǒng)測試過程及結(jié)果簡表
針對電臺產(chǎn)品在高低溫測試中采集測試數(shù)據(jù)、保護(hù)被測設(shè)備的需求,設(shè)計(jì)了基于STM32的高低溫測試中設(shè)備狀態(tài)監(jiān)測管理系統(tǒng),將該系統(tǒng)分為采集模塊、被測設(shè)備通信模塊、無線傳輸模塊、存儲模塊、保護(hù)模塊、上位機(jī)系統(tǒng),經(jīng)過軟硬件選型及程序編碼,實(shí)現(xiàn)了上述系統(tǒng),并利用python中Pybluz、pySerial等模塊進(jìn)行測試驗(yàn)證了系統(tǒng)的可行性、穩(wěn)定性,為電臺產(chǎn)品的高低溫測試提供保障,獲取的數(shù)據(jù)為后續(xù)的結(jié)構(gòu)設(shè)計(jì)、電路設(shè)計(jì)提供反饋數(shù)據(jù)。綜上,該系統(tǒng)可行、穩(wěn)定、可靠,能夠保障電臺產(chǎn)品的高低溫測試中若干需求,也可為其他系統(tǒng)提供設(shè)計(jì)參考。
引文
①曹圓圓.基于STM32的溫度測量系統(tǒng)[J].儀器儀表與分析監(jiān)測,2010(1):16-18.
②周博,王石記,邱衛(wèi)東,等.SHUM-UCOS:基于統(tǒng)一多任務(wù)模型可重構(gòu)系統(tǒng)的實(shí)時操作系統(tǒng)[J].計(jì)算機(jī)學(xué)報(bào),2006,29(2):208-218.
③黃嘉成,艾蘇高,黃典昆,等.基于STM32的藍(lán)牙智能飲水機(jī)設(shè)計(jì)[J].裝備制造技術(shù),2017(9):121-124.
④曹燁,姚敏,郭航宇.基于Qt的車載設(shè)備上位機(jī)監(jiān)控系統(tǒng)的設(shè)計(jì)[J].電子測量技術(shù),2015,38(3):139-143.
⑤杜廣超,郎杰,張祥虎,等.基于Qt的通信波形實(shí)現(xiàn)系統(tǒng)上位機(jī)軟件設(shè)計(jì)[J].電子對抗,2016(1):39-42.
⑥蔣崇武,劉斌,王軼辰,等.基于Python的實(shí)時嵌入式軟件測試腳本[J].計(jì)算機(jī)工程,2009,35(15):64-66.
⑦吳立金,簡陽,張凱,等.基于Python語言的GUI自動化測試腳本技術(shù)研究[J].計(jì)算機(jī)測量與控制,2015,23(10):3330-3332.