一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

雙CAN冗余通信系統(tǒng)的設(shè)計方案與應(yīng)用分析

電子設(shè)計 ? 來源:單片機與嵌入式系統(tǒng)應(yīng)用 ? 作者:莫傳孟,林彥凱,馮 ? 2021-05-05 10:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者:莫傳孟, 林彥凱, 馮曉云

雖然CAN協(xié)議本身具有較強的檢錯糾錯能力,但在工業(yè)控制現(xiàn)場,插頭連接的不牢固、傳輸介質(zhì)的損壞或總線驅(qū)動器的損壞等都會破壞CAN的可靠通信。在要求高可靠性的應(yīng)用系統(tǒng)中,這些故障如不能自動檢測到并采取相應(yīng)措施克服,將使系統(tǒng)部分甚至完全失去通信能力。解決這一問題的有效途徑是采用冗余通信控制。從而保證通信系統(tǒng)主要功能正常運行,以此提高系統(tǒng)的可靠性。

1 系統(tǒng)硬件組成

MB90F543是Fujitsu公司推出的一款帶2個CAN控制器的16位微控制器。系統(tǒng)使用兩套總線(CAN0、CAN1),每一套包含獨立的總線電纜、總線驅(qū)動器和總線控制器,可以實現(xiàn)物理介質(zhì)、物理層、數(shù)據(jù)鏈路層及應(yīng)用層的全面冗余。兩套總線采用熱備份方式運行:一個CAN控制器作為系統(tǒng)上電后默認(rèn)的CAN(可稱為主CAN);另一個為系統(tǒng)的備用CAN(稱之為從CAN),作為主CAN的冗余。系統(tǒng)正常工作時,主CAN總線(CAN0)投入運行。當(dāng)主CAN總線發(fā)生故障時,從CAN總線(CAN1)投入運行。如上電檢測到主CAN總線故障,則從CAN總線自動投入運行。這樣在一套總線發(fā)生故障時,另一套總線自動繼續(xù)工作,保證整個系統(tǒng)的通信功能正常運行,大大提高了系統(tǒng)的可靠性,實現(xiàn)了CAN總線的全面冗余設(shè)計。另外,也可以根據(jù)需要,由軟件設(shè)定采取冗余方式或非冗余方式。對于非冗余方式只采用主CAN總線運行。本系統(tǒng)的結(jié)構(gòu)方案如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)框圖

RT為總線終端匹配電阻,用于抑制信號發(fā)射干擾,RT =100Ω或120Ω。網(wǎng)絡(luò)采用屏蔽雙絞線作為通信介質(zhì)。

CAN控制器集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對數(shù)據(jù)通信的成幀處理,包括位填充、數(shù)據(jù)塊編碼、CRC校驗和優(yōu)先級判別等工作。

CAN控制器具有以下主要特點:

◇ 符合CAN2.0A和CAN2.0B協(xié)議;

◇ 支持?jǐn)?shù)據(jù)幀和遠(yuǎn)程幀的發(fā)送和接收;

◇ 16個收發(fā)信息緩沖器,支持11位或29位標(biāo)識符,支持多級信息緩沖器結(jié)構(gòu);

◇ 支持滿位比較、滿位屏蔽和位屏蔽驗收三種驗收標(biāo) 識選擇方式;

◇ 兩個驗收標(biāo)識寄存器支持標(biāo)準(zhǔn)幀或擴展幀格式;

◇ 波特率從10Kbps~1Mbps可編程

總線驅(qū)動器采用PCA82C250作為CAN控制器與物理總線間的接口,以提升總線的差動發(fā)送和接收能力。

CAN驅(qū)動電路如圖2 所示。

圖2 CAN驅(qū)動電路

2 系統(tǒng)軟件設(shè)計

2.1 實現(xiàn)雙CAN冗余控制功能

在雙CAN冗余系統(tǒng)中,較之硬件結(jié)構(gòu)而言,軟件設(shè)計相對復(fù)雜得多。一般的CAN總線通信程序必須包括 CAN初始化程序、CAN發(fā)送程序和CAN接收程序三個基本部分。在本冗余系統(tǒng)軟件設(shè)計中,上面三部分作為三個最基本的模塊,供系統(tǒng)其它軟件模塊調(diào)用。

