(海軍大連艦艇學(xué)院 大連 116018)
艦體的振動(dòng)對(duì)艦艇的結(jié)構(gòu)影響較大,嚴(yán)重時(shí)可以造成結(jié)構(gòu)的損壞,還能使艦上儀表、設(shè)備破損或失靈,破壞艦艇的穩(wěn)定性,影響艦上人員的工作效率以及生活的舒適性[1]。所以在艦艇試航時(shí)進(jìn)行艦體以及艦上設(shè)備的振動(dòng)檢測(cè)是一項(xiàng)很重要的工作。因此需要設(shè)計(jì)研發(fā)了一套振動(dòng)檢測(cè)系統(tǒng),可以對(duì)艦艇和艦上設(shè)備進(jìn)行振動(dòng)檢測(cè)。同時(shí)由于艦艇環(huán)境的特殊性,這就需要多點(diǎn)檢測(cè)和無(wú)線傳輸,并且也要求各個(gè)節(jié)點(diǎn)能工作更長(zhǎng)時(shí)間,所以需要設(shè)計(jì)出低功耗系統(tǒng)。本文介紹一種運(yùn)用低功耗高性能微處理器(MCU)作為核心,采用三軸數(shù)字加速度計(jì)作為測(cè)量元件的無(wú)線檢測(cè)系統(tǒng)。這種無(wú)線振動(dòng)檢測(cè)系統(tǒng)具有安裝方便、體積小攜帶便利、精度高、速度快的特點(diǎn)。
基于ARM Cortex-M3的艦用無(wú)線振動(dòng)系統(tǒng)組成如圖1所示,其中MCU 采用基于ARM Cortex-M3內(nèi) 核[2~3]的32 位單片機(jī)STM32F103C8T6[4]。由于在艦上檢測(cè)過(guò)程中,需要在多個(gè)點(diǎn)檢測(cè)采集數(shù)據(jù),所以整個(gè)系統(tǒng)由多個(gè)檢測(cè)節(jié)點(diǎn)、一個(gè)匯聚節(jié)點(diǎn)和上位機(jī)組成,其中檢測(cè)節(jié)點(diǎn)最多可以有123個(gè)。檢測(cè)節(jié)點(diǎn)由MCU 模塊、三軸加速度模塊、無(wú)線模塊組成。其中由MCU 模塊中的單片機(jī)接受傳感器數(shù)據(jù)并控制無(wú)線模塊發(fā)送數(shù)據(jù)。匯聚節(jié)點(diǎn)則是由MCU模塊接受無(wú)線模塊傳輸?shù)臋z測(cè)節(jié)點(diǎn)數(shù)據(jù),然后通過(guò)USB接口將數(shù)據(jù)上傳到上位機(jī)。
圖1 無(wú)線振動(dòng)檢測(cè)系統(tǒng)框架結(jié)構(gòu)
具體工作流程如下:初始化后,檢測(cè)所有存在的檢測(cè)節(jié)點(diǎn)的完好性并反饋信息,然后進(jìn)入數(shù)據(jù)采集階段。各個(gè)檢測(cè)節(jié)點(diǎn)的傳感器模塊檢測(cè)到的所在位置的三軸加速度數(shù)值,MCU 模塊通過(guò)I2C 數(shù)字接口采集數(shù)值,并通過(guò)SPI總線控制無(wú)線模塊發(fā)送數(shù)據(jù)。匯聚節(jié)點(diǎn)接收各個(gè)檢測(cè)節(jié)點(diǎn)的數(shù)據(jù)并由MCU 通過(guò)USB傳輸數(shù)據(jù)給上位機(jī),上位機(jī)顯示數(shù)值并保存數(shù)據(jù),也可以打印結(jié)果。
系統(tǒng)所采用的STM32F103C8T6[4]是屬于STM32F103 系列微控制器中的一種,是基于ARM Cortex-M3[2]的32位增強(qiáng)型微控制器,可用于高度集成和低功耗的嵌入式應(yīng)用,開(kāi)發(fā)較為簡(jiǎn)單快捷,可以使用廣泛應(yīng)用的MDK 開(kāi)發(fā)環(huán)境進(jìn)行開(kāi)發(fā)[5]。這一系列的MCU 可以工作在72MHz的主頻上,運(yùn)算速度達(dá)1.25DMips/MHz(Dhrystone 2.1),具有零等待周期的存儲(chǔ)器,可以運(yùn)行單周期乘法和硬件除法。外設(shè)包括有64K 的Flash程序存儲(chǔ)器和20K 的SRAM。在這次使用48 引腳產(chǎn)品上具有37個(gè)多功能雙向5V 兼容的I/O 口。有16個(gè)外部中斷,可以任意映射到任何一個(gè)I/O 口??偣灿?個(gè)定時(shí)器,其中3個(gè)16位普通定時(shí)器,每個(gè)定時(shí)器有多達(dá)4 個(gè)用于輸入捕獲\輸出比較\PWM 或脈沖計(jì)數(shù)的通道,1個(gè)16位6通道高級(jí)控制定時(shí)器,具有多達(dá)6路的PWM 輸出能做到死區(qū)控制、邊緣\中間對(duì)齊波形和緊急制動(dòng)。2 個(gè)看門狗定時(shí)器和1個(gè)24位自減型系統(tǒng)時(shí)間定時(shí)器。有9個(gè)通信通道,包括2個(gè)I2C接口,3個(gè)USART 接口,支持ISO7816、LIN、IrDA 接口和調(diào)制解調(diào)控制,2個(gè)SPI同步串行接口(18mb/s),1個(gè)CAN 接口,1個(gè)USB2.0接口。使用2.0~3.6V 供電和I/O 管腳。內(nèi)嵌晶體振蕩器和RC 振蕩器,使用PLL供應(yīng)CPU 時(shí)鐘,具有帶校準(zhǔn)功能的32kHz RTC振蕩器。有兩個(gè)12位數(shù)模轉(zhuǎn)換器,1μs轉(zhuǎn)換時(shí)間,具有雙采樣和保持功能??梢圆捎盟?、停機(jī)和待機(jī)模式等節(jié)能模式,可以使用Vbat為RTC和后備寄存器供電。調(diào)試模式為串行線調(diào)試和JTAG 接口[6]。
nRF24L01[7]是一款單片無(wú)線收發(fā)器芯片,工作在2.4GHz~2.5GHz通用ISM 頻段。無(wú)線收發(fā)器包括:nRF24L01 由頻率發(fā)生器、增強(qiáng)型SchockBurst模式控制器、功率放大器、晶體振蕩器、調(diào)制器、解調(diào)器等功能模塊組成,不需要外加濾波器也可以得到良好的通信效果。最高工作速率2MBps,高效GFSK 調(diào)制,抗干擾能力強(qiáng),特別適合工業(yè)控制場(chǎng)合。具有126個(gè)頻道,滿足多點(diǎn)通信和調(diào)頻通信需要,內(nèi)置硬件CRC 檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制。nRF24L01 使用SPI接口可以和任何MCU 進(jìn)行通信,其中地址、輸出功率、頻道選擇和協(xié)議都可以通過(guò)SPI接口進(jìn)行設(shè)置,可以接受5V 電平輸入。芯片封裝面積小,使用20腳QFN 4×4mm 封裝。具有極低的電流消耗:當(dāng)工作在發(fā)射模式下,發(fā)射功率為-6dBm 時(shí)電流消耗為9.0mA,接收模式時(shí)為12.3mA,掉電模式和待機(jī)模式下電流消耗更低。芯片可以軟件設(shè)置空閑模式、關(guān)機(jī)模式,易于節(jié)能設(shè)計(jì)。適合工業(yè)數(shù)據(jù)采集、無(wú)線報(bào)警及安全系統(tǒng)等諸多領(lǐng)域應(yīng)用。無(wú)線模塊的電路圖如圖2所示。
采用低功耗的高分辨率三軸數(shù)字加速度計(jì)ADXL345[8],這一款加速度計(jì)分辨率高達(dá)13 位,測(cè)量范圍為±16g。具有超低功耗:Vs=2.5V 時(shí),測(cè)量模式下低至23μA,待機(jī)模式下為0.1μA 功耗隨帶寬自動(dòng)按比例變化用戶可選的分辨率,包括10位固定分辨率、全分辨率,分辨率隨g范圍提高而提高,±16g時(shí)高達(dá)13位(在所有g(shù)范圍內(nèi)保持4mg/LSB的比例系數(shù))嵌入式存儲(chǔ)器管理系統(tǒng)采用FIFO 技術(shù),可將主機(jī)處理器負(fù)荷降至最低。能夠進(jìn)行單振/雙振檢測(cè)、活動(dòng)/非活動(dòng)監(jiān)控、自由落體檢測(cè)。電源電壓范圍:2.0V~3.6V。I/O 電壓范圍:1.7V~VS。靈活的中斷模式,可映射到任一中斷引腳。通過(guò)串行命令可選測(cè)量范圍,通過(guò)串行命令可選帶寬。寬溫度范圍(-40℃~+85℃)??箾_擊能力達(dá)到10000g采用3×5×1mm 的LGA封裝。數(shù)字輸出數(shù)據(jù)為16位二進(jìn)制補(bǔ)碼格式,可通過(guò)SPI(3線或4線)或I2C 數(shù)字接口訪問(wèn),在本 系統(tǒng)中采用了I2C數(shù)字接口進(jìn)行數(shù)據(jù)訪問(wèn)。
圖2 無(wú)線模塊電路圖
系統(tǒng)包括最多123個(gè)檢測(cè)節(jié)點(diǎn)和1個(gè)匯聚節(jié)點(diǎn)組成。檢測(cè)節(jié)點(diǎn)電路包括傳感器模塊電路、MCU 及外圍電路和無(wú)線射頻模塊,如圖3所示。其中傳感器模塊由于采用的是三軸數(shù)字加速度傳感器,所以直接輸出數(shù)字信號(hào),通過(guò)I2C 數(shù)字接口傳輸給MCU,而MCU 則通過(guò)SPI數(shù)據(jù)總線控制無(wú)線模塊發(fā)送測(cè)量得到的數(shù)據(jù)。各個(gè)節(jié)點(diǎn)上還帶有按鍵電路用來(lái)修正和更改檢測(cè)節(jié)點(diǎn)的無(wú)線射頻地址和三軸加速度傳感器的量程[9]。
圖3 測(cè)量節(jié)點(diǎn)組成
匯聚節(jié)點(diǎn)電路由無(wú)線射頻模塊電路和MCU及外圍電路以及USB接口電路組成,如圖4所示。由于STM32F103 單片機(jī)沒(méi)有片上USB 控制器,所以需要一個(gè)USB接口芯片。
這里選用了PDISUSBD12[10]芯片,并使用自定義USB HID[11]設(shè)備的形式與上位PC 進(jìn)行通信,這種方式的優(yōu)點(diǎn)是不需要開(kāi)發(fā)專門的驅(qū)動(dòng),連接方便。采集節(jié)點(diǎn)的MCU 通過(guò)USB 接收上位機(jī)的指令,并用SPI總線控制無(wú)線射頻電路收發(fā)信息,再通過(guò)USB把收到的數(shù)據(jù)傳給上位機(jī)。
圖4 匯聚節(jié)點(diǎn)組成
檢測(cè)節(jié)點(diǎn)通過(guò)傳感器模塊測(cè)量節(jié)點(diǎn)所在位置的瞬時(shí)加速度,通過(guò)無(wú)線模塊把測(cè)量數(shù)值傳輸給匯聚模塊。由于整個(gè)系統(tǒng)有多個(gè)檢測(cè)節(jié)點(diǎn),而匯聚節(jié)點(diǎn)在同一時(shí)間只能接收一個(gè)檢測(cè)節(jié)點(diǎn)的數(shù)據(jù),所以檢測(cè)節(jié)點(diǎn)必須相隔一定時(shí)間,把數(shù)據(jù)打包發(fā)射,數(shù)據(jù)在發(fā)射前存儲(chǔ)在MCU 的SRAM 內(nèi),由于單個(gè)檢測(cè)節(jié)點(diǎn)一次發(fā)射的數(shù)據(jù)量不是很大,采用依次通信的方式,軟件設(shè)置一個(gè)循環(huán)為18ms。各個(gè)檢測(cè)節(jié)點(diǎn)有不同的無(wú)線射頻發(fā)射地址ID,當(dāng)需要更改地址的時(shí)候可以通過(guò)按鍵進(jìn)行修改。
匯聚節(jié)點(diǎn)在接收到上位機(jī)發(fā)出的采集信息的指令后,給系統(tǒng)中存在的各個(gè)檢測(cè)節(jié)點(diǎn)地址依次發(fā)送指令,得到回復(fù)信息后把接收到的各個(gè)檢測(cè)節(jié)點(diǎn)的數(shù)據(jù)上傳給上位機(jī)顯示。如果某個(gè)地址沒(méi)有回復(fù),就上傳這個(gè)地址為空的信息。采集節(jié)點(diǎn)與上位機(jī)連接是用USB接口,并且是作為上位機(jī)的USD_HID 設(shè)備。通過(guò)USB把數(shù)據(jù)傳輸給上位機(jī)。
上位機(jī)軟件用來(lái)控制采集節(jié)點(diǎn)發(fā)送指令并顯示和存貯匯聚節(jié)點(diǎn)接收和上傳的各個(gè)檢測(cè)節(jié)點(diǎn)的數(shù)據(jù),如圖5所示,上部表格顯示系統(tǒng)中存在的檢測(cè)節(jié)點(diǎn)的數(shù)量和實(shí)時(shí)狀態(tài),下部顯示波形圖??梢赃x擇顯示XYZ各軸的波形,或者三者同時(shí)顯示。并且數(shù)據(jù)也可以保存為文件存儲(chǔ)在上位機(jī)硬盤上。
圖5 上位機(jī)程序的GUI界面
本系統(tǒng)充分利用具有Cortex-M3內(nèi)核的32位微控制器STM32F103的高效性和低功耗,采用低功耗的nRF24L01 無(wú)線數(shù)傳芯片和ADXL345 三軸加速度傳感器芯片,可以滿足多點(diǎn)大面積振動(dòng)檢測(cè)的工作需求,同時(shí)也保證了低功耗的運(yùn)行,使系統(tǒng)在使用的時(shí)候能有較長(zhǎng)的工作時(shí)間。如果是需要在更大振動(dòng)加速度的場(chǎng)合,可以更換較大量程的三軸加速度傳感器。在實(shí)際測(cè)試中,測(cè)試節(jié)點(diǎn)與采集節(jié)點(diǎn)的最遠(yuǎn)無(wú)線傳輸距離可以達(dá)到200m,同時(shí)安裝與使用方便,具有低功耗、實(shí)時(shí)性強(qiáng)、擴(kuò)展容易、成本低廉的特點(diǎn),非常適合在艦船上使用,具有廣泛的應(yīng)用推廣前景。
[1]姚振亮,張阿漫.船體振動(dòng)與噪聲[M].北京:國(guó)防工業(yè)出版社,2010,8:51-72.
[2]ARM 公司Cortex-M3技術(shù)參考手冊(cè)[EB/OL].2009:1-10.
[3]ARM 公司Cortex-M3用戶指導(dǎo)用書(shū)[EB/OL].2009:1-6.
[4]意法半導(dǎo)體公司STM32F103 增強(qiáng)型系列數(shù)據(jù)手冊(cè)[EB/OL].2009:1-4.
[5]李寧.基于MDK 的STM32 處理器開(kāi)發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008:43-45.
[6]彭剛,秦志強(qiáng).基于ARM Cortex-M3的STM32系列嵌入式微控制器應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2011:32-37.
[7]諾迪克半導(dǎo)體公司.單芯片發(fā)送接收nRF24L01產(chǎn)品技術(shù)規(guī)格說(shuō)明[EB/OL].2006:2-7.
[8]邏輯設(shè)備公司.3軸數(shù)字加速度計(jì)ADXL345數(shù)據(jù)手冊(cè)[EB/OL].2009:1-7.
[9]喬立升,吳積欽,徐可佳.無(wú)線組網(wǎng)技術(shù)在接觸網(wǎng)振動(dòng)試驗(yàn)系統(tǒng)中的應(yīng)用[J].現(xiàn)代電子技術(shù),2009,30(1):33-35.
[10]飛利浦PDIUSBD12數(shù)據(jù)手冊(cè)[EB/OL].2001:1-5.
[11]馬偉.計(jì)算機(jī)USB系統(tǒng)原理及其主/從機(jī)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2004:20-25.