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

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

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

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

基于LPC2294控制器的CAN總線網(wǎng)狀冗余節(jié)點(diǎn)方案

電子設(shè)計(jì) ? 來(lái)源:微計(jì)算機(jī)信息 ? 作者:范富榮;陳黎平 ? 2021-06-08 14:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述

CAN(Controller Area Network)即控制器局域網(wǎng),是一種串行數(shù)據(jù)總線,CAN總線是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本合理的遠(yuǎn)程網(wǎng)絡(luò)通訊控制方式,CAN總線已被廣泛應(yīng)用于各個(gè)自動(dòng)化控制系統(tǒng)中。在汽車電子、自動(dòng)控制、電力系統(tǒng)等領(lǐng)域中,CAN總線尤其具有不可比擬的優(yōu)越性。但是,工業(yè)控制現(xiàn)場(chǎng)工況條件十分惡劣,電纜受拉、壓、砸、擠等造成故障的情況很多,這對(duì)于以總線為核心的CAN總線系統(tǒng)是一種極大的威脅。如何保證現(xiàn)場(chǎng)總線控制系統(tǒng)在惡劣環(huán)境下安全、可靠地工作是CAN應(yīng)用中的一個(gè)重要課題。

解決可靠性問(wèn)題的一個(gè)有效的辦法就是對(duì)總線進(jìn)行不同程度的冗余,同時(shí)使用兩(多)條總線電纜。本文簡(jiǎn)單列舉了目前CAN冗余的幾種方式,同時(shí)提出了網(wǎng)狀冗余的全新冗余結(jié)構(gòu)。采用內(nèi)置多路CAN總線控制器的LPC2294作為主控制器,設(shè)計(jì)給出了應(yīng)用于電源模塊控制系統(tǒng)中的CAN總線網(wǎng)狀冗余節(jié)點(diǎn)方案。

二、目前幾種總線冗余方法

典型的CAN電路可分為4個(gè)環(huán)節(jié),即單片機(jī)、總線控制器、CAN總線驅(qū)動(dòng)器、總線。以下是目前從以上4個(gè)環(huán)節(jié)考慮的不同程度的冗余方法:

(1)總線驅(qū)動(dòng)器的冗余

使用兩條總線電纜,每個(gè)節(jié)點(diǎn)內(nèi)部使用兩個(gè)總線驅(qū)動(dòng)器,但只有一個(gè)總線控制器,在總線控制器與兩個(gè)總線驅(qū)動(dòng)器之間設(shè)置判斷電路。如果一個(gè)總線發(fā)生故障,則關(guān)閉它與總線控制器之間的信號(hào)通道,而正??偩€上的報(bào)文仍能順利送往總線控制器。

(2)CAN總線控制器的冗余

該冗余的思路是同時(shí)使用兩條CAN總線,兩個(gè)CAN總線驅(qū)動(dòng)器和兩個(gè)CAN總線控制器,單片機(jī)通過(guò)不同的端口和中斷同時(shí)控制兩個(gè)CAN控制器。

(3)全系統(tǒng)的冗余

該冗余的思路是對(duì)整個(gè)CAN系統(tǒng)的四個(gè)環(huán)節(jié)進(jìn)行冗余。即同時(shí)使用兩套單片機(jī)、總線控制器、CAN總線驅(qū)動(dòng)器、總線。

三、新的冗余方式:網(wǎng)狀冗余

在可靠性要求非常嚴(yán)格的場(chǎng)合,如電廠集散控制系統(tǒng),基本采用網(wǎng)狀冗余結(jié)構(gòu)。由于CAN節(jié)點(diǎn)對(duì)系統(tǒng)的構(gòu)成不敏感,全系統(tǒng)的冗余在發(fā)現(xiàn)總線故障以及總線切換及時(shí)性方面反而不如部分冗余方法,有鑒于此,本文提出了新的CAN冗余方式:網(wǎng)狀冗余。

CAN網(wǎng)狀冗余是對(duì)整個(gè)CAN網(wǎng)絡(luò)、通訊節(jié)點(diǎn)進(jìn)行冗余,如圖1所示。同時(shí)使用兩條CAN總線,兩個(gè)CAN總線驅(qū)動(dòng)器和兩個(gè)CAN總線控制器,單片機(jī)通過(guò)不同的端口和中斷同時(shí)控制兩個(gè)CAN控制器,組成一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),再對(duì)節(jié)點(diǎn)進(jìn)行冗余設(shè)計(jì)。

