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