《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于STM32的深海鉆機甲板控制系統(tǒng)
基于STM32的深海鉆機甲板控制系統(tǒng)
來源:微型機與應(yīng)用2014年第5期
陳 穎,劉敬彪,蔡文郁,孔慶鵬
杭州電子科技大學(xué) 電子信息學(xué)院,浙江 杭州 310018
摘要: 針對深海鉆機的使用環(huán)境,設(shè)計并實現(xiàn)了甲板實時操作鉆機的一款手操器。該手操器由基于STM32F103VCT6微控制器的控制板以及一些外部輸入輸出設(shè)備所組成,其與鉆機系統(tǒng)通過串口通信。由于甲板手操器與海底鉆機距離較長,且串口傳輸距離有限,因此以光纖傳輸為中繼。
Abstract:
Key words :

摘  要: 針對深海鉆機的使用環(huán)境,設(shè)計并實現(xiàn)了甲板實時操作鉆機的一款手操器。該手操器由基于STM32F103VCT6微控制器的控制板以及一些外部輸入輸出設(shè)備所組成,其與鉆機系統(tǒng)通過串口通信。由于甲板手操器與海底鉆機距離較長,且串口傳輸距離有限,因此以光纖傳輸為中繼。
關(guān)鍵詞: 深海鉆機系統(tǒng);手操器;STM32;串口通信;光纖傳輸

    近些年,我國加大了對海洋科考和探測的力度。探測發(fā)現(xiàn),我國的大陸架淺海海底埋藏著非常豐富的石油、天然氣以及煤、硫、磷等礦產(chǎn)資源,并且在多數(shù)海盆中廣泛分布著深海錳結(jié)核,它們都是擁有巨大潛力的可利用金屬礦產(chǎn)資源[1]。深海鉆機是我國大洋探測地質(zhì)的重要工具之一,它可以探取幾千米深海海底數(shù)十米以下的地質(zhì)樣品,為地質(zhì)學(xué)家、物理學(xué)家的研究工作提供樣品。但是深海鉆機的操作使用并不方便,傳統(tǒng)的上位機常常用鼠標(biāo)操作,海面上不確定的風(fēng)浪導(dǎo)致船體搖晃、甲板不穩(wěn),并且上位機一般都在船艙內(nèi),這樣往往造成操作人員不能直觀地看到鉆機平臺的工作情況,這給鉆機的操作帶來不便,有時更可能產(chǎn)生操作失誤;再加上鉆機的操作進程較為繁瑣,一次作業(yè)長達(dá)數(shù)十個小時,操作人員壓力巨大。如果操作過程中有失誤并且無法及時停止工作,會對鉆機造成傷害。此外,一套手操器只針對一個應(yīng)用場合會造成設(shè)備的重復(fù)和浪費。本文介紹的基于STM32的甲板手操器系統(tǒng)可以應(yīng)用于多種場合的多種器械的手動控制,并且可以降低計算機操作產(chǎn)生的錯誤率。
1 系統(tǒng)工作原理
 甲板手操器的工作模擬圖如圖1所示。甲板手操器系統(tǒng)包括操作控制模塊和數(shù)據(jù)通信模塊。甲板鉆機操作人員參考監(jiān)測到的數(shù)據(jù)來對鉆機執(zhí)行既定的操作,單片機判斷執(zhí)行的按鍵、搖桿發(fā)出相應(yīng)的指令,指令將顯示在液晶屏上并通過光端機經(jīng)光纜發(fā)送至水下鉆機執(zhí)行作業(yè)。鉆機操作將全部存入手操器的SD卡日志存檔中。
2 系統(tǒng)硬件描述
2.1系統(tǒng)核心板

 由于核心板需要實現(xiàn)4路A/D采樣、90余個掃描按鍵輸入、TFT顯示屏輸出和SD卡的存取,并且需要足夠大的Flash來存放90余個按鍵輸出的控制量及其延時,故手操器的核心板選擇了ST公司生產(chǎn)的STM32F103VCT6微控制器(MCU)。該芯片有高達(dá)72 MHz的主頻,并且內(nèi)置256 KB的Flash,多路的A/D轉(zhuǎn)換,USART通信來滿足手操器與海底主控系統(tǒng)的通信,且滿足多按鍵、大容量、高速度的需求。手操器核心板結(jié)構(gòu)圖如圖2所示。

