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