當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:由于CAN總線的獨特優(yōu)勢,CAN已成為工業(yè)數(shù)據(jù)通信的主流技術(shù)之一,這就要求它具有良好的實時性和可靠性。但是隨著CAN總線控制網(wǎng)絡(luò)復(fù)雜化,控制節(jié)點的增多,帶寬分配不均問題也隨之凸顯,使得總線上低優(yōu)先級的站點

摘要:由于CAN總線的獨特優(yōu)勢,CAN已成為工業(yè)數(shù)據(jù)通信的主流技術(shù)之一,這就要求它具有良好的實時性和可靠性。但是隨著CAN總線控制網(wǎng)絡(luò)復(fù)雜化,控制節(jié)點的增多,帶寬分配不均問題也隨之凸顯,使得總線上低優(yōu)先級的站點數(shù)據(jù)傳輸延時增加。提出了動態(tài)優(yōu)先級算法,它能夠動態(tài)改變站點優(yōu)先級,解決帶寬分配不均問題,實現(xiàn)數(shù)據(jù)實時傳輸;簡要介紹時間觸發(fā)CAN(TTCAN)協(xié)議,并通過實驗與動態(tài)優(yōu)先級算法和標(biāo)準(zhǔn)CAN協(xié)議進(jìn)行比較,得出網(wǎng)絡(luò)延時特征。
關(guān)鍵詞:實時性;動態(tài)優(yōu)先級;TTCAN;網(wǎng)絡(luò)延時

0 引言
    控制局域網(wǎng)(Controner Aera Net,CAN)是德國Boasch公司于1983年為汽車應(yīng)用而開發(fā)的一種有效支持分布式控制的串行控制網(wǎng)絡(luò)。盡管CAN最初是為汽車電子系統(tǒng)設(shè)計的,但由于它在開放性和技術(shù)方面的獨特優(yōu)勢,在航天、電力、石化等領(lǐng)域都得到了廣泛應(yīng)用。在火車、輪船、樓宇自動化、過程自動化儀表中,都有CAN技術(shù)的身影。CAN已成為工業(yè)數(shù)據(jù)通信的主流技術(shù)之一。
    CAN總線具有多主發(fā)送、采用確定性的優(yōu)先級仲裁機(jī)制等特點,保證了CAN總線數(shù)據(jù)通信的可靠性、實時性和靈活性。在數(shù)據(jù)通信過程中,如果出現(xiàn)碰撞,低優(yōu)先級的節(jié)點會主動退出,而最高優(yōu)先級的節(jié)點可以不受影響繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時間,保證了傳輸數(shù)據(jù)的實時性。但是這種靜態(tài)優(yōu)先級機(jī)制的一個缺點就是不能均等地為高優(yōu)先級和低優(yōu)先級站點分配帶寬,在網(wǎng)絡(luò)負(fù)載很大時,低優(yōu)先級站點會在多次競爭總線使用權(quán)時失敗,從而導(dǎo)致低優(yōu)先級站點消息傳輸產(chǎn)生不確定的延時,甚至無法發(fā)送。本文針對CAN的這個問題,在參考文獻(xiàn)的基礎(chǔ)上,結(jié)合消息型和事件型消息,提出了動態(tài)優(yōu)先級算法和基于時間觸發(fā)的TTCAN靜態(tài)調(diào)度算法。通過仿真實驗,將動態(tài)優(yōu)先級算法、靜態(tài)優(yōu)先級調(diào)度算法和標(biāo)準(zhǔn)CAN進(jìn)行比較,得到網(wǎng)絡(luò)延時特性。

