1 引言 CAN(Controller Area Network)即控制局域網(wǎng),是國際上認(rèn)為是幾種最有前途的現(xiàn)場總線之一。CAN最初由德國的Bosch公司因汽車監(jiān)控和控制系統(tǒng)的需要而設(shè)計(jì),并且被世界各個大的汽車制造廠商采用。目前CAN已經(jīng)成為國際標(biāo)準(zhǔn),它的應(yīng)用范圍已經(jīng)不僅僅局限于汽車行業(yè)。在工業(yè)過程控制、機(jī)械工業(yè)、紡織工業(yè)、農(nóng)用機(jī)械、機(jī)器人、安全檢測、數(shù)控機(jī)床、工業(yè)鍋爐、醫(yī)療器械及傳感器等領(lǐng)域也被成功應(yīng)用,并取得了一定的效益。 雖然CAN的應(yīng)用非常廣泛,但隨著自動化技術(shù)的不斷發(fā)展,它的局限性也日趨明顯。傳統(tǒng)的CAN總線采用了非破壞性總線仲裁技術(shù),當(dāng)數(shù)據(jù)傳輸發(fā)生沖突的時候,具有較高優(yōu)先級的站點(diǎn)會在競爭中勝出.獲得數(shù)統(tǒng)中,網(wǎng)絡(luò)結(jié)構(gòu)將越來越復(fù)雜,網(wǎng)絡(luò)負(fù)載也越來越大.會造成優(yōu)先級較低的站點(diǎn)在多次發(fā)送數(shù)據(jù)時與優(yōu)先級高的站點(diǎn)沖突,并且在競爭中失敗而不能發(fā)送數(shù)據(jù)。這樣就會導(dǎo)致優(yōu)先級較低站點(diǎn)數(shù)據(jù)傳輸延時的不確定性,時而較大,時而較小,整個網(wǎng)絡(luò)的實(shí)時性和可靠性會大大下降,甚至不能滿足控制的需求。目前,解決這一問題的主流思路有兩種。第一種是在原有CAN事件觸發(fā)協(xié)議的基礎(chǔ)上對總線仲裁方式做一些改進(jìn);第二種是采用TTCAN協(xié)議。 2 調(diào)度算法 2.1動態(tài)優(yōu)先級算法 動態(tài)優(yōu)先級是基于原有CAN事件觸發(fā)協(xié)議的基礎(chǔ)上。隨著時間的推移動態(tài)調(diào)整各個站點(diǎn)的優(yōu)先級的一類算法,相對于原有的固定優(yōu)先級,它使每個站點(diǎn)都有相同的權(quán)力來享受總線的帶寬,避免優(yōu)先級較低的站點(diǎn)得不到總線占有權(quán),保證網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膶?shí)事性。下面介紹一種動態(tài)優(yōu)先級算法。 初始條件下,每個站點(diǎn)的優(yōu)先級各不相同,在沒有發(fā)生沖突的情況下,各個站點(diǎn)按初始固定優(yōu)先級完成數(shù)據(jù)的發(fā)送。當(dāng)發(fā)生沖突后,優(yōu)先級高的站點(diǎn)在競爭中勝出發(fā)送數(shù)據(jù),為了能讓失敗的站點(diǎn)在下次的競爭中有更大的概率勝出,可以把競爭失敗站點(diǎn)的優(yōu)先級提高一個等級來參加下一次的競爭。如果仍然失敗再進(jìn)一步提高優(yōu)先級等級。即使失敗了若干次,但這時候該站點(diǎn)的優(yōu)先級已經(jīng)相當(dāng)高了,競爭勝出的概率也會很大。需要注意的是當(dāng)優(yōu)先級低的站點(diǎn)在優(yōu)先級提高的情況下獲得數(shù)據(jù)發(fā)送權(quán)并發(fā)送完數(shù)據(jù)后,必須把升級的優(yōu)先級降低為初始優(yōu)先級.以保證網(wǎng)絡(luò)的正常運(yùn)行。 為了避免在站點(diǎn)優(yōu)先級提高后網(wǎng)絡(luò)中有出現(xiàn)兩個或者多個站點(diǎn)具有相同的優(yōu)先級,可以采用下面的方法來避免,假設(shè)在幀格式中,表示站點(diǎn)優(yōu)先級的位數(shù)為m,可以表示的最大數(shù)為2m-1。網(wǎng)絡(luò)中的站點(diǎn)數(shù)必須滿足n≤m,每個站點(diǎn)的初始固定優(yōu)先級為2m-1-a,a為[0,m-1]區(qū)間的一個值。當(dāng)站點(diǎn)競爭失敗后。優(yōu)先級的增加算法是: 新優(yōu)先級=原站點(diǎn)優(yōu)先級-n n=5,m=6,2m=64時各站點(diǎn)升級優(yōu)先級如下表所示: 表1各站點(diǎn)優(yōu)先級升級表 ![]() ![]() 圖1 動態(tài)優(yōu)先級算法流程圖 2.2 TTCAN協(xié)議 TTCAN(時間觸發(fā)CAN)是CAN協(xié)議的另一種擴(kuò)展,它依賴于一個靜態(tài)TDMA時間表來保證確定的響應(yīng)時間。該協(xié)議通過主定時器把CAN的通信分割在基本周期內(nèi)。在每個基本周期內(nèi),主定時器將信道的使用時間分成一個個的時間窗口(時隙),并且按一定規(guī)則將這些時間窗口分配給不同類型的信號,信號只能在各自的時間窗口內(nèi)獨(dú)占信道進(jìn)行傳輸,消除了信號之間的互相干擾。TTCAN的一個基本周期包括參照信息、獨(dú)占窗口、仲裁窗口、自由窗口四類窗口。參照信息是由主定時器發(fā)送的控制基本周期的時態(tài)。它的發(fā)送表明了一個基本周期的開始。在擴(kuò)展層1,參照信息僅持有一位控制信息,剩下的CAN信息用于數(shù)據(jù)傳輸。在擴(kuò)展層2.參照信息持有附加的擴(kuò)展信息,如當(dāng)前主定時器的全局時間信息。在保證向下兼容時,這層的參照信息占有4位,余下的4位也是用于數(shù)據(jù)傳輸。獨(dú)占窗口僅為某個特定的信息傳輸預(yù)留的時間窗口。在此窗口中,無法成功傳輸?shù)男畔⒌淖詣又匕l(fā)機(jī)制被禁用,以保證信息傳輸不產(chǎn)生延時。在仲裁窗口中,信息可以采用CAN的非破壞性沖突解決處理方式來進(jìn)行傳輸。自由窗口是為網(wǎng)絡(luò)的進(jìn)一步擴(kuò)展預(yù)留的窗口。這個協(xié)議的一個相關(guān)特性就是不能使有錯的報(bào)文自動再傳送。這個特性對TITAN通信的數(shù)據(jù)一致性有很大的影響,從而在確保在可靠性的基礎(chǔ)上提高實(shí)時性。 3 仿真實(shí)驗(yàn) 3.1為了比較動態(tài)優(yōu)先級和TrCAN兩種調(diào)度算法的性能, 建立CAN總線通訊系統(tǒng)仿真實(shí)驗(yàn)平臺,如圖2。 3.2實(shí)驗(yàn)平臺功能 模擬網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu); 模擬總線參數(shù); 記錄消息幀的發(fā)送和接受時刻。 整個仿真平臺由三大系統(tǒng)組成,即:網(wǎng)絡(luò)環(huán)境模擬系統(tǒng)、網(wǎng)絡(luò)錯誤產(chǎn)生系統(tǒng)、網(wǎng)絡(luò)監(jiān)控系統(tǒng)。 ![]() 圖2實(shí)驗(yàn)平臺結(jié)構(gòu)示意圖 3.3實(shí)驗(yàn)方案 仿真系統(tǒng)模擬數(shù)控機(jī)床的通訊系統(tǒng),有8個節(jié)點(diǎn),向每個節(jié)點(diǎn)分別放送周期型和事件型消息幀.同時改變網(wǎng)絡(luò)的負(fù)載率(10%,20%,30%)。分別在CAN和TTCAN兩種調(diào)度算法下進(jìn)行實(shí)驗(yàn),比較分析兩種算法下網(wǎng)絡(luò)節(jié)點(diǎn)的時間延遲。 3.4實(shí)驗(yàn)結(jié)果及分析 1、周期型消息幀在兩種iJ司度算法F的仿真實(shí)驗(yàn)。各節(jié)點(diǎn)發(fā)送200幀消息,得到各幀消息的延遲時間,以節(jié)點(diǎn)1為例,實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果如下: 表2周期型幀消息實(shí)驗(yàn)結(jié)果 ![]() 表2所示數(shù)據(jù)表明。隨著負(fù)載率的升高,動態(tài)優(yōu)先級下周期型消息幀的延遲時間也明顯增加;隨著負(fù)載率的升高,TIEAN下周期型消息幀的延遲時間比較穩(wěn)定。比較發(fā)現(xiàn)相同負(fù)載率下,TTCAN的周期型消息幀時間延遲均值要比動態(tài)優(yōu)先級的周期型消息幀時間延遲均值略小。 2、事件型消息幀在兩種調(diào)度算法下的仿真實(shí)驗(yàn)。各節(jié)點(diǎn)發(fā)送200幀消息,得到各幀消息的延遲時間,以節(jié)點(diǎn)1為例,實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果如下: 表3 事件型消息幀實(shí)驗(yàn)結(jié)果 ![]() 表3所示數(shù)據(jù)表明,隨著負(fù)載率的升高,動態(tài)優(yōu)先級下事件型消息幀的延遲時間增加量較。浑S著負(fù)載率的升高,TTCAN事件型消息幀的延遲時間也有明顯增加。比較發(fā)現(xiàn),發(fā)現(xiàn)相同負(fù)載率下,動態(tài)優(yōu)先級下的事件型消息幀時間延遲均值要比TTCAN下的事件型消息幀時問延遲均值略小。 4 結(jié)論 對實(shí)驗(yàn)結(jié)果的分析表明;傳輸周期型消息幀時TTCAN的實(shí)時性較動態(tài)優(yōu)先級的實(shí)時性要好;傳輸事件型消息幀時動態(tài)優(yōu)先級的實(shí)時性較TTCAN的實(shí)時性要好;動態(tài)優(yōu)先級下負(fù)載率對網(wǎng)絡(luò)實(shí)時性的影響在傳輸周期型消息幀時比傳輸事件型消息幀時大;TTCAN協(xié)議下負(fù)載率對網(wǎng)絡(luò)實(shí)時性的影響在傳輸周期型消息幀時比傳輸事件型消息幀時小。 本文創(chuàng)新點(diǎn):本文對原有的動態(tài)優(yōu)先級在優(yōu)先級算法上做了一些改進(jìn),為了需要,構(gòu)建了模擬仿真實(shí)驗(yàn)平臺,并比較了動態(tài)優(yōu)先級TTCAN在不同類型的數(shù)據(jù)幀下、不同網(wǎng)絡(luò)負(fù)載率下的實(shí)時性方面的一些參數(shù),最后得出了一些結(jié)論。 作者:肖存龍 來源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第25卷第1-2期 |