由于總線故障可以及時(shí)通過(guò)正常總線通知用戶進(jìn)行維護(hù),網(wǎng)狀冗余在發(fā)現(xiàn)總線故障及時(shí)性方面要比全系統(tǒng)冗余后備方式好。對(duì)于工業(yè)控制,尤其是本質(zhì)安全型系統(tǒng)來(lái)說(shuō),這一優(yōu)點(diǎn)是十分重要的。網(wǎng)狀冗余兼有部分冗余和全系統(tǒng)冗余的優(yōu)點(diǎn),大大提高了系統(tǒng)的可靠性。當(dāng)然,網(wǎng)狀冗余系統(tǒng)軟、硬件的復(fù)雜性和成本都提高了,但是,相對(duì)于在工作中系統(tǒng)可靠性的提高,這些犧牲是值得的。

四、電源模塊控制系統(tǒng)中網(wǎng)狀冗余節(jié)點(diǎn)設(shè)計(jì)

在電源模塊控制系統(tǒng)中,電源模塊控制儀的控制信號(hào)以毫秒量級(jí)速度向各電源柜發(fā)送控制指令,并獲得各機(jī)柜的工作狀態(tài)。各電源柜在獲得指令后,同步執(zhí)行控制動(dòng)作,并返回執(zhí)行狀態(tài)。隨著電源個(gè)數(shù)的增加,各電源間的實(shí)時(shí)性、同步性等關(guān)鍵性能下降。

為提高系統(tǒng)在實(shí)時(shí)性、同步性、精確性、容錯(cuò)性等各方面的性能,必須采用高精度同步通訊控制網(wǎng)絡(luò),使電源模塊控制儀與電源模塊之間的信號(hào)傳輸滿足系統(tǒng)的技術(shù)性能要求。

本方案的CAN總線網(wǎng)狀冗余節(jié)點(diǎn),正是為滿足電源模塊控制系統(tǒng)對(duì)于可靠性、實(shí)時(shí)性的嚴(yán)格要求而設(shè)計(jì)的。

4.1 節(jié)點(diǎn)設(shè)計(jì)思想

節(jié)點(diǎn)基本設(shè)計(jì)思想為:使用兩塊控制處理器組件,作為冗余的一對(duì),冗余單元的硬件和軟件結(jié)構(gòu)完全相同,在任何一塊組件發(fā)生硬件故障時(shí),可提供連續(xù)的運(yùn)行。單元的主備工作狀態(tài)由上電順序決定, 先上電的一方自動(dòng)進(jìn)入主機(jī)工作狀態(tài),后上電者則進(jìn)入備機(jī)狀態(tài)。主機(jī)在其工作過(guò)程中除實(shí)現(xiàn)應(yīng)用功能外,定期向備機(jī)發(fā)送反映其工作正常的狀態(tài)數(shù)據(jù)并接收來(lái)自備機(jī)的狀態(tài)數(shù)據(jù),當(dāng)發(fā)生接收超時(shí)時(shí),主機(jī)認(rèn)為備機(jī)已經(jīng)發(fā)生故障, 并通過(guò)總線向用戶給出通知信號(hào),以便及時(shí)對(duì)備機(jī)進(jìn)行維護(hù)。備機(jī)在工作過(guò)程中不完成應(yīng)用功能, 但定期接收來(lái)自主機(jī)的狀態(tài)數(shù)據(jù),當(dāng)發(fā)生接收超時(shí)或接收到主機(jī)工作狀態(tài)不正常時(shí),自動(dòng)切換成主機(jī)工作狀態(tài),并通過(guò)總線通知用戶對(duì)原主機(jī)單元進(jìn)行維護(hù)。

進(jìn)一步改進(jìn)方案:在需要進(jìn)一步提高系統(tǒng)的實(shí)時(shí)性的情況下,可以下載、上傳分別使用圖中A、B總線進(jìn)行傳輸(如圖2),從而可以將半雙工類型的串行總線近似為全雙工總線,理論上將系統(tǒng)的傳輸速率提高一倍,有效減少系統(tǒng)數(shù)據(jù)的傳輸延遲。極端情況下,即使上層網(wǎng)絡(luò)或現(xiàn)場(chǎng)總線只有一個(gè)端口正常時(shí),系統(tǒng)也不會(huì)崩潰,可以將該端口設(shè)成可收、發(fā)信息狀態(tài),只是降低了系統(tǒng)傳輸?shù)乃俣?,增加了控制信息傳輸延時(shí),但與系統(tǒng)崩潰造成的損失相比將顯得微不足道。

