當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]本文以LPC2119微控制器為核心設(shè)計(jì)了客車網(wǎng)絡(luò)控制中CAN/CAN網(wǎng)橋,實(shí)現(xiàn)了不同CAN網(wǎng)段連接、報(bào)文過濾和轉(zhuǎn)發(fā)功能。文中分析和闡述了該網(wǎng)橋的硬件設(shè)計(jì)方案和軟件設(shè)計(jì)過程,并通過實(shí)驗(yàn)方法測試了網(wǎng)橋的可靠性,從而解決了兩個(gè)CAN子網(wǎng)的互連問題。

1 引言
控制器局部網(wǎng)CAN[1][2](Controller Area Network)是德國Robert Bosch公司在20世紀(jì)80年代初為汽車業(yè)開發(fā)的一種車載專用串行數(shù)據(jù)通信總線,經(jīng)過多年的發(fā)展,現(xiàn)在越來越多的被眾多汽車廠商所認(rèn)可,并在包括BMW、Benz、VOLVO等汽車上使用。 CAN由于其獨(dú)特的特性,不僅在汽車領(lǐng)域,而且在工業(yè)控制領(lǐng)域也得到了廣泛的運(yùn)用,如工業(yè)現(xiàn)場控制、小區(qū)安防、環(huán)境監(jiān)控等。由于在具體工程運(yùn)用中,往往需要連接兩路CAN子網(wǎng),因此CAN/CAN網(wǎng)橋是必不可少的,是組網(wǎng)的關(guān)鍵設(shè)備之一。本文在將客車網(wǎng)絡(luò)控制系統(tǒng)劃分為底盤和車身的兩個(gè)網(wǎng)絡(luò)控制子系統(tǒng)的基礎(chǔ)上,利用Philips公司的LPC2119微控制器,從硬件和軟件上設(shè)計(jì)了一個(gè)CAN/CAN網(wǎng)橋。
2 客車網(wǎng)絡(luò)控制中的CAN/CAN網(wǎng)橋
 由于目前汽車電子應(yīng)用的日益廣泛,CAN在轎車上應(yīng)用日益廣泛,但是在國內(nèi)的應(yīng)用還不是很多,只有在某些高檔豪華的車型上才會采用,CAN在國內(nèi)客車上的應(yīng)用也僅限于由國外公司幫助實(shí)施單總線局部聯(lián)網(wǎng)。汽車電子技術(shù)的網(wǎng)絡(luò)化是我國汽車電子研究與應(yīng)用的必然趨勢,CAN作為標(biāo)準(zhǔn)車載網(wǎng)絡(luò)技術(shù),其在汽車網(wǎng)絡(luò)化應(yīng)用的進(jìn)程中將起著橋梁和紐帶的作用。由于客車中底盤部分涉及到整車行使的安全性,實(shí)時(shí)性要求和通信的信息量都明顯高于車身部分,因此本文在將客車網(wǎng)絡(luò)控制系統(tǒng)劃分為兩個(gè)子系統(tǒng)(底盤CAN和車身CAN)的基礎(chǔ)上,設(shè)計(jì)了連接兩路CAN的網(wǎng)橋。整個(gè)系統(tǒng)框架如圖1所示。

該網(wǎng)橋具有實(shí)現(xiàn)不同速率的CAN網(wǎng)段連接、不同網(wǎng)段的CAN報(bào)文過濾和轉(zhuǎn)發(fā)的功能。
使用CAN/CAN網(wǎng)橋的優(yōu)點(diǎn)[1]主要表現(xiàn)在以下幾方面:
(1) 過濾通信量。網(wǎng)橋接收一個(gè)子網(wǎng)的報(bào)文,只有當(dāng)報(bào)文是發(fā)送給網(wǎng)橋所連的另一個(gè)子網(wǎng)時(shí)才轉(zhuǎn)發(fā),否則不轉(zhuǎn)發(fā);
(2) 擴(kuò)大了通信距離;
(3) 提高了通信的最大節(jié)點(diǎn)數(shù);
(4) 各網(wǎng)段可使用不同的通信速率;
(5) 提高了系統(tǒng)可靠性。當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時(shí),一般只影響個(gè)別網(wǎng)段;
(6) 整個(gè)網(wǎng)絡(luò)性能得到改善。
當(dāng)然,使用網(wǎng)橋也有一定的缺點(diǎn),如:
(1) 由于網(wǎng)橋?qū)邮盏膸却鎯筠D(zhuǎn)發(fā),增加了延時(shí);
(2) CAN總線的MAC子層并沒有流量控制功能。當(dāng)網(wǎng)絡(luò)上的負(fù)荷很重時(shí),可能因網(wǎng)橋中緩沖區(qū)的存儲空間不夠而發(fā)生溢出,產(chǎn)生幀丟失的現(xiàn)象;
(3) 網(wǎng)橋若出現(xiàn)故障,對相鄰兩個(gè)子網(wǎng)的工作都將產(chǎn)生影響。

