控制器局域網(CAN)屬于現場總線的范疇,是一種有效支持分布式控制系統的串行通信網絡。它是由德國博世公司在20世紀80年代專門為汽車行業開發的一種串行通信總線。由于其通信速率高、工作可靠、調試方便、使用靈活和性價比高等優點,己經在汽車業、航空業、工業控制、安全防護等領域中得到了廣泛應用,被公認為幾種最有前途的總線之一,其協議也發展為重要的國際標準。
隨著CAN總線在各個行業和領域的廣泛應用,其通信性能也越來越受到人們的關注。目前,已有很多學者對CAN總線通信性能進行分析研究。文中在分析CAN總線通信控制協議的基礎上,在MATLAB/Sinulink軟件Stateflow仿真環境下,利用有限狀態機理論對CAN總線通信系統進行了形式化建模。通過此仿真模型,分析了CAN總線通信系統中負載率的變化對網絡吞吐量、平均信息時延、通信沖突率、網絡利用率、網絡效率以及負載完成率的影響。
1 CAN總線通信控制協議
根據ISO11898(1993)標準,CAN從結構上分為物理層和數據鏈路層,數據鏈路層又包括邏輯鏈路層控制子層(LLC)和介質訪問控制子層(MAC)。在CAN總線系統中,節點間通過公共傳輸介質傳輸數據,因而數據鏈路層是總線的核心部分。CAN總線數據鏈路層的通信介質訪問控制方式為事件觸發,采用CSMA/CD.只要總線空閑,網絡上任意節點均可在任意時刻主動地向網絡上其他節點發送信息,而不分主從,節點在請求發送信息時,首先偵聽總線狀態,若總線空閑(或等待至總線空閑)則開始發送。當多個節點同時發送產生沖突時,采用非破壞性位仲裁機制,即借助ID標識符及逐位仲裁規則,低優先級節點主動停止發送,高優先級節點不受影響繼續發送,從而避免總線沖突,避免信息和時間發生損失。在發送過程中,發送節點對發送信息進行校驗,完成發送后釋放總線。CAN總線系統通過使用這種非破壞性的逐位線仲裁技術來處理多個節點同時訪問網絡的沖突,最后優先級最高的節點能夠立即發送數據,滿足了高優先級節點實時性的相關需要。
2 CAN總線系統仿真模型
文章在Matlab/Simulink軟件Stateflow仿真環境中建立了16節點的CAN總線通信系統仿真模型。節點1-16的結構是相同的,節點模塊如圖1所示。
圖1 節點模塊
節點模塊包括發送、緩存、數據采集3個部分。因為本次仿真主要研究CAN總線的通信性能,所以建立節點模型時,只考慮了其通信活動所涉及的部分,沒有加入節點計算控制活動部分和數據接收部分。數據采集用于采集Simulink中輸入的數據,數據長度服從隨機平均分布,在狀態“有數據”中,數據被組裝成CAN標準短幀。在實際系統中,數據可能是節點本身采集的現場檢測數據,或是節點控制器輸出的數據。“緩存”代表節點的緩沖器,這里假設容量為1.包括兩個狀態:“空”和“非空”.數據被采集并組裝成CAN標準短幀后,觸發由“空”到“非空”的轉換,將節點信息放在等待發送的緩沖器中,發送完成后,返回“空”狀態,等待下一次觸發。“發送”代表節點發送部分,當緩沖器有數據等待傳輸時,觸發由“停止”到“等待”的轉換,進入等待狀態;當總線仲裁允許本節點發送時,觸發由“等待”到“傳送”的轉換,開始發送數據;當緩沖器的數據傳送完成時,觸發由“傳送”到“停止”的轉換,等待下一次發送。
圖2 通信調度模塊
通信調度模塊,如圖2所示。包括總線活動模塊fieldbus和仲裁判斷函數compete.fieldbus模塊包括3個狀態:“空閑”、“忙碌”、“幀間隔”.開始總線在“空閑”狀態下,當有節點要發送信息時,用compete函數對待發節點進行仲裁,并觸發由“空閑”到“忙碌”的轉換;節點發送數據完成后,以“返回”事件觸發由“忙碌”到“幀間隔”的轉換;經過一個“幀間隔”后,回到“空閑”狀態,等待下一次傳輸。compete函數對各節點的仲裁符合CAN仲裁機制,通過比較各待發節點的優先級,實現“線與”功能,將發送權給優先級最高的節點。
以上所述的仿真平臺簡潔直觀地解釋了CAN網絡的控制機理,并能動態地仿真其通信活動。
3 網絡性能
3.1 性能指標
我們先介紹總線網絡相關性能指標的相關定義。
網絡負載率:單位時間內發出訪問網絡的節點數(需要傳送的報文數)與網絡最大容量的比率。
吞吐量:單位時間內系統成功發送信息數量的均值。
平均信息時延:從信息發出傳輸請求到被成功地傳輸到目的節點所需要的平均時間。
通信沖突率:節點遭受通信沖突的概率。
網絡利用率:單位時間內通道傳送信息號的時間比率,即是通道處于忙碌狀態的概率,它反映了通道被利用的情況。
網絡效率:單位時間內通道成功傳送的信息與通道發送信息的時間比率,即吞吐量與通道利用率兩者間的比率。
負載完成率:所有節點運行完成后成功向總線上發送的報文幀的總個數與所有節點請求發送的報文幀的總個數的比率。
3.2 性能分析
仿真設定CAN總線傳輸速率為200kbit/s,總的運行時間為T=2s,并假設每一幀報文的數據長度為100bit,可以得知,CAN總線滿負載時傳輸4000幀數據,表示為N=4000幀,即滿負載時傳輸的數據幀的總長度為400kbit,表示為S=400kbit.通過設定各節點的發送周期,來調整負載率的大小。
CAN總線仿真模型中,輸出參數含義分別為:u代表通道處于忙碌狀態的總時間;thout代表所有節點發送的所有數據幀的總長度;fz代表所有節點產生的所有數據幀的總長度;b1-b16分別代表第1-16個節點每次運行完成后成功向總線上發送的數據幀的個數;p1-p16分別代表第1-16節點每次請求發送的數據幀的個數。
所以,吞吐量的計算公式為:
平均信息時延的計算公式為:
式中i表示節點編號(I=1~16)。
通信沖突率的計算公式為:
網絡利用率的計算公式為:
網絡效率的計算公式為:
負載完成率的計算公式為:
式中i表示節點編號(1~16)。
經過運行仿真模型,得到系統在負載分別為16%、33%、50%、81.5%、100%、125%、150%、175%、200%、230%、250%、280%、310%時的一系列仿真結果。
依據公式(1)-(6),我們分析了負載率從0.02到3.1的情況下,CAN總線通信系統中負載率的變化對網絡吞吐量、平均信息時延、通信沖突率、網絡利用率、網絡效率以及負載完成率的影響。結果如圖3-8中所示。
圖3-8的變化趨勢都是由CAN總線通信控制協議決定的,即總線空閑時,任一節點都有發起通信的權力,當多個節點同時發送產生沖突時,采用非破壞性位仲裁機制,低優先級節點停止發送,高優先級節點不受影響繼續發送,從而可以避免總線沖突。
圖3中,由于當負載率較低時,低優先級的信息可以競爭到總線權得以發送,隨著負載率的增加,網絡利用率提高,所以,吞吐量也隨之增加,當負載率增加到一定程度時,只有高優先級的信息得以發送,此時吞吐量趨于飽和。
圖3 吞吐量與負載率的關系
圖4中,由于隨著負載率的增加,信道主要用來發送高優先級的信息,而低優先級的信息卻被長時間延遲甚至造成數據丟失,所以平均信息時延隨著負載率的增加幾乎呈線性增加。
圖4 平均信息時延與負載率的關系
圖5中,由于隨著負載率增加,吞吐量增加,即單位時間內需要處理的信息量增加,信息發生沖突的機會也增加。而且隨著負載率的增加,當吞吐量增加到趨于飽和后,信息發生沖突的機會也增加的較為緩和,即通信吞吐率增加的較為緩和。
圖5 通信沖突率與負載率的關系
圖6中,由于隨著負載率增加,吞吐量隨之增加,則單位時間內需要處理的信息量增加,從而使得通道的利用率增加。同時,通道由“忙碌”到“空閑”狀態所用的幀間隔時間也增加,使得通道不可能連續不斷地傳輸信號,這樣隨著吞吐量增加并趨于飽和時,網絡利用率也隨之增加并趨于1,但不會達到1。
圖6 網絡利用率與負載率的關系
圖7中,由于隨著負載率的而增加,吞吐量增加,而通道處于“忙碌”狀態的總時間也在增加,并且在吞吐量達到飽和時,通道處于“忙碌”狀態的時間也趨于穩定,所以,單位時間內通道成功傳送的信息與通道發送信息的時間比率幾乎不隨著負載率變化而變化,基本在一個恒值附近微小變化。
圖7 網絡效率與負載率的關系
圖8中,由于在負載率較低時,各優先級的信息都可以競爭到總線權得以發送,所有節點成功向總線上發送的數據幀的個數與請求發送的數據幀的個數相等或相差很小,但是隨著負載率的增加,低優先級信息得不到發送,只有高優先級信息才得以發送,導致所有節點成功向總線上發送的數據幀的個數遠小于請求發送的數據幀的個數。所以,負載完成率隨著負載率的增加而減小,并且在負載較小時,負載完成率很大,幾乎接近于1。
圖8 負載完成率與負載率的關系
總之,以上分析結果驗證了CAN總線通信控制協議的特點。
4 結束語
運用MATLAB軟件中Stateflow工具箱來對CAN總線通信系統建模仿真切實可行,是現場總線協議分析與研究的又一途徑。仿真模型能夠完全描述協議的復雜邏輯關系,而且形象直觀貼近實際系統,易于理解,也便于修改調試。
-
控制器
+關注
關注
112文章
16402瀏覽量
178588 -
CAN總線
+關注
關注
145文章
1952瀏覽量
130875 -
仿真
+關注
關注
50文章
4102瀏覽量
133734
發布評論請先 登錄
相關推薦
評論