圖2 網(wǎng)狀冗余在電源模塊控制中的應(yīng)用改進(jìn)

4.2 節(jié)點(diǎn)硬件設(shè)計(jì)

設(shè)計(jì)選用PHILIPS公司新推出的一款功能強(qiáng)大的具有ARM7TDMI內(nèi)核的32位微控制器LPC2294,內(nèi)部集成有四路符合CAN規(guī)范CAN2.OB,ISO 11898-1標(biāo)準(zhǔn)的CAN控制器,總線數(shù)據(jù)波特率均可達(dá)1Mbps。

節(jié)點(diǎn)硬件電路組成:

CAN節(jié)點(diǎn)硬件電路如圖3所示,由ARM微控制器LPC2294,CAN總線收發(fā)器TJA1050,高速光耦6N137和電源隔離模塊B0505S等組成。由于四路CAN接口的外部電路完全一致,圖中只給出了CAN3、CAN4接口的外部電路。

CAN控制器和物理總線之間的接口選用收發(fā)器TJA1050,不上電時(shí),總線呈現(xiàn)無(wú)源特性,在性能上大大優(yōu)于以前的CAN總線收發(fā)器。

4.3 節(jié)點(diǎn)軟件設(shè)計(jì)

軟件調(diào)試環(huán)境采用ARM公司的ARM核處理器集成開(kāi)發(fā)工具ADSv1.2。ADSv1.2集成了匯編、C、C++編譯器和調(diào)試器,編譯效率高,提供了功能強(qiáng)大的系統(tǒng)庫(kù),支持軟件調(diào)試JTAG仿真調(diào)試及硬件調(diào)試。

對(duì)于一般的32位ARM應(yīng)用系統(tǒng),在運(yùn)行主程序前必須初始化運(yùn)行環(huán)境,即為ARM芯片編寫啟動(dòng)代碼。啟動(dòng)代碼包括異常向量表、堆棧初始化、存儲(chǔ)系統(tǒng)初始化和目標(biāo)板初始化等,一般用匯編語(yǔ)言編寫。對(duì)于本設(shè)計(jì)關(guān)鍵是編寫CAN驅(qū)動(dòng)程序,主程序通過(guò)調(diào)用驅(qū)動(dòng)程序提供的接口來(lái)實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送。驅(qū)動(dòng)程序包括四部分內(nèi)容:CAN控制器的初始化、接收數(shù)據(jù)、發(fā)送數(shù)據(jù)和總線異常處理。圖4為主程序流程圖。

圖4 主程序流程圖

4.3.1 CAN控制器初始化

初始化CAN控制器的操作包括:硬件使能、軟件復(fù)位、設(shè)置報(bào)警界限、設(shè)置總線波特率、設(shè)置中斷工作方式、設(shè)置驗(yàn)收濾波器工作方式、設(shè)置工作模式并啟動(dòng)CAN等。初始化程序如下:

HwEnCAN(CanNum); //硬件使能,CanNum=0-3,指四路CAN控制器

SoftRstCAN(CanNum); //軟件復(fù)位寄存器CANEWL(CanNum).BitsEWL_BIT=USE_EWL_CAN[CanNum]; //設(shè)置報(bào)警界限CANBTR(CanNum).Word=USE_BTR_CAN[CanNum]; //初始化波特率

VICDefVectAddr=(UINT32)CANIntPrg; //初始化中斷為非向量中斷CANIER(CanNum).Word=USE_INT_CAN[CanNum];

CANAFMR.Bits.AccBP_BIT=1; //設(shè)置驗(yàn)收濾波器CANMOD(CanNum).Bits.TPM_BIT=USE_TPM_CAN[CanNum]; //初始化工作模式

SoftEnCAN(CanNum); //啟動(dòng)CAN端口

4.3.2數(shù)據(jù)發(fā)送

將待發(fā)送的數(shù)據(jù)打包成符合CAN協(xié)議的幀格式后,便可寫入發(fā)送緩沖區(qū),并啟動(dòng)發(fā)送。

在寫發(fā)送緩沖區(qū)前應(yīng)查詢其狀態(tài)。LPC2294中的每個(gè)CAN控制器有三個(gè)發(fā)送緩沖區(qū),它們的狀態(tài)可通過(guò)查詢CANSR得知。只有當(dāng)其中有空閑的發(fā)送緩沖區(qū)時(shí)才可將數(shù)據(jù)寫入。

4.3.3數(shù)據(jù)接收

接收數(shù)據(jù)可采用查詢方式或中斷方式。為了提高效率,常采用中斷方式。

