王心鵬,劉 寧,門雅彬,孔佑迪,張東亮
(國家海洋技術(shù)中心,天津 300112)
海水溫度和電導(dǎo)率是重要的海洋環(huán)境要素,測量這兩類數(shù)據(jù)對水下溫度、鹽度、密度的分布情況以及聲波傳播速度的研究具有重要意義,可為海洋科學(xué)研究提供重要的數(shù)據(jù)支撐。投棄式溫度剖面測量儀(XBT)和投棄式溫鹽深剖面測量儀(XCTD)是能夠測量海水溫度剖面和電導(dǎo)率剖面的兩種投棄式儀器,是海洋調(diào)查領(lǐng)域重要的測量手段[1]。
通常,XBT和XCTD在使用時(shí)由專業(yè)測量人員使用手持式投放裝置進(jìn)行人工投放,該方式受人為、天氣和海況因素影響較大。近年來,隨著電子和自動(dòng)化技術(shù)的不斷發(fā)展,自動(dòng)投放裝置的研制受到了國內(nèi)外海洋領(lǐng)域的關(guān)注,取得了一定的進(jìn)展。美國的洛克希德·馬丁·斯皮坎公司(Lockheed Maritin Sippican,LMS)、日本的鶴見精機(jī)公司(TSK)均已研制出相關(guān)產(chǎn)品[2]并已安裝到測量船上進(jìn)行使用。在國內(nèi),國家海洋技術(shù)中心[3-4]、山東省科學(xué)院海洋儀器儀表研究所[5]、西安天和防務(wù)技術(shù)股份有限公司[6]等單位對探頭自動(dòng)投放技術(shù)進(jìn)行了深入研究,設(shè)計(jì)了不同類型的自動(dòng)投放裝置。但目前這些投放裝置的探頭一次性裝載數(shù)量有限,當(dāng)遇到惡劣海況或進(jìn)行密集化、網(wǎng)格化的海洋調(diào)查時(shí),頻繁的探頭人工裝填為現(xiàn)場操作帶來諸多不便。因此,自動(dòng)投放裝置一次性容納較多數(shù)量探頭的能力就變得尤為重要。
本文提出的XBT/XCTD自動(dòng)投放與測量控制系統(tǒng)由投放控制前端、通信控制與數(shù)據(jù)采集中端、供電單元后端和上位機(jī)軟件4部分組成,每組投放控制前端具有6個(gè)投放單元,前端具有擴(kuò)展功能,可根據(jù)使用需求進(jìn)行數(shù)量增減,通信控制與數(shù)據(jù)采集中端最多可同時(shí)連接8組前端,實(shí)現(xiàn)48枚探頭的一次性裝填和自動(dòng)投放。系統(tǒng)的中端接收來自控制室上位機(jī)的投放指令后,分配給對應(yīng)編號的前端,探頭投放后采集并實(shí)時(shí)處理測量數(shù)據(jù),通過網(wǎng)線回傳上位機(jī)。供電單元后端位于控制室內(nèi),為系統(tǒng)提供所需的直流供電,在保證系統(tǒng)正常運(yùn)行的同時(shí),其直流供電的特點(diǎn)也保證了甲板操作人員的安全。上位機(jī)軟件可根據(jù)XBT和XCTD測量原理的不同,對兩種探頭進(jìn)行自動(dòng)區(qū)分,完成測量數(shù)據(jù)的實(shí)時(shí)計(jì)算和剖面測量曲線顯示。系統(tǒng)能夠在測量船停航或走航條件下完成對海水溫度和電導(dǎo)率剖面數(shù)據(jù)的快速獲取,在惡劣海況下完成投放測量任務(wù),具有探頭裝填數(shù)量多、自動(dòng)化程度高、便于操作等特點(diǎn),對傳統(tǒng)人工投放方式起到良好的補(bǔ)充作用。
系統(tǒng)的硬件部分主要由投放控制前端、通信控制與數(shù)據(jù)采集中端、供電單元后端3部分組成,其硬件組成框圖如圖1所示。前端的硬件部分包括主控芯片、電源模塊、直流電機(jī)驅(qū)動(dòng)電路等部分,中端包括探頭數(shù)據(jù)采集模塊、GNSS定位模塊、通信控制模塊、RS232轉(zhuǎn)網(wǎng)絡(luò)模塊、供電和數(shù)據(jù)采集接口等,供電單元后端主要由開關(guān)電源、上電開關(guān)、過流保護(hù)器等模塊組成,為系統(tǒng)提供穩(wěn)定的直流供電。系統(tǒng)的投放控制前端電路板尺寸小巧,可直接安裝在投放架內(nèi)部,具有節(jié)省空間、走線規(guī)整等特點(diǎn)。中端最多可同時(shí)連接8組前端,通過控制前端相應(yīng)的直流電機(jī)帶動(dòng)每枚探頭前部的擋板運(yùn)動(dòng),可實(shí)現(xiàn)多枚探頭的依次投放與測量數(shù)據(jù)采集處理。
圖1 系統(tǒng)組成框圖
經(jīng)對不同型號的單片機(jī)參數(shù)性能進(jìn)行對比,項(xiàng)目組選用Silicon Laboratories公司的C8051F020微控制器作為通信控制與數(shù)據(jù)采集中端的控制芯片,具有64kB可編程FLASH和4 532字節(jié)SRAM,是完整的混合信號SoC芯片,70%的指令執(zhí)行時(shí)間為1~2個(gè)時(shí)鐘周期,片上外設(shè)充足,具有豐富的IO資源,其性能能夠滿足設(shè)計(jì)需求。由于投放控制前端的主控芯片只負(fù)責(zé)電機(jī)動(dòng)作機(jī)構(gòu)的控制和通信任務(wù),因此選用資源相對簡單的C8051F021芯片,以節(jié)省研制成本。
2.2.1 供電單元后端 由于前端和中端均安裝在甲板船舷處,為保證系統(tǒng)工作時(shí)設(shè)備及人員的安全,使用直流電源為甲板設(shè)備供電,該設(shè)計(jì)方案能夠有效地避免甲板操作人員因意外或設(shè)備短路導(dǎo)致的觸電風(fēng)險(xiǎn)。前端和中端的工作電壓為12 V,考慮到長距離供電傳輸時(shí)直流電壓在線纜上的損耗,將后端的輸出電壓設(shè)定為24 V。在供電單元后端內(nèi),使用兩臺交流220 V轉(zhuǎn)直流24 V的開關(guān)電源,為控制電路和直流電機(jī)分別供電。
2.2.2 硬件電路電源模塊 投放控制前端、通信控制與數(shù)據(jù)采集中端使用的電源芯片根據(jù)其電路上其他元器件的工作電壓范圍確定。在設(shè)計(jì)時(shí),以上兩個(gè)單元使用相同的電壓變換結(jié)構(gòu):首先將來自供電單元后端的24 V電壓通過芯片LM1085IS-12降低至12 V,然后使用LM2575S-5.0芯片將電壓降至5 V,再使用LM2937ES-3.3芯片將電壓降低至3.3 V,供單片機(jī)及其他數(shù)字器件使用。對于電機(jī)驅(qū)動(dòng)芯片,使用獨(dú)立的12 V電壓為其供電,避免電機(jī)啟動(dòng)停止時(shí)產(chǎn)生的干擾對其他數(shù)字器件的邏輯電平產(chǎn)生影響。
通信控制與數(shù)據(jù)采集中端能夠和多組前端進(jìn)行通信,由于前端和中端均安裝在夾板船舷處且間距較近,因此采用RS232全雙工通信方式。單片機(jī)的UART串口資源有限,為使系統(tǒng)具備同時(shí)連接多組前端的能力,需要對串口數(shù)量進(jìn)行擴(kuò)展。選用EXAR公司的XR16L784串口擴(kuò)展專用芯片,合理搭建外圍電路并編寫配置程序,實(shí)現(xiàn)多路串口擴(kuò)展功能[7]。
每片XR16L784芯片可擴(kuò)展4個(gè)UART串口,該設(shè)計(jì)使系統(tǒng)能同時(shí)連接8組前端。在程序配置時(shí)使用單片機(jī)的EMIF功能[8]使其工作在非復(fù)用模式下,其中P5和P6口分別與兩片XR16L784芯片的地址總線連接,P7口及讀寫控制線(WR、RD)與兩片芯片的數(shù)據(jù)線和控制引腳同時(shí)連接。由于在同一時(shí)刻只有一組前端處于工作狀態(tài),因此通過合理配置,該數(shù)據(jù)總線連接方式不會產(chǎn)生沖突?;贑8051F020單片機(jī)豐富的IO資源,設(shè)計(jì)時(shí)沒有采用鎖存器芯片和單片機(jī)端口復(fù)用的模式,減少額外元器件的引入以提高系統(tǒng)可靠性。串口擴(kuò)展電路原理圖如圖2所示。
圖2 通信接口模塊原理圖
投放控制前端的6枚探頭安裝槽外形尺寸一致,但由于XBT和XCTD測量機(jī)理不同,導(dǎo)致兩者在長度、重量上有所差異。在實(shí)際使用時(shí),兩種探頭均裝入投放筒中進(jìn)行投放,由于其直徑相同但長度不同,在投放前端結(jié)構(gòu)設(shè)計(jì)時(shí)將投放筒尾部連接觸點(diǎn)鎖緊裝置設(shè)計(jì)為可前后滑動(dòng)的形式,當(dāng)兩種不同類型的探頭筒裝入安裝槽后其前端由擋板固定,后端通過調(diào)整鎖緊裝置至適當(dāng)位置進(jìn)行固定,該設(shè)計(jì)可保證投放前端對兩種不同類型探頭的兼容。
每枚探頭的投放是由直流電機(jī)帶動(dòng)探頭前端的擋板運(yùn)動(dòng)來實(shí)現(xiàn)。選用TI公司的DRV8823[9]作為驅(qū)動(dòng)芯片,其供電電壓為12 V,具有SPI通信接口,控制信號為標(biāo)準(zhǔn)TTL電平,芯片內(nèi)部具有4個(gè)H橋驅(qū)動(dòng)電路,最大驅(qū)動(dòng)電流為1.5 A。在每組前端內(nèi)部使用兩片DRV8823芯片,實(shí)現(xiàn)對前端6臺探頭釋放電機(jī)的控制。
為便于每個(gè)投放單元的調(diào)試,設(shè)計(jì)了電機(jī)手動(dòng)控制驅(qū)動(dòng)電路接口,將電機(jī)供電接插件連接該接口后可通過手動(dòng)按鍵的方式對電機(jī)獨(dú)立控制。使用TI公司的DRV8870芯片作為電機(jī)驅(qū)動(dòng)備用芯片,該芯片具有1個(gè)H橋驅(qū)動(dòng)電路,通過控制芯片兩個(gè)輸入引腳的電平實(shí)現(xiàn)電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。該功能在對投放單元進(jìn)行現(xiàn)場調(diào)試和故障排除時(shí)具有重要的實(shí)用價(jià)值。
由于每次投放時(shí)只有一個(gè)投放單元處于工作狀態(tài),為節(jié)省系統(tǒng)線路開銷,采用總線的形式進(jìn)行測量數(shù)據(jù)傳輸。每組投放控制前端具有總線輸入輸出接口,當(dāng)系統(tǒng)接入多組前端時(shí),它們之間采用串連的方式連接,前端的總線輸入與通信控制與數(shù)據(jù)采集中端相連,由中端內(nèi)部的探頭數(shù)據(jù)采集模塊完成對海洋剖面數(shù)據(jù)的采集和處理。
在設(shè)計(jì)時(shí),使用繼電器實(shí)現(xiàn)每個(gè)探頭投放單元測量點(diǎn)接入總線的功能,當(dāng)投放單元不工作時(shí),繼電器觸點(diǎn)處于與總線斷開的常閉狀態(tài),當(dāng)需要投放該單元的探頭時(shí),通過單片機(jī)控制信號實(shí)現(xiàn)繼電器開關(guān)與常開觸點(diǎn)的連接,從而使該單元連入測量總線。由于探頭測量數(shù)據(jù)線有兩路,因此采用雙刀雙路繼電器,其工作電壓為12 V,為保證繼電器在工作時(shí)能夠穩(wěn)定持續(xù)地處于吸合狀態(tài),應(yīng)提供充足的供電電流。使用ULN2803集成芯片[10-11],它由8路NPN型達(dá)林頓管組成,可作為單片機(jī)輸出的TTL電平與需要較高工作電壓和電流的繼電器之間的接口。該芯片的達(dá)林頓管輸出為集電極開路,當(dāng)基極為高電平時(shí),達(dá)林頓管導(dǎo)通,繼電器工作。設(shè)計(jì)中選用的12 V繼電器的額定功率為400 mW,額定電流約為33 mA,經(jīng)查閱芯片數(shù)據(jù)手冊可知,在該電流下達(dá)林頓管的發(fā)射極和集電極間的飽和電壓約為0.6 V,繼電器可在該條件下處于穩(wěn)定的吸合狀態(tài)。繼電器內(nèi)部通過線圈的通斷電實(shí)現(xiàn)開關(guān)功能,通斷電的瞬間在達(dá)林頓管的集電極輸出端會形成較高的反向電動(dòng)勢[12],ULN2803芯片在該輸出端內(nèi)置了二極管,實(shí)現(xiàn)了對集電極輸出端的保護(hù)。該芯片的性能特點(diǎn)能夠滿足設(shè)計(jì)需求。測量數(shù)據(jù)總線接口原理圖如圖3所示。
圖3 測量數(shù)據(jù)總線接口模塊原理圖
系統(tǒng)在使用前,需要將探頭裝填至投放單元中,由于投放控制前端安裝在船體的側(cè)舷或尾舷處,操作人員在安裝完畢后需要及時(shí)對探頭能否接入系統(tǒng)進(jìn)行檢驗(yàn),以確保安裝成功。因此,在前端上安裝4個(gè)功能開關(guān)并設(shè)計(jì)相應(yīng)接口電路,分別實(shí)現(xiàn)探頭通道切換、直流電機(jī)擋板正轉(zhuǎn)、反轉(zhuǎn)和當(dāng)前通道自檢4項(xiàng)功能。開關(guān)接口電路設(shè)計(jì)時(shí),在單片機(jī)IO口和開關(guān)之間加入光電轉(zhuǎn)換器件實(shí)現(xiàn)隔離,對單片機(jī)起到保護(hù)作用。
探頭入水后開始水下參數(shù)測量并將數(shù)據(jù)實(shí)時(shí)傳輸,在其工作過程中,一旦通信控制與數(shù)據(jù)采集中端和控制室上位機(jī)間出現(xiàn)通訊異常,將會導(dǎo)致測量數(shù)據(jù)的缺失,影響后續(xù)剖面數(shù)據(jù)處理,對海洋調(diào)查研究產(chǎn)生較大影響。針對該問題,在中端設(shè)計(jì)時(shí)使用了RAMTRON公司的FM25V10數(shù)據(jù)存儲芯片,它可以存儲128 kB數(shù)據(jù),具有標(biāo)準(zhǔn)的SPI接口,工作溫度為-40~85 ℃,通過高可靠性的鐵電處理技術(shù)實(shí)現(xiàn)數(shù)據(jù)存儲,存儲期限長達(dá)10年。探頭原始數(shù)據(jù)經(jīng)過處理后,每幀數(shù)據(jù)包含編號、水溫、電導(dǎo)率3個(gè)參數(shù)共6個(gè)字節(jié),進(jìn)行水下1 000 m剖面測量時(shí)最多需要7 500幀數(shù)據(jù),總數(shù)據(jù)量為44 kB,小于芯片的存儲容量,因此該芯片能夠滿足設(shè)計(jì)和使用要求。
當(dāng)中端內(nèi)部的探頭數(shù)據(jù)采集模塊完成測量數(shù)據(jù)處理后,通過SPI接口將數(shù)據(jù)存入存儲芯片,然后再將其送入串口轉(zhuǎn)網(wǎng)絡(luò)的通信模塊發(fā)送至上位機(jī)?;谠擁?xiàng)設(shè)計(jì),探頭測量過程中即使出現(xiàn)因干擾、人為等因素導(dǎo)致的中端與上位機(jī)間通訊異常,測量數(shù)據(jù)也能完整地保存在存儲芯片中,待通訊恢復(fù)后再從存儲芯片中提取相應(yīng)數(shù)據(jù),保證了系統(tǒng)的可靠性。
系統(tǒng)在軟件設(shè)計(jì)時(shí)采用了模塊化的編程思想,基于Keil uVision4作為編程開發(fā)環(huán)境,編程語言使用C語言[13-14],在MCU寄存器初始化及需要高效率運(yùn)行的代碼部分使用匯編語言。
前端的單片機(jī)程序執(zhí)行后,首先對UART、時(shí)鐘、IO等相應(yīng)寄存器進(jìn)行初始化,采用中斷方式[15-16]的串口通信模式以提高效率。
投放控制前端寄存器初始化完畢后,通過位置傳感器確認(rèn)直流電機(jī)是否處于原點(diǎn)位置,若不在則自動(dòng)完成位置歸零。然后系統(tǒng)進(jìn)行狀態(tài)判斷,若為探頭裝填或自檢狀態(tài),則在操作人員完成每枚探頭的裝填后,通過點(diǎn)擊自檢按鈕,上位機(jī)會對該枚探頭是否連接成功進(jìn)行檢測。當(dāng)6枚探頭均裝填完畢后,程序則進(jìn)入自動(dòng)投放模式以等待投放指令。當(dāng)收到來自通信控制與數(shù)據(jù)采集中端的控制指令后,前端通過控制每枚探頭前方擋板的打開與閉合,以及相應(yīng)測量點(diǎn)與總線的連接,實(shí)現(xiàn)探頭的依次投放和測量數(shù)據(jù)傳輸。當(dāng)所有探頭均完成投放后,即可裝入新探頭準(zhǔn)備下一輪次投放,程序流程圖如圖4所示。
圖4 投放控制前端軟件流程圖
通信控制與數(shù)據(jù)采集中端用于接收來自上位機(jī)的控制指令,并按指令所含內(nèi)容發(fā)送給對應(yīng)前端,在上位機(jī)與多組前端之間起數(shù)據(jù)分配、處理和轉(zhuǎn)發(fā)的作用。中端開機(jī)后,接收來自上位機(jī)的前端在位檢測指令,檢測當(dāng)前連入中端的前端數(shù)量。隨后判斷當(dāng)前是否為探頭裝填和自檢模式,如果處于該模式則根據(jù)前端的接口按鍵操作依次完成裝填探頭的自檢,并將自檢結(jié)果報(bào)送至上位機(jī)。當(dāng)收到來自上位機(jī)的自動(dòng)投放指令時(shí),中端首先對該指令進(jìn)行解析,然后按照其內(nèi)部包含的編號發(fā)送至相應(yīng)前端,實(shí)現(xiàn)前端中各個(gè)投放單元與上位機(jī)的精準(zhǔn)對接,其軟件設(shè)計(jì)流程如圖5所示。
圖5 通信控制與數(shù)據(jù)采集中端軟件流程圖
上位機(jī)程序主要包含自動(dòng)投放控制、參數(shù)設(shè)置、測量數(shù)據(jù)接收、計(jì)算解析和剖面測量數(shù)據(jù)曲線繪制等功能模塊,使用Python語言編程設(shè)計(jì)。由于XBT和XCTD測量機(jī)理不同,對探頭類型的區(qū)分在中端內(nèi)部的數(shù)據(jù)采集單元中完成,上位機(jī)通過識別探頭類型代碼自動(dòng)完成XBT和XCTD顯示界面的切換,該設(shè)計(jì)可使探頭安裝時(shí)無需針對探頭類型和安裝次序進(jìn)行區(qū)分,提高了使用時(shí)的靈活性。軟件主要功能模塊如圖6所示。
圖6 上位機(jī)功能模塊結(jié)構(gòu)圖
投放控制前端、通信控制與數(shù)據(jù)采集中端與上位機(jī)間采用問詢、應(yīng)答的通信方式,問詢由上位機(jī)發(fā)起,中端收到后提取前端編號,通過通信接口模塊將指令發(fā)送給相應(yīng)前端,前端收到控制指令后將相應(yīng)動(dòng)作的命令標(biāo)志位賦值,通過在主函數(shù)中查詢標(biāo)志位執(zhí)行對應(yīng)的電機(jī)動(dòng)作,完成后清除該標(biāo)志位,并通過中端向上位機(jī)回復(fù)應(yīng)答指令。其數(shù)據(jù)通信格式為:
上位機(jī):$XX,AA,BB*KK
通信控制與數(shù)據(jù)采集中端:$XX,AA,BB*KK
投放控制前端:$XX,AA,BB,CC*KK
其中,XX表示投放控制前端編號(范圍:1~8),AA表示投放單元編號(范圍:1~6),BB表示控制字標(biāo)號,CC表示投放控制前端應(yīng)答及執(zhí)行情況,KK表示累加和校驗(yàn)。例如,需要第3組投放控制前端的第5個(gè)投放單元進(jìn)行投放,則上位機(jī)發(fā)出指令$03,05,01*39 ,中端接收該指令后向第3組前端轉(zhuǎn)發(fā)該指令,相應(yīng)前端通過串口收到該命令后進(jìn)行命令分類,主函數(shù)中檢測到該命令對應(yīng)的標(biāo)志位后將控制直流電機(jī)執(zhí)行相應(yīng)動(dòng)作,完成后則返回$03,05,01,00*39 。
系統(tǒng)在海上使用過程中,由于每枚探頭的投放均依賴于系統(tǒng)通信鏈路的穩(wěn)定性及動(dòng)作機(jī)構(gòu)執(zhí)行的可靠性,若某個(gè)電機(jī)動(dòng)作異常將直接導(dǎo)致投放失敗,因此對系統(tǒng)的功能、性能驗(yàn)證具有重要意義。系統(tǒng)試驗(yàn)分別從供電、自檢、投放與數(shù)據(jù)采集、數(shù)據(jù)存儲、探頭類型切換和多組前端接入測試等方面展開,檢驗(yàn)系統(tǒng)的功能和可靠性。
由于系統(tǒng)的前端與中端安裝在船體側(cè)舷或尾舷處,供電單元后端安裝在控制室內(nèi),為保證供電線纜順利走線至甲板單元處,將其長度設(shè)定為100 m。供電線纜的電阻為6 Ω/km,前端與中端工作時(shí)的峰值電流為2 A,因此供電纜傳輸直流電的壓降為2.4 V。前端與中端正常工作的最小輸入電壓為12 V,供電單元后端輸出的24 V直流電滿足使用要求。
向投放控制前端內(nèi)分別裝入XBT和XCTD,分別調(diào)節(jié)連接觸點(diǎn)鎖緊裝置,保證系統(tǒng)與探頭的可靠連接。使用探頭通道切換和當(dāng)前通道自檢兩個(gè)按鍵,分別對每個(gè)通道的探頭進(jìn)行自檢。自檢結(jié)果顯示所有通道均連接正常,具備投放條件。
通過上位機(jī)軟件,選擇待投放的通道編號,點(diǎn)擊“單枚自動(dòng)投放”按鈕,前端在指令控制下完成擋板的開啟,探頭順利落入水中,測量數(shù)據(jù)實(shí)時(shí)傳輸至數(shù)據(jù)采集中端,經(jīng)解算后傳輸至上位機(jī),完成曲線繪制。
為驗(yàn)證數(shù)據(jù)存儲功能,再次投放一枚探頭,但在發(fā)送“單枚自動(dòng)投放”命令后,人為將連接上位機(jī)與中端的網(wǎng)線斷開,待探頭測量完畢后重現(xiàn)連接。點(diǎn)擊上位機(jī)軟件界面上的“數(shù)據(jù)重傳”按鈕,測量數(shù)據(jù)能夠從中端的數(shù)據(jù)存儲芯片中提取至上位機(jī),滿足設(shè)計(jì)需求。
為驗(yàn)證XBT和XCTD的自動(dòng)切換功能,在前端的各投放單元分別裝入兩種類型的探頭。測試結(jié)果發(fā)現(xiàn),當(dāng)待投放XBT或XCTD兩者間發(fā)生類型轉(zhuǎn)換時(shí),上位機(jī)顯示界面無法自動(dòng)更新。
經(jīng)分析可知,系統(tǒng)中端每次接收來自上位機(jī)的指令后完成相應(yīng)動(dòng)作,隨后將進(jìn)入待機(jī)狀態(tài)至下一條命令的到來。上位機(jī)通過接收來自中端的查詢返回指令更新探頭類型狀態(tài)。在中端程序設(shè)計(jì)時(shí),UART 采用串口中斷的方式發(fā)送字符數(shù)組。每個(gè)待寫入的字節(jié)存入單片機(jī)發(fā)送緩沖寄存器SBUF后,程序?qū)⒎祷刂骱瘮?shù)繼續(xù)執(zhí)行下一條指令,當(dāng)SBUF中的字節(jié)最后一個(gè)比特位發(fā)送完成后,單片機(jī)將SCON寄存器的TI位置1,使程序再次進(jìn)入中斷發(fā)送程序。當(dāng)波特率設(shè)置為9 600 bps時(shí),發(fā)送一個(gè)字節(jié)所占用的時(shí)間為1.145 ms,而單片機(jī)執(zhí)行一次中斷發(fā)送函數(shù)的時(shí)間為微秒級,因此當(dāng)一幀字符還沒發(fā)送完成時(shí),程序便直接執(zhí)行主函數(shù)中的下一條語句,當(dāng)該語句為使單片機(jī)進(jìn)入停止模式的語句時(shí),便會導(dǎo)致發(fā)送緩存中的數(shù)據(jù)無法繼續(xù)送入SBUF,從而導(dǎo)致上位機(jī)無法接收完整的查詢返回指令。為保證數(shù)據(jù)幀的完整發(fā)送,應(yīng)在發(fā)送子函數(shù)的后面加入延時(shí)語句,或者將單片機(jī)功耗管理模式設(shè)定為空閑模式。經(jīng)程序優(yōu)化,上位機(jī)能夠?qū)γ棵短筋^在投放前完成顯示界面自動(dòng)更新。
在接入單組前端測試通過后,對系統(tǒng)進(jìn)行同時(shí)接入8組前端的處理能力測試。在試驗(yàn)中發(fā)現(xiàn),某些前端存在對上位機(jī)的控制指令不響應(yīng)的情況。經(jīng)對故障現(xiàn)象分析定位可知,通信控制與數(shù)據(jù)采集中端的通信接口模塊對應(yīng)程序部分需要調(diào)整:由于程序在執(zhí)行期間不間斷的掃描并識別來自上位機(jī)控制指令的幀頭字節(jié),根據(jù)不同的關(guān)鍵字進(jìn)行識別,當(dāng)中端串口接收緩存只接收完幀頭字節(jié)后,程序便進(jìn)入識別狀態(tài),而控制指令中的控制字此時(shí)還沒有完整傳輸至串口緩存中,因此程序會因未識別到具體的控制字而不與前端進(jìn)行通信,導(dǎo)致前端與中端連接異常。將原程序修改為,當(dāng)串口收到控制指令幀的第一個(gè)字節(jié)后便開始計(jì)時(shí),計(jì)時(shí)到10 ms后才允許讀接收緩存中的內(nèi)容,這種方式從時(shí)間上保證了控制指令接收的完整性。經(jīng)調(diào)整后的系統(tǒng),能夠?qū)崿F(xiàn)中端同時(shí)對8組前端穩(wěn)定的通信與控制。
通過從上述方面進(jìn)行試驗(yàn)驗(yàn)證及對異常情況的處理,系統(tǒng)能夠?qū)崿F(xiàn)對多組投放控制前端的可靠控制和測量數(shù)據(jù)接收處理。在投放裝置的海上試驗(yàn)測試中系統(tǒng)工作正常,能夠有效完成多枚XBT/XCTD探頭的自動(dòng)連續(xù)投放,保證系統(tǒng)正常運(yùn)行。
本文提出了多枚 XBT/XCTD 自動(dòng)投放與測量控制系統(tǒng)的設(shè)計(jì)思想并給出了詳細(xì)的硬件和軟件實(shí)現(xiàn)方案,通過對系統(tǒng)各項(xiàng)功能的測試驗(yàn)證了系統(tǒng)硬件設(shè)計(jì)的可靠性,同時(shí)也查找出了控制系統(tǒng)在對上位機(jī)的命令進(jìn)行響應(yīng)時(shí)出現(xiàn)的故障,通過軟件層面的機(jī)理分析進(jìn)行了故障定位,對程序完善優(yōu)化后解決了故障問題。實(shí)驗(yàn)室和海上試驗(yàn)的測試結(jié)果表明:供電單元后端能夠?yàn)橄到y(tǒng)進(jìn)行穩(wěn)定的供電輸出,通信控制與數(shù)據(jù)采集中端能夠同時(shí)連接8組投放控制前端,通過對直流電機(jī)和測量數(shù)據(jù)接入總線的控制實(shí)現(xiàn)多枚探頭的依次自動(dòng)投放,上位機(jī)軟件能夠自動(dòng)識別XBT和XCTD探頭類型,完成對海水溫度和電導(dǎo)率剖面測量數(shù)據(jù)的解算和曲線繪制。系統(tǒng)具有投放效率與自動(dòng)化程度高、工作穩(wěn)定等特點(diǎn)。
本文提出了多枚XBT/XCTD自動(dòng)投放與測量控制系統(tǒng),通過投放控制前端數(shù)量可擴(kuò)展的設(shè)計(jì)思路,實(shí)現(xiàn)了系統(tǒng)具備一次性裝載大量探頭的能力,彌補(bǔ)了現(xiàn)有設(shè)備中裝載探頭數(shù)量不足的缺陷。系統(tǒng)能夠兼容XBT和XCTD兩種不同類型的探頭,投放前對探頭類型自動(dòng)識別,在不同海況條件下實(shí)現(xiàn)密集化、網(wǎng)格化的海洋水文自動(dòng)剖面觀測,具有重要的應(yīng)用價(jià)值。