當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]針對(duì)上述中繼器在實(shí)時(shí)性和可靠性上的缺點(diǎn),我們采用獨(dú)立雙CAN控制器作為兩路CAN接口的控制器來設(shè)計(jì)CAN中繼器。

    1引言

  CAN(Controller Area Network,控制器局域網(wǎng))總線是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),是現(xiàn)場(chǎng)總線的一種。CAN總線具有通信速率高、開放性好、糾錯(cuò)能力強(qiáng)和系統(tǒng)成本低等優(yōu)點(diǎn),現(xiàn)已在機(jī)械工業(yè)、機(jī)器人、醫(yī)療器械等各種領(lǐng)域中得到了廣泛的應(yīng)用。

  然而由于受到CAN收發(fā)器的限制,在一個(gè)CAN總線網(wǎng)絡(luò)中最多只能有110個(gè)CAN節(jié)點(diǎn),最大只能達(dá)到10 km的通信距離,所以當(dāng)所需CAN總線網(wǎng)絡(luò)規(guī)模超出以上限制時(shí)就必須進(jìn)行CAN總線網(wǎng)絡(luò)的擴(kuò)展。目前一般的擴(kuò)展方式是加入CAN總線中繼器。CAN中繼器的主要任務(wù)是在兩個(gè)CAN網(wǎng)段之間實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā),他具有過濾通信量,擴(kuò)大通信距離,增加節(jié)點(diǎn)的最大數(shù)目,允許各個(gè)網(wǎng)段使用不同的通信速率,提高可靠性,改善網(wǎng)絡(luò)性能等優(yōu)點(diǎn),是CAN組網(wǎng)的關(guān)鍵設(shè)備之一。在稍大型的CAN總線網(wǎng)絡(luò)中經(jīng)常會(huì)用到中繼器。

  通常CAN中繼器都是基于兩片獨(dú)立的CAN控制器實(shí)現(xiàn)的。這樣的CAN中繼器雖然可以擴(kuò)大通信距離、增加節(jié)點(diǎn)的最大數(shù)目,但是由于他的數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)要通過CPU的內(nèi)部緩存中轉(zhuǎn),使得CPU與CAN控制器之間的數(shù)據(jù)交互過多,從而造成通信系統(tǒng)的時(shí)延增加,實(shí)時(shí)性能變差,CPU的負(fù)擔(dān)變重。同時(shí)當(dāng)網(wǎng)絡(luò)負(fù)擔(dān)較重時(shí),還會(huì)因?yàn)镃PU的內(nèi)部緩存容量有限,造成幀丟失現(xiàn)象,使系統(tǒng)可靠性變差。然而,實(shí)時(shí)性和可靠性對(duì)通信系統(tǒng)而言是非常重要的。

  針對(duì)上述中繼器在實(shí)時(shí)性和可靠性上的缺點(diǎn),我們采用獨(dú)立雙CAN控制器作為兩路CAN接口的控制器來設(shè)計(jì)CAN中繼器。利用獨(dú)立雙CAN控制器的內(nèi)置FIFO和網(wǎng)關(guān)的特性,使兩個(gè)CAN節(jié)點(diǎn)共享雙CAN模塊的資源,允許在兩個(gè)單獨(dú)的CAN節(jié)點(diǎn)之間直接通過FIFO進(jìn)行數(shù)據(jù)交換,而不使用CPU內(nèi)部緩存中轉(zhuǎn),這樣減少了CPU與控制器之間的數(shù)據(jù)交互,優(yōu)化了CAN總線的傳輸,大幅度減少了CPU的負(fù)荷,改善了整個(gè)系統(tǒng)的實(shí)時(shí)性和可靠性。

  2 獨(dú)立雙CAN控制器簡(jiǎn)介

  獨(dú)立雙CAN控制器包括兩個(gè)全CAN功能節(jié)點(diǎn)。但他并不是這兩個(gè)CAN節(jié)點(diǎn)簡(jiǎn)單的組合,而是這兩者既可以獨(dú)立使用,又可以通過雙CAN控制器的網(wǎng)關(guān)功能,設(shè)計(jì)出可以大幅度減輕CPU負(fù)擔(dān)的中繼器的設(shè)備。除此之外,雙CAN控制器還具有節(jié)電功能、更多的中斷功能和增強(qiáng)的濾波功能等,他與微控制器的信息交換通道也有串行和并行兩種選擇。

  圖1給出了獨(dú)立雙CAN控制器的結(jié)構(gòu)框圖。他由CAN節(jié)點(diǎn)A/B、報(bào)文對(duì)象緩沖器、雙CAN控制模塊、端口控制、總線接口、中斷控制等模塊構(gòu)成。

  端口控制模塊實(shí)現(xiàn)CAN節(jié)點(diǎn)A/B收發(fā)數(shù)據(jù);總線接口模塊用于接收來自CPU的片選、時(shí)鐘、地址、讀寫信號(hào)等信息,實(shí)現(xiàn)與CPU的信息交互;中斷控制模塊負(fù)責(zé)整理中斷源信息,向CPU發(fā)出中斷信號(hào);雙CAN控制模塊是一個(gè)全局控制接口,他包括初始化邏輯、全局控制和狀態(tài)邏輯以及中斷請(qǐng)求接收器;報(bào)文緩沖單元包含報(bào)文緩沖區(qū)、FIFO緩沖區(qū)管理、網(wǎng)關(guān)控制邏輯以及一個(gè)基于中斷請(qǐng)求發(fā)生單元的報(bào)文。CAN節(jié)點(diǎn)A/B分別又包括位流處理器、位定時(shí)控制單元、錯(cuò)誤處理邏輯、中斷請(qǐng)求產(chǎn)生單元和節(jié)點(diǎn)控制邏輯。其中CAN節(jié)點(diǎn)A/B、報(bào)文對(duì)象緩沖器、雙CAN控制模塊等模塊構(gòu)成了獨(dú)立雙CAN控制器的核心。圖2給出了這幾個(gè)核心模塊的詳細(xì)結(jié)構(gòu)。

  3 基于獨(dú)立雙CAN控制器的中繼器設(shè)計(jì)

  獨(dú)立的雙CAN控制器支持在兩個(gè)單獨(dú)CAN總線之間的信息自動(dòng)傳輸,他的網(wǎng)關(guān)功能是通過兩個(gè)單獨(dú)的CAN節(jié)點(diǎn)共享的CAN報(bào)文對(duì)象存儲(chǔ)器來實(shí)現(xiàn)的,使報(bào)文轉(zhuǎn)發(fā)不用CPU的干預(yù)。通過對(duì)報(bào)文配置寄存器中的報(bào)文對(duì)象CAN節(jié)點(diǎn)選擇位的設(shè)置,使每一個(gè)存儲(chǔ)在報(bào)文存儲(chǔ)器中的報(bào)文對(duì)象關(guān)系到節(jié)點(diǎn)A或節(jié)點(diǎn)B。兩個(gè)節(jié)點(diǎn)之間的信息交換可以通過聯(lián)結(jié)兩個(gè)報(bào)文對(duì)象(正常網(wǎng)關(guān)模式)或通過共享一個(gè)共同的報(bào)文對(duì)象(共享網(wǎng)關(guān)模式)來實(shí)現(xiàn)。本文中以共享網(wǎng)關(guān)模式來設(shè)計(jì)一個(gè)CAN中繼器。

  所設(shè)計(jì)的中繼器可以實(shí)現(xiàn)CAN節(jié)點(diǎn)A將與他相連的數(shù)據(jù)源所連續(xù)發(fā)送的數(shù)據(jù)幀通過CAN節(jié)點(diǎn)B自動(dòng)發(fā)送到目標(biāo)方的CAN總線上,反之亦然。

  3.1 CAN中繼器的硬件設(shè)計(jì)

  CAN中繼器主要由微控制器和兩路CAN控制器接口組成?,F(xiàn)在這個(gè)中繼器的微控制器(CPU)由89C52來充當(dāng),他負(fù)責(zé)整個(gè)中繼器的監(jiān)控任務(wù)。兩路CAN控制器接口使用獨(dú)立雙CAN控制器82C900、光電耦合電路和CAN總線驅(qū)動(dòng)器82C250組成。兩路CAN接口的CAN總線驅(qū)動(dòng)器都采用帶隔離的DC/DC模塊單獨(dú)供電。這樣不僅實(shí)現(xiàn)了兩路CAN接口之間的電器隔離,也實(shí)現(xiàn)了CAN中繼器與總線之間的隔離。采取隔離措施,可以使故障局限在某一網(wǎng)段內(nèi),而不至于影響其他網(wǎng)段,既便于維護(hù)又保證了系統(tǒng)的安全。圖3給出了CAN中繼器的硬件結(jié)構(gòu)。

  除了上述的器件,該CAN中繼器的硬件還包括:LED指示燈、E2PROM、Watch Dog等部分。在這里共使用了7個(gè)LED燈:1個(gè)用于上電指示,4個(gè)用于兩路CAN接口的接收和發(fā)送指示燈,另外2個(gè)用于兩路CAN接口的通信故障指示。通過這些LED指示燈就可以基本了解整個(gè)系統(tǒng)的當(dāng)前運(yùn)行狀態(tài)。在復(fù)位電路設(shè)計(jì)中,采用了3種復(fù)位方式,即上電復(fù)位、手動(dòng)復(fù)位和軟件復(fù)位。上電后,89C52、82C900 等即可復(fù)位;另外還可以通過手動(dòng)開關(guān)強(qiáng)制復(fù)位;軟件復(fù)位主要是由看門狗Watch Dog(MAX1232)進(jìn)行控制,當(dāng)軟件運(yùn)行出現(xiàn)死循環(huán)時(shí),看門狗發(fā)送復(fù)位信號(hào),對(duì)系統(tǒng)復(fù)位以保證軟件的順利運(yùn)行,這樣設(shè)計(jì)便于調(diào)試和處理整個(gè)系統(tǒng)運(yùn)行時(shí)出現(xiàn)的問題。E2PROM采用具有1 kB容量的24LC08,他用于保存CAN中繼器的配置參數(shù)等信息,以便于系統(tǒng)的靈活配置。

  3.2 CAN中繼器的軟件設(shè)計(jì)

  圖4表示了在該中繼器中獨(dú)立雙CAN控制器的工作狀態(tài)。接收數(shù)據(jù)幀的節(jié)點(diǎn)為源方,而經(jīng)過中繼器發(fā)送數(shù)據(jù)幀的節(jié)點(diǎn)為目標(biāo)方。一個(gè)共享報(bào)文對(duì)象設(shè)置為源方的接收對(duì)象,當(dāng)數(shù)據(jù)幀發(fā)送位GDFS置為1(即設(shè)為對(duì)應(yīng)的數(shù)據(jù)幀自動(dòng)發(fā)送)時(shí)他接收到一個(gè)數(shù)據(jù)幀,通過對(duì)報(bào)文對(duì)象節(jié)點(diǎn)選擇位NODE(0表示該報(bào)文對(duì)象分配給CAN節(jié)點(diǎn)A,1表示該節(jié)點(diǎn)分配給CAN節(jié)點(diǎn)B)和報(bào)文對(duì)象方向控制位DIR(0為接收對(duì)象,1為發(fā)送對(duì)象)取反,報(bào)文對(duì)象發(fā)送請(qǐng)求位置位,該報(bào)文對(duì)象轉(zhuǎn)為目標(biāo)方的一個(gè)發(fā)送對(duì)象,同時(shí)發(fā)送相關(guān)的數(shù)據(jù)幀,而不需要任何CPU的干預(yù)。在報(bào)文對(duì)象發(fā)送成功后,報(bào)文對(duì)象發(fā)送請(qǐng)求位復(fù)位,共享報(bào)文對(duì)象返回到作為與源方關(guān)聯(lián)的接收對(duì)象的初始功能。

  對(duì)于CPU而言,由于通信對(duì)時(shí)間的要求,進(jìn)行軟件設(shè)計(jì)時(shí)要求做到轉(zhuǎn)發(fā)數(shù)據(jù)的時(shí)間盡量短,因此CPU在接收數(shù)據(jù)時(shí)都是采用中斷方式。

  CAN中繼器的軟件設(shè)計(jì)主要包括以下幾部分:初始化程序、主監(jiān)控程序、中繼器功能中斷子程序等。

  在初始化程序中,89C52初始化是對(duì)芯片的I/O和堆棧等進(jìn)行初始設(shè)定,使其能正常工作;雙CAN控制器初始化主要是指設(shè)置模式、總線時(shí)序、中斷使能、屏蔽碼和ID號(hào)等,這些設(shè)置是通過配置82C900芯片內(nèi)部寄存器來實(shí)現(xiàn)的。

  主監(jiān)控程序負(fù)責(zé)監(jiān)控整個(gè)系統(tǒng),當(dāng)發(fā)現(xiàn)中斷時(shí)調(diào)用相應(yīng)的中斷服務(wù)程序。當(dāng)主監(jiān)控程序接收到某一節(jié)點(diǎn)的接收?qǐng)?bào)文中斷時(shí),調(diào)用中繼器功能中斷子程序。中繼器功能中斷子程序會(huì)實(shí)現(xiàn)圖4中所示的接收、轉(zhuǎn)發(fā)報(bào)文的過程,實(shí)現(xiàn)中繼器功能。圖5是CAN總線中繼器的軟件程序流程圖。

  3.3 兩種CAN中繼器性能比較

  基于兩片獨(dú)立的CAN控制器的CAN中繼器在進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā)時(shí),是先將一個(gè)CAN節(jié)點(diǎn)接收到的數(shù)據(jù)幀從其控制器FIFO中讀出并存儲(chǔ)到CPU的內(nèi)部緩存中,再由CPU的內(nèi)部緩存將數(shù)據(jù)幀寫到另一個(gè)CAN節(jié)點(diǎn)控制器的FIFO中并發(fā)送。

  基于獨(dú)立雙CAN控制器的CAN中繼器利用獨(dú)立雙CAN控制器中特有的網(wǎng)關(guān)功能,以及他的兩個(gè)CAN節(jié)點(diǎn)共享FIFO的特性,所以在工作時(shí)只要通過配置雙CAN控制器相應(yīng)寄存器的值(如報(bào)文對(duì)象的報(bào)文配置寄存器、報(bào)文對(duì)象的網(wǎng)關(guān)控制寄存器)就可以實(shí)現(xiàn)將一個(gè)節(jié)點(diǎn)接收到的數(shù)據(jù)幀存于共享FIFO中,再由另一個(gè)節(jié)點(diǎn)直接從共享FIFO中讀出并發(fā)送。

  由于報(bào)文不需要在CPU的內(nèi)部存儲(chǔ)空間中轉(zhuǎn),使用獨(dú)立雙CAN控制器的CAN中繼器CPU與控制器之間的數(shù)據(jù)交互要遠(yuǎn)少于基于兩片獨(dú)立的CAN控制器的CAN中繼器,最大程度上減少了數(shù)據(jù)存儲(chǔ)轉(zhuǎn)發(fā)的時(shí)間,縮小了通信時(shí)延,提高了系統(tǒng)的實(shí)時(shí)性。

  同時(shí)基于獨(dú)立雙CAN控制器的CAN中繼器由于存儲(chǔ)轉(zhuǎn)發(fā)時(shí)不使用CPU內(nèi)部存儲(chǔ)空間,也就避免了在通信任務(wù)較重時(shí),因?yàn)镃PU內(nèi)部存儲(chǔ)空間有限而造成的幀丟失現(xiàn)象,極大地提高了系統(tǒng)的可靠性。

  通過以上分析,我們可以發(fā)現(xiàn)基于獨(dú)立雙CAN控制器的CAN中繼器在實(shí)時(shí)性和可靠性上都優(yōu)于基于兩片獨(dú)立的CAN控制器的CAN中繼器。

  4 結(jié) 語

  基于獨(dú)立雙CAN控制器的CAN中繼器由于利用雙CAN控制器本身的內(nèi)置FIFO和網(wǎng)關(guān)功能的特性,避免了受到CPU內(nèi)部存儲(chǔ)空間的限制,最大限度地減少了CPU對(duì)處理報(bào)文的負(fù)擔(dān)、縮小通信時(shí)延,改善了通信系統(tǒng)的實(shí)時(shí)性和可靠性。實(shí)踐證明,該中繼器工作時(shí)性能穩(wěn)定,實(shí)時(shí)性和可靠性都有明顯提高,但是他的軟件設(shè)計(jì)比較復(fù)雜,希望以后能找到更好的軟件算法。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