MB90F543可以處理256種中斷源,與CAN控制器相關(guān)的硬件中斷有四個:CAN0 RX(CAN0 接收完全中斷)、CAN0 TX /NS(CAN0 發(fā)送完全/節(jié)點狀態(tài)改變中斷)、CAN1 RX(CAN1 接收完全中斷)、CAN1 TX /NS(CAN1 發(fā)送完全/節(jié)點狀態(tài)改變中斷)。在本軟件設(shè)計中,采用查詢發(fā)送,中斷接收。節(jié)點狀態(tài)改變中斷子程序,用于對節(jié)點狀態(tài)改變的處理。這是因為在CAN2.0協(xié)議中規(guī)定節(jié)點處于下面三種狀態(tài)之一:錯誤激活態(tài)、忽略錯誤態(tài)、脫離總線態(tài)。在MB90500系列中還多規(guī)定了一種警告態(tài),它表明發(fā)送/接收錯誤計數(shù)器的值超過96。節(jié)點狀態(tài)改變會引起相應(yīng)中斷。

由于系統(tǒng)采用雙CAN冗余熱備份方式運行,所以兩個CAN控制器必須都處于熱備份狀態(tài)。系統(tǒng)中所有節(jié)點的兩個CAN控制器經(jīng)初始化后都隨時準(zhǔn)備接收信息,但有且只有一個CAN控制器在發(fā)送信息。換言之,在一個時間點上,系統(tǒng)中有且僅有一路 CAN通道在工作,另一路處于監(jiān)聽狀態(tài)(正常工作時),或故障狀態(tài)(發(fā)生故障時)。

雙CAN冗余控制系統(tǒng)較之單CAN控制系統(tǒng)在軟件設(shè)計上的復(fù)雜之處,關(guān)鍵在于CAN系統(tǒng)故障檢測及CAN系統(tǒng)自動切換。由于采用兩套完全獨立的傳輸介質(zhì)、總線驅(qū)動器和總線控制器,因此它們能分別獨立檢測到自己通道的故障,比如CANH與CANL短路,CANH或CANL斷開、CANH與地短路、CANL與電源短路、總線驅(qū)動器損壞等。實際調(diào)試中發(fā)現(xiàn), 如果CANH、CANL斷開或只有一個發(fā)送器在總線上,均會造成發(fā)送/接收錯誤計數(shù)器不斷增加到128,使節(jié)點處于忽略錯誤態(tài);而CANH與CANL短路、CANH與地短路或CANL與電源短路均會造成發(fā)送/接收錯誤計數(shù)器不斷增加到256,使節(jié)點處于總線脫離態(tài)。所以,通過節(jié)點狀態(tài)改變中斷子程序中調(diào)用CAN冗余模塊,可以達(dá)到實現(xiàn)上述故障自動檢測及CAN系統(tǒng)自動切換的目的。CAN0節(jié)點狀態(tài)改變中斷子程序如下:

__interrupt void NodeStateTransmitInt0(void)

{

if (CSR0_NT) /*節(jié)點狀態(tài)改變*/

{

CSR0_NT = 0; /*中斷標(biāo)志復(fù)位*/

if ( (CSR0_NS = =2 ) (CSR0_NS = =3 ) ) /*斷路或短路引起*/

{

NoWaitFlg = 1; /*一個互斥標(biāo)志*/

Bus0Error( ) ; /* Bus0Error( )停止CAN0, 啟動冗余CAN1子程序*/

}

}

ICR00 =3; /*改變中斷優(yōu)先級,使定時器0中斷優(yōu)先*/

ICR03 =2;

}

此外,在CAN總線通信過程中,當(dāng)某個信息緩沖器的數(shù)據(jù)發(fā)送完成后,發(fā)送完成寄存器中相應(yīng)的位將被置為1。在查詢發(fā)送過程中,通過判斷這一寄存器可以知道該次發(fā)送是否完成。但如果發(fā)送不成功,則會使系統(tǒng)一直在等待,造成系統(tǒng)死機。所以軟件必須在這里設(shè)定一個等待時段,超過這一時段則調(diào)用CAN冗余系統(tǒng),停止主CAN通道,啟用從CAN通道。

