999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

船舶控制系統(tǒng)冗余CAN總線網(wǎng)絡(luò)研究

2016-06-28 01:33:01濮加佳曹丹丹中國(guó)船舶重工集團(tuán)公司第七三研究所無(wú)錫分部江蘇無(wú)錫214151

丁 超 濮加佳 曹丹丹(中國(guó)船舶重工集團(tuán)公司第七〇三研究所無(wú)錫分部,江蘇 無(wú)錫 214151)

?

船舶控制系統(tǒng)冗余CAN總線網(wǎng)絡(luò)研究

丁 超 濮加佳 曹丹丹
(中國(guó)船舶重工集團(tuán)公司第七〇三研究所無(wú)錫分部,江蘇 無(wú)錫 214151)

摘 要:為了進(jìn)一步提高船舶控制系統(tǒng)在惡劣海況下的可靠性,本文采用冗余CAN總線搭建了通信網(wǎng)絡(luò)。該網(wǎng)絡(luò)采用軟件方法實(shí)現(xiàn)了兩路CAN總線的熱冗余,自定義了通信協(xié)議,通過(guò)動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)了不同設(shè)備之間的程序移植,并采用LabVIEW開(kāi)發(fā)了上位監(jiān)控軟件。應(yīng)用結(jié)果表明,該網(wǎng)絡(luò)運(yùn)行穩(wěn)定可靠,故障檢測(cè)準(zhǔn)確,實(shí)時(shí)容錯(cuò)能力強(qiáng),移植性好,大大降低了研發(fā)成本,具有很好的實(shí)用性和推廣價(jià)值。

關(guān)鍵詞:CAN總線;冗余;通信協(xié)議;動(dòng)態(tài)鏈接庫(kù);LabVIEW

Abstract:This paper develops a redundancy CAN-bus network for improving reliability of marine control system in severe sea condition. This network implemented hot redundancy of CAN-bus by software method, defined a custom communication protocol, transplanted the program by Dynamic Link Library, and developed the monitoring software by LabVIEW. The application shows that this system runs stably and accurately. The technology and methods adopted in the system are practical and worthy of using abroad.

Keywords:CAN-bus; redundancy; bcommunication protocol; Dynamic Link Library; LabVIEW

船舶控制系統(tǒng)由發(fā)動(dòng)機(jī)控制系統(tǒng)、螺旋槳控制系統(tǒng)、舵機(jī)控制系統(tǒng)、駕駛員操作臺(tái)等設(shè)備組成,不同設(shè)備之間需要進(jìn)行大量的實(shí)時(shí)數(shù)據(jù)傳輸,因此需要一種安全可靠的通信總線來(lái)完成這個(gè)任務(wù)。由德國(guó)Bosch公司開(kāi)發(fā)的CAN總線具有簡(jiǎn)單易用、實(shí)時(shí)高速、可靠性高等諸多優(yōu)點(diǎn),能夠滿足要求。為了保證船舶控制系統(tǒng)在高溫、水霧、顛震等惡劣條件下仍然能夠安全可靠地工作,必須采用雙冗余CAN總線系統(tǒng)。本文比較了現(xiàn)有的雙冗余CAN總線系統(tǒng)技術(shù)方案的優(yōu)缺點(diǎn),提出了一種完全基于軟件實(shí)現(xiàn)的雙冗余CAN總線方案,不僅具備完善的故障檢測(cè)的容錯(cuò)能力,而且對(duì)硬件無(wú)特殊要求,可以非常方便地移植到不同的設(shè)備上。為了搭建完整的冗余CAN總線網(wǎng)絡(luò),本文還根據(jù)船舶控制系統(tǒng)的特點(diǎn)自定義了通信協(xié)議,并基于LabVIEW開(kāi)發(fā)了上位監(jiān)控軟件。

圖1 雙冗余CAN總線系統(tǒng)結(jié)構(gòu)

圖2 冗余功能的程序結(jié)構(gòu)

1 雙冗余CAN總線的實(shí)現(xiàn)方法概述

