鄧 威,沈守強(qiáng)
(1.黃河科技學(xué)院 應(yīng)用技術(shù)學(xué)院,河南 鄭州 450063;2.北京信息科技大學(xué) 理學(xué)院,北京 100192)
隨著船舶信息化、智能化的發(fā)展,船舶內(nèi)部自動(dòng)化設(shè)備數(shù)量越來(lái)越多,為了加強(qiáng)船舶內(nèi)部設(shè)備的監(jiān)管水平,提高不同系統(tǒng)和模塊之間的信息傳遞能力,設(shè)計(jì)和開(kāi)發(fā)船舶集成平臺(tái)系統(tǒng)成為一項(xiàng)研究熱點(diǎn)。船舶集成平臺(tái)系統(tǒng)通過(guò)對(duì)船舶信息的管理、船舶位置的跟蹤、船舶通信的實(shí)現(xiàn)、船舶安全的監(jiān)控和船舶運(yùn)營(yíng)的管理,提高了船舶運(yùn)營(yíng)的效率和安全性,具有非常大的應(yīng)用潛力。
船舶平臺(tái)系統(tǒng)的關(guān)鍵是信息網(wǎng)絡(luò)的建設(shè),本文重點(diǎn)介紹一種基于嵌入式CAN 總線的信息網(wǎng)絡(luò),分別從CAN 總線計(jì)算的原理、CAN 網(wǎng)關(guān)設(shè)計(jì)與開(kāi)發(fā)以及船舶集成平臺(tái)系統(tǒng)的開(kāi)發(fā)等方面進(jìn)行詳細(xì)研究。
CAN 總線網(wǎng)絡(luò)具有數(shù)據(jù)傳輸速度快、穩(wěn)定性好等優(yōu)點(diǎn),CAN 總線網(wǎng)絡(luò)通常由CPU、CAN 控制器、CAN 收發(fā)器、節(jié)點(diǎn)、數(shù)據(jù)總線等組成,如圖1 所示。
圖1 CAN 總線網(wǎng)絡(luò)的構(gòu)成原理圖Fig.1 Schematic diagram of the composition of the CAN bus network
CAN 傳輸總線的關(guān)鍵特性包括:
1)CAN 數(shù)據(jù)幀特點(diǎn)
CAN 總線使用數(shù)據(jù)幀來(lái)實(shí)現(xiàn)數(shù)據(jù)的高速傳輸,數(shù)據(jù)幀的詳細(xì)格式包括起始位、標(biāo)識(shí)符、控制位、數(shù)據(jù)位和CRC 校驗(yàn)位等字段。其中,起始位用于同步數(shù)據(jù)傳輸,標(biāo)識(shí)符用于區(qū)分不同的數(shù)據(jù)幀,控制位用于控制數(shù)據(jù)傳輸?shù)牧鞒?,?shù)據(jù)位用于存儲(chǔ)實(shí)際的數(shù)據(jù),CRC 校驗(yàn)位用于檢測(cè)CAN 數(shù)據(jù)的完整性。
2)信息的確認(rèn)機(jī)制
CAN 總線采用一種確認(rèn)機(jī)制來(lái)保證數(shù)據(jù)的可靠傳輸,每當(dāng)一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)幀后,其他節(jié)點(diǎn)會(huì)對(duì)數(shù)據(jù)幀進(jìn)行檢測(cè)和確認(rèn)。如果數(shù)據(jù)幀被正確接收,接收節(jié)點(diǎn)會(huì)發(fā)送一個(gè)確認(rèn)幀給發(fā)送節(jié)點(diǎn),表示數(shù)據(jù)接收成功。如果數(shù)據(jù)幀發(fā)生錯(cuò)誤,接收節(jié)點(diǎn)會(huì)發(fā)送一個(gè)錯(cuò)誤幀給發(fā)送節(jié)點(diǎn),表示數(shù)據(jù)接收失敗。
3)CAN 的仲裁機(jī)制
當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)幀時(shí),CAN 總線使用仲裁機(jī)制來(lái)確定哪個(gè)節(jié)點(diǎn)可以繼續(xù)發(fā)送數(shù)據(jù),哪個(gè)節(jié)點(diǎn)需要終止發(fā)送數(shù)據(jù)。仲裁機(jī)制基于標(biāo)識(shí)符的優(yōu)先級(jí),優(yōu)先級(jí)越高的節(jié)點(diǎn)可以繼續(xù)發(fā)送數(shù)據(jù),優(yōu)先級(jí)較低的節(jié)點(diǎn)需要等待。
網(wǎng)關(guān)是CAN 通信網(wǎng)絡(luò)中實(shí)現(xiàn)互聯(lián)互通的樞紐結(jié)構(gòu),也可以用于2 個(gè)具有不同協(xié)議的網(wǎng)絡(luò)互連,當(dāng)網(wǎng)絡(luò)的通信協(xié)議不同、數(shù)據(jù)形式和體系均不同時(shí),網(wǎng)關(guān)可以作為翻譯器搭建起2 種系統(tǒng)。
在設(shè)計(jì)船舶集成平臺(tái)的CAN 網(wǎng)絡(luò)時(shí),本文采用的網(wǎng)關(guān)控制器為MCP2510。
MCP2510 主要由4 個(gè)部分組成:
1)CAN 控制器
MCP2510 的核心部分是CAN 控制器,它負(fù)責(zé)處理CAN 總線的通信協(xié)議。CAN 控制器具有接收和發(fā)送CAN 幀的功能,并提供了一些配置選項(xiàng),如過(guò)濾器和屏蔽器,以過(guò)濾和篩選接收到的CAN 幀。
2)SPI 接口
MCP2510 通過(guò)SPI(串行外設(shè)接口)與主控器連接。SPI 接口提供了與主控器之間的通信通道,通過(guò)SPI 接口,主控器可以向MCP2510 發(fā)送命令和配置信息,以及接收來(lái)自MCP2510 的狀態(tài)和數(shù)據(jù)。
3)控制和配置寄存器
MCP2510 還包含一組控制和配置寄存器,用于存儲(chǔ)和管理CAN 控制器的狀態(tài)和配置信息。主控器可以通過(guò)SPI 接口訪問(wèn)這些寄存器,以讀取和寫(xiě)入相關(guān)的控制和配置信息,從而控制和配置MCP2510 的行為。
4)CAN 協(xié)議引擎
其主要作用是處理總線上的報(bào)文發(fā)送和接收邏輯,當(dāng)CAN 總線的數(shù)據(jù)發(fā)送時(shí),CAN 協(xié)議引擎首先將數(shù)據(jù)存儲(chǔ)在報(bào)文緩沖器和控制寄存器中,如圖2 所示,網(wǎng)關(guān)控制器MCP2510 共有3 個(gè)發(fā)送緩沖區(qū),2 個(gè)接收緩沖區(qū)、6 個(gè)濾波寄存器,還包括協(xié)議機(jī)和控制邏輯引腳。
圖2 網(wǎng)關(guān)控制器MCP2510 原理圖Fig.2 Schematic diagram of gateway controller MCP2510
基于嵌入式ARM 技術(shù),設(shè)計(jì)了船舶集成平臺(tái)的CAN 網(wǎng)關(guān),其硬件構(gòu)成如圖3 所示。
圖3 基于嵌入式ARM 的CAN 網(wǎng)關(guān)硬件構(gòu)成Fig.3 Hardware composition of CAN gateway based on embedded ARM
基于嵌入式ARM 的CAN 網(wǎng)關(guān)硬件核心是嵌入式處理器ARM S3C45B,該微控制器由韓國(guó)Samsung 公司研發(fā),是一種高性價(jià)比16/32 位微控制器,ARM S3C45B 微控制器的主要特性[1]為:
1)處理器核心。ARM7TDMI-S,采用RISC 架構(gòu)。它具有16/32 位指令集,可執(zhí)行高性能的32 位運(yùn)算,并支持長(zhǎng)指令和thumb 指令集模式。
2)主頻和存儲(chǔ)。ARM S3C45B 的主頻通常在幾十兆赫茲到數(shù)百兆赫茲之間,具體取決于系統(tǒng)設(shè)計(jì)。ARM 通常集成了片上存儲(chǔ)器,包括快速的閃存和SRAM,可用于存儲(chǔ)程序代碼和數(shù)據(jù)。
3)外設(shè)接口。ARM S3C45B 具有多個(gè)外設(shè)接口,包括UART(通用異步收發(fā)器)、SPI(串行外設(shè)接口)、I2C(串行通信接口)和USB(通用串行總線)。這些接口可以用于與其他外部設(shè)備進(jìn)行通信和數(shù)據(jù)交換。
4)定時(shí)器和計(jì)數(shù)器。該微控制器還包含多個(gè)定時(shí)器和計(jì)數(shù)器通道,可用于測(cè)量時(shí)間、進(jìn)行定時(shí)操作和產(chǎn)生精確的時(shí)間基準(zhǔn)。
5)ADC 和DAC。ARM S3C45B 集成了模數(shù)轉(zhuǎn)換器(ADC)和數(shù)字模數(shù)轉(zhuǎn)換器(DAC)[2],可以用于模擬信號(hào)的輸入和輸出。
6)電源管理。該微控制器具有多個(gè)電源管理功能,包括低功耗模式和電源管理單元(PMU),可以在系統(tǒng)的不同工作模式之間實(shí)現(xiàn)有效的功耗管理。
第二,以市、縣、鄉(xiāng)、村示范戶相結(jié)合的農(nóng)業(yè)技術(shù)推廣服務(wù)網(wǎng)絡(luò)體系逐漸成熟。隨著各級(jí)農(nóng)科推廣服務(wù)組織的健全,農(nóng)業(yè)技術(shù)推廣服務(wù)組織市場(chǎng)化程度越來(lái)越高,在落實(shí)穩(wěn)定市一級(jí)、完善縣一級(jí)、強(qiáng)化鄉(xiāng)一級(jí)、延伸村一級(jí)的政策引導(dǎo)下,圍繞服務(wù)對(duì)象和主導(dǎo)產(chǎn)業(yè),積極開(kāi)展技術(shù)推廣工作,完善服務(wù)體系,進(jìn)一步增強(qiáng)發(fā)展活力,實(shí)現(xiàn)多功能、高效能建設(shè)。
基于嵌入式ARM 的CAN 網(wǎng)關(guān)參數(shù)如表1 所示。
表1 基于嵌入式ARM 的CAN 網(wǎng)關(guān)參數(shù)表Tab.1 Parameter table of CAN gateway based on embedded ARM
針對(duì)船舶集成平臺(tái)的CAN 網(wǎng)關(guān)數(shù)據(jù)噪聲問(wèn)題,本文采用高斯低通濾波器降低信號(hào)中的噪聲分量,其模型如下:
式中,B為通信的帶寬。
高斯低通濾波器響應(yīng)特性方程為:
船舶集成平臺(tái)系統(tǒng)作為船舶信息的樞紐,需要具備采集、分析、處理和轉(zhuǎn)發(fā)船舶自動(dòng)化設(shè)備數(shù)據(jù)的功能,同時(shí),集成平臺(tái)也需要建立大型數(shù)據(jù)庫(kù),存儲(chǔ)和管理船舶日常的各種通信、導(dǎo)航數(shù)據(jù),實(shí)現(xiàn)全船數(shù)據(jù)共享,提高船舶的信息化和監(jiān)控水平[3]。
集成平臺(tái)位于船舶集控室和駕控室內(nèi),通過(guò)CAN 總線與船舶主機(jī)、服務(wù)器、網(wǎng)關(guān)等連接,圖4 為基于嵌入式CAN 的船舶集成平臺(tái)系統(tǒng)原理圖。
圖4 基于嵌入式CAN 的船舶集成平臺(tái)系統(tǒng)原理圖Fig.4 Schematic diagram of ship integrated platform system based on embedded CAN
1)集成性。該系統(tǒng)能夠集成各種船舶管理功能,如船舶位置監(jiān)控、航行路線規(guī)劃、船舶維護(hù)保養(yǎng)等,實(shí)現(xiàn)全面的船舶管理。
2)實(shí)時(shí)性。該系統(tǒng)能夠?qū)崟r(shí)監(jiān)控船舶的位置和狀態(tài),及時(shí)獲取船舶的相關(guān)信息,實(shí)現(xiàn)對(duì)船舶的實(shí)時(shí)管理和監(jiān)控。
3)自動(dòng)化。該系統(tǒng)能夠自動(dòng)化處理船舶管理流程,減少人工操作,提高工作效率。
4)數(shù)據(jù)分析。該系統(tǒng)能夠?qū)Υ皵?shù)據(jù)進(jìn)行分析,提供數(shù)據(jù)報(bào)表和統(tǒng)計(jì)分析,幫助管理者更好地了解船舶運(yùn)營(yíng)情況,做出決策。
5)安全性。該系統(tǒng)能夠確保船舶的安全,包括防止船舶被非法入侵、及時(shí)發(fā)現(xiàn)船舶故障等。
6)環(huán)保性。該系統(tǒng)能夠監(jiān)測(cè)船舶的排放情況,提供環(huán)保指標(biāo),幫助管理者監(jiān)控和改善船舶的環(huán)境影響。
7)統(tǒng)一管理。該系統(tǒng)能夠統(tǒng)一管理多艘船舶,集中管理船舶的各項(xiàng)信息和操作,提高管理效率。
8)可擴(kuò)展性。該系統(tǒng)具有良好的可擴(kuò)展性,可以根據(jù)實(shí)際需要進(jìn)行功能擴(kuò)展和定制化開(kāi)發(fā),滿足不同船舶管理需求。
考慮到集成平臺(tái)系統(tǒng)船舶監(jiān)控?cái)?shù)據(jù)信息查詢和響應(yīng)的快速性需求,采用Apache Solr 數(shù)據(jù)庫(kù)索引服務(wù)器實(shí)現(xiàn)數(shù)據(jù)的管理。
Apache Solr 是一個(gè)開(kāi)源的搜索平臺(tái),具有高效、可擴(kuò)展、分布式的搜索和數(shù)據(jù)分析功能[4],其特點(diǎn)包括:
1)Apache Solr 使用了倒排索引的數(shù)據(jù)結(jié)構(gòu),可以快速地檢索和分析大規(guī)模的文本數(shù)據(jù)。它支持復(fù)雜的查詢語(yǔ)法和過(guò)濾器,可以進(jìn)行全文搜索、排序、分組、過(guò)濾、統(tǒng)計(jì)等操作。
2)Apache Solr 提供了豐富功能和插件,可以支持多種數(shù)據(jù)源和數(shù)據(jù)格式的索引和搜索。它可以與關(guān)系型數(shù)據(jù)庫(kù)、NoSQL 數(shù)據(jù)庫(kù)、文件系統(tǒng)等進(jìn)行集成,并提供了RESTful API 和各種客戶端庫(kù),方便開(kāi)發(fā)者進(jìn)行數(shù)據(jù)的索引和搜索。
3)Apache Solr 還支持分布式部署,可以橫向擴(kuò)展以處理大規(guī)模的數(shù)據(jù)和請(qǐng)求。它提供了高可用性和容錯(cuò)性的機(jī)制,可以自動(dòng)進(jìn)行數(shù)據(jù)的復(fù)制和故障恢復(fù)。
Apache Solr 可以用于構(gòu)建全文搜索引擎、數(shù)據(jù)分析和實(shí)時(shí)搜索等應(yīng)用,易于集成和使用,通過(guò)API 接口與外部環(huán)境相連接。
基于Apache Solr 數(shù)據(jù)庫(kù)的船舶集成平臺(tái)系統(tǒng)數(shù)據(jù)處理流程如圖5 所示,數(shù)據(jù)報(bào)文首先進(jìn)入數(shù)據(jù)隊(duì)列和應(yīng)用層服務(wù)端口,然后判斷是否為服務(wù)消息,如果是服務(wù)消息則進(jìn)入應(yīng)用層和管理層處理函數(shù)進(jìn)行處理,最后輸出報(bào)文。
圖5 基于Apache Solr 數(shù)據(jù)庫(kù)的船舶集成平臺(tái)系統(tǒng)數(shù)據(jù)處理流程Fig.5 Data processing flow of ship integrated platform system based on Apache Solr database
基于嵌入式CAN 的船舶集成平臺(tái)軟件開(kāi)發(fā)采用Socket 套接字編程技術(shù),其包括服務(wù)層和客戶層2 個(gè)模塊[5],通過(guò)數(shù)據(jù)接口連接,基本原理如圖6所示。
圖6 Socket 技術(shù)的基本原理如圖Fig.6 The basic principle of Socket technology is shown in the figure
嵌入式ARM 的CAN 網(wǎng)關(guān)技術(shù)在通信傳輸速度、集成度、可靠性等方面具有優(yōu)越性,為了提高船舶通信、導(dǎo)航系統(tǒng)的性能,本文結(jié)合嵌入式ARM 的CAN網(wǎng)關(guān)技術(shù)開(kāi)發(fā)了船舶的集成平臺(tái)系統(tǒng),并從網(wǎng)關(guān)控制器開(kāi)發(fā)、平臺(tái)硬件設(shè)計(jì)、軟件開(kāi)發(fā)等方面進(jìn)行研究,重點(diǎn)設(shè)計(jì)了系統(tǒng)的數(shù)據(jù)和軟件,系統(tǒng)具有較高的穩(wěn)定性和可靠性。