3 CAN/CAN網(wǎng)橋的硬件設(shè)計(jì)
3.1 LPC2119
CAN/CAN網(wǎng)橋是以ARM微控制器LPC2119[3][5]為核心的軟硬件系統(tǒng)。LPC2119是Philips公司生產(chǎn)的一款基于支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7 TDMI-S MCU,帶有128KB嵌入的高速Flash存儲器。獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。LPC2119內(nèi)部集成2個(gè)CAN控制器,為設(shè)計(jì)CAN/CAN網(wǎng)橋提供了可能。它的主要特性有:單個(gè)總線上的數(shù)據(jù)傳輸速率高達(dá)1Mb/s;32位寄存器和RAM訪問;兼容CAN2.0B;全局驗(yàn)收濾波器可以識別所有的11位和29位Rx標(biāo)識符;驗(yàn)收濾波器為選擇的標(biāo)準(zhǔn)標(biāo)識符提供Full CAN style自動接收。
LPC2119內(nèi)部集成的CAN控制器與Philips公司的SJA1000 CAN控制器相比較大致相同,只是在驗(yàn)收濾波這一環(huán)略有不同,這為習(xí)慣SJA1000的開發(fā)人員采用LPC2119提供了方便。在傳統(tǒng)的SJA1000中,接收過濾只能滿足一些規(guī)律性較高的ID篩選過濾,或個(gè)數(shù)較少的ID(一般小于10~15個(gè))進(jìn)行任意篩選過濾,難以實(shí)現(xiàn)更復(fù)雜的任意ID進(jìn)行篩選過濾,這無疑增加了系統(tǒng)軟件設(shè)計(jì)及運(yùn)行時(shí)負(fù)擔(dān)。LPC2000系列32位ARM微控制器中為所有CAN控制器提供了全局的接收標(biāo)識符查詢功能。它包含一個(gè)512×32(2k字節(jié))的RAM,通過軟件處理,可在RAM中存放1~5個(gè)標(biāo)識符表格。整個(gè)AF RAM可容納1024個(gè)標(biāo)準(zhǔn)標(biāo)識符或512個(gè)擴(kuò)展標(biāo)識符,或兩種類型混合的標(biāo)識符。由于允許的表格范圍有2k字節(jié),所以能容易地滿足設(shè)計(jì)復(fù)雜的ID接收過濾要求。
全局接收過濾的工作流程:當(dāng)CAN控制器的接收端已接收到一個(gè)完整的標(biāo)識符,它將通知接收過濾器。接收過濾器響應(yīng)這個(gè)信號,并讀出控制器編號、標(biāo)識符尺寸(11bit或29bit),然后,接收過濾器搜索AF RAM中的表格進(jìn)行匹配,以決定接收或放棄這一幀信息。

3.2 基于LPC2119的CAN/CAN網(wǎng)橋的結(jié)構(gòu)設(shè)計(jì)
 CAN/CAN網(wǎng)橋的硬件框圖如圖2所示。LPC2119分別通過光電耦合電路和高速CAN總線收發(fā)器TJA1050與兩路總線相連。兩路CAN的連接方式基本相同。CAN總線驅(qū)動器都采用帶隔離的DC/DC模塊單獨(dú)供電。這樣,不僅實(shí)現(xiàn)了兩路CAN接口之間的電氣隔離,也實(shí)現(xiàn)了網(wǎng)橋與CAN總線的隔離。雖然這在一定程度上增加了網(wǎng)橋硬件的復(fù)雜性和成本,但卻是值得的。采取隔離措施可使故障局限在某一網(wǎng)段內(nèi),而不至于影響其它網(wǎng)段,既便于維護(hù),又保證了系統(tǒng)設(shè)備的安全。采用光電耦合電路將CAN收發(fā)電路與LPC2119從物理上相隔離,避免了電氣上影響LPC2119的工作。
          
 

CAN/CAN網(wǎng)橋除了以上主要部分以外還加了LED指示、看門狗電路和復(fù)位電路。幾個(gè)LED主要指示兩路CAN的工作狀況以及出錯(cuò)報(bào)警。LPC2119內(nèi)置了看門狗電路,當(dāng)由于程序跑飛或者其他原因?qū)е孪到y(tǒng)工作不正常時(shí)將自動復(fù)位。復(fù)位電路采用MAX708SD來產(chǎn)生穩(wěn)定的復(fù)位信號。