2.2 SD卡工作方式
 STM32與SD卡之間的通信方式有SDIO和SPI兩種。由于對速度要求不是特別高,因此相互對比下最終使用了SPI方式。STM32提供了3個SPI接口,所以經(jīng)過簡單的配置就可以直接使用SPI功能外設(shè)模塊,如果沒有SPI功能,則需要用軟件模擬SPI協(xié)議。
 SPI總線系統(tǒng)是一種高速同步的串行外設(shè)接口,它可以使MCU和各種外圍設(shè)備以串行的方式進行通信交換信息。它可以節(jié)省I/O端口,以提高外設(shè)的數(shù)目和系統(tǒng)的性能。SPI接口是在CPU與外圍低速器件之間進行同步、串行傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位來傳輸,SPI接口不需要尋址操作,并且為全雙工通信,顯得十分簡單高效,而且速度可達(dá)到幾Mb/s[2]。
 SPI接口是以主從方式工作的,這種模式通常有一個主器件和一個或多個從器件,其接口包括以下4種信號:MOSI主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入;MISO主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出;SCLK時鐘信號,由主器件產(chǎn)生;CS片選信號,由主器件控制。
 STM32F103VCT6有3個SPI通道,本設(shè)計中選用了SPI1作為SD卡的通信接口,其引腳連接如圖3所示。其中卡檢測電路包括兩部分:(1)卡是否完全插入到卡座中;(2)卡是否寫保護。其檢測信號由卡座的兩個引腳以電平的方式輸出。當(dāng)卡插入到卡座并且插入到位時,圖3中的第11腳由于卡座內(nèi)部觸點連接到接地,故輸出低電平;當(dāng)卡拔出時,該引腳由于上拉電阻R12的存在,輸出高電平??ㄊ欠駥懕Wo的檢測同檢測卡是否完全插入的原理基本相同。為了方便文件和數(shù)據(jù)的存取以及在PC上的修改與讀取,本設(shè)計還在STM32中移植了FATFS文件系統(tǒng)[3]。

2.3 液晶顯示屏
 本設(shè)計中LCD屏選擇TFT-LCD24TP,LCD控制芯片選擇為ILI9325。因為硬件已經(jīng)固化好,所以ILI9325必須采用SPI的接口。本設(shè)計中SD卡占用了STM32的SPI1接口,所以顯示屏接口就選SPI2。
其中時鐘信號的相位與極性是很重要的,它決定了輸出信號捕捉到的數(shù)據(jù)是從第幾個開始生效的。主要是時鐘相位設(shè)置,當(dāng)CPHA位被置“1”時,SCK在第二個邊沿進行采樣;如果已經(jīng)設(shè)置了在第二個邊沿采樣,第一個有效數(shù)據(jù)很有可能會丟掉,故一定要確定是否是第一位數(shù)據(jù)有效。這樣,數(shù)據(jù)會在第二個時鐘的邊沿被鎖存[4]。如果CPHA被置位為“0”,那么SCK在第一個邊沿被采樣,數(shù)據(jù)會在第一個時鐘被鎖存。不同時鐘相位下的總線數(shù)據(jù)傳輸時序如圖4、圖5所示。

 顯示屏的成品模塊為34針插口,PB10為片選信號輸入,PB13、PB14和PB15分別為SPI2對應(yīng)的SCLK、MISO和MOSI。
