CAN總線網(wǎng)絡(luò)的實時性研究和改進(jìn)
目前有很多文獻(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)。本文引用地址:http://butianyuan.cn/article/155170.htm
圖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ò)的正常運行。
如果把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所示。
評論