亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2016-06-28 01:33:01濮加佳曹丹丹中國船舶重工集團(tuán)公司第七三研究所無錫分部江蘇無錫214151
        中國新技術(shù)新產(chǎn)品 2016年10期
        關(guān)鍵詞:冗余CAN總線通信協(xié)議

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

        ?

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

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

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

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

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

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

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

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

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

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

        圖3 故障檢測流程

        表2 故障檢測流程

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

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

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

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

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

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

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

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

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

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

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

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

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

        “7”:不明故障。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        結(jié)語

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

        參考文獻(xiàn)

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

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

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

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

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

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

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

        [8]曹俊敏,孟祥群,唐厚君.單個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).

        中圖分類號:TP273

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

        猜你喜歡
        冗余CAN總線通信協(xié)議
        基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計(jì)
        論網(wǎng)絡(luò)通信技術(shù)
        基于嵌入式的汽車輔助制動系統(tǒng)研究
        CAN總線通信技術(shù)在電梯監(jiān)控系統(tǒng)中的應(yīng)用
        單機(jī)容錯與雙機(jī)熱備份技術(shù)淺析
        核電站核島電氣隔離準(zhǔn)則研究
        科技視界(2016年23期)2016-11-04 13:13:20
        基于CANoe的J1939協(xié)議在ECU通信中的應(yīng)用
        科技視界(2016年18期)2016-11-03 22:53:48
        數(shù)據(jù)中心供配電系統(tǒng)設(shè)計(jì)要點(diǎn)簡析
        淺敘國產(chǎn)存儲技術(shù)之發(fā)展
        基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計(jì)與研究
        男女做羞羞事的视频网站| 午夜日本精品一区二区| 国产午夜福利精品一区二区三区| 成人av在线免费播放| 99久久国产露脸精品竹菊传媒| 亚洲一区二区三区四区地址| 热re99久久精品国产66热6| 亚洲第一se情网站| 久久国产精品亚洲我射av大全| 美女大量吞精在线观看456| 亚洲乱码国产乱码精华| 亚洲视频精品一区二区三区| 国产精品亚洲综合色区韩国| 伊人久久精品无码av一区| 中文字幕亚洲视频三区| 色综合久久久久久久久五月| 久热re这里精品视频在线6| 日本视频一区二区三区在线| 国产av色| 久久夜色精品国产噜噜亚洲av| 最新中文字幕人妻少妇| 亚洲色图在线视频观看| 成在人线av无码免费| 国产乱子伦| 亚洲无精品一区二区在线观看| 亚欧免费无码AⅤ在线观看| 久久精品无码专区免费青青| 人妻体内射精一区二区三区| 久久色悠悠综合网亚洲| 亚洲一区二区三区精品网| 国产美女在线精品免费观看| 久久久精品人妻一区二区三区四区 | 亚洲国产精品成人一区| 国产成人午夜福利在线小电影| 久久精品人妻无码一区二区三区| 日本av亚洲中文字幕| 伊人久久大香线蕉综合av| 国产综合精品久久亚洲| 天天躁狠狠躁狠狠躁夜夜躁| 国产精品久久久亚洲| 手机在线中文字幕av|