軟件設(shè)計中還要注意這樣一個問題,備用CAN切換完成后,如何恢復(fù)原來的通信任務(wù)。解決辦法是編制一個任務(wù)標(biāo)志列表,備用CAN切換后,讀該表即可獲取系統(tǒng)原來進(jìn)行的任務(wù),實現(xiàn)原來通信任務(wù)的可靠切換。

2.2 實現(xiàn)總線管理功能

在本系統(tǒng)的軟件設(shè)計中,除了用于數(shù)據(jù)發(fā)送和接收的實時數(shù)據(jù)通信程序外,還包括用于對各個節(jié)點進(jìn)行管理的通信管理程序。所有節(jié)點分為主節(jié)點和從節(jié)點。它們的區(qū)別在于主節(jié)點具有總線管理功能,可以進(jìn)行在線節(jié)點統(tǒng)計,識別離線節(jié)點并采取處理措施;而從節(jié)點沒有這個功能。主節(jié)點只設(shè)一個,而允許多個從節(jié)點。總線管理功能程序供主節(jié)點每隔一段時間調(diào)用,來判斷所有的節(jié)點是否都在線:如果所有節(jié)點都在線,則認(rèn)為總線正常;否則識別離線節(jié)點,并作相應(yīng)處理。設(shè)計思路是系統(tǒng)主節(jié)點定時向總線上所有從節(jié)點發(fā)送一遠(yuǎn)程幀,各個從節(jié)點收到后,將自己的節(jié)點編號放在一數(shù)據(jù)幀中發(fā)送給主節(jié)點,主節(jié)點根據(jù)收到的節(jié)點編號來判斷是否有節(jié)點故障離線。在本系統(tǒng)中,節(jié)點編號(模塊地址)由模塊上的DIP開關(guān)設(shè)定。主節(jié)點通信流程如圖3所示。

圖3 主節(jié)點通信流程圖

軟件調(diào)試過程中,雖然各個節(jié)點的硬件結(jié)構(gòu)相同,但由于電路板布線和元器件分散性存在著差異,常會致使并非所有從節(jié)點能都收到主節(jié)點發(fā)送的信息,或者主節(jié)點并非都能收到所有從節(jié)點發(fā)送的信息,即存在幀丟失問題。通過軟件延時和優(yōu)化接收中斷程序,這一問題已得到很好的解決。

3 開發(fā)環(huán)境及應(yīng)用中應(yīng)注意的幾個問題

Softune V3軟件工作平臺是針對富士通FFMC-8L、FFMC-16L/LX和FR系列微控制器程序開發(fā)的集成軟件開發(fā)環(huán)境,包括開發(fā)管理、仿真器調(diào)試、軟仿真和一個集成開發(fā)環(huán)境。其開發(fā)工具包包括Softune Workbench、C compiler、Assembler、Linker、C Checker、C Analyzer。Softune V3同時支持C語言匯編語言。

MB90F543實際使用過程中,應(yīng)注意下面幾個問題。

① 驗收標(biāo)識選擇寄存器(AMSR)的設(shè)置。每個信息緩沖器可以選擇一種驗收標(biāo)識方式:滿位比較、滿位屏蔽或位屏蔽驗收。滿位比較是指節(jié)點接收到信息的ID需與該信息緩沖器設(shè)定的ID完全一致,信息才能通過驗收標(biāo)識器;滿位屏蔽不用對信息的ID進(jìn)行比較,可以理解為無條件通過驗收標(biāo)識器;位屏蔽驗收方式可以指定需比較的ID位和需屏蔽的ID位,即部分比較驗收。實際應(yīng)用中,這種驗收標(biāo)識方式應(yīng)用得最多,所以在MB90F543芯片的CAN控制器中,設(shè)定了兩種這一方式。AMSR的設(shè)置為開發(fā)人員處理緩沖器信息提供了極大的靈活性。

② 驗收標(biāo)識寄存器(AMR)的設(shè)置。在AMSR設(shè)置為位屏蔽驗收方式后,必須設(shè)置AMR,來設(shè)定ID哪些位要比較,哪些位要屏蔽。AMR共有四個字節(jié),支持29位ID符。但值得注意的是,對29位ID符,使用的是AM28~AM0;而對11位ID符,使用的是AM28~AM18。因此使用者在設(shè)置AMR時必須謹(jǐn)慎,否則會造成接收錯誤。筆者曾在這里吃過苦頭。