按照兩路總線的工作狀態(tài)來(lái)分類,雙冗余CAN總線系統(tǒng)的實(shí)現(xiàn)方法主要有兩種,一種是冷冗余,其原理是:一路總線工作,另一路總線待機(jī),工作總線出現(xiàn)故障后切換到待機(jī)總線;另一種是熱冗余,其原理是:兩路總線同時(shí)工作,設(shè)備發(fā)送數(shù)據(jù)時(shí)同時(shí)往兩路總線上發(fā)送同一個(gè)數(shù)據(jù),接收數(shù)據(jù)時(shí)會(huì)從兩路總線上接收到相同的兩個(gè)數(shù)據(jù),選取其中一個(gè)即可。在此基礎(chǔ)上根據(jù)CPU主機(jī)、CAN控制器、CAN收發(fā)器等環(huán)節(jié)的配置不同,又可以分成CAN收發(fā)器冷、熱冗余、CAN控制器冷、熱冗余、全系統(tǒng)冗余、冷熱冗余等。CAN收發(fā)器冷、熱冗余與CAN控制器冷、熱冗余的區(qū)別在于:前者是一個(gè)CAN控制器與兩個(gè)CAN收發(fā)器連接,主要通過(guò)硬件模擬開(kāi)關(guān)實(shí)現(xiàn)冗余功能;后者是兩個(gè)CAN控制器分別與兩個(gè)CAN收發(fā)器連接,主要通過(guò)軟件實(shí)現(xiàn)冗余功能。如果把CPU主機(jī)的冗余也考慮在內(nèi),就成了全系統(tǒng)冗余方案。陳堯等人提出了一種冷熱冗余相結(jié)合的方案,其思路是:按照CAN收發(fā)器熱冗余方案設(shè)計(jì)兩塊相同的CAN通信單板,由CPU主機(jī)控制這兩塊單板的切換。曹俊敏等人提出了一種只有一個(gè)CAN控制器、一個(gè)CAN收發(fā)器的方案,其思路是:CAN收發(fā)器通過(guò)兩個(gè)硬件模擬開(kāi)關(guān)選擇兩路總線。然而這種方案只能對(duì)總線電纜故障進(jìn)行容錯(cuò),對(duì)CAN控制器和CAN收發(fā)器等關(guān)鍵器件的故障無(wú)能為力,因此不予考慮。

冷冗余方式最大的優(yōu)點(diǎn)是功耗小,然而缺點(diǎn)很多,比如:某個(gè)節(jié)點(diǎn)出現(xiàn)故障后所有節(jié)點(diǎn)都要一起切換到另一路總線,要實(shí)現(xiàn)該功能就必須設(shè)置主節(jié)點(diǎn),通過(guò)主節(jié)點(diǎn)來(lái)協(xié)調(diào)所有節(jié)點(diǎn)的動(dòng)作,然而這又使得主節(jié)點(diǎn)的可靠性對(duì)整個(gè)系統(tǒng)的正常運(yùn)行非常重要,李軍等人提出了通過(guò)在網(wǎng)絡(luò)中設(shè)置兩個(gè)主節(jié)點(diǎn)來(lái)保證系統(tǒng)的可靠性;總線切換過(guò)程中會(huì)引起短時(shí)間的通信中斷并丟失數(shù)據(jù),給系統(tǒng)運(yùn)行帶來(lái)隱患;當(dāng)網(wǎng)絡(luò)中只有一個(gè)節(jié)點(diǎn)在工作時(shí),該節(jié)點(diǎn)會(huì)不停地來(lái)回切換通道,馮源等人提出的解決辦法是:來(lái)回切換幾次通道后就判斷為總線故障并退出總線,但是當(dāng)其他節(jié)點(diǎn)投入工作后該節(jié)點(diǎn)還得復(fù)位才能重新工作,增加了操作的復(fù)雜性。這些缺點(diǎn)導(dǎo)致冷冗余方式不適合對(duì)實(shí)時(shí)性要求嚴(yán)格的系統(tǒng)。而采用硬件電路實(shí)現(xiàn)的冗余方案,對(duì)于由多家單位合作開(kāi)發(fā)的船舶控制系統(tǒng)來(lái)說(shuō)也不適用,因?yàn)樗性O(shè)備提供的都是兩個(gè)獨(dú)立的CAN通道,如果采取CAN收發(fā)器冷、熱冗余或者雙單板冷熱冗余等方案,所有設(shè)備都必須重新定制CAN通信板卡,不僅會(huì)導(dǎo)致研發(fā)成本和周期大大增加,還可能會(huì)因?yàn)樵O(shè)備本身的硬件架構(gòu)問(wèn)題而無(wú)法實(shí)現(xiàn)。因此,在船舶控制系統(tǒng)中采用的是基于軟件實(shí)現(xiàn)的熱冗余方案。