1 CAN協(xié)議幀及仲裁機(jī)制
    為了提高CAN總線傳輸數(shù)據(jù)的可靠性和傳輸距離,CAN采用差分方式輸出。雙絞線的一根為CANH,另外一根為CANL。CAN總線具有兩種邏輯電平:顯性電平和隱性電平。在傳輸一個顯性位時,總線呈現(xiàn)顯性狀態(tài);在傳輸一個隱性位時,總線呈現(xiàn)隱性狀態(tài)。隱性狀態(tài)時,CANH和CANL兩條線之間的差分電壓Vdiff近似為0;顯性狀態(tài)時,CANH和CANL兩條線之間的差分電壓Vdiff的幅值一般為2~3 V,明顯高于隱性狀態(tài)時的差分電壓值。CAN總線上的位電平如圖1所示。


    在CAN總線上,顯性位可以改寫隱性位。當(dāng)總線上2個不同節(jié)點在同一位時間分別強(qiáng)加顯性和隱性時,總線上呈現(xiàn)顯性位,即顯性位可以覆蓋修改隱性位。顯性位一般表示邏輯0,隱性位一般表示邏輯。
    CAN采用載波監(jiān)聽多路訪問、逐位仲裁的非破壞性總線仲裁技術(shù)。按CAN總線上節(jié)點對實時性要求的緊急程度,可預(yù)先將節(jié)點分成不同的優(yōu)先級。優(yōu)先級編號越大,其站點的優(yōu)先級越低。優(yōu)先級編號作為標(biāo)識符的組成部分被置于報文仲裁場。在總線仲裁期間,優(yōu)先級較低的節(jié)點會主動退出發(fā)送,而優(yōu)先級可不受影響繼續(xù)傳輸數(shù)據(jù),簡化了總線的沖突仲裁過程,在一定程度上提高了通信的確定性和實時性。其仲裁規(guī)則為:
    (1)預(yù)發(fā)幀的字節(jié),當(dāng)總線在空閑時同時發(fā)送幀且同步于SOF的上升沿;
    (2)各幀的標(biāo)識符字段在總線同時相遇,借助總線使標(biāo)識字段逐位“線與”,根據(jù)其結(jié)果進(jìn)行沖突仲裁;
    (3)如果發(fā)送節(jié)點沒有檢測到?jīng)_突,則繼續(xù)發(fā)送下一位;
    (4)如果發(fā)送節(jié)點檢測到?jīng)_突,則立即中斷,不再繼續(xù)后面位的發(fā)送;
    (5)各標(biāo)識字段逐位“線與”結(jié)束后,未監(jiān)測到?jīng)_突的字節(jié)便獲得優(yōu)先發(fā)送權(quán),可以發(fā)送數(shù)據(jù)幀后邊的字段;如檢測到?jīng)_突的節(jié)點,則不能發(fā)送后邊的數(shù)據(jù)字段,而等待下一次發(fā)送。
    CAN數(shù)據(jù)幀由7個不同的位場組成,即幀起始、仲裁場、控制場、數(shù)據(jù)場、CRC場、應(yīng)答場和幀尾。數(shù)據(jù)幀中數(shù)據(jù)場的長度可以為0。數(shù)據(jù)幀的位場排列如圖2所示。數(shù)據(jù)幀的結(jié)構(gòu)有兩種格式,即標(biāo)準(zhǔn)格式和擴(kuò)展格式。這兩種幀格式的主要區(qū)別在于標(biāo)識符的長度,標(biāo)準(zhǔn)格式數(shù)據(jù)幀具有11位標(biāo)識符,擴(kuò)展格式數(shù)據(jù)幀具有29位標(biāo)識符。本文以擴(kuò)展格式為例進(jìn)行論述。幀的開始有起始標(biāo)志位表示,它僅由一個顯位組成;接下來是仲裁場,當(dāng)發(fā)生沖突時,兩個不同優(yōu)先級站點同時競爭總線的使用權(quán),并且由高位開始,逐位比較下去,當(dāng)出現(xiàn)優(yōu)先級不同位時,標(biāo)識符位為0的勝出,獲得總線使用權(quán),所以標(biāo)識符數(shù)值越小,優(yōu)先級越高。


    目前有很多文獻(xiàn)關(guān)于CAN協(xié)議的改進(jìn),基本都是局限于周期型消息的處理,但是在實際工業(yè)現(xiàn)場有很多諸如報警、故障等突發(fā)型消息,這些都是事件型消息,都未能有效處理?;诖耍疚募骖欀芷谛秃褪录拖?,以CAN 2.0B擴(kuò)展幀格式為例,通過重新定義ID字段的含義來解決帶寬分配不均的問題。這種重新定義的幀并未改變擴(kuò)展幀的格式,所以能與其他CAN系統(tǒng)兼容,如圖3所示。擴(kuò)展格式幀的ID字段被重新定義為3個部分:類間優(yōu)先級域(1b)、類內(nèi)優(yōu)先級域(8b)、內(nèi)容標(biāo)示域(20b)。


    圖3中,類間優(yōu)先級域為1 b,在實際應(yīng)用中將0分給事件型消息,使其具有最高優(yōu)先級,將1分給周期型消息;類內(nèi)優(yōu)先級域為8 b,用于標(biāo)示同種類型消息的優(yōu)先級大小,數(shù)值越小,優(yōu)先級越高;內(nèi)容標(biāo)識符域為20 b,可以根據(jù)實際的需要對其進(jìn)行定義,在類間優(yōu)先級和類內(nèi)優(yōu)先級大小都一樣的情況少,也可進(jìn)一步起到輔助仲裁的作用。

