簡(jiǎn)介
控制器局域網(wǎng)絡(luò)(CAN)可在多個(gè)網(wǎng)絡(luò)站點(diǎn)之間提供強(qiáng)大的通信能力,支持多種數(shù)據(jù)速率和距離。CAN具有數(shù)據(jù)鏈路層仲裁、同步和錯(cuò)誤處理等特性,廣泛用于工業(yè)、儀器儀表和汽車(chē)應(yīng)用之中。在ISO 11898標(biāo)準(zhǔn)的框架下,借助分布式多主機(jī)差分信令和內(nèi)置故障處理功能,DeviceNet、CANopen等多種協(xié)議針對(duì)物理層和數(shù)據(jù)鏈路層規(guī)定了相應(yīng)的實(shí)現(xiàn)方式。本文旨在描述如何針對(duì)給定應(yīng)用優(yōu)化設(shè)置,同時(shí)考慮控制器架構(gòu)、時(shí)鐘、收發(fā)器、邏輯接口隔離等硬件限制。文章將集中介紹網(wǎng)絡(luò)配置問(wèn)題——包括數(shù)據(jù)速率和電纜長(zhǎng)度——說(shuō)明何時(shí)有必要對(duì)CAN節(jié)點(diǎn)進(jìn)行重新配置,以及如何從一開(kāi)始就實(shí)現(xiàn)對(duì)節(jié)點(diǎn)的優(yōu)化配置。
邏輯接口隔離
對(duì)于惡劣的工業(yè)和汽車(chē)環(huán)境,可通過(guò)隔離CAN收發(fā)器的邏輯接口進(jìn)一步增強(qiáng)系統(tǒng)的魯棒性,允許接地節(jié)點(diǎn)之間出現(xiàn)較大的電位差,同時(shí)提供抗高電壓瞬變能力。 將CAN收發(fā)器與數(shù)字隔離器集成起來(lái)即可形成隔離式CAN節(jié)點(diǎn)。 ADM3052、ADM3053和ADM3054隔離式CAN收發(fā)器提供多種接口供電選項(xiàng)。 對(duì)于DeviceNet網(wǎng)絡(luò),隔離側(cè)可通過(guò)總線(xiàn)供電;因此,ADM3052集成了一個(gè)線(xiàn)性調(diào)節(jié)器,以便利用24 V總線(xiàn)電源提供5 V電源。ADM3053(如圖1所示)集成了一個(gè)isoPower DC-DC轉(zhuǎn)換器,用于驅(qū)動(dòng)收發(fā)器和數(shù)字隔離器的總線(xiàn)端。已有一個(gè)隔離式DC-DC轉(zhuǎn)換器能夠在隔離柵上提供電源的系統(tǒng)可以采用ADM3054,后者只集成了數(shù)字隔離器和CAN收發(fā)器。
圖1. 隔離式CAN節(jié)點(diǎn)(ADM3053收發(fā)器由isoPower DC-DC供電)
傳播延遲的影響
部署一個(gè)CAN節(jié)點(diǎn)需要一個(gè)隔離式或非隔離式CAN收發(fā)器,以及一個(gè)搭載有相應(yīng)協(xié)議堆棧的CAN控制器或處理器。可以使用獨(dú)立式CAN控制器,甚至可以使用不帶標(biāo)準(zhǔn)協(xié)議堆棧的控制器,但是,CAN應(yīng)用中使用的微處理器可能已經(jīng)包括CAN控制器。在任一情況下,都必須對(duì)CAN控制器進(jìn)行配置,以調(diào)和總線(xiàn)上的數(shù)據(jù)速率和時(shí)序,而硬件振蕩器則用于控制器。
隨著電纜長(zhǎng)度的增加,信號(hào)中的高頻組分衰減,因此,長(zhǎng)距離條件下的數(shù)據(jù)速率都有限。 總線(xiàn)是一種多主機(jī),因此,所有節(jié)點(diǎn)都可以嘗試同時(shí)傳輸,仲裁取決于物理層信令。傳播延遲也會(huì)隨電纜長(zhǎng)度而增加,可能對(duì)節(jié)點(diǎn)間同步和仲裁形成干擾。
CAN總線(xiàn)上的差分信號(hào)可能處于兩種狀態(tài)之一:主動(dòng)(邏輯0,信號(hào)線(xiàn)路CANH和CANL之間存在一個(gè)差分電壓)或被動(dòng)(邏輯1,無(wú)差分電壓,所有CAN收發(fā)器輸出均為高阻抗)。如果兩個(gè)節(jié)點(diǎn)嘗試同時(shí)傳輸,則主動(dòng)位傳輸會(huì)覆蓋同時(shí)進(jìn)行的被動(dòng)位傳輸,因此,在傳輸時(shí),所有節(jié)點(diǎn)都必須監(jiān)控總線(xiàn)狀態(tài),如果在傳輸被動(dòng)位時(shí)發(fā)生覆蓋,則要停止傳輸。如此,傳輸主動(dòng)位的節(jié)點(diǎn)贏得仲裁,如圖2所示。
圖2. 兩個(gè)CAN節(jié)點(diǎn)之間的仲裁邏輯
CAN 2.0b定義的是數(shù)據(jù)鏈路層的實(shí)現(xiàn)方式,對(duì)用于傳輸?shù)腃AN幀結(jié)構(gòu)進(jìn)行了規(guī)定。一個(gè)包含消息ID的仲裁字段啟動(dòng)消息傳輸。較低的消息ID(開(kāi)頭的零較多)將擁有更高的優(yōu)等級(jí),因此,在傳輸消息時(shí),相應(yīng)節(jié)點(diǎn)贏得仲裁的概率更大。
盡管CAN節(jié)點(diǎn)與總線(xiàn)傳輸同步,但是,由于兩個(gè)同時(shí)傳輸?shù)墓?jié)點(diǎn)之間存在傳播延遲,所以不會(huì)完全同步。要讓仲裁切實(shí)發(fā)揮作用,傳播延遲不能過(guò)大,否則,較快的節(jié)點(diǎn)可能在檢測(cè)到較慢節(jié)點(diǎn)傳輸?shù)奈粻顟B(tài)之前就對(duì)總線(xiàn)進(jìn)行采樣了。最差條件下的傳播延遲為兩個(gè)最遠(yuǎn)節(jié)點(diǎn)間延遲的兩倍。在圖3中,如果節(jié)點(diǎn)A和B是總線(xiàn)上相隔最遠(yuǎn)的節(jié)點(diǎn),則至關(guān)重要的參數(shù)是雙向傳播時(shí)間PropBA與TPropBA之和。
圖3. 實(shí)際條件下兩個(gè)CAN節(jié)點(diǎn)間的仲裁(含傳播延遲)
總傳播延遲由通過(guò)電纜、兩個(gè)CAN控制器I/O和兩個(gè)CAN收發(fā)器的雙向傳播時(shí)間構(gòu)成。CAN控制器I/O并不是傳播延遲的主要貢獻(xiàn)者,往往可以忽略不計(jì),但進(jìn)行徹底評(píng)估時(shí)必須予以考慮。循環(huán)時(shí)間由從TxD到CANH/CANL、再回到RxD的傳播延遲構(gòu)成。電纜傳播延遲取決于電纜和距離,典型值為5 ns/m。
在較低數(shù)據(jù)速率下,允許的位時(shí)間較長(zhǎng),因此,傳播延遲(及電纜距離)也可能變長(zhǎng)。在最高標(biāo)準(zhǔn)CAN數(shù)據(jù)速率(即1 Mbps)下,允許的傳播延遲更受限制,盡管ISO 11898-2標(biāo)準(zhǔn)規(guī)定,在總線(xiàn)長(zhǎng)40米時(shí),可支持1 Mbps的數(shù)據(jù)速率。
隔離的影響
隔離條件下,在計(jì)算雙向傳播延遲時(shí),必須考慮額外的因素。相比光耦合器,數(shù)字隔離器可減少傳播延遲,但即使是最快的隔離式CAN收發(fā)器在這方面也與較慢的非隔離式收發(fā)器相當(dāng)。如果允許的總傳播延遲保持不變,隔離系統(tǒng)中,最大電纜長(zhǎng)度較短,但可以重新配置CAN控制器,以提高允許的總傳播延遲。
傳播延遲的補(bǔ)償
為了補(bǔ)償因較長(zhǎng)總線(xiàn)或隔離增加的傳播延遲,必須為CAN控制器設(shè)置與時(shí)序和同步相關(guān)的特定參數(shù)。在配置控制器時(shí),不只是選擇一個(gè)數(shù)據(jù)速率,而是要設(shè)置決定著控制器所用位時(shí)間的變量。面向振蕩器或內(nèi)部時(shí)鐘的波特率預(yù)分頻器(BRP)設(shè)置時(shí)間量子(TQ),位時(shí)間為T(mén)Q的倍數(shù)。振蕩器的硬件選擇,以及BRP和每位時(shí)間TQ數(shù)的軟件配置設(shè)定數(shù)據(jù)速率。
控制器的位時(shí)間分為三個(gè)或四個(gè)時(shí)間段,如圖3所示。每位時(shí)間的TQ總數(shù)包括一個(gè)同步以及傳播延遲(PROP)、相位段1 (PS1)和相位段2 (PS2)的設(shè)定數(shù)量。有時(shí)候,會(huì)把PROP和PS1加起來(lái)。配置調(diào)節(jié)采樣點(diǎn),以支持傳播延遲和再同步。
把采樣點(diǎn)設(shè)在位時(shí)間的稍后部分可以支持更長(zhǎng)的傳播延遲,但就如總數(shù)據(jù)速率一樣,采樣點(diǎn)取決于其他時(shí)序變量,這些變量都有自己的限制。例如,內(nèi)部時(shí)鐘/振蕩器可能固定不變,只能使用整數(shù)BRP和TQ數(shù)。因此,特定電纜長(zhǎng)度要求的理想數(shù)據(jù)速率可能根本無(wú)法實(shí)現(xiàn),因此,必須縮短電纜,或者降低數(shù)據(jù)速率。
再同步會(huì)使PS1加長(zhǎng),PS2縮短,加長(zhǎng)量和縮短量為同步跳寬(SJW)規(guī)定的TQ數(shù),因此,PS2不得短于SJW。 SJW所需TQ數(shù)取決于CAN控制器的時(shí)鐘容差,對(duì)于SJW和PS2,晶振一般支持最小TQ數(shù)。
CAN控制器的配置
為了實(shí)現(xiàn)節(jié)點(diǎn)間時(shí)序可靠、同步可靠的穩(wěn)健網(wǎng)絡(luò),系統(tǒng)必須能承受所選數(shù)據(jù)速率和CAN控制器時(shí)鐘條件下的傳播延遲。如果不能,可以選擇降低數(shù)據(jù)速率、縮短總線(xiàn)或者使用不同的CAN控制器時(shí)鐘速率。配置過(guò)程包括以下三個(gè)步驟。
第一步: 檢查時(shí)鐘和預(yù)分頻器——匹配數(shù)據(jù)速率
先核實(shí)在給定目標(biāo)數(shù)據(jù)速率和CAN控制器時(shí)鐘條件下,有哪些可能的配置。TQ間隔必須基于時(shí)鐘和各種BRP值計(jì)算,可能組合只有那些TQ間隔為位時(shí)間的整數(shù)倍的組合。根據(jù)所處系統(tǒng)設(shè)計(jì)階段,也可能考慮其他CAN控制器時(shí)鐘速率。在表1所示計(jì)算示例中,給定的最大數(shù)據(jù)速率為1 Mbps,使用的是一個(gè)Microchip? MCP2515獨(dú)立CAN控制器和一個(gè)內(nèi)置CAN控制器的ADSP-BF548 Blackfin 處理器。MCP2515 fOSC 取決于所使用的外部硬件振蕩器,而ADSP-BF548 fSCLK 則取決于硬件CLKIN和內(nèi)部PLL設(shè)置(VCO的CLKIN乘數(shù),SCLK的VCO分頻)。只有CAN控制器時(shí)鐘和BRP(整數(shù)個(gè)TQ)的某些組合支持1 Mbps的數(shù)據(jù)速率,如粗體所示。 這會(huì)限制位時(shí)序的設(shè)置,因此一旦選擇某個(gè)總線(xiàn)數(shù)據(jù)速率,只有部分選項(xiàng)可用。
表1. 給定f和BRP時(shí)1 Mbps速率下的TQ數(shù)
第二步: 確定位段配置
下一步是確定每個(gè)位段要求的TQ數(shù)。最困難的情況是在1 Mbps的數(shù)據(jù)速率下支持最大傳播延遲,例如,電纜長(zhǎng)40米,隔離式節(jié)點(diǎn)。理想情況下,應(yīng)對(duì)位時(shí)間段進(jìn)行配置,使采樣點(diǎn)在位中盡量晚。在表1中,對(duì)于每個(gè)整數(shù)的TQ總數(shù),一個(gè)TQ必須提供給SYNC段,PS2(或TSEG2)段必須足夠大,以容納CAN控制器信息處理時(shí)間(只要BRP大于4,MCP2515為2 TQ,ADSP-BF548為小于1 TQ)。另外,對(duì)于MCP2515,PROP和PS1最多可以各有8 TQ;對(duì)于ADSP-BF548,TSEG1 (PROP + PS1)最多可以為16 TQ。
圖4和圖5分別展示了MCP2515和ADSP-BF548的可能總TQ配置,對(duì)于1 Mbps速率條件下的有效時(shí)鐘和BRP組合,可支持最近采樣點(diǎn)。MCP2515的最佳TQ總數(shù)為19,要求38 MHz的硬件振蕩器和1的BRP。對(duì)于ADSP-BF548,TQ總數(shù)為5的情況除外,所有配置至少為85%采樣點(diǎn),但最佳設(shè)置是10 TQ,要求fSCLK = 50 MHz且BRP = 5。
圖4. MCP2515的可能TQ總數(shù)配置(速率為1 Mbps,最大傳播延遲)
圖5. ADSP-BF548的可能TQ總數(shù)配置(速率為1 Mbps,最大傳播延遲)
第三步: 使收發(fā)器/隔離延遲和總線(xiàn)長(zhǎng)度與配置相匹配
在幫助CAN控制器實(shí)現(xiàn)最佳采樣點(diǎn)以后,最后一步是比較允許的傳播延遲與使用的CAN收發(fā)器/隔離器和總線(xiàn)長(zhǎng)度。設(shè)ADSP-BF548最佳配置為10 TQ(fSCLK= 50 MHz,BRP = 5),可能實(shí)現(xiàn)的最大傳播延遲為900 ns。 對(duì)于集成隔離式電源的ADM3053隔離式CAN收發(fā)器,數(shù)據(jù)手冊(cè)中的最大環(huán)路延遲(TxD關(guān)閉,接收器處于非活動(dòng)狀態(tài))為250 ns。必須使其增加一倍(500 ns),以便同時(shí)支持總線(xiàn)最遠(yuǎn)兩端的兩個(gè)節(jié)點(diǎn)處的發(fā)射延遲和接收延遲。
設(shè)電纜傳播延遲為5 ns/m,ADSP-BF548可以支持40米的總線(xiàn)長(zhǎng)度(根據(jù)ISO 11898規(guī)范,此為1 Mbps條件下的最大值),ADSP-BF548的位時(shí)間總共為10 TQ,TSEG2位段僅1 TQ。實(shí)際上,略早的采樣點(diǎn)就夠了,因?yàn)橐粋€(gè)節(jié)點(diǎn)上的極端收發(fā)器傳播延遲甚至很可能導(dǎo)致簡(jiǎn)單的再傳輸(由數(shù)據(jù)鏈路層CAN控制器自動(dòng)處理),但是,由于CAN控制器I/O與CAN收發(fā)器之間存在小延遲,因此建議把采樣點(diǎn)配置到盡量靠后的點(diǎn)。
結(jié)論
隔離有利于提高魯棒性,但同時(shí)也會(huì)增加發(fā)射和接收兩個(gè)方向的傳播延遲。必須使該延遲增加一倍,以支持兩個(gè)節(jié)點(diǎn)參與仲裁。 如果系統(tǒng)允許的傳播延遲是固定的,在增加隔離措施之后,可以減少電纜長(zhǎng)度或數(shù)據(jù)速率。另一種方法是重新配置CAN控制器,使其支持最大傳播延遲,以保證支持所需的數(shù)據(jù)速率和總線(xiàn)長(zhǎng)度,即使是在節(jié)點(diǎn)采取了隔離措施的條件下。
References
控制器局域網(wǎng)絡(luò)(CAN)收發(fā)器
數(shù)據(jù)隔離器
隔離式控制器局域網(wǎng)絡(luò)(CAN)—視頻
Marais, Hein. 何計(jì)算控制器參數(shù)使隔離式CAN(控制器局域網(wǎng)絡(luò))網(wǎng)絡(luò)以1 Mbps的速度運(yùn)行
O‘Brien, Maurice. 設(shè)計(jì)適合工業(yè)、電信和醫(yī)療應(yīng)用的魯棒隔離式I2C/PMBus數(shù)據(jù)接口。《模擬對(duì)話(huà)》,第48卷第3期,2014。
Watterson, Conal. AN-1123應(yīng)用筆記。控制器局域網(wǎng)絡(luò)(CAN)實(shí)施指南。ADI公司,2012年。
作者簡(jiǎn)介
Conal Watterson博士現(xiàn)為ADI公司接口與隔離技術(shù)部門(mén)(ITG)的收發(fā)器應(yīng)用工程師,在愛(ài)爾蘭利默里克工作。他于2003年獲得利默里克大學(xué)計(jì)算機(jī)工程學(xué)士學(xué)位,隨后在利默里克大學(xué)自動(dòng)化研究中心(ARC)從事現(xiàn)場(chǎng)總線(xiàn)診斷研究工作,2005年獲工程學(xué)碩士學(xué)位。其后在利默里克大學(xué)電路與系統(tǒng)研究中心(CSRC)和電信價(jià)值鏈研究中心(CTVR)研究嵌入式軟件的監(jiān)控和可靠性,于2010年獲博士學(xué)位。
責(zé)任編輯:gt
-
收發(fā)器
+關(guān)注
關(guān)注
10文章
3338瀏覽量
105542 -
轉(zhuǎn)換器
+關(guān)注
關(guān)注
27文章
8507瀏覽量
145991 -
控制器
+關(guān)注
關(guān)注
112文章
15886瀏覽量
175394
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論