CAN總線冗余的船舶監控系統設計方案
?針對我國造船業的發展現狀和現有系統中存在的一些問題,提出一種基于冗余CAN總線設計的船舶監控系統。通過對CAN收發器的冗余,實現CAN總線物理層上的冗余,并在CAN總線上增加保護電路,最大可能地保證通信的可靠性。針對模擬通道的抗干擾設計方法,提出隔離式模擬量測量模塊的設計方法。
關鍵詞? 模擬量隔離? CAN總線冗余設計? 船舶監控系統? MC9S080Z16? TJA1050T
引言
近年來,我國的造船業取得了飛躍性的發展。據船舶工業統計快報報道,2007年,中國造船完工量1893萬載重噸,比上年增長30%;新承接船舶訂單9845萬載重噸,比上年增長132%。隨著自動化水平的提高,大大小小的船舶都安裝了監控系統。目前船舶自動監測系統主要有主從分布式控制、集散式控制等,但這些控制方式都存在系統結構復雜、控制集中等缺點。本監控系統采用了冗余CAN總線設計船艙自動監測系統,將傳統分布式監控系統中的控制功能下放到現場監控單元中,由分布于現場的各監控單元完成數據采集、處理、控制運算、輸出等工作。與上位機的信息交互通過現場總線進行。在計算機中以文字、列表、曲線等形式顯示現場的數據、變化趨勢、故障情況和報警狀態,為管理人員的操作提供可靠、準確的實時信息,從而實現實時監控?;谶@種方式的監控系統是船舶自動監控系統的重要發展方向。
1? 系統工作原理及功能
系統整體結構框圖如圖1所示,模擬量輸入板卡和數字量輸入板卡通過接插件連接到主控制器板上,由主控制器完成對數據的采集與轉換。主控制器將數據打包,發送到其他CAN節點,同時接收并解析其他節點發送來的數據,完成對現場模塊的控制。模擬量輸入板卡主要是對外部模擬信號進行濾波、隔離、調理,濾波后變成一個適合于單片機進行采樣的模擬電壓。其采集的模擬信號主要有兩種類型: 0~10 V的模擬電壓信號和4~20 mA的電流信號。這是工業現場中最常用的模擬信號。數字量輸入板卡主要采集外部開關量信號,完成開關量的隔離、濾波,然后送到主控制器完成對數字量的采集。其中模擬量的隔離輸入和冗余的CAN總線,是本設計比現有的一些基于現場總線的監控產品的先進之處。
2.1? 主控制器選擇
為了減少外部器件,提高系統的穩定性,主控制器選用帶有片內A/D和CAN控制器的MC9S08DZ16。該單片機是Freescale公司2007年推出的一款高性能8位單片機;基于HCS08內核,最高運行時鐘頻率為40 MHz,最多支持32個優先級;內部集成有16? KB Flash存儲器,1 KB SRAM、512 B在線可編程EEPROM、1個12位的A/D轉換器,多種節電模式以及2種超低功耗停止模式,同時內部集成CAN2.0 A/B控制器以及多種標準串行接口。
2.2? CAN總線的電氣保護
船舶機艙中工況條件十分惡劣,各種電磁干擾對物理鏈路及數據鏈路的正常工作都有嚴重的影響。這些對控制系統是極大的威脅,非常容易導致系統癱瘓。為了最大程度地保證網絡系統正常工作,采取了以下兩種措施:第一種措施是電氣隔離。通信電纜是網絡系統中受干擾最大的部分,而且各種干擾也極容易順通信電纜進入系統,從而引起系統的工作不正常。為了切斷這條干擾途徑,保護CAN控制器,在CAN控制器與收發器之間增加了6N137,以進行光電隔離。
第二種措施是在總線上增加保護器件。當發生雷擊或其他強烈干擾時,巨大的能量如果來不及泄放,就會損壞收發器。為了防止干擾對收發器的損壞,增加了防雷管和TVS作總線保護。當受到雷擊時,并接在總線上的防雷管能將能量泄放掉。但是一般情況下,防雷管的反應速度慢,鉗位電壓高(約為800 V),因此本設計中,在防雷管后增加了TVS和PTC電阻。TVS能夠將總線的壓差鉗制在6.8 V以下,這樣當受到干擾時,TVS能較快地起到保護作用;而PTC電阻能保護收發器免受過流的沖擊。在CAN H和CAN L與地之間各自接一個30 pF的小電容,可以起到濾除總線上的高頻干擾和防電磁輻射的作用。CAN收發器電氣保護原理如圖2所示。
2.3? 冗余CAN總線設計
雖然在設計時對CAN收發器采取了一些保護措施,但是在船舶機艙的電纜受拉、壓、砸、擠等而造成故障的情況卻很多,這就不是電氣保護所能解決的了。因此,為了降低此類風險以及各種原因引起的收發器的電氣損壞,最有效的方法就是實現CAN通信網絡的冗余。
在總線冗余處理上,可使用兩套總線,每一套都包含有完整的總線電纜、總線驅動器和總線控制器,或將總線控制器與CPU集成于一體的MCU。實現冗余有兩種方法: 一種是后備方式,即一套運行,另一套“休眠”備用,當運行總線發生故障時,啟用備用總線;另一種是同時運行方式,如果其中一套發生故障,另一套仍能維持系統的正常運行。這兩種方法的優點是同時實現了物理介質、物理層及數據鏈路層甚至應用層的全面冗余,因此,可以稱之為“全面冗余方法”。但全面冗余方法存在著某些不足之處,例如由于節點對系統的構成不敏感,因此,后備方式發現總線開路故障的能力和實時性較差,而同時運行方式下兩路同時工作功耗大,且數據鏈路的冗余較為復雜。本設計使用一種介于兩種方法之間的物理冗余技術。物理鏈路的冗余使用2條總線電纜和2個總線驅動器,且在總線控制器與2個總線驅動器之間增加了一個判斷電路,如圖3所示。
將兩個總線驅動器的發送端連在一起,當節點發送時,CAN總線控制器向兩條通信線路同時發送相同的報文;而接收時,判斷電路自動選擇兩條總線中的一個并將其報文送入總線控制器。判斷電路以時間優先為選擇原則,即哪一路報文搶先到來,哪一路報文就被選中。如果某一總線發生故障,則關閉它與總線控制器的信號通道,同時向CPU發出總線故障中斷,而正常總線的信號通道不受影響。
在判斷電路中,設置了兩個可重復觸發的單穩態觸發器,它們分別與兩條總線對應,檢測報文及其到來的情況。當報文到來時,總線驅動器首先出現一個低電平報文的幀起始位,其下降沿觸發單穩,使其輸出產生一個高電平寬脈沖。通過調整電容的充放電時間,該脈沖經報文中對應的多次下降沿觸發而一直持續到報文結束。
在總線正常的情況下,當出現報文時,兩個單穩態觸發器均產生高電平寬脈沖,該高電平脈沖送入RS觸發器進行時間優先比較。對于優先者,觸發器給對應的或非門低電平,開通相應總線的信號通道;對于滯后者,觸發器用高電平關閉對應的或非門。
當總線無報文時,兩個信號通道均暫時關閉。一旦某一總線發生故障,對應的驅動器上的接收端保持在某一電平狀態,相應的單穩態觸發器不被觸發,其輸出始終保持在低電平上。因此,RS觸發器用高電平封鎖住或非門,使這個信號通道被關閉。異或門用來向CPU提供總線故障中斷信號。接到中斷后,通過I/O口分別查詢兩個單穩態觸發器的輸出即可對故障定位。隨后,可以發送一個故障警報信號,通過正??偩€通知給系統監視設備,以便及時處理。在異或門上設延時環節的目的是: 避免兩個報文不嚴格同步或兩個單穩態觸發電路輸出脈寬不嚴格一致而引起誤中斷。需要注意的是,單穩態觸發電路的單次觸發所產生的脈寬應不小于報文中連續12個位的持續時間(主動錯誤標志的最大可能時間。正常情況下,報文中連續出現相同邏輯位數不超過5位)。
2.4? 4~20 mA電流模擬量的采集
作為模擬儀表的信號標準,4~20 mA的電流信號在常用傳感器中占有非常重要的地位。
由于單片機無法直接對電流信號進行采樣,所以需要先將電流信號轉換為電壓信號。在本設計中,充分考慮了對這種標準信號的采集轉換。選用美國Burr?Brown公司生產的精密電流環接收器芯片RCV420,將4~20 mA電流信號轉換為0~5 V電壓信號,如圖4所示。
RCV420包含1個高級運算放大器、1個片內精密電阻網絡和1個精密10 V電壓基準,其總轉換精度為0.1%,共模抑制比CMR達86 dB,共模輸入電壓范圍達±40 V。RCV420在滿量程時,電壓僅下降1.5 V,在環路中串有其他儀表負載,這對變送器電壓有嚴格限制的應用場合非常有用。10 V電壓基準提供了一個典型溫漂為5×10-6/℃的精密10 V輸出。
為保證RCV420的輸出在單片機的0 V~VCC之間,需要適當減小運放增益。方法是在檢測電阻Rs上并聯匹配電阻Rx,如圖5所示。
調整后的增益值為:
通過調整并聯電阻Rx的大小,可以調整RCV420的輸出范圍。為了保證高共模抑制,并聯電阻Rx的匹配很重要。Rx的溫度參數的任何不一致,都將引起增益誤差和CMR的漂移。
經過計算分析,輸入為4~20 mA信號時,令Rx為1.8 kΩ可使輸出為0~4.8 V,保證在單片機的ADC輸入范圍之內。
在使用RCV420時,有一點需要特別注意:圖5中的2個1 μF的電容C1、C2必須是鉭電容。最初實驗時,C1、C2用的是1 μF的鋁電解電容,結果RCV420工作不正常,輸出沒有規律。檢查電路板發現電源電壓正常,輸入的電流信號穩定,其他器件和連線也沒有問題。查閱文獻后發現此處必須使用鉭電容。更換鉭電容后,RCV420工作正常,輸出準確、穩定。當有多路4~20 mA電流信號輸入時,先使用MAX308進行通路選擇,再進行I/V轉換。
2.5? 模擬量的隔離
為了防止船舶機艙現場的干擾通過模擬量輸入通道進入單片機系統,有必要對模擬電壓信號進行隔離。實現直接線性隔離最簡單的方法就是采用隔離放大器,而隔離放大器必須滿足A/D變換精度和線性要求,如對12位A/D進行隔離,其隔離放大器要達到13位,甚至14位的精度。如此高精度的隔離放大器,價格十分昂貴。本設計中用線性光電耦合器實現了模擬量的隔離,經測試隔離效果良好。電氣原理圖如圖6所示,其中HCNR200光電耦合器由3個光電元件組成。其1、2引腳間是一個A1GaAs發光二極管,3、4引腳,5、6引腳間是兩個相鄰匹配的光敏二極管。光敏二極管的PN結在反向偏置狀態下運行,它的反向電流與光照強度成正比,這種封裝結構決定了每一個光敏二極管都能從LED得到近似相等的光強,從而消除了LED的非線性和偏差特性所帶來的誤差。
在左側運算放大器達到平衡狀態后,有Ipd1=VIn/R1(Ipd1為光耦器件3腳到4腳的)輸出電流,下式中Ipd2為6腳到5腳的輸出電流,其大小與光耦器件內部的發光強度成正比)。Ipd1僅僅決定于輸入電壓以及R1的值,與LED的輸出光強特性無關,因此在輸入電壓與光電二極管的電流之間就建立起很好的線性關系。另外,雖然LED的輸出光強隨著溫度的變化而略受影響,但運放將通過調整發光管電流來進行補償。由于HCNR200特殊的封裝結構,2只光電二極管將得到近似的光強,有 K=Ipd2/Ipd1。根據運算放大器的“虛斷”和“虛短”特性,有
可見,被測電壓和輸出電壓之間存在正比的關系,只要適當選取電阻R1、R3、R4、R5的阻值,就可以得到一定比例的隔離輸出電壓。按照圖6中的參數,通過調整R5的值,可使實際增益K=UAOUT/UAIN≈1。UAIN從0逐漸增大到5 V,測量輸出端的電壓UAOUT如表1所列。
從上表數據中可以看到,經過模擬電壓隔離的電壓差在5 mV下,效果較好。
3? 軟件設計
主控制器流程和數據處理流程如圖7所示。主控制器首先完成初始化工作,然后就進行數據采集。同時,當接收到數據時,對數據進行解析,然后根據數據實現相應的控制功能。為了保證數據的可靠性,需要進行多次A/D采樣,然后根據平均值濾波算法,完成數據的采集。CAN本身具有CRC校驗功能,為了保證數據的可靠性,在發送的數據中增加了一個校驗字節,即將要發送的數據進行異或運算,得到的值自動存于最后一個字節進行發送。
結語
CAN總線冗余設計的船舶監控系統是現場總線技術發展的一個縮影,代表未來船舶控制技術的發展方向。本設計中,利用線性光偶實現了模擬量的光電隔離,大大提高了產品的可靠性。另外,利用判斷電路成功地解決了CAN總線冗余的問題,具有結構簡單、成本低等優點,具有廣闊的市場前景。
評論