2 動態(tài)優(yōu)先級調(diào)度算法
    CAN總線的特點之一就是多主發(fā)送,各個站點在任何時候都可以隨機(jī)發(fā)送數(shù)據(jù),如果在某一個時刻有2個或都2個以上的站點要發(fā)送數(shù)據(jù),就要通過非破壞性仲裁機(jī)制進(jìn)行仲裁來競爭總線的使用權(quán),標(biāo)識符數(shù)值小的站點即優(yōu)先級較高的站點可以獲得總線使用權(quán),競爭失敗的站點則需等待下次重新競爭,當(dāng)網(wǎng)絡(luò)負(fù)載較大時,優(yōu)先級較低的站點很可能在多次競爭中失敗,從而數(shù)據(jù)不能及時發(fā)送,或有時發(fā)送產(chǎn)生沖突有時順利發(fā)送,造成發(fā)送延時的不確定性,這就是帶寬分配不均所造成的。為了解決隨著網(wǎng)絡(luò)負(fù)載增加所造成的帶寬分配不均,本文提出了動態(tài)優(yōu)先級算法。動態(tài)優(yōu)先級算法是一種隨著時間推移動態(tài)改變各個站點優(yōu)先級的算法,與原有的靜態(tài)分配優(yōu)先級算法相比,該算法可使每個站點均等地競爭總線的使用權(quán),即能夠均等地分配帶寬,從而保證消息的實時傳輸。方法如下:初始情況下各個站點均有事先分配好的優(yōu)先級,在不發(fā)生沖突的情況下,按原有優(yōu)先級來完成數(shù)據(jù)的傳送。當(dāng)發(fā)生沖突之后,高優(yōu)先級站點可以順利完成數(shù)據(jù)發(fā)送,為了能讓競爭失敗的站點在下次競爭中成功的概率變大,可以將競爭失敗的站點提高一個優(yōu)先等級參加下次競爭,即使失敗了若干次,這時該站點的優(yōu)先級也很高了,競爭勝出的概率會很大。但是需要注意的是優(yōu)先級較低的站點在提高優(yōu)先級的情況下獲得總線使用權(quán)并順利完成數(shù)據(jù)發(fā)送之后,需要將優(yōu)先級降低為初始優(yōu)先級,以保證網(wǎng)絡(luò)的正常運(yùn)行。
    如果把CAN總線上要發(fā)送數(shù)據(jù)的站點看成一個隊列,某個節(jié)點j在隊列的位置可表示為:
    Pj=P0-f(n)
    式中:Pj為節(jié)點j某時刻在隊列中的位置,即節(jié)點在此時刻的優(yōu)先級;P0為節(jié)點j在隊列中的初始位置,即初始優(yōu)先級。圖3中類內(nèi)優(yōu)先級分配了8位,當(dāng)優(yōu)先級最低時,P0=28-1=255;f(n)為優(yōu)先級晉升項,為關(guān)于競爭失敗次數(shù)n的函數(shù),可取正比例函數(shù)、指數(shù)函數(shù)等。在本文中取的為正比例函數(shù),即f(n)=kn,k為系數(shù)項,決定著晉升優(yōu)先級的快慢程度,一般取為CAN系統(tǒng)中節(jié)點的個數(shù)。由此可得:
    Pj=28-1-kn=255-kn
    采用該算法還可以避免當(dāng)節(jié)點優(yōu)先級提高之后出現(xiàn)2個或2個以上優(yōu)先級相同的情況,例如,在某個網(wǎng)絡(luò)中節(jié)點個數(shù)為5,即k=5,所以Pj=255-5n,則各站點初始及晉升之后優(yōu)先級如表1所示。


    可見,在競爭失敗提升優(yōu)先級的情況下,不會出現(xiàn)優(yōu)先級相同的情況,因此不會產(chǎn)生相應(yīng)的錯誤。該算法的實現(xiàn)流程圖如圖4所示。


    CAN網(wǎng)絡(luò)已經(jīng)有很多控制芯片??刂菩酒梢酝瓿蒀AN協(xié)議轉(zhuǎn)換。要想通過動態(tài)優(yōu)先級來改進(jìn)CAN實時性,就要針對不同芯片的應(yīng)用特性來實現(xiàn)。本文的仿真是利用Philips公司的SJA1000來實現(xiàn)的。

