祝石富 廖正勇






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