郭勇川,萬隆君,徐軼群,黃 凱
(集美大學(xué)輪機(jī)工程學(xué)院,福建 廈門361021)
船舶數(shù)據(jù)采集是現(xiàn)代自動(dòng)化船舶智能機(jī)艙建設(shè)的核心工程之一,也是在物聯(lián)網(wǎng)技術(shù)飛速發(fā)展大背景下船舶工程的研究熱點(diǎn)[1-2]。文獻(xiàn)[3]應(yīng)用OPC(ole for process control)技術(shù)采集船舶機(jī)艙數(shù)據(jù),有效地解決了采集監(jiān)測(cè)系統(tǒng)軟件開發(fā)維護(hù)難度大的問題,但這種方法通信較慢,循環(huán)等待時(shí)間長(zhǎng);文獻(xiàn)[4]提出基于Web的船舶信息集成管理系統(tǒng),但僅限于軍艦及海事船,尚未擴(kuò)展到民船領(lǐng)域;文獻(xiàn)[5]采用衛(wèi)星通信方式實(shí)現(xiàn)數(shù)據(jù)采集與遠(yuǎn)程監(jiān)測(cè),但其適用于遠(yuǎn)洋船舶,且成本較高;文獻(xiàn)[6]利用CAN總線技術(shù)確保了數(shù)據(jù)采集與監(jiān)測(cè)的實(shí)時(shí)性、可靠性,但其受限于傳輸距離短,且不能與Internet相連;文獻(xiàn)[7]基于PLC開發(fā)了FX2N系列船舶機(jī)艙監(jiān)測(cè)報(bào)警系統(tǒng),并設(shè)計(jì)了數(shù)據(jù)采集處理軟件,但僅應(yīng)用于駕駛室監(jiān)測(cè),并未擴(kuò)展到陸基遠(yuǎn)程監(jiān)控。
因此,針對(duì)目前大部分中小型近海船舶公司的岸基管理者、船舶工作者仍無法實(shí)時(shí)獲取其所屬船舶的主要運(yùn)行數(shù)據(jù)信息,無法對(duì)船舶的實(shí)時(shí)工況進(jìn)行科學(xué)評(píng)估與遠(yuǎn)程監(jiān)測(cè)這一現(xiàn)狀,本文開發(fā)設(shè)計(jì)了基于GPRS(general packet radio service)無線通信技術(shù)的船舶數(shù)據(jù)采集網(wǎng)關(guān),旨在通過實(shí)時(shí)數(shù)據(jù)采集實(shí)現(xiàn)對(duì)近海船舶綜合信息的統(tǒng)計(jì)、分析、評(píng)估,提高管理效率和船舶航行安全系數(shù)。
由于客運(yùn)船、漁船、游艇等船舶在近海海域分布范圍廣,靠泊港口環(huán)境復(fù)雜,停靠時(shí)間短,通信傳輸距離也相對(duì)較短,因此,可使用GPRS/GSM、3G/4G、WiFi等無線通信技術(shù)對(duì)此類船舶進(jìn)行信息采集。WiFi在障礙物多的海域及港口信號(hào)較為不穩(wěn)定,覆蓋范圍受外界環(huán)境影響大;而3G/4G通信技術(shù)對(duì)于采集信息量大,采集持續(xù)時(shí)間長(zhǎng)的船舶,成本太過高昂;相比而言,GPRS/GSM因其具有較快的數(shù)據(jù)傳輸速度(理論峰值171.2 kbps),可滿足突發(fā)性數(shù)據(jù)傳輸要求,較低的通信費(fèi)用(根據(jù)用戶傳輸?shù)臄?shù)據(jù)量大小計(jì)費(fèi)),近海信號(hào)覆蓋范圍廣(海岸線10 nmile范圍、內(nèi)陸江河地區(qū)全覆蓋)等技術(shù)優(yōu)勢(shì),完全適用于近海船舶的數(shù)據(jù)采集[8-10]。
數(shù)據(jù)采集網(wǎng)關(guān)系統(tǒng)原理如圖1所示。
網(wǎng)關(guān)通過RS485通信串口連接船舶底層各傳感器,采集電能、壓力、溫度、轉(zhuǎn)速、液位、扭矩等船舶數(shù)據(jù)參數(shù);通過北斗/GPS模塊采集經(jīng)緯度、航向、航速、航跡等船舶動(dòng)態(tài)信息。采集的數(shù)據(jù)經(jīng)協(xié)議解析后,應(yīng)用GPRS無線傳輸技術(shù)實(shí)現(xiàn)網(wǎng)關(guān)與基站終端服務(wù)器的數(shù)據(jù)傳輸,基站通過網(wǎng)線連接船舶綜合管理系統(tǒng),最終實(shí)現(xiàn)船舶數(shù)據(jù)采集的終端顯示。
船用數(shù)據(jù)采集網(wǎng)硬件結(jié)構(gòu)設(shè)計(jì)如圖2所示。該網(wǎng)關(guān)由電源模塊提供DC12V電源,以ST32F103VET6作為系統(tǒng)主控制芯片,通過北斗/GPS模塊和RS485、RS232串口模塊對(duì)船上數(shù)據(jù)進(jìn)行采集,主控制芯片負(fù)責(zé)中斷接收采集的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行解析處理,網(wǎng)關(guān)內(nèi)置的FLASH模塊可對(duì)解析后且經(jīng)時(shí)間校驗(yàn)的數(shù)據(jù)實(shí)現(xiàn)長(zhǎng)久存儲(chǔ),最后通過GPRS模塊將數(shù)據(jù)上傳至上位機(jī)終端[11]。
選用STM32F103VET6作為采集網(wǎng)關(guān)主控制芯片,該芯片具有斷點(diǎn)續(xù)傳、時(shí)鐘校驗(yàn)、數(shù)據(jù)解析等功能,主要控制接口分配和子模塊應(yīng)用[12-13]。STM32F103VET6基于高性能的ARM Cortex-M3 32位內(nèi)核,工作頻率為72 MHz,包含3個(gè)USART通信接口,供電電壓2.0~3.6 V,其強(qiáng)大的存儲(chǔ)空間及一系列省電模式保證模塊低功耗應(yīng)用[14]。
網(wǎng)關(guān)設(shè)計(jì)了4個(gè)標(biāo)準(zhǔn)RS485串口和1個(gè)RS232串口,其中RS485串口用于連接底層各傳感器,采集底層原始數(shù)據(jù),RS232串口則用于調(diào)試與下載網(wǎng)關(guān)程序。
RS485模塊采用SP3485芯片,模塊的電路圖如圖3所示。 STM32管腳PC1連接SP3485的RE(接收器輸出使能,低電平有效)和DE(驅(qū)動(dòng)器輸出使能,高電平有效)引腳,主要控制485串口接收。當(dāng)RE處于低電平時(shí),器件處于接收狀態(tài),此時(shí)STM32為發(fā)送模式;當(dāng)DE處于高電平時(shí),器件處于發(fā)送狀態(tài),此時(shí)STM32為接收模式。模塊的輸入/輸出引腳(DI/RO)連接STM32的USART3串口,主要實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送,模塊A,B端與傳感器的數(shù)據(jù)接口A、B端相連接,用于數(shù)據(jù)采集。
北斗/GPS模塊芯片采用和芯星通UM220-IIIN,該芯片可同時(shí)支持BD2 B1、GPS L1兩個(gè)頻點(diǎn),其輸入電壓VDC=+2.7~3.6 V,功耗120 mW(典型值),定位精度2.5 mCEP,芯片電路原理如圖4所示。串行端口數(shù)據(jù)發(fā)送引腳TXD1與STM32數(shù)據(jù)接收端PA3(USART2_RX)相連;數(shù)據(jù)接收引腳RXD1與STM32數(shù)據(jù)發(fā)送端口PA2(USART2_TX)相連,模塊其他主要引腳說明如下:
nRESET:復(fù)位端,低電平有效;
GDIO:通用I/O端口;
TIME PULSE:時(shí)鐘脈沖(IPPS);
EXT INTO:外部中斷;
RSV:保留管腳懸空處理;
VCC_RF:輸出電壓射頻部分;
RF_IN:GNSS信號(hào)輸入;
SPI_SDO:串行外設(shè)接口數(shù)據(jù)輸出;
SPI_SDI:串行外設(shè)接口數(shù)據(jù)輸入;
SPI_SCK:串行外設(shè)接口時(shí)鐘輸入;
SPI_CSI:串行外設(shè)接口片選輸入;
SDA2:指示數(shù)傳控制數(shù)據(jù);
SCL2:指示數(shù)據(jù)控制時(shí)鐘;
V_BCKP:用于主電源VCC斷電時(shí),給實(shí)時(shí)時(shí)鐘(RTC)和靜態(tài)存儲(chǔ)器(SRAM)供電。
選用SIM800c實(shí)現(xiàn)采集數(shù)據(jù)的無線傳輸,該模塊可支持4頻GSM/GPRS,工作頻段為GSM850 MHz、EGSM900 MHz、DCS1800 MHz、PCS1900 MHz,可自動(dòng)搜索這四個(gè)頻率,也可通過AT命令來設(shè)置頻段。模塊編碼格式為CS-1、CS-2、CS-3、CS-4,可低功耗實(shí)現(xiàn)語音、SMS和數(shù)據(jù)信息傳輸[10]。
SIM800c與主芯片連接電路如圖5所示,模塊連接及主要引腳說明如下:
VCC:模塊供電引腳,輸入DC5 V。
V_TTL:該引腳接主控制芯片STM32(內(nèi)核電壓5 V/3.3 V),用于把模塊輸入和輸出轉(zhuǎn)換為相對(duì)應(yīng)的TTL邏輯。
TXD:模塊發(fā)送引腳,TTL電平,與主芯片的接收管腳RXD4(即79腳位PC11/USART4_RX)相連接。
RXD:模塊接收引腳,TTL電平,與主芯片的發(fā)送管腳TXD4(即78腳位PC10 /USART4_TX)相連接。
PWK:拉低該引腳可以實(shí)現(xiàn)模塊的開啟或關(guān)閉。
GND:電源地線。
為保障數(shù)據(jù)存儲(chǔ),在采集網(wǎng)關(guān)內(nèi)擴(kuò)展一個(gè)FLASH存儲(chǔ)器,存儲(chǔ)器選用W25Q128FV芯片。FLASH模塊芯片電路如圖6所示,其主要功能引腳及連接說明如下:
DO:I/O口數(shù)據(jù)輸出端,該引腳與STM32F103VET6芯片31腳位管腳SPI1 MISO(SPI總線主機(jī)輸入/從機(jī)輸出)相連接。
DIO:I/O口數(shù)據(jù)輸入端,該引腳與STM32F103VET6芯片32腳位管腳SPI1 MOSI(SPI總線主機(jī)輸出/從機(jī)輸入)相連接。
CLK:串行時(shí)鐘輸入端,該引腳與STM32F103VET6芯片30腳位管腳SPI1 SCK(SPI同步時(shí)鐘)相連接。
CS:片選輸入端。
WP:I/O口寫保護(hù)輸入端。
HOLD:I/O保持?jǐn)?shù)據(jù)輸入端。
網(wǎng)關(guān)以STM32F103VET6為主控制器,選用Keil μVision集成開發(fā)環(huán)境作為軟件開發(fā)工具,通過運(yùn)行C語言編寫系統(tǒng)軟件,實(shí)時(shí)采集船舶信息,并控制GPRS模塊將數(shù)據(jù)發(fā)送至遠(yuǎn)程服務(wù)器終端。
主控芯片是整個(gè)船用采集網(wǎng)關(guān)的“大腦”,主程序運(yùn)行流程如圖7所示。首先在驅(qū)動(dòng)工作流程前需對(duì)底層驅(qū)動(dòng)進(jìn)行初始化操作[15],然后對(duì)相關(guān)必要參數(shù)進(jìn)行配置。初始化結(jié)束后,采集網(wǎng)關(guān)進(jìn)行工作周期判斷(網(wǎng)關(guān)設(shè)置采集周期為15 min,可根據(jù)實(shí)際需求進(jìn)行編程設(shè)定),到達(dá)采集周期點(diǎn)后,RS485串口連接底層各傳感器,根據(jù)MODBUS_RTU通訊協(xié)議采集船舶參數(shù);北斗/GPS模塊根據(jù)和芯星通Unicore標(biāo)準(zhǔn)協(xié)議采集船舶位置動(dòng)態(tài)信息,數(shù)據(jù)采集后通過網(wǎng)關(guān)擴(kuò)展的FLASH模塊對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)。數(shù)據(jù)傳輸時(shí),采集裝置向上位機(jī)請(qǐng)求數(shù)據(jù),上位機(jī)通過驗(yàn)證后向采集裝置發(fā)送采集周期等配置信息,網(wǎng)關(guān)配置成功后通過GPRS模塊向上位機(jī)發(fā)送采集數(shù)據(jù),隨后上位機(jī)確認(rèn)接收,主程序一個(gè)周期運(yùn)行結(jié)束。
采集網(wǎng)關(guān)的RS485串口與各傳感器(如計(jì)量表等)相連接,數(shù)據(jù)采集時(shí),主芯片STM32通過RS485總線向各傳感器發(fā)送采集指令,并開啟串口中斷,接收傳感器采集的船舶信息。RS485采集模塊采用MODBUS_RTU通信協(xié)議,按照串行總線的主從通信原理確定訪問的方法,采集的船舶數(shù)據(jù)多為浮點(diǎn)數(shù)類型,MODBUS_RTU規(guī)定采用IEEE754格式進(jìn)行傳送。模塊程序設(shè)計(jì)包括串口初始化(配置管腳、設(shè)置通訊參數(shù))、串口中斷接收和數(shù)據(jù)解析處理三部分,程序運(yùn)行流程如圖8所示。
UM220-IIIN與單片機(jī)串口通信采用Unicore協(xié)議(和芯星通軟件接口協(xié)議),單片機(jī)根據(jù)協(xié)議對(duì)應(yīng)的指令,通過串口USART2對(duì)UM220-IIIN模塊進(jìn)行配置。數(shù)據(jù)采集時(shí),單片機(jī)串口中斷開啟,串口根據(jù)Unicore標(biāo)準(zhǔn)協(xié)議中斷接收UM220-IIIN的北斗/GPS信息,通過采集網(wǎng)關(guān)內(nèi)置存儲(chǔ)模塊及GPRS模塊,實(shí)現(xiàn)信息存儲(chǔ)與傳輸,并在船舶綜合監(jiān)管系統(tǒng)終端機(jī)上實(shí)時(shí)顯示船舶經(jīng)緯度、航速、航向等信息。
STM32對(duì)北斗/GPS模塊的配置命令如下:
void Set_beidou()
{
USART2_Send_string("$CFGPRT,1,0,9600,0,0 ");
//使用模塊串口1,設(shè)置波特率為9600,數(shù)據(jù)輸入輸出格式為Unicore協(xié)議
USART2_Send_string("$CFGMSG,0,0,0 ");//關(guān)閉GGA
USART2_Send_string("$CFGMSG,0,1,0 ");//關(guān)閉GLL
USART2_Send_string("$CFGMSG,0,2,0 ");//關(guān)閉GSA
USART2_Send_string("$CFGMSG,0,3,0 ");//關(guān)閉GSV
USART2_Send_string("$CFGMSG,0,4,1 ");//打開RMC
USART2_Send_string("$cfgsave,h1f ");//保存配置到NOR Flash
}
網(wǎng)關(guān)GPRS模塊應(yīng)用2G網(wǎng)絡(luò)實(shí)現(xiàn)采集數(shù)據(jù)的無線傳輸(在采集持續(xù)時(shí)間較短、傳輸速率要求較高的情況下可使用3G網(wǎng)絡(luò)),數(shù)據(jù)上傳時(shí),主控制芯片通過USART4串口發(fā)送AT命令來控制支持TCP/IP協(xié)議的GPRS模塊(SIM800c),將采集到的數(shù)據(jù)傳輸至服務(wù)器終端。GPRS數(shù)據(jù)傳輸模塊程序設(shè)計(jì)包括:模塊初始化、建立連接、數(shù)據(jù)發(fā)送、關(guān)閉連接,主要代碼及注釋如下:
void Set_3G()//初始化
{
USART4_Send_string("AT+CIPMODE=0 ");//設(shè)置為非透?jìng)髂J?/p>
USART4_Send_string("AT+CPIN? ");//檢查SIM狀態(tài)
USART4_Send_string("AT+CSQ ");//檢查網(wǎng)絡(luò)信號(hào)強(qiáng)度
USART4_Send_string("AT+CREG? ");//檢查網(wǎng)絡(luò)注冊(cè)狀態(tài)
USART4_Send_string("AT+CGATT? ");//檢查GPRS附著狀態(tài)
USART4_Send_string("AT+CSTT="CMNET" ");//設(shè)置APN
}
void Connect3G()//建立連接,發(fā)送數(shù)據(jù)
{
USART4_Send_string("AT+CIICR ");//激活移動(dòng)場(chǎng)景,建立無線鏈路
USART4_Send_string("AT+CIFSR ");//獲取模塊本地IP地址
USART4_Send_string("AT+CIPSTART="TCP","111.145.254.19",8809 ");//設(shè)置遠(yuǎn)端服務(wù)器類型、IP地址、端口號(hào),建立TCP鏈路
USART4_Send_string("AT+CIPSEND ");開始數(shù)據(jù)發(fā)送
}
voidClose_3G()//關(guān)閉
{
USART4_Send_byte(0x1A);結(jié)束發(fā)送數(shù)據(jù)
USART4_Send_string("AT+CIPCLOSE ");關(guān)閉連接
}
陸基船舶綜合監(jiān)管系統(tǒng)基于Win7操作系統(tǒng),利用Java編程語言開發(fā)設(shè)計(jì),軟件功能如圖9所示。
該系統(tǒng)為保證信息安全及用戶隱私,將用戶劃分為兩類,一類為超級(jí)管理員,一類為普通用戶,并為不同用戶提供獨(dú)立的訪問賬號(hào)和密碼,明確劃分訪問權(quán)限。超級(jí)管理員可對(duì)船舶信息進(jìn)行查、增、刪、改等操作,而普通用戶只可查詢其所屬船舶信息。
為了檢測(cè)整個(gè)采集網(wǎng)關(guān)程序開發(fā)是否有效,以某漁港2艘漁船、某游艇碼頭4艘游艇為試驗(yàn)對(duì)象,進(jìn)行了近一個(gè)月的測(cè)試,得出以下幾個(gè)結(jié)論:
1)船舶綜合監(jiān)管系統(tǒng)船舶各數(shù)據(jù)(經(jīng)緯度、航速、航向、油耗、電池組參數(shù)等)更新正確,如圖10、圖11所示,證明采集網(wǎng)關(guān)功能達(dá)到既定要求。
2)系統(tǒng)采集的油耗值與現(xiàn)場(chǎng)記錄的油耗值存在差異,且這個(gè)差異因船舶類型的不同而不同。相比而言,游艇的油耗差異大于漁船的油耗差異,可能由于游艇自身橫搖縱搖幅度較大造成(有待考證),但總體而言,兩種船型油耗差異均小于3%,滿足設(shè)計(jì)精度要求。
3)試驗(yàn)時(shí)港口恰逢陰雨天,風(fēng)力達(dá)5~6級(jí),各類船舶停靠較多,但GPRS模塊通信質(zhì)量和覆蓋海域并未受到影響,采集系統(tǒng)穩(wěn)定性滿足設(shè)計(jì)要求。
基于GPRS無線傳輸技術(shù)的船舶數(shù)據(jù)采集網(wǎng)關(guān)基本實(shí)現(xiàn)了近海類船舶實(shí)時(shí)信息的采集與傳輸、歷史數(shù)據(jù)的存儲(chǔ)與查詢等功能。但在設(shè)計(jì)研發(fā)及應(yīng)用過程中仍存在不足之處需要進(jìn)一步完善,如采集的船舶數(shù)據(jù)仍不夠完整系統(tǒng),下一步要盡量擴(kuò)展數(shù)據(jù)接口,使數(shù)據(jù)采集系統(tǒng)更加完善;還應(yīng)通過抑制干擾源、切斷或減少電磁干擾傳播途徑來提高網(wǎng)關(guān)抗干擾能力。
[]
[1]GREGG R D,BRETL T W,SPONG M W.A control theoretic approach to robot-assisted locomotor therapy[C]//Proceeding of 49th IEEE Conference on CDC.Atlanta USA:GA,2010:1679-1686.
[2]KREBS H I,HOGAN N.Therapeutic robotics:a technology push[J].Proceedings of the IEEE,2006,94(9):1720-1738.
[3]王詩文,張寧,沈智鵬,等.基于OPC技術(shù)的船舶機(jī)艙數(shù)據(jù)采集與監(jiān)測(cè)系統(tǒng)[J].大連海事大學(xué)學(xué)報(bào),2014,40(3):73-78.
[4]寧小敏,陽斌,王奕,等.基于WEB的船舶信息集成管理系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[J].中國(guó)艦船研究,2011,6(3):99-102.
[5]張春紅.基于衛(wèi)通的現(xiàn)代船岸一體化遠(yuǎn)洋船舶監(jiān)控系統(tǒng)[J].廣東造船,2011(2):54-57.
[6]蔡禮松,余楚中.基于CAN的船舶數(shù)據(jù)監(jiān)控系統(tǒng)設(shè)計(jì)[J].中國(guó)造船,2013,54(3):184-189.
[7]高燕,劉瑾,張菁,等.基于PLC的多數(shù)據(jù)采集監(jiān)測(cè)報(bào)警系統(tǒng)研究[J].儀表技術(shù)與傳感器,2016(5):40-43.
[8]于瀅威.一種基于船舶數(shù)據(jù)采集的無線傳感器的研究與設(shè)計(jì)[D].大連:大連海事大學(xué),2012.
[9]郝剛.淺談GPRS在遠(yuǎn)程水文監(jiān)測(cè)領(lǐng)域的應(yīng)用[N].科技創(chuàng)新導(dǎo)報(bào),2012-08-11(23).
[10]吳正.船用數(shù)據(jù)采集系統(tǒng)遠(yuǎn)程應(yīng)用的實(shí)現(xiàn)方案[J].上海船舶運(yùn)輸科學(xué)研究所學(xué)報(bào),2016,39(2):45-51.
[11]馬斌.單片機(jī)原理及應(yīng)用[M].北京:人民郵電出版社,2009.
[12]王電令,蘇亞輝,蘇彩虹.STM32開發(fā)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2016.
[13]王松武,趙旦峰.常用電路模塊設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007.
[14]劉杰,陳昌川.基于固件的ARM Cortex M4原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2015.
[15]譚浩強(qiáng).C++程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2004.