表1 心跳報(bào)文幀格式

圖3 故障檢測(cè)流程

表2 故障檢測(cè)流程

表3 數(shù)據(jù)報(bào)文格式

2 雙冗余CAN總線的原理與實(shí)現(xiàn)

雙冗余CAN總線的結(jié)構(gòu)如圖1所示。設(shè)備上電后,兩個(gè)CAN控制器都被初始化至工作狀態(tài)。發(fā)送數(shù)據(jù)時(shí),兩個(gè)CAN控制器把來(lái)自CPU的數(shù)據(jù)同時(shí)往兩路總線上發(fā)送;接收數(shù)據(jù)時(shí),兩個(gè)CAN控制器會(huì)幾乎同時(shí)接收到同一個(gè)數(shù)據(jù),只需接收到其中一個(gè)即可完成通信。冗余功能的程序結(jié)構(gòu)如圖2所示。

3 故障檢測(cè)的原理與實(shí)現(xiàn)

為了保證船舶控制系統(tǒng)的通信故障能被及時(shí)發(fā)現(xiàn)和排除,冗余CAN總線網(wǎng)絡(luò)必須具備完善的故障檢測(cè)機(jī)制。通信協(xié)議定義了一種專門(mén)用于網(wǎng)絡(luò)監(jiān)控的數(shù)據(jù)幀報(bào)文,稱為心跳報(bào)文,其幀格式見(jiàn)表1。

每個(gè)設(shè)備按固定周期往總線上發(fā)送心跳報(bào)文,同時(shí)接收其他設(shè)備發(fā)出的心跳報(bào)文,并把接收情況記錄下來(lái)填寫(xiě)在心跳報(bào)文里;如果心跳報(bào)文發(fā)送失敗,就進(jìn)入故障檢測(cè)程序,把檢測(cè)結(jié)果也填寫(xiě)在心跳報(bào)文里。這樣,每個(gè)設(shè)備的心跳報(bào)文里都包含了該設(shè)備的故障信息以及該設(shè)備與其他設(shè)備之間的通信通斷信息,把所有的心跳報(bào)文集中起來(lái)進(jìn)行分析,就可以知道哪個(gè)設(shè)備、哪段總線電纜出了什么故障。

故障檢測(cè)函數(shù)的流程如圖3所示,檢測(cè)結(jié)果分為7種情況:

“1”:節(jié)點(diǎn)工作正常;

“2”:CAN卡正常,總線斷路或者插頭掉落;

“3”:CAN卡正常,總線短路;

“4”:CAN卡故障,只能發(fā)送不能接收;

“5”:CAN卡故障,只能接收不能發(fā)送;

“6”:CAN卡通道損壞,不能收發(fā);

“7”:不明故障。

4 自定義通信協(xié)議

由于CAN總線底層協(xié)議沒(méi)有規(guī)定應(yīng)用層,因此在構(gòu)建以CAN總線為基礎(chǔ)的應(yīng)用系統(tǒng)時(shí)必須定義一個(gè)應(yīng)用層的通信協(xié)議。由于常用的通用型通信協(xié)議如CANopen、DeviceNet等大都是針對(duì)非冗余的一對(duì)多的分布式控制系統(tǒng),不適合應(yīng)用在每?jī)膳_(tái)設(shè)備都需要通信的冗余CAN總線網(wǎng)絡(luò)中,因此本文根據(jù)船舶控制系統(tǒng)和冗余CAN總線網(wǎng)絡(luò)的具體情況自定義了一個(gè)簡(jiǎn)潔易用的應(yīng)用層通信協(xié)議。

