国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于MB90F543微控制器的雙CAN冗余設(shè)計(jì)

發(fā)布時(shí)間:2010-3-22 20:33    發(fā)布者:蹦蹦
關(guān)鍵詞: CAN , 控制器 , 冗余 , 設(shè)計(jì)
雖然CAN協(xié)議本身具有較強(qiáng)的檢錯(cuò)糾錯(cuò)能力,但在工業(yè)控制現(xiàn)場(chǎng),插頭連接的不牢固、傳輸介質(zhì)的損壞或總線驅(qū)動(dòng)器的損壞等都會(huì)破壞CAN的可靠通信。在要求高可靠性的應(yīng)用系統(tǒng)中,這些故障如不能自動(dòng)檢測(cè)到并采取相應(yīng)措施克服,將使系統(tǒng)部分甚至完全失去通信能力。解決這一問(wèn)題的有效途徑是采用冗余通信控制。從而保證通信系統(tǒng)主要功能正常運(yùn)行,以此提高系統(tǒng)的可靠性。

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

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


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

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

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

CAN控制器具有以下主要特點(diǎn):
  ◇ 符合CAN2.0A和CAN2.0B協(xié)議;
  ◇ 支持?jǐn)?shù)據(jù)幀和遠(yuǎn)程幀的發(fā)送和接收;
  ◇ 16個(gè)收發(fā)信息緩沖器,支持11位或29位標(biāo)識(shí)符,支持多級(jí)信息緩沖器結(jié)構(gòu);
  ◇ 支持滿位比較、滿位屏蔽和位屏蔽驗(yàn)收三種驗(yàn)收標(biāo) 識(shí)選擇方式;
  ◇ 兩個(gè)驗(yàn)收標(biāo)識(shí)寄存器支持標(biāo)準(zhǔn)幀或擴(kuò)展幀格式;
  ◇ 波特率從10Kbps~1Mbps可編程。

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

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


圖2  CAN驅(qū)動(dòng)電路

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

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

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

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

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

雙CAN冗余控制系統(tǒng)較之單CAN控制系統(tǒng)在軟件設(shè)計(jì)上的復(fù)雜之處,關(guān)鍵在于CAN系統(tǒng)故障檢測(cè)及CAN系統(tǒng)自動(dòng)切換。由于采用兩套完全獨(dú)立的傳輸介質(zhì)、總線驅(qū)動(dòng)器和總線控制器,因此它們能分別獨(dú)立檢測(cè)到自己通道的故障,比如CANH與CANL短路,CANH或CANL斷開、CANH與地短路、CANL與電源短路、總線驅(qū)動(dòng)器損壞等。實(shí)際調(diào)試中發(fā)現(xiàn), 如果CANH、CANL斷開或只有一個(gè)發(fā)送器在總線上,均會(huì)造成發(fā)送/接收錯(cuò)誤計(jì)數(shù)器不斷增加到128,使節(jié)點(diǎn)處于忽略錯(cuò)誤態(tài);而CANH與CANL短路、CANH與地短路或CANL與電源短路均會(huì)造成發(fā)送/接收錯(cuò)誤計(jì)數(shù)器不斷增加到256,使節(jié)點(diǎn)處于總線脫離態(tài)。所以,通過(guò)節(jié)點(diǎn)狀態(tài)改變中斷子程序中調(diào)用CAN冗余模塊,可以達(dá)到實(shí)現(xiàn)上述故障自動(dòng)檢測(cè)及CAN系統(tǒng)自動(dòng)切換的目的。CAN0節(jié)點(diǎn)狀態(tài)改變中斷子程序如下:
__interrupt void NodeStateTransmitInt0(void)
  {
    if (CSR0_NT) /*節(jié)點(diǎn)狀態(tài)改變*/
      {
        CSR0_NT = 0; /*中斷標(biāo)志復(fù)位*/
        if ( (CSR0_NS = =2 ) (CSR0_NS = =3 ) ) /*斷路或短路引起*/
          {
             NoWaitFlg = 1; /*一個(gè)互斥標(biāo)志*/
            Bus0Error( ) ; /* Bus0Error( )停止CAN0, 啟動(dòng)冗余CAN1子程序*/
          }
      }
ICR00 =3; /*改變中斷優(yōu)先級(jí),使定時(shí)器0中斷優(yōu)先*/
ICR03 =2;
}

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

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

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

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


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

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

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

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