在初始化程序中使能接收中斷,在中斷服務(wù)子程序中,讀取CANICR,判斷是否有接收中斷標(biāo)志,有則讀取接收緩沖區(qū)數(shù)據(jù)。為了防止接收緩沖區(qū)數(shù)據(jù)溢出,可開(kāi)辟一個(gè)循環(huán)接收數(shù)據(jù)隊(duì)列來(lái)暫時(shí)存儲(chǔ)數(shù)據(jù),主程序通過(guò)查詢?cè)撽?duì)列獲得數(shù)據(jù)。

4.3.4 異常情況處理

在總線發(fā)生嚴(yán)重故障的情況下,CAN節(jié)點(diǎn)有可能脫離總線,此時(shí)以下寄存器位被置位:CANSR的BS位、CANIR的BEI位和EI位(如果使能)和CANMOD的RM位。

在應(yīng)用中,若前面?zhèn)鬏數(shù)紺AN控制器的數(shù)據(jù)未被讀出,接收緩沖區(qū)沒(méi)有及時(shí)釋放,就有可能引起后面信息的丟失。這時(shí)必須通過(guò)寫命令寄存器來(lái)清除CANSR的數(shù)據(jù)溢出位。這種異??赏ㄟ^(guò)異常中斷來(lái)處理,只要在中斷子程序中加入處理代碼即可。其它的總線異常處理可根據(jù)使用情況決定是否在軟件中處理。

五、結(jié)束語(yǔ)

本文設(shè)計(jì)的CAN網(wǎng)狀冗余節(jié)點(diǎn)應(yīng)用于電源模塊控制系統(tǒng),正常通訊時(shí),下載/上傳分開(kāi)網(wǎng)絡(luò)傳輸,實(shí)現(xiàn)CAN全雙工通訊,提高系統(tǒng)傳輸速率,減少了電源模塊的動(dòng)作延時(shí);在節(jié)點(diǎn)出現(xiàn)問(wèn)題時(shí),通過(guò)熱備節(jié)點(diǎn)進(jìn)行通訊,實(shí)現(xiàn)了系統(tǒng)的完全冗余,大大提高了系統(tǒng)可靠性,滿足系統(tǒng)對(duì)CAN網(wǎng)絡(luò)節(jié)點(diǎn)的可靠性、實(shí)時(shí)性和同步性要求

本文作者創(chuàng)新點(diǎn):借鑒過(guò)程控制中網(wǎng)狀冗余大大增強(qiáng)通訊可靠性的經(jīng)驗(yàn),為增加CAN總線可靠性,提出了CAN總線控制系統(tǒng)的全新網(wǎng)狀冗余方式,及在電源模塊控制系統(tǒng)中的節(jié)點(diǎn)冗余設(shè)計(jì)思想。

