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