基于CAN一卡通系統總線調度策略建模與仿真
文章出處:http://5052h112.com 作者: 人氣: 發表時間:2011年09月13日
摘要:基于控制器局域網(CAN)的測控系統需要采用恰當的總線調度策略以滿足數據傳輸的實時性要求,其建模與仿真能對網絡設計進行評估和優化。在設計一卡通系統線性混合總線調度算法的基礎上,運用網絡仿真系統OPNET設計了一種改進的CAN CSMA/CA模型。應用該模型對所設計的總線調度算法的效率和穩定性進行了仿真分析和比較。結果表明,該算法能夠有效地滿足一卡通系統數據傳輸的實時性要求。
關鍵詞:一卡通系統;CAN;總線調度;建模與仿真;OPNET
控制器局域網(CAN,control area network)是基于事件觸發機制的多主系統,需要根據實際系統的要求采用恰當的總線調度策略以滿足數據傳輸的實時性要求[10]。
在CAN總線調度策略的建模與仿真研究方面,Tindell和Wellings將固定優先級排隊理論拓展到CAN上,建立了CAN數學模型[3],并逐步改善了CAN響應時間模型[4、5]。目前國內在該領域的研究集中于模型的理論分析,且多基于CSMA協議,未能反映CAN CSMA/CA總線調度策略本質。筆者運用OPNET設計了一種改進的CSMA/CA模型,該模型能夠有效支持CAN總線調度策略仿真分析和比較。在此基礎上,對一卡通系統線性混合總線調度算法進行了仿真分析。結果表明該算法能夠很好地滿足一卡通系統數據傳輸的實時性要求。
1基于CAN的一卡通系統
1.1 CAN總線調度策略
CAN總線的介質訪問控制方式為帶沖突避免的載波偵聽多址訪問(CSMA/CA)。在非破壞性總線逐位仲裁規則下,幀ID值越小,優先級越高。因此,總線調度策略的實現依賴于幀ID的設計。
1.2 CAN幀ID設計
系統采用擴展幀,ID長度為29位。各域分配如圖1所示。
D28一D24為優先級動態(PD,priority dynamic)域。PD域占5位,根據CAN協議高速標準IS011898,一條CAN總線最多掛接30個節點,因此至少需要30個優先級。
圖1 CAN幀ID
D23~D16為POS機號域,系統中每個節點都有一個唯一的地址號,使用8位二進制數表示,最多容納256個終端POS機。優先級最高的地址(全0)作為廣播地址,其他地址依次分配給各POS機。機號可以在POS機上設定,初始值為0,是系統中的唯一編號。
D15~Dl為幀號域。一條應用層命令必須拆分成多個幀進行傳輸,第一幀的幀號為命令流水號,其后幀的幀號是前一幀的幀號加1。
幀號域占15位,在聯機情況下,POS機在發送一幀后,會在其后的1024個幀間隔內得到數據中心響應。根據系統應用層協議,一條應用層命令最多被拆分成23幀,為了避免屬于不同命令的兩個幀的幀號相同,規定每一命令流水號是前一命令流水號加32。
D0為第1幀信息域,標識該幀是否為第l幀。若為第1幀,幀數據段第1字節為應用層命令字。D0為1表示第l幀;為0表示不是第l幀。
1.3混合總線調度算法
在1.2節描述的幀ID中,對于每一個幀,D23~DO是固定不變的,D28~D24根據幀已等待發送時間動態變化。據此設計了一種動態和靜態相結合的混合總線調度算法。
根據實時性要求的不同,系統中不同POS機分配不同的初始發送優先級PRI_INITi,i為節點編號。為不失一般性,設PD域占用的位數為n,則必須滿足PRI_INITi≤2n-1.分配PRI_INITi時,考慮POS機所屬的不同類型。系統由充值機和消費機構成,充值機實時性要求高于消費機,其PRI_INITi取較小值。
節點開始發送幀時,把數值PRI_INITi復制到PD域,此時總線的狀態存在下面3種情況:
①若此時只有該節點偵聽到總線空閑,則成功發送;
②若此時有多個節點同時偵聽到總線空閑,根據仲裁規則,仲裁獲勝的節點繼續發送,仲裁失利的節點調整自身的發送優先級,將欲發送的幀置入其發送等待隊列,同時轉入接收狀態;
③若此時該節點偵聽到總線忙,則直接將欲發送的幀置人發送等待隊列,同時轉入接收狀態。
情況②中節點在仲裁失利后,采用下述策略調整發送優先級。i為節點編號;M為在成功發送一幀過程中節點參與總線競爭總次數;m為次數編號;J為所發送幀類型對應的調節比。幀類型與優先級調節比的對應關系如表1所示。
表1 幀類型與優先級調節比對應表
式(3)為一種抽象表達式,可選擇如下具體函數形式
式(4)為線性混合總線調度算法,式(5)為常量混合總線調度算法。為比較混合調度策略與靜態調度策略,式(6)為靜態總線調度算法。
2 CAN網絡建模
2.1 CAN子網模型
CAN子網有2個充值機節點,編號為1和2;28個消費機節點,編號從3到30;各節點編號用i表示,其初始發送優先級為i-1。為了統計總線流量和吞吐率,增加一個統計節點,它只接收不發送幀。CAN子網拓撲結構如圖2所示。
圖2 CAN子網拓撲結構模型
基于總線調度策略,圖2中充值機節點和消費機節點模型只考慮發送部分,如圖3所示。
圖3 CAN子網節點模型
圖3中,gen為節點信源模塊,根據擴展幀格式,幀最長128 b。因此packet size設置成constant(128)。
2.2處理機模型
在CSMA基礎上,引入總線調度策略,設計如圖4所示的改進的CSMA/CA處理機模型。
第1頁第2頁 |