責(zé)任編輯:gta

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

    關(guān)注

    6067

    文章

    44976

    瀏覽量

    650179
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17095

    瀏覽量

    184130
  • CAN總線
    +關(guān)注

    關(guān)注

    145

    文章

    1985

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    未知多節(jié)點(diǎn)CAN總線網(wǎng)絡(luò),如何準(zhǔn)確識(shí)別?

    CAN網(wǎng)絡(luò)中,所有節(jié)點(diǎn)的數(shù)據(jù)收發(fā)共享一條總線。當(dāng)面對(duì)未知的多節(jié)點(diǎn)CAN總線網(wǎng)絡(luò)時(shí),如何準(zhǔn)確分析
    的頭像 發(fā)表于 02-27 09:29 ?1.6w次閱讀
    未知多<b class='flag-5'>節(jié)點(diǎn)</b><b class='flag-5'>CAN</b><b class='flag-5'>總線網(wǎng)</b>絡(luò),如何準(zhǔn)確識(shí)別?

    控制器LPC2294相關(guān)資料分享

    控制器LPC2294資料下載內(nèi)容主要介紹了:LPC2294功能和特性LPC2294引腳功能LPC2294內(nèi)部方框圖
    發(fā)表于 03-31 07:45

    怎樣去實(shí)現(xiàn)eCos在LPC2294上的移植和應(yīng)用?

    eCos體系結(jié)構(gòu)介紹LPC2294硬件平臺(tái)怎樣去實(shí)現(xiàn)eCos在LPC2294上的移植和應(yīng)用?
    發(fā)表于 04-27 07:16

    怎么實(shí)現(xiàn)基于ARM控制器LPC2294CAN/PCI智能通信卡設(shè)計(jì)?

    怎么實(shí)現(xiàn)基于ARM控制器LPC2294CAN/PCI智能通信卡設(shè)計(jì)?
    發(fā)表于 05-21 06:56

    分享一款不錯(cuò)的LPC2294 CAN總線節(jié)點(diǎn)設(shè)計(jì)方案

    本文提出一種基于LPC2294控制器,使用μCLinux作為操作系統(tǒng)的CAN節(jié)點(diǎn)軟硬件設(shè)計(jì)方案。主節(jié)
    發(fā)表于 05-25 06:59

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

    本文簡(jiǎn)單介紹了目前CAN網(wǎng)冗余的幾種方式,提出了網(wǎng)狀冗余的全新冗余方式;給出了應(yīng)用在電源模塊控制
    發(fā)表于 05-26 16:02 ?1次下載

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

    本文簡(jiǎn)單介紹了目前CAN網(wǎng)冗余的幾種方式,提出了網(wǎng)狀冗余的全新冗余方式;給出了應(yīng)用在電源模塊控制
    發(fā)表于 05-26 16:02 ?28次下載

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

    本文簡(jiǎn)單介紹了目前CAN網(wǎng)冗余的幾種方式,提出了網(wǎng)狀冗余的全新冗余方式;給出了應(yīng)用在電源模塊控制
    發(fā)表于 05-26 16:02 ?10次下載

    基于ADG663的CAN總線網(wǎng)絡(luò)擴(kuò)展方案設(shè)計(jì)

    由于受CAN收發(fā)的限制,在一個(gè)CAN總線網(wǎng)絡(luò)中最多只能有110個(gè)CAN節(jié)點(diǎn),或達(dá)到10km的通
    發(fā)表于 11-26 16:16 ?12次下載

    基于ARM的CAN總線智鹺節(jié)點(diǎn)的i殳計(jì)

    CAN總線是一種應(yīng)用廣泛的實(shí)時(shí)性現(xiàn)場(chǎng)總線,提出了基于具有ARM7TDMI內(nèi)核的32位微控制器CAN總線
    發(fā)表于 12-01 14:27 ?18次下載

    基于LPC2294CAN總線節(jié)點(diǎn)設(shè)計(jì)

    為引入CAN總線技術(shù)以實(shí)現(xiàn)運(yùn)動(dòng)控制系統(tǒng)的網(wǎng)絡(luò)化,提出了基于LPC2294CAN總線
    發(fā)表于 06-21 15:17 ?61次下載
    基于<b class='flag-5'>LPC2294</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>主<b class='flag-5'>節(jié)點(diǎn)</b>設(shè)計(jì)

    LPC2294設(shè)計(jì)的分布式數(shù)據(jù)采集

    本文設(shè)計(jì)了一種基于ARM的獨(dú)立CAN總線,基于LPC2294的分布式 數(shù)據(jù)采集 系統(tǒng)。
    發(fā)表于 06-29 14:59 ?51次下載
    用<b class='flag-5'>LPC2294</b>設(shè)計(jì)的分布式數(shù)據(jù)采集

    基于LPC2294CAN總線智能節(jié)點(diǎn)設(shè)計(jì)

    CAN總線是一種應(yīng)用廣泛的實(shí)時(shí)性現(xiàn)場(chǎng)總線。本文提出了一種基于具有ARM7DMI內(nèi)核的32位ARM微控制器LPC2294
    發(fā)表于 05-29 09:27 ?4231次閱讀
    基于<b class='flag-5'>LPC2294</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>智能<b class='flag-5'>節(jié)點(diǎn)</b>設(shè)計(jì)

    基于CAN總線的運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)

    節(jié)點(diǎn)采用的LPC2294基于ARM7TDMI內(nèi)核的32位處理,帶有256kB高速FLASH、16kB靜態(tài)RAM,內(nèi)部集成4路CAN控制器
    發(fā)表于 09-18 15:50 ?4895次閱讀
    基于<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>的運(yùn)動(dòng)<b class='flag-5'>控制</b>系統(tǒng)設(shè)計(jì)

    基于LPC2294CAN總線節(jié)點(diǎn)的電路原理圖

    電子發(fā)燒友網(wǎng)站提供《基于LPC2294CAN總線節(jié)點(diǎn)的電路原理圖.pdf》資料免費(fèi)下載
    發(fā)表于 10-11 09:47 ?1次下載
    基于<b class='flag-5'>LPC2294</b>的<b class='flag-5'>CAN</b><b class='flag-5'>總線</b>主<b class='flag-5'>節(jié)點(diǎn)</b>的電路原理圖