祝石富 廖正勇
摘要:通過雙CAN總線控制自動化船舶監(jiān)測報警系統(tǒng),對船舶主機的油壓、油溫等模擬量和水位等開關(guān)量進行監(jiān)控,經(jīng)實際運行表明該系統(tǒng)功能強、性能好、可靠性高,完全能滿足船舶航行要求。
關(guān)鍵詞:船舶;CAN總線控制;微控制器
引言
隨著科學(xué)技術(shù)的飛速發(fā)展,船舶自動控制技術(shù)不斷獲得了應(yīng)用、發(fā)展和成熟。船舶上的電子、電氣裝置也越來越多,關(guān)系也越來越密切,如:主機系統(tǒng)的監(jiān)測與報警、各管路系統(tǒng)的壓力監(jiān)測、發(fā)電機電路系統(tǒng)的控制與報警、液位遙測及閥位控制等等,這些系統(tǒng)都影響著船舶的是否能安全航行。以前,這些控制監(jiān)測系統(tǒng)之間都是沒有通過總線構(gòu)成網(wǎng)絡(luò),獨立進行控制和監(jiān)測,或者相關(guān)單元通過串行接口進行聯(lián)系。為了保證船舶設(shè)備安全可靠地運行以及船舶營運的經(jīng)濟性、合理性,現(xiàn)在很多大型特種船舶設(shè)計并采用了基于雙CAN總線控制的自動化船舶監(jiān)測報警系統(tǒng)。通過該系統(tǒng)可以對各設(shè)備的參數(shù)進行實時監(jiān)測,可以隨時了解各重要運行參數(shù)和機電設(shè)備的運行狀態(tài),并實時存儲、打印相關(guān)記錄。當(dāng)運行參數(shù)到達警戒值時,系統(tǒng)會自動發(fā)出聲光報警,同時還可以對設(shè)備進行遠距離操控。
CAN(Controller Area Network)總線是一種串行多主站控制器局域網(wǎng)總線。它具有很高的網(wǎng)絡(luò)安全性、通訊可靠性和實時性,簡單實用,網(wǎng)絡(luò)成本低。實用于海事監(jiān)控,汽車電子,智能大廈等多種工業(yè)環(huán)境,不但可以減少導(dǎo)線連接,并能增強診斷和監(jiān)控能力。通訊媒體可以是雙絞線、同軸電纜或光導(dǎo)纖維,數(shù)據(jù)傳輸速率可達1Mbit/s(此時通訊距離最長為40m)。
1.系統(tǒng)技術(shù)特性及構(gòu)成
1.1 系統(tǒng)技術(shù)特性
船舶自動監(jiān)測報警系統(tǒng)是基于先進硬件平臺和智能軟件平臺,專門為船舶和工業(yè)數(shù)據(jù)采集領(lǐng)域設(shè)計的?;陔pCAN總線的該系統(tǒng)擁有CAN總線系統(tǒng)的所有優(yōu)點,本系統(tǒng)應(yīng)用了最先進的控制芯片和采集芯片,融以先進的容錯軟件設(shè)計概念,有效抑制了電磁干擾,電源波動,環(huán)境溫度變化,噪音干擾,震蕩沖擊干擾。本系統(tǒng)模塊設(shè)計采用了超大規(guī)模集成芯片,硬件更加簡潔,消除了傳統(tǒng)運算放大器產(chǎn)生的零漂、失漂,測量精度得以保證,可靠性得以提高。
該系統(tǒng)網(wǎng)絡(luò)采用CAN2.0B協(xié)議,具有二次開發(fā)方便,性價比高,系統(tǒng)故障檢修方便,操作方便快捷等特點。
1.2系統(tǒng)構(gòu)成
本系統(tǒng)主要由傳感器,輸入、輸出模塊,報警顯示板(延伸報警顯示板),液晶顯示單元(含打印輸出設(shè)備)構(gòu)成,通過雙CAN總線將若干單元模塊連接起來。延伸報警顯示板能將實時的報警信息傳送到相關(guān)船員或集控室等地方。其設(shè)計的總體方案如圖1所示,該系統(tǒng)采用兩路雙絞線作為CAN控制總線,互為備用,分別沿船舶兩舷進行敷設(shè)。
該系統(tǒng)不加網(wǎng)關(guān)數(shù)據(jù)采集,開關(guān)量采集模塊最大可擴展至1000點,4-20mA采集模塊最大可擴展至500個點,熱電偶(測量溫度)采集模塊最大可擴展至500個點,PT100(熱電阻,測量溫度)采集模塊最大可擴展至500個點。一般沿海船舶的采集點在300個左右,內(nèi)河船舶一般只有50個左右,如內(nèi)河海事巡邏艇,基本能滿足對船舶的監(jiān)控需要。
1.3系統(tǒng)實現(xiàn)
船舶自動監(jiān)測報警系統(tǒng)就是將船舶中所有這些獨立控制單元通過CAN總線構(gòu)成一個實時控制系統(tǒng)網(wǎng)絡(luò),各獨立控制單元的指令發(fā)出去之后,必須保證在一定時間內(nèi)得到響應(yīng)。而且,船舶在實際運行過程中,眾多節(jié)點之間需要進行大量的實時數(shù)據(jù)交換和共享,要不然就有可能發(fā)生重大事故,這就要求船舶上的CAN通訊網(wǎng)絡(luò)有較高的波特率設(shè)置和可靠性。整個船舶的通信網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖2所示。
該系統(tǒng)的采集輸入、輸出模塊是其核心部分,這里僅以4-20mA的采集輸入模塊作為示例,其外部端口如圖3所示,同樣是采用雙總線結(jié)構(gòu),互為備用,內(nèi)部是數(shù)據(jù)采集的集成電路板。
通過串聯(lián),前一個設(shè)備的CANH端接到后一個設(shè)備的CANH端,前一個設(shè)備的CANL端接到后一個設(shè)備的CANL端,通訊電纜的外部屏蔽線接到任何一個設(shè)備的CAN通信通道的GND端。不過,CAN通訊網(wǎng)絡(luò)的電纜千萬不要接成星型結(jié)構(gòu)。撥碼開關(guān)第7位和第8位是終端匹配電阻,ON為選用,OF為切斷,只有CAN總線的首端和末端模塊才需要將這兩位推上去,其余幾位為網(wǎng)絡(luò)的ID設(shè)置位。此時,在整個系統(tǒng)沒有供電的情況下用萬用表測量CANH和CANL端兩根線之間的電阻約62Ω。
根據(jù)方案設(shè)計要求,本系統(tǒng)的CAN節(jié)點由ECU(P87C591)、CAN收發(fā)器(PCA82C250)和功能裝置(傳感器、執(zhí)行器等)組成。根據(jù)時間響應(yīng)的要求,本設(shè)計中采用傳輸速率為250Kbps的CAN通信網(wǎng)絡(luò)。
P87C591是一個單片8位高性能微控制器,具有片內(nèi)CAN控制器,從80C51微控制器家族派生而來。它采用了強大的80C51指令集并成功地包含了PHILIPS半導(dǎo)體SJA1000 CAN控制器強大的PeliCAN功能。全靜態(tài)內(nèi)核提供了擴展的節(jié)電方式。振蕩器可停止和恢復(fù)而不會丟失數(shù)據(jù)。改進的1:1內(nèi)部時鐘預(yù)分頻器在12MHz外部時鐘速率時實現(xiàn)500ns指令周期。
總線控制器SJA1000是一種獨立的控制器,廣泛用于一般工業(yè)環(huán)境的控制器局域網(wǎng)(CAN),它不但是它是NXP半導(dǎo)體PCA82C200 CAN控制器(BasicCAN)的替代產(chǎn)品。而且,它增加了一種新的工作模式(PeliCAN),這種模式支持具有很多新特性的CAN 2.0B協(xié)議。連接各種類型微處理器的CAN控制器SJA1000可完成物理層和數(shù)據(jù)鏈路層的所有功能。
由于P87C591已內(nèi)置CAN控制器,模塊內(nèi)部再接SJA1000的CAN控制器,形成了雙控制器結(jié)構(gòu),使得整個數(shù)據(jù)傳輸通道形成互為備用的兩路結(jié)構(gòu),即冗余的雙CAN總線,當(dāng)在一路控制器發(fā)生故障時,另一路控制器就可以介入并承擔(dān)故障控制器的工作,確保了數(shù)據(jù)傳輸?shù)陌踩c可靠,減少了故障等待時間。
PHILIPS PCA82C250是一種通用CAN收發(fā)器,是CAN控制器與物理總線之間的接口,對總線提供差動發(fā)送能力,對CAN總線控制器提供差動接受能力,同時具有抗環(huán)境瞬間干擾、保護總線的能力。
電控單元的微控制器通過數(shù)據(jù)、地址總線與CAN 總線控制器(SJA1000)直接相連,由于CAN 總線控制器帶有一個接收緩沖器和一個發(fā)送緩沖器,因此,CAN總線控制器的發(fā)送端口Tx0,接收端口 Rx0、Rx1分別與CAN總線發(fā)送接收器的TxD和RxD、Vref端口直接相連。為了增強CAN總線節(jié)點的抗干擾能力,SJA1000的TX0和RXO并不是與P82C250的TXD和RXD直接相連,而是通過高速光耦6N137后與P82C250相連,這樣就很好實現(xiàn)了總線上各CAN節(jié)點間的電氣間隔。不過,應(yīng)該特別說明一點的是,光耦部分所采用的兩個電源Vcc和Vdd必須完全隔離,否則采用光耦就失去了意義。電源的完全隔離可以采用小功率電源隔離模塊或者帶多+5V隔離輸出的開關(guān)電源模塊實現(xiàn)。這些部分雖然增加了接口電路的復(fù)雜性,卻提高了接點的穩(wěn)定性和安全性。
CANL和CANH是CAN總線的兩條差分接收發(fā)送線(通常為屏蔽雙絞線)。它們的端點間各接一個120歐姆的總線匹配電阻,當(dāng)有節(jié)點占用CAN總線時,該節(jié)點的發(fā)送端(電平為3.5V)接CANH,接收端(電平為1.5V)接CANL;當(dāng)無節(jié)點占用CAN總線時,CANL和CANH上的電平均為 2.5V。
2.軟件實現(xiàn)
軟件由CAN控制器初始化、CAN總線數(shù)據(jù)的發(fā)送和數(shù)據(jù)的接收三部分組合,程序采用C語言編寫。
2.1 CAN控制器的初始化
在程序設(shè)計中,CAN控制器的初始化是軟件設(shè)計的關(guān)鍵,這一部分關(guān)系到系統(tǒng)能否正常工作。CAN控制器的初始化主要包括中斷的配置、定位時的配置、操作模式的配置、驗收濾波器的配置等幾項。
2.2 CAN總線上數(shù)據(jù)的發(fā)送和接受
2.2.1 查詢方式的數(shù)據(jù)發(fā)送
當(dāng)CPU發(fā)送數(shù)據(jù)時,發(fā)送緩沖區(qū)對寫操作鎖定,這樣CPU必須檢查狀態(tài)寄存器的發(fā)送緩沖區(qū)狀態(tài)標志(TBS),以確定是否可以將一個新信息放入發(fā)送緩沖區(qū)。如果發(fā)送緩沖區(qū)被鎖定,則周期性查詢狀態(tài)寄存器,CPU一直等待發(fā)送緩沖區(qū)被釋放;如果發(fā)送緩沖區(qū)被釋放,CPU將新信息寫入發(fā)送緩沖區(qū)并置位命令寄存器的發(fā)送請求標志(TR),起動數(shù)據(jù)發(fā)送。當(dāng)發(fā)送完成狀態(tài)位置位時,標志著CAN信息已經(jīng)成功發(fā)送。流程圖如圖4所示。
2.2.2中斷方式的數(shù)據(jù)接受
如果CPU已經(jīng)接收一個信息,該信息已經(jīng)通過驗收濾波器并放入接受FIFO,則產(chǎn)生一個接受中斷,這樣CPU能夠立即將接收的信息傳送到自身的信息存儲器并置位命令寄存器的釋放緩沖區(qū)標志(RRB),釋放接受緩沖器。流程圖如圖6所示。
3.結(jié)束語
上述的產(chǎn)品已通過型式認可,并且已經(jīng)在多條沿海船舶上使用,至目前為止還沒有接到船戶的不良反饋。試驗及使用結(jié)果表明這種基于雙CAN總線控制的船舶監(jiān)測報警系統(tǒng),可靠性強,可以大大提高船舶各系統(tǒng)的響應(yīng)速度,較大地提高了船舶的工作效率。船舶計算機單元通過CAN總線進行通信,可以共享所有信息和資源,達到簡化布線、提高系統(tǒng)的可靠性和維護性、減低成本、更好地匹配和協(xié)調(diào)各個控制系統(tǒng)的目的。
目前,CAN總線越來越受到船舶工業(yè)尤其是船舶自動化的重視,并且已被公認為最有前途的現(xiàn)場總線。隨著我國近年來船舶自動化的飛速發(fā)展,技術(shù)的不斷進步,CAN總線必將在船舶自動控制技術(shù)中得到廣泛的應(yīng)用。