劉 君,程 凱,趙培剛,徐 爽,馬 超
(中國海洋大學(xué),光學(xué)光電子青島市重點(diǎn)實(shí)驗(yàn)室,山東青島 266100)
海洋為人類提供了豐富的海洋資源與發(fā)展空間[1]。傳統(tǒng)的海洋科學(xué)研究方法只能從地面或者乘船從海面觀察海洋,隨著衛(wèi)星遙感技術(shù)的發(fā)展,也可從空中對(duì)海洋進(jìn)行觀測(cè),但這些方法都只能得到海洋表面的數(shù)據(jù)[2]。隨著科學(xué)技術(shù)的發(fā)展,海洋探測(cè)技術(shù)也相應(yīng)的在不斷發(fā)展與改進(jìn)。深海運(yùn)載器探測(cè)技術(shù)、深海光學(xué)傳感器探測(cè)技術(shù)、深海電磁學(xué)傳感器技術(shù)等[3]為人類科學(xué)地認(rèn)識(shí)深海提供了方法。認(rèn)識(shí)海洋的前提是需要依靠各種傳感器探測(cè)到的數(shù)據(jù),傳感器在不同海洋環(huán)境下的控制和傳感器數(shù)據(jù)存取則主要依托于數(shù)據(jù)采集系統(tǒng)。
在設(shè)計(jì)數(shù)據(jù)采集系統(tǒng)中,采用微控制器STM32作為系統(tǒng)的控制核心,由于試驗(yàn)需要搭載多種RS232串行接口的傳感器進(jìn)行測(cè)試,而STM32所提供的3個(gè)串口不能滿足需求,必須進(jìn)行串口擴(kuò)展。本文結(jié)合STM32單片機(jī)和串口擴(kuò)張芯片CH438Q設(shè)計(jì)實(shí)現(xiàn)了一種集成度高、配置靈活、小型化、多種傳感器接入的數(shù)據(jù)采集系統(tǒng)。
海洋數(shù)據(jù)采集系統(tǒng)集傳感器供電與管理于一體,兼容數(shù)字量、模擬量等接口傳感器,可以廣泛地應(yīng)用在各種海洋監(jiān)測(cè)平臺(tái)系統(tǒng)建設(shè)中,能夠滿足在線觀測(cè)與自容監(jiān)測(cè)的設(shè)計(jì)需要[4]。數(shù)據(jù)采集系統(tǒng)的整體設(shè)計(jì)是基于深海環(huán)境背景下設(shè)計(jì)的,其整體設(shè)計(jì)圖如圖1所示。
數(shù)據(jù)采集系統(tǒng)主要分為供電電源,微控制器,串口擴(kuò)展三部分。供電電源負(fù)責(zé)為微控制器、串口擴(kuò)展以及外接傳感器提供電源管理;串口擴(kuò)展部分負(fù)責(zé)與各種傳感器進(jìn)行通信對(duì)接,將傳感器探測(cè)的數(shù)據(jù)傳輸?shù)轿⒖刂破髦小N⒖刂破魇钦麄€(gè)數(shù)據(jù)采集系統(tǒng)的核心,負(fù)責(zé)控制整個(gè)數(shù)據(jù)采集系統(tǒng)的工作,需要對(duì)各類數(shù)據(jù)進(jìn)行采集、處理、存儲(chǔ),對(duì)各種傳感器工作狀態(tài)工作進(jìn)行監(jiān)控,保證整個(gè)采集工作的穩(wěn)定進(jìn)行。
數(shù)據(jù)采集系統(tǒng)各部分的詳細(xì)設(shè)計(jì)需要考慮所搭載傳感器的工作電壓、通信方式、通信速率、數(shù)據(jù)格式等主要參數(shù)。本試驗(yàn)所搭載的主要傳感器和其性能參數(shù)如表1所示。
表1 傳感器類型及性能參數(shù)
傳感器返回的數(shù)據(jù)格式如下所示。
(1)CTD返回的數(shù)據(jù)格式為:溫度,電導(dǎo)率,壓力,鹽度,聲速,日期,時(shí)間。
(2)甲烷返回的數(shù)據(jù)格式為:1:甲烷濃度對(duì)應(yīng)的電壓值;2:溫度;3:保留;4:保留;5:保留;6:保留;7:保留;8:保留。
(3)自研CO2返回的數(shù)據(jù)格式為:開始標(biāo)志,年月,日,時(shí),分,秒,參考A/D,當(dāng)前A/D,未校正CO2濃度,校正后CO2濃度,傳感器溫度,氣壓,內(nèi)部電池溫度,電源電壓,記錄器溫度,模擬輸入1,模擬輸入2,數(shù)字輸入1,數(shù)字輸入2。
(4)MiniCO2返回的數(shù)據(jù)格式為:CO2濃度。
串口擴(kuò)展部分是數(shù)據(jù)采集器中的重要部分,它主要負(fù)責(zé)接收各種傳感器探測(cè)獲得的數(shù)據(jù)、將微控制器發(fā)送的指令傳達(dá)給部分傳感器以及將接收到的數(shù)據(jù)再返回到微控制器,微控制器再進(jìn)行相應(yīng)的分類存儲(chǔ)。在此部分的設(shè)計(jì)中,選用了CH438Q芯片進(jìn)行串口擴(kuò)展。CH438Q芯片可以擴(kuò)展為8路串口,只需要在控制部分進(jìn)行相應(yīng)的初始化配置即可使用,而不會(huì)影響單片機(jī)自身具備的串口功能,且支持最高4 Mbit/s的通訊波特率,可以用于單片機(jī)/嵌入式系統(tǒng)的RS232串口擴(kuò)展、帶自動(dòng)硬件速率控制的高速串口等,支持串口低功耗睡眠模式。CH438Q與STM32通信原理如圖2所示。
圖2 CH438Q與STM32F103RCT6通信原理圖
CH438Q集成擴(kuò)展出來的通信接口為TTL電平,在本次數(shù)據(jù)采集器中所要搭載的傳感器均為RS232通信方式,因此,在串口擴(kuò)展設(shè)計(jì)模塊中,需要采用MAX3232芯片將TTL電平轉(zhuǎn)換成RS232電平與傳感器進(jìn)行通信。
微控制器采用STM32F103RCT6芯片,它基于高性能、低成本、低功耗嵌入式應(yīng)用的ARMCortex-M3內(nèi)核,采用ARM V7構(gòu)架,支持Thum-2指令集,具有位帶操作、定時(shí)器、可嵌套中斷、低成本、低功耗、接口豐富等優(yōu)勢(shì)[5]。
在數(shù)據(jù)采集系統(tǒng)中,STM32微控制器負(fù)責(zé)對(duì)串口擴(kuò)展模塊中的CH438Q寄存器進(jìn)行初始化、將采集到的數(shù)據(jù)進(jìn)行整合、存儲(chǔ)以及對(duì)整個(gè)系統(tǒng)運(yùn)行進(jìn)行監(jiān)測(cè)。微控制器主要功能示意圖如圖3所示。
圖3 控制模塊主要功能示意圖
控制模塊的軟件設(shè)計(jì)部分是在Keil uVision5集成開發(fā)環(huán)境下完成的。軟件架構(gòu)基于模塊化思想,針對(duì)不同的功能模塊進(jìn)行函數(shù)封裝,提高了軟件重用性和簡(jiǎn)潔性。
CH438Q芯片內(nèi)部具有8個(gè)完全獨(dú)立的異步串口,在寄存器地址空間分布上,每個(gè)串口各占用8個(gè)字節(jié)的地址空間。對(duì)CH438Q的串口進(jìn)行初始化要根據(jù)串口號(hào)對(duì)應(yīng)的地址進(jìn)行相應(yīng)的設(shè)置,主要包括:波特率、內(nèi)部時(shí)鐘頻率、FIFO的設(shè)置。
(1)波特率的設(shè)置是基于搭載傳感器的波特率大小選擇的。在本次試驗(yàn)中將串口1的波特率設(shè)置為115 200 bit/s,其他串口統(tǒng)一設(shè)置為9 600 bit/s。
(2)內(nèi)部時(shí)鐘頻率的大小要根據(jù)CH438Q外部晶體的大小進(jìn)行計(jì)算,其計(jì)算公式為:
設(shè)計(jì)中選用了頻率為7.372 8 MHz石英振蕩器作為外部晶振,以1.843 2 MHz作為串口內(nèi)部基準(zhǔn)時(shí)鐘,所需波特率為9 600 bit/s,則公式計(jì)算后,內(nèi)部時(shí)鐘頻率大小為0.614 4 MHz。
(3)設(shè)置FIFO模式為打開狀態(tài),觸發(fā)點(diǎn)為112字節(jié),便于數(shù)據(jù)緩存。
考慮到所搭載傳感器的數(shù)量和返回?cái)?shù)據(jù)的重復(fù),有必要對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的處理,這樣有利于數(shù)據(jù)的存儲(chǔ)以及后期處理。
微控制器將接收到CTD傳感器、甲烷傳感器、MiniCO2傳感器、自研CO2傳感器、艙內(nèi)溫濕度傳感器以及pH傳感器數(shù)據(jù),每個(gè)傳感器保留必要的數(shù)據(jù)后并用分號(hào)隔開進(jìn)行組合。數(shù)據(jù)處理后的格式為:標(biāo)志位,日期,時(shí)間,溫度,電導(dǎo)率,壓力,溶解氧,鹽度,聲速;甲烷濃度;參考A/D,當(dāng)前A/D,未校正CO2濃度,校正后CO2濃度,傳感器溫度,氣壓,內(nèi)部電池溫度,電源電壓;CO2濃度;艙內(nèi)溫度,艙內(nèi)濕度;pH值。
存儲(chǔ)模塊應(yīng)具有非易失性,及在掉電后的數(shù)據(jù)不會(huì)被丟失。常用的有固化存儲(chǔ)器主要包括FLASH、E2PROM和SD卡[6]。
在深海探測(cè)時(shí),由于深度原因,數(shù)據(jù)一般無法進(jìn)行實(shí)時(shí)傳輸?shù)剿?,可以采用大容量存?chǔ)設(shè)備,以存儲(chǔ)數(shù)據(jù)。這里選用SD卡作為數(shù)據(jù)存儲(chǔ)器是非常合適的。它不僅容量可以做到很大(32 GB以上),而且方便移動(dòng),并且有幾種體積的尺寸可供選擇(標(biāo)準(zhǔn)的SD卡尺寸,以及TF卡尺寸等),能滿足不同應(yīng)用的要求。
微控制器在將數(shù)據(jù)處理完成之后,將數(shù)據(jù)以.TXT文件格式存儲(chǔ)到SD卡之中,并以時(shí)間作為文件名。此外,為了方便測(cè)試后數(shù)據(jù)讀取處理,設(shè)計(jì)了USB的硬件接口功能并編制了相應(yīng)的控制程序,方便了數(shù)據(jù)的讀取。
數(shù)據(jù)采集系統(tǒng)裝載在耐壓艙體中,通過定制電纜分別與CTD傳感器、甲烷傳感器、自研CO2傳感器、MiniCO2傳感器等進(jìn)行連接,工作電源由AUV提供24 V直流電源。近海試驗(yàn)表明,數(shù)據(jù)采集器在長時(shí)間運(yùn)行下可以穩(wěn)定工作,通過USB讀取的實(shí)驗(yàn)數(shù)據(jù)分類存儲(chǔ)完整,達(dá)到了預(yù)期目標(biāo)。部分實(shí)驗(yàn)數(shù)據(jù)整理后如表2~表4所示。
表2 CTD傳感器數(shù)據(jù)
表3 甲烷和MiniCO2傳感器數(shù)據(jù)
表4 自研CO2、溫濕度、pH傳感器數(shù)據(jù)
針對(duì)于深海資源探測(cè)設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng),在完成了串口擴(kuò)展問題的基礎(chǔ)上,不僅做到了集成度高、低功耗、低成本,還可以根據(jù)不同的探測(cè)任務(wù)需求,靈活搭載不同的傳感器。后期還可以針對(duì)微控制器STM32功能進(jìn)行深入開發(fā),設(shè)計(jì)不同的功能模塊,滿足不同領(lǐng)域通信控制和數(shù)據(jù)傳輸?shù)男枨蟆?/p>