常用的數(shù)據(jù)接收方法有兩種:

(1)在ID中騰出幾個(gè)位作為地址編碼,假定是ID0-ID4,一共有5個(gè)位,可以有32個(gè)不同的值,意味著這樣的系統(tǒng)中最多可以有32個(gè)設(shè)備。總線上的所有設(shè)備都有一個(gè)編號(hào),范圍從0~31,某個(gè)設(shè)備需要向編號(hào)為1的設(shè)備發(fā)送數(shù)據(jù),那么它只要在ID0-ID4中寫(xiě)1就行了;需要編號(hào)為20的設(shè)備發(fā)送數(shù)據(jù),就往ID0-ID4中寫(xiě)20;依此類推。接收?qǐng)?bào)文的設(shè)備只需要檢查ID0-ID4的數(shù)值是不是本設(shè)備的編號(hào),如果是,就接收?qǐng)?bào)文;不是,就忽略。

很多文獻(xiàn)中的設(shè)備尋址用的都是這種方法,因?yàn)檫@種尋址方法直觀形象、容易理解。然而這種方法有一個(gè)不足之處,就是當(dāng)數(shù)據(jù)的傳輸采用單點(diǎn)對(duì)多點(diǎn),即單個(gè)設(shè)備同時(shí)往n個(gè)設(shè)備發(fā)送數(shù)據(jù)時(shí),只能先給多點(diǎn)中的第一個(gè)設(shè)備發(fā)送一次,接著再給第二個(gè)設(shè)備發(fā)送一次,依此類推,有n個(gè)設(shè)備就得重復(fù)發(fā)送n次,無(wú)法做到只發(fā)送一次讓n個(gè)設(shè)備同時(shí)接收。因此,如果系統(tǒng)中的單點(diǎn)對(duì)多點(diǎn)通信一旦用得很多,通信帶寬就被大大浪費(fèi)了。

圖4 調(diào)用動(dòng)態(tài)鏈接庫(kù)函數(shù)發(fā)送模擬量數(shù)據(jù)

(2)CAN控制器不作任何濾波處理,所有的報(bào)文都會(huì)被接收,用戶在程序中對(duì)報(bào)文加以判斷,如果是自己需要的報(bào)文就保存起來(lái),不是就忽略掉。這種方法很像廣播:總線上出現(xiàn)的任何一個(gè)報(bào)文,所有的設(shè)備都會(huì)看到并接收,然后通過(guò)程序來(lái)選擇自己所需的報(bào)文。

這種方法搭建系統(tǒng)非常方便,只需要在程序中對(duì)報(bào)文辨別一下就行了。然而,不進(jìn)行濾波處理的后果是接收了很多用不到的報(bào)文。為了保證通信的實(shí)時(shí)響應(yīng),一般都是使用中斷來(lái)接收?qǐng)?bào)文,CAN控制器接收到報(bào)文就觸發(fā)中斷,處理器立即對(duì)報(bào)文進(jìn)行處理。如果接收到的報(bào)文不是所需要的,就白白浪費(fèi)了寶貴的中斷處理和CPU時(shí)間。

為了克服以上兩個(gè)設(shè)備尋址方法的缺點(diǎn),本文采用了一種全新的設(shè)備尋址方法,既能避免浪費(fèi)通信帶寬,也能避免硬件作很多無(wú)用功。表2所示ID0-ID28對(duì)應(yīng)擴(kuò)展幀ID的29位,把ID0-ID12作為設(shè)備尋址位,每個(gè)位對(duì)應(yīng)總線上的一個(gè)設(shè)備,用法如下:要往設(shè)備10發(fā)送一個(gè)報(bào)文,就把ID9置1,其他位全部置0;要同時(shí)往設(shè)備4和設(shè)備9發(fā)送同一個(gè)報(bào)文,就把ID3和ID8同時(shí)置1,其他位全部置0;要同時(shí)給所有的設(shè)備發(fā)送同一個(gè)報(bào)文,就把ID0到ID9全部置1。在這樣的尋址方式下,設(shè)備的接收濾波設(shè)置變得非常簡(jiǎn)單,比如:對(duì)于設(shè)備8,只要報(bào)文的ID7等于1就接收;對(duì)于設(shè)備4,只要報(bào)文的ID3等于1就接收。