2.4 按鍵掃描方式
 考慮到按鍵較多,且要便于擴展使用,故按鍵的采集方式采用了矩陣掃描的方式,此方式能最大程度地利用I/O口。本設(shè)計采用的是13×8的矩陣,首先將I/O口PD0~PD12設(shè)為矩陣的13行,模式為推挽輸出;將I/O口PE1~PE8設(shè)置為矩陣的8列,模式為下拉輸入。
 PD0~PD12端口輸出寄存器ODR置“1”,各個端口逐行產(chǎn)生高電平,接著檢測PE1~PE8的端口輸入寄存器IDR。如果檢測到非“0”位,經(jīng)過延時排除按鍵抖動后繼續(xù)檢測;如果依然存在非“0”位,則進行按鍵值的判斷;如果經(jīng)過延時后沒有檢測到IDR寄存器中有非“0”存在,則返回。
2.5 搖桿輸入
 此手操器設(shè)計為兩個搖桿輸入,搖桿選擇為二維雙軸輸入。主要原理為搖桿在縱軸與橫軸上的位移導(dǎo)致兩邊的電位器變化,從而產(chǎn)生不同的輸出電壓。搖桿的工程圖如圖6所示。

 使用時,將電位器接入電源(電源電壓為0~3 V之間,否則可能燒毀MCU),電位器中間的輸出引腳分別接至單片機的I/O口。上電控制搖桿時,兩側(cè)的兩個電位器會產(chǎn)生不同的電壓值,電壓值由I/O口采集到STM32的A/D處理器計算出相應(yīng)的電壓值。根據(jù)兩個電位器的電壓值來判定。
STM32F103擁有3個12位A/D轉(zhuǎn)換器,其既可以獨立使用,也可以采用雙重模式來使用,這樣可以提高采樣頻率。它有18個通道來測量16個外部信號源和兩個內(nèi)部的信號源。在A/D時鐘為14 MHz,采樣周期為1.5個A/D時鐘時,其最大的轉(zhuǎn)換速率為1 MHz,當(dāng)A/D時鐘超過14 MHz時準(zhǔn)確度將下降[5]。故配置RCC_ADCCLKConfig(RCC_PCLK2_Div4)。
 時間設(shè)置:ADC_SampleTime_55Cycles5
 根據(jù)公式:T=T采樣+12.5個周期,則T=55.5+12.5個周期=68/14 ?滋s。
2.6 光纖通信系統(tǒng)
 本設(shè)計的光纖通信系統(tǒng)由電端機、光發(fā)送機、光中繼器、光接收機和光纖光纜組成,其框圖如圖7所示。
電端機是一般的電通信設(shè)備,用來處理如模數(shù)變換、多路復(fù)用等電源信號。光發(fā)送機由光源、驅(qū)動器和調(diào)制器組成。它的功能是把輸入的電信號轉(zhuǎn)換為光信號,并用耦合技術(shù)把光信號經(jīng)光纖傳輸,其轉(zhuǎn)換過程是由電信號對光的調(diào)制來完成的。光纖纜作為整條通信的線路,其功能為將光發(fā)送機的光信號傳輸?shù)焦饨邮諜C,并且產(chǎn)生盡可能小的失真衰減。

 在應(yīng)用中所用的是鎧裝光纜,由多根光纖合并而成并且外面由金屬套管包裹。
 由于甲板與海底鉆機的通信距離非常長,信號經(jīng)過長距離的傳輸,即便載體是光纖也會產(chǎn)生衰減,故在傳輸過程中要將信號進行整形、放大以生成一定強度的信號繼續(xù)傳輸來保證通信質(zhì)量,所以必須使用中繼器。
