侯萌強 呂海濤 譚 鑫
(91439部隊 大連 116000)
水下航行體在運動過程中能夠獲取水下三維位置信息具有重要的意義。對水下航行體的定位與導(dǎo)航,可以通過水聲定位系統(tǒng)進(jìn)行水平坐標(biāo)方向上的定位[1],由于復(fù)雜的水下環(huán)境,對于水下航行體的深度位置信息,通常使用壓力傳感器采集其所在位置的壓力信息,然后深度測量電路將壓力值轉(zhuǎn)化成所對應(yīng)的深度值[2]。這樣綜合水平坐標(biāo)方向上的二維信息和深度測量值,可以得到水下航行體的三維位置坐標(biāo)[3]。本文基于MSP430 單片機設(shè)計并實現(xiàn)了深度測量電路,采用模塊化設(shè)計和軟件程序上的優(yōu)化設(shè)計來實現(xiàn)對水下航行體的深度測量功能。
測深功能模塊電路結(jié)構(gòu)如圖1 所示,主要分為壓力傳感器、電流轉(zhuǎn)電壓電路、A/D 轉(zhuǎn)換電路、串口電路和MSP430 控制電路五個部分,壓力傳感器用于把水下航行體當(dāng)前航行位置的壓力值轉(zhuǎn)化為電信號。由于選擇的壓力傳感器為電流輸出型,因此需要電流轉(zhuǎn)電壓電路將其轉(zhuǎn)化為電壓值,用于后續(xù)的深度解算。隨后進(jìn)行模數(shù)轉(zhuǎn)換,將轉(zhuǎn)換后的數(shù)字信號送入單片機,通過水壓和電壓的線性關(guān)系解算出水下航行體的深度值。
圖1 測深模塊電路結(jié)構(gòu)圖
壓力傳感器選擇型號為UNIK5000,適應(yīng)深度為0~500m,為電流型輸出型(4mA~20mA),具有寬供電電壓范圍(7V~32V)、高精度(誤差為±0.1%)的特性。為了將電流輸出轉(zhuǎn)變?yōu)殡妷狠敵?,選取了一個高精度電阻(萬分之一精度),阻值為250Ω,即將壓力傳感器輸出的電流變?yōu)殡妷?,范圍?V~5V。將輸出通過由AD8226搭接的放大電路,傳輸給A/D轉(zhuǎn)換芯片。AD8226 是一款低成本、寬電源電壓范圍儀表放大器,僅需要一個外部電阻來設(shè)置增益,增益范圍為1 至1000。它被設(shè)計為可工作于各種信號電壓的情況下。寬輸入范圍和軌到軌輸出使信號可充分利用供電軌。由于輸入范圍能夠降到負(fù)電源電壓以下,因此無需雙電源供電便可放大接近地電壓的小信號。該器件采用±1.35 V 至±18 V的雙電源供電或2.2 V~36 V 單電源供電。寬輸入范圍和軌到軌輸出滿足使用條件,簡化供電電路[4]。
A/D 轉(zhuǎn)換芯片為TI 公司的16bit 高速2.7V~5.5V 低功耗模數(shù)轉(zhuǎn)換器ADS8326。它具有16bit 傳輸不丟碼、3LSBPP 低噪聲、良好的線性特征、微功率(100kHz 采樣率,2.7V 供電情況下,功率2mW)、支持SPI串行通信的特點,參考電壓可以在0.1V 到VDD 之間,其內(nèi)部結(jié)構(gòu)圖和管腳分布圖如圖2 所示[5]。
主控芯片為MSP430 系列,是一款極低功耗的微型控制器。經(jīng)常應(yīng)用于模擬和數(shù)字傳感器系統(tǒng),數(shù)字電機控制,遠(yuǎn)程遙控、恒溫調(diào)節(jié)器、手持測量儀等。430 單片機具有應(yīng)用廣泛,開發(fā)成本小,功耗低,串行通信總線接口豐富,易于擴(kuò)展等特點,經(jīng)綜合考慮,選取了MSP430F5438A作為主控芯片。
圖2 ADS8326內(nèi)部結(jié)構(gòu)圖和管腳分布圖
總電源由穩(wěn)壓源提供,需要給壓力傳感器供電(18V)采用LM7818;單片機供電3.3V,先由DC/DC模塊M78AR05 變?yōu)?V,再由TPS77633 變?yōu)?.3V;放 大 電 路AD8226 供 電6V,使 用LM7806,將LM7818 輸出的18V 變?yōu)?V;模數(shù)轉(zhuǎn)換芯片供電5V,參考電壓也為5V,需要使用精密電源,選取了REF195芯片。所設(shè)計的供電電路如圖3。
根據(jù)所選的電阻阻值為250Ω,對應(yīng)壓力傳感器電壓輸出為1V~5V,于是電壓放大電路放大倍數(shù)就設(shè)定為1,使用AD8226 搭接電路,因為是差模輸入的儀表放大器,有助于抑制共模干擾。輸入電壓范圍1V~5V,為留有一定余量,供電電壓設(shè)計為6V。通過在AD8226 的2、3 管腳處外接電阻,可調(diào)節(jié)增益倍數(shù),在開路狀態(tài)下,增益為1,如圖4。
圖3 供電電路
圖4 電流轉(zhuǎn)電壓電路
電壓信號在1V~5V 上,所以參考電壓值為5V,以發(fā)揮A/D 的全部量化范圍,得到更小的量化誤差。在采樣前為了抗混疊濾波,以及為將壓力傳感器輸出信號中的高頻干擾濾除,于是在A/D 芯片即ADS8326 前加一個RC 濾波電路。在輸出管腳上,因ads8326 是5V 供電,而430 單片機為3.3V 供電,所以需要電壓轉(zhuǎn)換電路。模數(shù)轉(zhuǎn)換以及電壓轉(zhuǎn)換電路如圖5。
圖5 模數(shù)轉(zhuǎn)換以及電壓轉(zhuǎn)換電路
A/D 轉(zhuǎn)換芯片通過SPI串行數(shù)據(jù)端口與單片機通信,配置如下:
UCB2CTL1|=UCSWRST;
UCB2CTL0=UCMSB+UCMST+UCSYNC;
UCB2BR0=0x50;
UCB2BR1=0x00;
UCB2CTL1=UCSSEL_2+UCSWRST;
P9SEL|=BIT2+BIT3;
UCB2CTL1&=~UCSWRST;
分頻因子為80,時鐘源為SMCLK,為16MHz,則SPI接口的fBITCLK為200KHz。
MSP430 單片機正常工作情況下,采用TTL 電平信號進(jìn)行通信,輸入高電平最小2V,輸出高電平最小2.4V,典型值為3.4V,輸入低電平最大0.8V,輸出低電平最大0.4V,典型值0.2V。而PC 機傳輸?shù)氖荝S232 信號,-3V~-15V 電壓范圍內(nèi)的信號為邏輯“1”,+3V~+15V 電壓范圍內(nèi)的信號為邏輯“0”。為了實現(xiàn)兩種不同電平信號間的傳輸,我們選擇TI 公司的SN65C3221E 芯片作為串口通信的電平轉(zhuǎn)換芯片。
SN65C3221E 是 一 款 單 通 道3V~5.5V 供 電、1Mbit/s 傳輸?shù)腞S232 線路驅(qū)動器。它具有以下特征[7]:對RS232 管腳有防靜電保護(hù),低至1μA 的待機電流,僅需外部搭載四個0.1μF 電容,3.3V 供電模式下支持5V邏輯輸入。電路設(shè)計如圖6。
圖6 RS232串口通信電路
其中管腳9、11與430端連接,分別為數(shù)據(jù)接收和數(shù)據(jù)輸出。管腳8、13 與PC 機連接,分別為數(shù)據(jù)接收和數(shù)據(jù)輸出。
MSP430 單片機的串行異步通信模式通過UCAxRXD 和UCAxTXD 兩個管腳實現(xiàn)。它具有以下特征[8~9]:奇偶校驗方式可選;發(fā)送移位寄存器和接收寄存器獨立;發(fā)送緩沖寄存器與接收緩沖寄存器分離;低位優(yōu)先和高位優(yōu)先可選;波特率可控,小數(shù)部分可編程。本設(shè)計中,串口時鐘源為16MHz,波特率為9600bps,具體配置程序如下[10]:
P5SEL | = BIT6 + BIT7; //P3.4,5 = USCI_A0 TXD/RXD
UCA1CTL1 | = UCSWRST; //Put state machine in reset
UCA1CTL1|=UCSSEL_2; //SMCLK
UCA1CTL0|=UCPEN; //odd parity
UCA1BR0=0x82;
UCA1BR1=0x06; //16MHz 9600
UCA1MCTL=UCBRS_6+UCBRF_0;
UCA1CTL1 &= ~UCSWRST;//Initialize USCI state machine
UCA1IE |= UCRXIE;//Enable USCI_A0 RX interrupt
為了測試采集電路的可行性,通過壓力泵對壓力傳感器加壓的方式,采集在不同壓力下輸出,并由單片機通過串口發(fā)送回計算機。每次對A/D 前端的電壓值進(jìn)行采樣,在單片機中將電壓值按照換算關(guān)系(1V~5V 對應(yīng)深度為0~500m,線性關(guān)系)換算為相應(yīng)的深度值,并直接傳回計算機,實驗數(shù)據(jù)如表1。
表1 深度值未做多次采樣平均前
由表1 可知,在0,0.5,1,2,3,5 六種壓力狀態(tài)下,測得的深度均值及跳動范圍為(0.06,0.5)、(50.11,0.5)、(100.29,0.7)、(200.1,0.9)、(300.1,0.8)、(500.04,0.6)。分析平均值誤差來源主要來自三個方面:一是壓力傳感器輸出的誤差即壓力傳感器本身一定會存在誤差;二是A/D 采集的量化誤差;三是單片機換算時的誤差:A/D 采回的電壓值換算為深度值的過程中包含有乘除法計算,而單片機只能進(jìn)行定點運算,所以就會有精度上的誤差。
從表1 數(shù)據(jù)中可以看出測量值的跳動范圍很大,不夠平穩(wěn),因此對測深數(shù)據(jù)進(jìn)行一次濾波,即每次傳回的深度值是把采集到的32 次電壓值做均值換算。
進(jìn)行了深度多次平均后,測得的實驗數(shù)據(jù)如表2。
表2 深度值進(jìn)行多次采樣平均
由表2 可知,在0,0.5,1,2,3,5 六種壓力狀態(tài)下,測得的深度均值及跳動范圍為(0.04,0.2)、(50.04,0.2)、(100.19,0.3)、(200.07,0.3)、(300.1,0.3)、(500.01,0.3)。對比前后兩次數(shù)據(jù),發(fā)現(xiàn)通過進(jìn)行多次采樣平均計算得到的深度值誤差更小,尤其是幾次測量的深度值的變化范圍顯著降低,數(shù)據(jù)更加平穩(wěn),單次測量的深度值更加準(zhǔn)確。
本文以MSP430F5438A 為主控芯片,設(shè)計了一個可用在水下航行體上的深度測量電路,電路包括了供電電路、壓力傳感器輸出電流轉(zhuǎn)電壓電路、模數(shù)轉(zhuǎn)換電路、單片機控制電路與串口通信電路等部分,實現(xiàn)了將壓力信息采集到單片機中并與計算機通信的功能,通過采用多次測量求均值的方式,修正了單次采樣測量的誤差,達(dá)到了對水下航行體航行深度測量的目的,證明了方案的可行性。