“功能碼”定義的是報(bào)文的種類,比如:(1)命令報(bào)文;(2)心跳報(bào)文;(3)模擬量報(bào)文;(4)開(kāi)關(guān)量報(bào)文;(5)測(cè)試報(bào)文;(6)大文件傳輸報(bào)文;(7)命令反饋報(bào)文。一共可以分為8種類型。

“本機(jī)地址碼”定義的是總線上各個(gè)設(shè)備的編碼,根據(jù)這個(gè)編碼可以判斷出報(bào)文來(lái)自哪個(gè)設(shè)備,最多可以有16個(gè)設(shè)備。

“信號(hào)編碼”定義的是每種類型報(bào)文的編碼,比如:對(duì)于命令報(bào)文,假設(shè)一共有15個(gè)命令,則信號(hào)編碼為1~15;對(duì)于開(kāi)關(guān)量報(bào)文,假設(shè)一共有200個(gè)報(bào)文,則信號(hào)編碼為1~200。一共可以有255個(gè)不同的編碼。

為了定義的簡(jiǎn)潔統(tǒng)一以及便于編程,通信協(xié)議中將系統(tǒng)中用到的數(shù)據(jù)分為命令、命令響應(yīng)、模擬量、開(kāi)關(guān)量四種。這四種數(shù)據(jù)都用數(shù)據(jù)幀來(lái)傳輸,數(shù)據(jù)域有8個(gè)字節(jié),格式見(jiàn)表3。

圖5 冗余CAN總線網(wǎng)絡(luò)故障監(jiān)控頁(yè)面

5 上位監(jiān)控軟件

LabVIEW是面向工業(yè)測(cè)控的圖形化編程環(huán)境,除了具備常規(guī)組態(tài)軟件的優(yōu)點(diǎn)之外,還提供了對(duì)C語(yǔ)言和動(dòng)態(tài)鏈接庫(kù)的良好支持,因此非常適合用來(lái)開(kāi)發(fā)冗余CAN總線網(wǎng)絡(luò)的監(jiān)控軟件。

將前述的冗余功能和通信協(xié)議編寫(xiě)成動(dòng)態(tài)鏈接庫(kù)后,利用的LabVIEW的CLN節(jié)點(diǎn)就可以調(diào)用動(dòng)態(tài)鏈接庫(kù)中的函數(shù)了。圖4是LabVIEW程序中調(diào)用動(dòng)態(tài)鏈接庫(kù)函數(shù)SendAnalog()發(fā)送模擬量數(shù)據(jù)的代碼。圖5是上位監(jiān)控軟件中監(jiān)控整個(gè)冗余CAN總線網(wǎng)絡(luò)故障情況的頁(yè)面。

結(jié)語(yǔ)

本文提出的冗余CAN總線網(wǎng)絡(luò)經(jīng)過(guò)長(zhǎng)時(shí)間的試驗(yàn)運(yùn)行和項(xiàng)目實(shí)踐,證明系統(tǒng)運(yùn)行穩(wěn)定可靠,單路總線發(fā)生故障時(shí)不會(huì)引起通信中斷和數(shù)據(jù)丟失,故障檢測(cè)的延時(shí)為一個(gè)心跳報(bào)文周期。本系統(tǒng)的軟件采用了良好的模塊化設(shè)計(jì),而且對(duì)硬件沒(méi)有特殊要求,可以很方便地移植到其他具備兩個(gè)獨(dú)立CAN通道的設(shè)備中,因此具有很好的實(shí)用性和推廣價(jià)值。

參考文獻(xiàn)

[1]饒運(yùn)濤,鄒繼軍,鄭勇蕓.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2003.

[2]禹春來(lái),許化龍,劉根旺,侯曉林.CAN總線冗余方法研究[J].測(cè)控技術(shù),2003:22(10).

[3]郭曉松,王振業(yè),于傳強(qiáng),潘興杰.基于CAN總線的容錯(cuò)冗余技術(shù)研究[J].計(jì)算機(jī)測(cè)量與控制,2009,17(1).