光接收機由光檢測器、放大器和相關(guān)電路組成,它把從光纖傳輸產(chǎn)生失真和衰減的光信號轉(zhuǎn)換成電信號,經(jīng)過一系列的處理(整形、放大等)后,恢復(fù)成甲板串口發(fā)送的電信號。
3 系統(tǒng)軟件描述
3.1手操器核心板程序流程

 系統(tǒng)上電之后,立即對系統(tǒng)進行初始化,MCU初始化時鐘、定時器、GPIO、A/D轉(zhuǎn)換以及各函數(shù)。初始化完成后,對LCD進行清屏并在SD卡中開辟工作區(qū),判斷SD卡剩余空間并在屏幕上顯示,按規(guī)則讀取SD卡指定指令文件夾中的內(nèi)容,以設(shè)定的規(guī)則載到STM32的Flash中,關(guān)閉工作區(qū)。重新開辟一個工作區(qū)并新建一個文件,判斷按鍵輸入及搖桿的A/D采樣結(jié)果,判斷其對應(yīng)的指令并通過串口輸出,同時將指令顯示于屏幕上,并將操作動作存入新建的文件中。系統(tǒng)的流程圖如圖8所示。

 

 

 本設(shè)計的主要程序主要可以分為以下幾個部分:程序開始與系統(tǒng)初始化,LCD屏的顯示;SD卡的存儲與讀??;搖桿輸入電壓值的A/D轉(zhuǎn)換以及按鍵的掃描與判斷。
3.2 通信協(xié)議
 甲板手操器向下位機發(fā)送指令的數(shù)據(jù)是以幀的格式發(fā)送的。幀的格式為@XX;nn,bb;\r\n。其中,“@”是幀頭;“XX”代表操作類型,有“BC”、“BS”、“BT”、“RS”等,分別代表“關(guān)閉繼電器”、“打開繼電器”、“心跳信號”、“復(fù)位信號”;“nn”是下位機主板卡號,從01~02;“bb”是下位機主板的繼電器序號,從01~24。操作類型與下位機主板卡號間用“;”分隔,下位機主板卡號與繼電器序號用“,”分隔,繼電器序號與回車換行符之間用“;”分隔。
 通常情況下一條操作指令至少包含兩幀數(shù)據(jù),兩幀之間軟件完成一個時延。兩個特殊的指令為:(1)心跳信號@BT;\r\n;(2)系統(tǒng)復(fù)位@RS;\r\n。
4 信號穩(wěn)定性檢測
 將SD卡插入PC,在卡中新建一個TXT文件,文件名為“指令配置”,此文檔中寫入鉆機指令,格式如表1所示。
 一行代表一個按鍵按下時所要發(fā)送的指令,最前面的序號用于按鍵的判別,不在發(fā)送內(nèi)容之中。每串指令都由兩條以上組成,兩條指令之間為延時的時間數(shù)值,每條指令以及兩條指令之間的延時時間都以冒號結(jié)尾。當(dāng)SD卡插入單片機并上電后,單片機軟件自動識別。
將手操器板子通過串口線與PC連接,配置板子在PC上的串口為COM7,設(shè)置波特率為9 600 b/s,數(shù)據(jù)位為8 bit,停止位為1 bit,無奇偶校驗位。
系統(tǒng)上電之后,用串口調(diào)試助手截獲的信息進行穩(wěn)定性檢測,計算50個按鍵串口丟包次數(shù)與亂碼幀數(shù),其結(jié)果如表2所示。

 第一次測試時可能由于SD卡與卡槽之間有氧化層導(dǎo)致接觸不是十分良好,誤碼率較高。重新插拔去除氧化層重新測試后4組結(jié)果在接受范圍內(nèi)。
參考文獻
[1] 金翔龍.二十一世紀(jì)海洋開發(fā)利用與海洋經(jīng)濟發(fā)展的展望[J].科學(xué)中國人,2006(11):13-17.
[2] 李世奇,董浩斌,李榮生.基于FatFs文件系統(tǒng)的SD卡存儲器設(shè)計[J].測控技術(shù),2011,30(12):79-81.
[3] 張濤,左謹(jǐn)平,馬華玲.FatFs在32位微控制器STM32上的移植[J].電子技術(shù),2010,47(3):25-27,29.
[4] 孫林軍,賀鋒濤.基于STM32控制液晶的接口實現(xiàn)[J].電視技術(shù),2013,37(1):77-79.
[5] 宋敬衛(wèi),付廣春,馬獻國.基于STM32的多路電壓采集研究[J].電子世界,2013(12):55-56.
[6] ST. STM32F103xC, STM32F103XxD, STM32F103xE[Z]. 2008.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。