MB90F543實(shí)際使用過(guò)程中,應(yīng)注意下面幾個(gè)問(wèn)題。
①  驗(yàn)收標(biāo)識(shí)選擇寄存器(AMSR)的設(shè)置。每個(gè)信息緩沖器可以選擇一種驗(yàn)收標(biāo)識(shí)方式:滿位比較、滿位屏蔽或位屏蔽驗(yàn)收。滿位比較是指節(jié)點(diǎn)接收到信息的ID需與該信息緩沖器設(shè)定的ID完全一致,信息才能通過(guò)驗(yàn)收標(biāo)識(shí)器;滿位屏蔽不用對(duì)信息的ID進(jìn)行比較,可以理解為無(wú)條件通過(guò)驗(yàn)收標(biāo)識(shí)器;位屏蔽驗(yàn)收方式可以指定需比較的ID位和需屏蔽的ID位,即部分比較驗(yàn)收。實(shí)際應(yīng)用中,這種驗(yàn)收標(biāo)識(shí)方式應(yīng)用得最多,所以在MB90F543芯片的CAN控制器中,設(shè)定了兩種這一方式。AMSR的設(shè)置為開發(fā)人員處理緩沖器信息提供了極大的靈活性。
②  驗(yàn)收標(biāo)識(shí)寄存器(AMR)的設(shè)置。在AMSR設(shè)置為位屏蔽驗(yàn)收方式后,必須設(shè)置AMR,來(lái)設(shè)定ID哪些位要比較,哪些位要屏蔽。AMR共有四個(gè)字節(jié),支持29位ID符。但值得注意的是,對(duì)29位ID符,使用的是AM28~AM0;而對(duì)11位ID符,使用的是AM28~AM18。因此使用者在設(shè)置AMR時(shí)必須謹(jǐn)慎,否則會(huì)造成接收錯(cuò)誤。筆者曾在這里吃過(guò)苦頭。
③  Fujitsu公司CAN控制器的一個(gè)特點(diǎn)是支持使用多級(jí)信息緩沖器。在接收頻繁發(fā)生,或者收到幾個(gè)不同ID信息幀的情況下,可能CPU沒(méi)有足夠的時(shí)間來(lái)處理收到的信息,因此可將多個(gè)信息緩沖器構(gòu)成一個(gè)多級(jí)信息緩沖器,保證信息能夠得到及時(shí)、有效的處理。通過(guò)這種方式,可以1幀發(fā)送大于8個(gè)字節(jié)的信息。這種安排的另一好處是,CPU可以不需立即去讀某個(gè)信息緩沖器的信息,而不必?fù)?dān)心緩沖器信息被重寫和丟失。

4  結(jié)論

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

參考文獻(xiàn)

   1. 鄔寬明 CAN 總線原理與應(yīng)用系統(tǒng)設(shè)計(jì) 1996
   2. FUJITSU LIMITED F2MC-16LX 16-BIT MICROCONTROLLER MB90540/545 Series HARDWARE MANUAL 2001
   3. FUJITSU LIMITED F2MC-16LX 16-BIT MICROCONTROLLER MB90500 Series PROGRAMMING MANUAL 1998
   4. Open DeviceNet Vendors Association. DeviceNet Specification 1997

作 者:西南交通大學(xué) 莫傳孟 林彥凱 馮曉云  
來(lái) 源:單片機(jī)嵌入式系統(tǒng)應(yīng)用 2003(11)
本文地址:http://m.qingdxww.cn/thread-9733-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美小视频在线观看 | 欧美国产在线观看 | 亚洲高清一区二区三区四区 | 这里只有精品免费视频 | 青青青爽在线视频观看大全 | 欧美午夜大片 | 就色干综合 | 成人a一级毛片免费看 | 91欧美精品 | 一级成人a免费视频 | 国产欧美日韩综合在线一 | 欧美日韩亚洲第一页 | 韩国欧洲一级毛片免费 | 久久免费视频1 | 亚洲高清一区二区三区久久 | 日韩欧美一区二区不卡 | 射她淫| 狠狠色丁香六月色 | 日韩欧美在线不卡 | 热re91久久精品国产91热 | 国产精品探花一区在线观看 | 色席丝 | 四虎成人国产精品视频 | 高清在线一区二区三区亚洲综合 | 国产精品一国产精品免费 | 亚洲一区二区三区精品视频 | 男人的亚洲天堂 | 男女特黄一级全版视频 | 亚洲综合激情另类专区老铁性 | 九色在线视频 | 久久亚洲精品成人综合 | 欧美在线成人免费国产 | 在线观看人成网站深夜免费 | 9999毛片免费看 | 日本www色| 国产精品一区二区三 | 国内久久精品 | 四虎成人国产精品视频 | 日韩一级特黄毛片在线看 | 在线观看樱花动漫 | 99久久精品费精品国产 |