③ Fujitsu公司CAN控制器的一個特點是支持使用多級信息緩沖器。在接收頻繁發(fā)生,或者收到幾個不同ID信息幀的情況下,可能CPU沒有足夠的時間來處理收到的信息,因此可將多個信息緩沖器構(gòu)成一個多級信息緩沖器,保證信息能夠得到及時、有效的處理。通過這種方式,可以1幀發(fā)送大于8個字節(jié)的信息。這種安排的另一好處是,CPU可以不需立即去讀某個信息緩沖器的信息,而不必?fù)?dān)心緩沖器信息被重寫和丟失。

4 結(jié)論

在CAN應(yīng)用層協(xié)議的開發(fā)過程中,借鑒了DeviceNet規(guī)范的一些機理,如支持多種形式的數(shù)據(jù)傳送(選通、輪詢、狀態(tài)變化等);但受開發(fā)周期等諸多因素的限制,設(shè)備的診斷功能以及與同類產(chǎn)品之間的互操作性都有待完善和擴展。雙CAN冗余通信系統(tǒng)在實驗階段工作穩(wěn)定,數(shù)據(jù)傳輸可靠,冗余切換切實可行,總線管理可靠性良好;可以應(yīng)用于要求高可靠性的機車控制系統(tǒng)或其它工業(yè)控制現(xiàn)場中。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7942

    瀏覽量

    154608
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5433

    瀏覽量

    124244
  • 電纜
    +關(guān)注

    關(guān)注

    18

    文章

    2887

    瀏覽量

    56159
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    冗余CAN現(xiàn)場總線STM32F105開發(fā)板KeilC++源程序

    協(xié)議,比CANOpen\DeviceNet\iCAN更好用;CANWeb通信可靠(可選冗余)、節(jié)點多(最多98個CAN節(jié)點)、速度快(1Mbps)、通信距離遠(yuǎn)(10公里);通過CANW
    發(fā)表于 08-14 11:16

    求一種過程分析儀器CAN網(wǎng)絡(luò)通信設(shè)計方案

    求一種過程分析儀器CAN網(wǎng)絡(luò)通信設(shè)計方案
    發(fā)表于 05-27 06:40

    基于CAN 總線的雙機冗余系統(tǒng)設(shè)計方法

    冗余技術(shù)是提高計算機控制系統(tǒng)可靠性的重要措施之一。本文在分析傳統(tǒng)雙機冗余系統(tǒng)不足之處的基礎(chǔ)上,提出基于C
    發(fā)表于 05-14 14:39 ?35次下載

    CAN網(wǎng)狀冗余及基于ARM節(jié)點設(shè)計

    本文簡單介紹了目前CAN網(wǎng)冗余的幾種方式,提出了網(wǎng)狀冗余的全新冗余方式;給出了應(yīng)用在電源模塊控制系統(tǒng)中,基于具有ARM7TDMI內(nèi)核的32位
    發(fā)表于 05-26 16:02 ?1次下載

    CAN網(wǎng)狀冗余及基于ARM節(jié)點設(shè)計

    本文簡單介紹了目前CAN網(wǎng)冗余的幾種方式,提出了網(wǎng)狀冗余的全新冗余方式;給出了應(yīng)用在電源模塊控制系統(tǒng)中,基于具有ARM7TDMI內(nèi)核的32位
    發(fā)表于 05-26 16:02 ?28次下載

    CAN網(wǎng)狀冗余及基于ARM節(jié)點設(shè)計

    本文簡單介紹了目前CAN網(wǎng)冗余的幾種方式,提出了網(wǎng)狀冗余的全新冗余方式;給出了應(yīng)用在電源模塊控制系統(tǒng)中,基于具有ARM7TDMI內(nèi)核的32位
    發(fā)表于 05-26 16:02 ?10次下載

    基于嵌入式系統(tǒng)μC/OS-II的CAN通信構(gòu)件

    在將嵌入式實時操作系統(tǒng)μC/OS-II成功移植到MB90F543單片機的基礎(chǔ)上,論文介紹了將CAN通信程序模塊作為一個構(gòu)件嵌入到μC/OS-II中,在多個節(jié)點之間實現(xiàn)了基于μC/OS
    發(fā)表于 08-12 17:28 ?27次下載

    CAN總線冗余的船舶監(jiān)控系統(tǒng)設(shè)計方案

    CAN總線冗余的船舶監(jiān)控系統(tǒng)設(shè)計方案  針對我國造船業(yè)的發(fā)展現(xiàn)狀和現(xiàn)有系統(tǒng)中存在的一些問題,提出一種基于
    發(fā)表于 03-29 15:08 ?1148次閱讀
    <b class='flag-5'>CAN</b>總線<b class='flag-5'>冗余</b>的船舶監(jiān)控<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>設(shè)計方案</b>

    基于CAN核的四冗余通信板設(shè)計與仿真

    基于CAN核的四冗余通信板設(shè)計與仿真 隨著電子技術(shù)、計算機應(yīng)用技術(shù)和EDA技術(shù)的不斷發(fā)展,利用FPGA進(jìn)行數(shù)字系統(tǒng)的開發(fā)已被廣泛應(yīng)用于通信
    發(fā)表于 02-03 16:38 ?1189次閱讀
    基于<b class='flag-5'>CAN</b>核的四<b class='flag-5'>冗余</b><b class='flag-5'>通信</b>板設(shè)計與仿真

    基于冗余CAN的Keil的開發(fā)板及源程序

     基于STM32F105(冗余CAN)、STM32F407(冗余CAN)、LPC11C14(
    發(fā)表于 09-01 09:21 ?61次下載
    基于<b class='flag-5'>冗余</b><b class='flag-5'>雙</b><b class='flag-5'>CAN</b>的Keil的開發(fā)板及源程序

    控制器局域網(wǎng)簡介及基于微控制器的CAN冗余設(shè)計方案

    基于 STM32F105微控制器的 CAN 冗余設(shè)計方案。 STM32F105 是 STM icroe lectron ics 公司推出的一款基于 ARM
    發(fā)表于 11-07 16:29 ?12次下載
    控制器局域網(wǎng)簡介及基于微控制器的<b class='flag-5'>雙</b><b class='flag-5'>CAN</b><b class='flag-5'>冗余</b><b class='flag-5'>設(shè)計方案</b>

    基于STM32F105微控制器的CAN冗余設(shè)計方案

    基于STM32F105微控制器的CAN 冗余設(shè)計方案。 1 硬件平臺組成 STM32F105是STM icroe lectron ics公司推出的一
    發(fā)表于 12-01 11:35 ?1702次閱讀
     基于STM32F105微控制器的<b class='flag-5'>雙</b><b class='flag-5'>CAN</b><b class='flag-5'>冗余</b><b class='flag-5'>設(shè)計方案</b>

    基于微控制器STM32F105的CAN冗余設(shè)計方案

    基于STM32F105微控制器的CAN 冗余設(shè)計方案。 1 硬件平臺組成 STM32F105是STM icroe lectron ics公司推出的一款
    的頭像 發(fā)表于 04-09 10:03 ?2w次閱讀
    基于微控制器STM32F105的<b class='flag-5'>雙</b><b class='flag-5'>CAN</b><b class='flag-5'>冗余</b><b class='flag-5'>設(shè)計方案</b>

    一種采用冗余方案的雷達(dá)系統(tǒng)設(shè)計讓雷達(dá)系統(tǒng)具有可靠性詳細(xì)資料概述

    針對某種雷達(dá)系統(tǒng)要求具有高可靠性、熱切換和不停機檢修的特點,本文提出了一種采用冗余方案的雷達(dá) 系統(tǒng)設(shè)計 。對設(shè)計前存在的問題進(jìn)行了
    發(fā)表于 06-12 08:00 ?5次下載
    一種采用<b class='flag-5'>雙</b><b class='flag-5'>冗余</b><b class='flag-5'>方案</b>的雷達(dá)<b class='flag-5'>系統(tǒng)</b>設(shè)計讓雷達(dá)<b class='flag-5'>系統(tǒng)</b>具有可靠性詳細(xì)資料概述

    基于ARM的CAN通信系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于ARM的CAN通信系統(tǒng)設(shè)計.pdf》資料免費下載
    發(fā)表于 10-27 11:21 ?2次下載
    基于ARM的<b class='flag-5'>雙</b><b class='flag-5'>CAN</b><b class='flag-5'>通信系統(tǒng)</b>設(shè)計