栗克國,李志飛
(1.交通運(yùn)輸部天津水運(yùn)工程科學(xué)研究院,天津300456;2.天津水運(yùn)工程勘察設(shè)計(jì)院,天津300456)
波浪測量是水運(yùn)工程物理模型試驗(yàn)的一項(xiàng)重要工作,對(duì)于需要布設(shè)數(shù)十只甚至上百只波高傳感器的試驗(yàn)環(huán)境,傳統(tǒng)的有線波高傳感器存在的布線繁瑣、信號(hào)串?dāng)_等問題日益凸顯。為解決該問題,本文設(shè)計(jì)了基于STM32的自容式無線波高傳感器,將波浪采集、數(shù)據(jù)存儲(chǔ)、無線數(shù)據(jù)傳輸、電池供電等功能集成在一起,實(shí)現(xiàn)了設(shè)備布設(shè)的便利化和數(shù)據(jù)傳輸?shù)臒o線化。測試表明,該傳感器滿足設(shè)計(jì)要求,具有良好的使用效果。
波高的測量原理,常用的有電阻式、電容式、超聲式、激光式等,隨著技術(shù)的進(jìn)度,電容式波高傳感器以其結(jié)構(gòu)簡單、動(dòng)態(tài)響應(yīng)特性好等優(yōu)點(diǎn)獲得了較廣泛的應(yīng)用。電容式波高傳感器的基本原理如圖1所示[1]。
圖1 電容式波高傳感器原理Fig.1 Principle of capacitive wave height sensor
當(dāng)電容器膽絲線在水中時(shí),一般情況下可將水體視為導(dǎo)體,膽絲線電芯與水體及膽絲線絕緣層形成圓筒形電容,該電容容量值與電芯直徑、絕緣層介電常數(shù)、膽絲線沒入水中深度有關(guān),且與膽絲線沒水深度成正比,由于電芯直徑和絕緣層介電常數(shù)均可認(rèn)為是常數(shù),因此電容值與膽絲線沒水深度成正比,通過測量電容值的變化即可獲得波高的變化。
傳感器的硬件原理框圖如圖2所示,以STM32F103C8T6 為主運(yùn)算控制器,膽絲線作為電容器接入CAV444 電容測量芯片,CAV444 通過C/V變換輸出直流電壓信號(hào),直流電壓信號(hào)通過信號(hào)調(diào)理后,輸入STM32 單片機(jī)ADC 進(jìn)行模數(shù)轉(zhuǎn)換,單片機(jī)將數(shù)據(jù)存入FLASH 存儲(chǔ)器,通過OLED 顯示器顯示采集數(shù)據(jù),并根據(jù)指令通過無線將數(shù)據(jù)發(fā)送到上位機(jī)。同時(shí)設(shè)置有鍵盤,可設(shè)置或調(diào)整參數(shù)配置。
圖2 硬件原理框圖Fig.2 Hardware block diagram
傳感器使用電容電壓測量線性轉(zhuǎn)換集成電路CAV444 作為電容檢測模塊的核心,該集成電路可以把電容式的信號(hào)轉(zhuǎn)換成線性的查分電壓輸出。通過調(diào)節(jié)零點(diǎn)和滿度可方便調(diào)準(zhǔn)。
圖3 為零點(diǎn)和滿度可調(diào)的完整的CAV444 檢測電路,其中R1為滿度調(diào)準(zhǔn)電阻,R3為零點(diǎn)調(diào)準(zhǔn)電阻。在本設(shè)計(jì)中,電容量變化范圍為定值,因此將這2 個(gè)調(diào)準(zhǔn)電阻均使用固定阻值電阻代替。
圖3 CAV444 典型電路圖Fig.3 Typical circuit diagram of CAV444
從CAV444 的Vout引腳輸出的電壓信號(hào),由于受到外界干擾及電源穩(wěn)定度影響,輸出精度噪聲較大,同時(shí)與Vref引腳的參考電平存在共模電平,為此,分別以Vout和Vref信號(hào)作為輸入信號(hào),進(jìn)行信號(hào)調(diào)理設(shè)計(jì)。
圖4 位信號(hào)調(diào)理電路,使用LM324 四運(yùn)放組成差分儀表放大器,對(duì)信號(hào)進(jìn)行差分放大處理后對(duì)外輸出。
圖4 信號(hào)調(diào)理電路設(shè)計(jì)Fig.4 Design of signal conditioning circuit
傳感器采用STM32F103C8T6 作為主控芯片,主頻最高可達(dá)72 MHz,具有64 K 的Flash 和20 K的SRAM,三路USART 接口,具有性能高、成本低、功耗低等優(yōu)點(diǎn)[2]。外部擴(kuò)展W25Q64 Flash 存儲(chǔ)器、SPI 接口OLED 顯示模塊、啟用外部晶振、啟用ADC、設(shè)計(jì)2 路串口通信,設(shè)計(jì)一個(gè)開關(guān)鍵盤復(fù)合接口,實(shí)現(xiàn)對(duì)外圍電路和總體管理控制。
傳感器使用0.91 寸OLED 顯示屏作為顯示器件,其支持SPI 總線,支持3.3 V 供電,功耗低,使用方便,最少僅需要4 根線即可實(shí)現(xiàn)控制,可方便集成到電路板中。本設(shè)計(jì)中,使用MCU 的PB10、PB11腳作為SPI 總線的SDA 和SCL 腳,采用軟件模擬方式進(jìn)行數(shù)據(jù)通信和顯示控制。
系統(tǒng)設(shè)計(jì)2 種通信方式,一是通過FT232RLRL芯片將一路UART 信號(hào)轉(zhuǎn)換成USB 信號(hào),可通過USB 口連接計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,二是通過一路UART 連接433 M 無線模塊,通過433 M 無線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸和采集控制。為了降低系統(tǒng)待機(jī)功耗,使用控制管腳對(duì)無線模塊進(jìn)行工作模式設(shè)置,當(dāng)系統(tǒng)待機(jī)時(shí),控制無線模塊進(jìn)入低功耗模式。
傳感器采用26650 鋰電池供電,通過TP5400充電管理及5 V 升壓芯片,實(shí)現(xiàn)對(duì)鋰電池充放電管理和提供5 V 系統(tǒng)供電。TP5400 為一款單節(jié)鋰離子電池充電器和恒定5 V 升壓控制器,充電部分集高精度電壓和充電電流調(diào)節(jié)器、預(yù)充、充電狀態(tài)指示和充電截止等功能于一體,可以輸出最大1 A 充電電流。而升壓電路采用CMOS 工藝制造的空載電流極低的VFM 開關(guān)型DC/DC 升壓轉(zhuǎn)換器[3]。同時(shí),支持通過USB 口進(jìn)行充電。另外,使用ASM1117-3.3穩(wěn)壓芯片為傳感器提供3.3 V 電源。
傳感器總體結(jié)構(gòu)如圖5所示,膽絲線一端固定在支撐桿上,另一端通過掛簧與手柄主體連接,進(jìn)入手柄內(nèi)部信號(hào)倉,手柄主體由信號(hào)倉、電池倉、電路倉三部分組成,其中,電路倉部分,在外側(cè)面設(shè)計(jì)有顯示屏,頂端設(shè)計(jì)有天線和USB 接口。
圖5 傳感器結(jié)構(gòu)設(shè)計(jì)Fig.5 Structure design of sensor
系統(tǒng)軟件使用Keil uVision5 集成開發(fā)環(huán)境使用C 語言開發(fā),采用模塊化設(shè)計(jì)方法設(shè)計(jì),主要包括系統(tǒng)初始化、人機(jī)交互、數(shù)據(jù)通信、數(shù)據(jù)采集存儲(chǔ)等功能模塊。
軟件主流程如圖6所示,系統(tǒng)上電后,首先進(jìn)行系統(tǒng)自檢和初始化,從Flash 讀取儀器配置參數(shù),并根據(jù)參數(shù)設(shè)置儀器狀態(tài),初始化完成后進(jìn)入While(1)循環(huán)程序,循環(huán)處理鍵盤響應(yīng)、狀態(tài)維護(hù)、數(shù)據(jù)傳輸工作。數(shù)據(jù)采集存儲(chǔ)、數(shù)據(jù)通信采用中斷響應(yīng)方式進(jìn)行實(shí)時(shí)響應(yīng)。
圖6 主程序流程Fig.6 Main program flow chart
軟件系統(tǒng)設(shè)計(jì)鍵盤響應(yīng)中斷、串口接收中斷、定時(shí)器中斷3 個(gè)主要中斷,其中設(shè)置串口接收中斷為最高優(yōu)先級(jí),定時(shí)器中斷為第二優(yōu)先級(jí),鍵盤響應(yīng)中斷為最低優(yōu)先級(jí)。
3.2.1 鍵盤中斷服務(wù)設(shè)計(jì)
鍵盤中斷主要處理鍵盤事件,包括啟動(dòng)停止采集,翻頁查看屏幕顯示,關(guān)閉設(shè)備3 個(gè)主要功能,其中斷服務(wù)流程如圖7所示。
3.2.2 定時(shí)器中斷服務(wù)設(shè)計(jì)
使用Timer2 作為數(shù)據(jù)采集間隔中斷定時(shí)器,根據(jù)采集間隔參數(shù)配置定時(shí)器的中斷時(shí)間間隔。在定時(shí)器中斷服務(wù)程序中,讀取ADC 數(shù)據(jù),經(jīng)過數(shù)據(jù)簡單處理后將數(shù)據(jù)存入Flash 存儲(chǔ)器。
3.2.3 串口接收中斷服務(wù)設(shè)計(jì)
串口接收中斷用于響應(yīng)串口事件,當(dāng)接收到上位機(jī)發(fā)送的串口指令后,根據(jù)串口指令控制儀器進(jìn)行不同的操作,本設(shè)計(jì)中,設(shè)計(jì)包括設(shè)置地址、設(shè)置采集參數(shù)、設(shè)置時(shí)鐘、控制采集、停止采集、讀取歷史數(shù)據(jù)等。為了便于處理,上位機(jī)指令采用“幀頭+命令字+數(shù)據(jù)域+校驗(yàn)位+幀尾”的格式。
圖7 鍵盤中斷服務(wù)流程Fig.7 Keyboard interrupt service flow chart
傳感器采集到的數(shù)據(jù),默認(rèn)存入Flash 存儲(chǔ)器,設(shè)計(jì)每512 個(gè)字節(jié)為一段,共計(jì)4096 個(gè)數(shù)據(jù)段。每段由起始標(biāo)識(shí),系統(tǒng)時(shí)間,采集參數(shù),數(shù)據(jù)段、結(jié)束符組成,每段可存儲(chǔ)250 組數(shù)據(jù)。
傳感器支持無線方式方式和串口方式上傳數(shù)據(jù),當(dāng)接收到上位機(jī)上傳數(shù)據(jù)指令后,傳感器根據(jù)設(shè)置參數(shù)按段上傳采集數(shù)據(jù)。支持一次傳輸100 段以內(nèi)數(shù)據(jù)。
使用波浪模擬裝置進(jìn)行實(shí)驗(yàn)室驗(yàn)證,同時(shí)安裝交通運(yùn)輸部天津水運(yùn)工程科學(xué)研究院的BG-40 波高傳感器進(jìn)行比對(duì)驗(yàn)證,采集數(shù)據(jù)如圖8所示,為連續(xù)4 個(gè)周期的采集數(shù)據(jù),兩個(gè)傳感器采集數(shù)據(jù)曲線基本重合。
圖8 自容式波高比對(duì)試驗(yàn)數(shù)據(jù)Fig.8 Experimental data of self contained wave height sensor
為了測試傳感器精度,使用多路波高傳感器自動(dòng)率定系統(tǒng)對(duì)40 cm 量程傳感器和60 cm 量程傳感器分別進(jìn)行精度試驗(yàn)。多路波高傳感器自動(dòng)率定系統(tǒng)整體結(jié)構(gòu)簡潔,率定數(shù)據(jù)精準(zhǔn),性能穩(wěn)定可靠,對(duì)不同量程,不同類型的波高傳感器具有很高的兼容性[4]。經(jīng)率定,測量結(jié)果如表1、表2所示。
表1 40 cm 量程自容式波高精度試驗(yàn)數(shù)據(jù)Tab.1 Accuracy test data in 40 cm range
表2 60 cm 量程自容式波高精度試驗(yàn)數(shù)據(jù)Tab.2 Accuracy test data in 60 cm range
分析表1 及表2 數(shù)據(jù),40 cm 傳感器最大誤差不超過1.6‰,60 cm 量程傳感器最大誤差不超過3.3‰,儀器精度滿足實(shí)際要求。
本文通過軟硬件設(shè)計(jì),研制了一種基于STM32的自容式無線波高傳感器,將傳統(tǒng)波高傳感器與無線數(shù)據(jù)采集存儲(chǔ)結(jié)合起來,相較于傳統(tǒng)的有線波高傳感器,避免了現(xiàn)場大量布置線纜帶來的各種問題,能夠提高物理模型試驗(yàn)的效率,從而減小試驗(yàn)成本加快試驗(yàn)進(jìn)度。