[4]王紅亮,田帥帥.基于節(jié)點(diǎn)冗余的CAN總線網(wǎng)絡(luò)雙冗余方法[J].探測(cè)與控制學(xué)報(bào),2010:32(4).

[5]李軍,李林,張曉艷.冗余CAN總線在機(jī)電管理系統(tǒng)中的應(yīng)用研究[J].航空計(jì)算技術(shù),2010,40(2).

[6]陳堯,孫漢旭,賈慶軒,史國(guó)振.空間機(jī)器人冷熱雙冗余CAN總線系統(tǒng)的研制[J].電子技術(shù)應(yīng)用,2008(02).

[7]楊君,孫漢旭,賈慶軒,史國(guó)振.Vxworks下的冗余CAN通信模塊設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007(29).

[8]曹俊敏,孟祥群,唐厚君.單個(gè)CAN控制器的雙總線冗余網(wǎng)絡(luò)實(shí)現(xiàn)[J].微處理機(jī),2007(4).

[9]馮源,向桂林,李軍.基于C8051的冗余CAN總線智能節(jié)點(diǎn)設(shè)計(jì)[J].航空計(jì)算技術(shù),2008,38(5).

中圖分類號(hào):TP273

文獻(xiàn)標(biāo)識(shí)碼:A

主站蜘蛛池模板: 国产人成午夜免费看| 欧美黄色a| 黄色网址手机国内免费在线观看| 欧美亚洲激情| 国产真实乱人视频| 777国产精品永久免费观看| 国产第八页| 91小视频版在线观看www| 无码一区二区波多野结衣播放搜索| 欧美成在线视频| 素人激情视频福利| 国产欧美日韩在线在线不卡视频| 亚洲婷婷丁香| 国产精品综合久久久| 久久精品亚洲中文字幕乱码| 亚卅精品无码久久毛片乌克兰| 麻豆AV网站免费进入| 国产精品19p| 直接黄91麻豆网站| 爆操波多野结衣| 欧美第一页在线| 香蕉久久国产超碰青草| 久久综合AV免费观看| 国产成人综合日韩精品无码首页| 色婷婷啪啪| 米奇精品一区二区三区| 久久视精品| 综合色区亚洲熟妇在线| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产精品999在线| 国产av一码二码三码无码| 十八禁美女裸体网站| 在线观看国产精美视频| 特级毛片免费视频| 制服丝袜一区| 免费在线a视频| 最新加勒比隔壁人妻| 天天综合天天综合| 国产日韩精品一区在线不卡| 综合人妻久久一区二区精品| 国产成人亚洲精品无码电影| 国产午夜精品鲁丝片| 亚洲成人精品在线| 亚洲综合精品香蕉久久网| 伊人国产无码高清视频| 精品国产成人a在线观看| 精品福利一区二区免费视频| 国产XXXX做受性欧美88| 精品综合久久久久久97超人| 国产精品女同一区三区五区| 青青草欧美| 国产主播在线一区| 日韩专区第一页| 国产裸舞福利在线视频合集| 婷婷五月在线视频| 亚洲国产成人久久精品软件| 在线欧美a| 国产91丝袜在线播放动漫| 亚洲乱亚洲乱妇24p| 东京热av无码电影一区二区| 亚洲精品无码高潮喷水A| 亚洲第一区在线| 色噜噜在线观看| 免费黄色国产视频| 午夜性爽视频男人的天堂| 亚洲性日韩精品一区二区| 综合色婷婷| 日韩精品成人网页视频在线| 亚洲综合第一区| 国产在线精品香蕉麻豆| 无码中文字幕乱码免费2| 欧美人与动牲交a欧美精品| 亚洲 欧美 偷自乱 图片| 色视频久久| 国产欧美视频在线观看| 亚洲V日韩V无码一区二区| 国产亚洲视频免费播放| 国产精品亚洲а∨天堂免下载| 国产欧美在线观看一区| 国产在线98福利播放视频免费| 成人精品亚洲| 欧美三級片黃色三級片黃色1|