- CAN總線運(yùn)行簡介
- CAN總線延遲爭用原理
- 信號傳輸速率及線纜長度限制
致力于CAN通信的設(shè)計人員遇到種種挑戰(zhàn),往返信號傳輸成為一個重要的考慮因素。
當(dāng)一個以上節(jié)點(diǎn)要在共用總線上發(fā)送信號時,控制器局域網(wǎng)(CAN)協(xié)議的一個關(guān)鍵特性就是如何處理總線爭用問題。CAN使用逐位仲裁(bit-wisearbitration)來選擇哪一個節(jié)點(diǎn)應(yīng)該繼續(xù)信號傳輸。由于這些節(jié)點(diǎn)對每一個比特位進(jìn)行監(jiān)聽,并且必須服從于更高優(yōu)先級的消息,因此它們的響應(yīng)時間必須快到能夠在破壞下一個比特以前終止傳輸。如下面三種情況所述,這就對容許組件延遲和線纜長度以及可用信號速率構(gòu)成了一些限制。
情況1:無爭用正常CAN總線運(yùn)行
通常每次只有一個節(jié)點(diǎn)要通過共用CAN總線通信。沒有一般性損耗的情況下,我們來討論一種二節(jié)點(diǎn)網(wǎng)絡(luò),然后再將這種討論延伸至更多節(jié)點(diǎn)。圖1描述了其工作原理。首先,兩個節(jié)點(diǎn)都處于非占用狀態(tài),因此總線上沒有差動信號,如(1a)所示。如果節(jié)點(diǎn)A開始通信,則其使用一個占用位啟動一個CAN消息。向CAN收發(fā)器發(fā)送的傳輸數(shù)據(jù)(TXD)輸入是一個邏輯0,其命令差動驅(qū)動器在總線線路上生成一個差動信號,如(1b)所示。節(jié)點(diǎn)A的接收機(jī)感應(yīng)到該差動信號,并在已接收數(shù)據(jù)引腳(RXD)上輸出一個邏輯0。差動電壓根據(jù)(1c)和(1d)所示雙絞線對的傳輸線路屬性進(jìn)行傳輸。最終,差動信號到達(dá)節(jié)點(diǎn)B,節(jié)點(diǎn)B的接收機(jī)也在RXD上輸出一個邏輯0,如(1e)所示。這時,節(jié)點(diǎn)B注意到節(jié)點(diǎn)A已經(jīng)開始一個CAN消息,這樣節(jié)點(diǎn)B便不會在節(jié)點(diǎn)A完成以前發(fā)起消息。
圖1A到B的正常信號傳輸
需要注意的是,節(jié)點(diǎn)B并非馬上就知道節(jié)點(diǎn)A已經(jīng)開始一條消息,因?yàn)閺腁到B的信號具有一定的延遲。這種情況下的總延遲為通過A處收發(fā)器(以及相關(guān)的隔離和緩沖電路)的延遲加上通過線纜的傳輸延遲,再加上B處收發(fā)器、隔離和緩沖電路的延遲的總和。乍一看,似乎這種單向延遲就是確保節(jié)點(diǎn) B 不同節(jié)點(diǎn) A 發(fā)送消息相沖突所需的關(guān)鍵計時限制。正如我們在情況2中所看到的一樣,這并非故事的全部。
情況2:延遲爭用,后發(fā)消息具有更高的優(yōu)先級
我們的下一種情況(圖2)假設(shè),節(jié)點(diǎn)A再次發(fā)起一條消息,但是節(jié)點(diǎn)B在稍后發(fā)起的一條消息具有更高的優(yōu)先級。如前所述,這種情況以兩個節(jié)點(diǎn)均處在非占用模式作為開始,如(2a所示,隨后節(jié)點(diǎn)A變?yōu)檎加茫ㄈ纾?b)所示)發(fā)起一條消息。該占用差動電壓再次沿線纜傳輸。在信號到達(dá)B處的收發(fā)器以前,該節(jié)點(diǎn)剛好利用如(2c)所示占用位發(fā)起一條消息。這時,兩個節(jié)點(diǎn)都正傳輸一個占用位,并且兩個節(jié)點(diǎn)都正接收一個占用位(如(2d)所示),然后兩個節(jié)點(diǎn)都沒意識到另一個節(jié)點(diǎn)也已啟用。由于在我們的假設(shè)情況中,節(jié)點(diǎn)A具有比節(jié)點(diǎn)B更低的優(yōu)先級,因此有時節(jié)點(diǎn)A會通過將其TXD設(shè)置為0(如(2e)所示)來發(fā)出一個非占用位。但是,由于節(jié)點(diǎn)B的作用,RXD會感應(yīng)到總線仍然處在占用狀態(tài)下。
圖2延遲爭用—B具有高優(yōu)先級
[page]
通過研究某個具有實(shí)際延遲值的假設(shè)案例,我們可以更加具體地介紹這些計時要求。在我們的二節(jié)點(diǎn)例子中,設(shè)定總單向延遲為200ns,信號傳輸速率為1Mbps,也就是ISO11898-2標(biāo)準(zhǔn)規(guī)定的最大值。這樣,位時間便為1000ns。除節(jié)點(diǎn)B的第二位會是同節(jié)點(diǎn)A的消息優(yōu)先級匹配的0(非占用)以外,其同情況2所述一樣。(情況2中,節(jié)點(diǎn)B具有一個占用第二位,表明更高的消息優(yōu)先級。)
圖3中,節(jié)點(diǎn)A在時間t=0時開始一條消息,從而在總線(b)上傳輸一個占用位。如圖2所示,其可能出現(xiàn)的情況是,節(jié)點(diǎn)B剛好在節(jié)點(diǎn)A的信號被接收到以前(c)開始發(fā)送,也即時間t=199ns。當(dāng)時間t=1000ns的第二位開始之初,在節(jié)點(diǎn)A轉(zhuǎn)到非占用狀態(tài)以前兩個節(jié)點(diǎn)都沒意識到對方的有效性。然后,節(jié)點(diǎn)B在時間t=1199ns的第二位開始之初,轉(zhuǎn)到非占用狀態(tài)。另一個單向延遲以后,該非占用信號到達(dá)節(jié)點(diǎn)A,時間t=1399ns。只有在這時,節(jié)點(diǎn)A才讀取RXD信號,并且可以確定其代表網(wǎng)絡(luò)的真實(shí)狀態(tài)。
圖3延遲爭用—節(jié)點(diǎn)A和B具有相同的優(yōu)先級
注意,只通過等到兩倍單向延遲(或者相當(dāng)于總雙向傳輸時間)節(jié)點(diǎn)A才能判別這種情況,其中節(jié)點(diǎn)A和B的消息具有相同的優(yōu)先級(情況3),以及節(jié)點(diǎn)B的消息擁有更高的優(yōu)先級。由于CAN協(xié)議固有的逐位仲裁機(jī)制,這種雙向延遲必須較好地位于一個位時間預(yù)算范圍內(nèi),也即1000ns。否則,在第二個位仲裁完成以前,節(jié)點(diǎn)A就可能開始傳送其第三個位。
信號傳輸速率及線纜長度限制
我們知道雙向延遲至關(guān)重要,CAN定義可編程傳輸延遲(PROP_SEG)為每個位的組成部分,以保證每個節(jié)點(diǎn)在對總線數(shù)據(jù)采樣以前都確實(shí)等待足夠長的時間。PROP_SEG的計算涉及雙向延遲和本地系統(tǒng)時鐘頻率相關(guān)知識,其超出了本文的討論范圍。實(shí)際上,PROP_SEG將采樣點(diǎn)規(guī)定在約總位時間的5/6或者更低以照顧其他段,這樣雙向延遲便被規(guī)定為位時間的一小段。
CAN標(biāo)準(zhǔn)規(guī)定,線纜為5ns每米傳輸延遲,1Mbps信號速率時最大線纜長度為40米。位時間為1000ns時,最遲采樣點(diǎn)(由PROP_SEG設(shè)定)約為850ns。線纜本身具有200ns的單向延遲(即400ns雙向延遲),從而使收發(fā)器和相關(guān)電路的總延遲只剩約450ns。
[page]
CAN收發(fā)器的制造商通常規(guī)定“環(huán)路延遲”,其包括驅(qū)動器和接收機(jī)延遲。由于雙向計算中涉及兩個收發(fā)器,因此每個收發(fā)器都應(yīng)有225ns或者更低的環(huán)路延遲,以支持1Mbps信號速率下40米的總線長度。如果收發(fā)器電路包括更多的組件,例如:隔離、電壓電平轉(zhuǎn)換或保護(hù)組件,則這些組件產(chǎn)生的延遲必須也包括在總延遲預(yù)算中。甚至,高速光耦合器一般具有40ns或更長的單向延遲,而全部雙向信號都必須通過四個光耦合器。這就極大地縮短了使用光隔離CAN系統(tǒng)的容許線纜長度(即增加了位時間)。1Mbps條件下,即使快速光耦合器的延遲也會縮短容許線纜長度,計算方法如方程式1:
下面顯示了信號速率和線纜長度之間的權(quán)衡因素,以及收發(fā)器延遲帶來的影響。收發(fā)器帶來的延遲(包括相關(guān)隔離、電平轉(zhuǎn)換和保護(hù))對于500kbps及以上的信號速率特別明顯。
圖4收發(fā)器延遲影響信號速率和線纜長度的權(quán)衡(點(diǎn)擊圖片放大)
在單個封裝(ISO1050)中的高速CAN收發(fā)器集成SiO2隔離現(xiàn)已上市。利用低于210ns的極限總環(huán)路延遲(包括驅(qū)動器、接收機(jī)和兩個隔離信道?。梢詼p少雙向環(huán)路延遲,并簡化您隔離式CAN解決方案的系統(tǒng)計時和設(shè)計。您還可以執(zhí)行一個電平轉(zhuǎn)換功能,將一個3.3V控制器的電壓轉(zhuǎn)換至5VCAN收發(fā)器,無需更多的延遲。
當(dāng)然,在進(jìn)行信號速率和線纜長度相關(guān)性能優(yōu)化設(shè)計時還存在其他一些問題。網(wǎng)絡(luò)的傳輸線路效應(yīng)表明,負(fù)載、節(jié)點(diǎn)到節(jié)點(diǎn)間隔和短截線長度對系統(tǒng)的信號保真度和抗干擾性都很重要。本文結(jié)尾列舉了較好的參考文獻(xiàn)。
實(shí)驗(yàn)室數(shù)據(jù)例子
為了說明這些概念,可建立一個帶有兩個隔離CAN節(jié)點(diǎn)和50米線纜的實(shí)驗(yàn)室裝置。我們預(yù)計單向線纜延遲為250ns,隔離收發(fā)器環(huán)路延遲約為150ns,即ISO1050標(biāo)準(zhǔn)的典型值。因此,節(jié)點(diǎn)A的采樣點(diǎn)應(yīng)約為比特開始以后的800ns,如圖5所示。
圖5 50米線纜的1MbpsCAN信號速率
就1Mbps信號速率而言,在該比特結(jié)束以前,采樣點(diǎn)留有足夠的裕量,其表明使用快速收發(fā)器,40米以上的線纜長度是可行的。
廣大設(shè)計人員正在各種應(yīng)用中使用CAN通信,他們需要了解計時限制和線纜長度權(quán)衡方法。信號鏈中每個組件都會影響總計時預(yù)算,同時必須考慮雙向延遲以確保可靠的通信。使用如ISO1050等快速收發(fā)器可保證CAN信號按時完成雙向傳輸,只有比PecosBill更快才能游過墨西哥灣。