3 TTCAN協(xié)議
    TTCAN(時間觸發(fā)CAN)是CAN協(xié)議的另外一種擴(kuò)展,它依賴一個靜態(tài)的TDMA時間表來保證確定的響應(yīng)時間。將系統(tǒng)中所有發(fā)送周期型數(shù)據(jù)的節(jié)點至少發(fā)送1次的時間稱為系統(tǒng)周期,系統(tǒng)周期又由n個基本周期組成。TTCAN中一個特殊的節(jié)點即時間主控節(jié)點周期性地發(fā)送使各個節(jié)點同步的消息,并且將CAN的通信分割在基本周期內(nèi)。每個基本周期開始于一個參考消息,并且由下一個參考消息的開始作為結(jié)束。在每個基本周期內(nèi),主定時器又將每個基本周期的信道使用時間分為一個個的時間窗口,分給不同的信號,特定的信號只能在特定的時間窗口內(nèi)進(jìn)行傳輸,避免了信號之間的干擾,其結(jié)構(gòu)如圖5所示。參考信息是由主定時器發(fā)送的,控制基本周期的時態(tài),它的發(fā)送表明一個基本周期的開始;獨占窗口是為特定信號預(yù)留的特定時問窗口,只有特定的信號才能在該時間窗口內(nèi)傳輸,為了使系統(tǒng)具有一定的靈活性,獨占窗口在一個基本周期內(nèi)可以重復(fù)出現(xiàn),但是為了保證數(shù)據(jù)傳輸?shù)拇_定性,CAN幀的自動重發(fā)功能在獨占窗口內(nèi)被禁止。分配給隨機(jī)發(fā)送信息的時間窗口叫競爭窗口,一個競爭時窗可以分配給多個信息幀,競爭時窗的數(shù)據(jù)碰撞采用CAN的位仲裁機(jī)制,在這里發(fā)送的每個信息幀都具有固定的優(yōu)先級,位仲裁機(jī)制決定網(wǎng)絡(luò)中哪個信息幀取得總線的訪問權(quán)?;诤酮氄即翱谙嗤脑颍珻AN的自動重發(fā)機(jī)制也被禁止。自由窗口是為網(wǎng)絡(luò)的進(jìn)一步擴(kuò)展預(yù)留的窗口。

4 仿真實驗及結(jié)果分析
    為了驗證動態(tài)優(yōu)先級算法和TTCAN算法在提高CAN總線實時性方面的性能,設(shè)計了如圖6所示的實驗平臺。分析網(wǎng)絡(luò)延時時間,并進(jìn)行兩種算法的性能分析。仿真系統(tǒng)設(shè)計8個節(jié)點,每個節(jié)點由AT89S52單片機(jī)、SJA1000和PCA82C250組成,通過向每個節(jié)點發(fā)送消息型和時間型消息,在改變網(wǎng)絡(luò)負(fù)載率的情況下,分別在標(biāo)準(zhǔn)CAN,TTCAN、動態(tài)優(yōu)先級算法3種調(diào)度算法下進(jìn)行實驗,比較節(jié)點的延遲時間。


    向各個節(jié)點發(fā)送消息型和事件型信息幀各200幀,得到各幀的延遲時間,以其中一個節(jié)點為例,統(tǒng)計結(jié)果如表2所示。


    通過實驗數(shù)據(jù)可以看出,隨著負(fù)載率的升高,動態(tài)優(yōu)先級下周期型消息的延時時間也隨之增加,TTCAN下周期型消息的延遲時間很穩(wěn)定;隨著負(fù)載率的升高,動態(tài)優(yōu)先級下事件型消息的延遲時間增加較小,TTCAN下事件型消息的延遲時間明顯增加。動態(tài)優(yōu)先級調(diào)度算法相對于標(biāo)準(zhǔn)CAN調(diào)度算法,在網(wǎng)絡(luò)實時性方面有了一定的提高,隨著網(wǎng)絡(luò)負(fù)載率的增加,低優(yōu)先級節(jié)點獲得總線使用權(quán)的幾率增加。TTCAN調(diào)度算法能明顯降低周期型信息的延遲時間。

5 結(jié)語
    本文通過分析CAN協(xié)議、分析CAN總裁機(jī)制,提出了動態(tài)優(yōu)先級調(diào)度算法和TTCAN調(diào)度算法。通過搭建仿真平臺,比較數(shù)據(jù)幀在標(biāo)準(zhǔn)CAN、動態(tài)優(yōu)先級調(diào)度算法、TTCAN調(diào)度算法3種算法下的傳輸延遲時間得出如下結(jié)論:相同負(fù)載率下,TTCAN調(diào)度算法下周期型消息的傳輸延遲時間要比動態(tài)優(yōu)先級調(diào)度算法下周期型消息的延遲時間??;相同負(fù)載率下,動態(tài)優(yōu)先級調(diào)度算法下事件型消息的傳輸延遲時間要比TTCAN調(diào)度算法下事件型消息的傳輸延遲時間小。TTCAN調(diào)度算法適合于確定性硬實時系統(tǒng)的消息調(diào)度;動態(tài)優(yōu)先級算法可以靈活適應(yīng)系統(tǒng)的變化,提高CAN網(wǎng)絡(luò)實時性的要求,減小優(yōu)先級較低站點的數(shù)據(jù)傳輸延遲。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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ā)耗時1.5...

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

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

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

8月30日消息,據(jù)媒體報道,騰訊和網(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)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(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)閉