3.3 CAN/CAN網(wǎng)橋的軟件設(shè)計(jì)
 CAN/CAN網(wǎng)橋的主要功能是實(shí)現(xiàn)兩路CAN之間的數(shù)據(jù)過濾及轉(zhuǎn)發(fā),由于客車網(wǎng)絡(luò)控制系統(tǒng)中對通訊的實(shí)時(shí)性的要求,在進(jìn)行軟件設(shè)計(jì)時(shí)要做到數(shù)據(jù)存儲和轉(zhuǎn)發(fā)的時(shí)間要求盡可能的短。為了達(dá)到這一要求,數(shù)據(jù)的接收采用向量中斷(IRQ)方式,而且由于底盤CAN控制子系統(tǒng)的數(shù)據(jù)通訊量明顯要高于車身CAN控制子系統(tǒng),因此將連接底盤CAN控制子系統(tǒng)的CAN1接收優(yōu)先級設(shè)置為最高,而連接車身CAN控制子系統(tǒng)的CAN2接收優(yōu)先級次之。同時(shí)盡量精簡中斷服務(wù)程序,使系統(tǒng)的響應(yīng)時(shí)間盡量的短。對應(yīng)兩路CAN設(shè)置了兩個(gè)FIFO的環(huán)形接收緩沖區(qū),由于CAN1的數(shù)據(jù)通訊量要高,因此CAN1的FIFO環(huán)形接收緩沖區(qū)比CAN2的大,這樣更適合實(shí)際情況。
 CAN/CAN網(wǎng)橋的軟件設(shè)計(jì)主要包括:兩路CAN控制器的初始化,F(xiàn)IFO環(huán)形接收緩沖區(qū)的設(shè)置,兩路CAN控制器的全局驗(yàn)收過濾器的設(shè)置,接收中斷服務(wù)程序,CAN發(fā)送程序,主監(jiān)控程序。
 CAN控制器的初始化流程如圖3所示。其中全局驗(yàn)收過濾器的配置是一個(gè)難點(diǎn),也是區(qū)別于SJA1000獨(dú)立CAN控制器的一個(gè)地方。有5個(gè)地址寄存器用來指向驗(yàn)收過濾器RAM中的表格:fullCAN標(biāo)準(zhǔn)地址、標(biāo)準(zhǔn)單個(gè)地址、標(biāo)準(zhǔn)地址范圍、擴(kuò)展單個(gè)地址和擴(kuò)展地址范圍。這些表格在存儲器中必須是連續(xù)的。后4個(gè)表格的起始地址分別是各自相鄰的前一個(gè)表格的終止地址。擴(kuò)展地址范圍表格的終止地址在表格終止寄存器中給出。如果一個(gè)表格的起始地址等于下一個(gè)表格的起始地址或表格終止寄存器的值,則該表格為空。
FIFO環(huán)形接收緩沖區(qū)中設(shè)置一個(gè)發(fā)送指針、一個(gè)接收指針和當(dāng)前數(shù)據(jù)幀數(shù)frameCount,當(dāng)frameCount為0時(shí)表明FIFO環(huán)形接收緩沖區(qū)是空的。


 接收中斷服務(wù)程序?qū)⒔邮盏降臄?shù)據(jù)放入對應(yīng)的FIFO環(huán)形接收緩沖區(qū)中并且修改接收指針和當(dāng)前數(shù)據(jù)幀數(shù)frameCount。
 主監(jiān)控程序負(fù)責(zé)監(jiān)控兩路CAN的FIFO環(huán)形接收緩沖區(qū)中是否有數(shù)據(jù),如果其中一路CAN的FIFO環(huán)形接收緩沖區(qū)中有數(shù)據(jù)則向另一路CAN發(fā)送數(shù)據(jù)。主監(jiān)控程序不斷查詢兩路CAN的FIFO環(huán)形接收緩沖區(qū)中的當(dāng)前數(shù)據(jù)幀數(shù)frameCount標(biāo)志,如果非零立即向另一路發(fā)送數(shù)據(jù),并且在子程序CAN1SendToCAN2()和CAN2SendToCAN1()中修改發(fā)送指針和當(dāng)前數(shù)據(jù)幀數(shù)。主監(jiān)控程序流程如圖4所示。

 


4 總結(jié)
 本文在LPC2119的基礎(chǔ)上設(shè)計(jì)了一個(gè)CAN/CAN網(wǎng)橋,并從硬件和軟件的角度論述了設(shè)計(jì)過程。作者采用廣州周立功單片機(jī)發(fā)展有限公司的CANalyst-II和USBCAN-II分別模擬客車底盤CAN和車身CAN對網(wǎng)橋進(jìn)行了大量數(shù)據(jù)的反復(fù)測試,在向兩路CAN連續(xù)不間斷發(fā)送100000幀數(shù)據(jù)的情況下能夠準(zhǔn)確的轉(zhuǎn)發(fā),說明網(wǎng)橋工作可靠。下一步的研究目標(biāo)將在網(wǎng)橋上移植實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-II來進(jìn)一步提高網(wǎng)橋的實(shí)時(shí)性能。
本文作者創(chuàng)新點(diǎn): 將客車網(wǎng)絡(luò)控制系統(tǒng)劃分為底盤和車身的兩個(gè)網(wǎng)絡(luò)控制子系統(tǒng),并且設(shè)計(jì)了CAN/CAN網(wǎng)橋互連兩個(gè)網(wǎng)絡(luò)控制子系統(tǒng)。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 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)易近期正在縮減他們對日本游戲市場的投資。

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

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

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

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

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

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

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

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

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

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

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