CAN總線(xiàn)通信控制協(xié)議的仿真與性能分析
控制器局域網(wǎng)(CAN)屬于現場(chǎng)總線(xiàn)的范疇,是一種有效支持分布式控制系統的串行通信網(wǎng)絡(luò )。它是由德國博世公司在20世紀80年代專(zhuān)門(mén)為汽車(chē)行業(yè)開(kāi)發(fā)的一種串行通信總線(xiàn)。由于其通信速率高、工作可靠、調試方便、使用靈活和性?xún)r(jià)比高等優(yōu)點(diǎn),己經(jīng)在汽車(chē)業(yè)、航空業(yè)、工業(yè)控制、安全防護等領(lǐng)域中得到了廣泛應用,被公認為幾種最有前途的總線(xiàn)之一,其協(xié)議也發(fā)展為重要的國際標準。
本文引用地址:http://dyxdggzs.com/article/201609/303473.htm隨著(zhù)CAN總線(xiàn)在各個(gè)行業(yè)和領(lǐng)域的廣泛應用,其通信性能也越來(lái)越受到人們的關(guān)注。目前,已有很多學(xué)者對CAN總線(xiàn)通信性能進(jìn)行分析研究。文中在分析CAN總線(xiàn)通信控制協(xié)議的基礎上,在MATLAB/Sinulink軟件Stateflow仿真環(huán)境下,利用有限狀態(tài)機理論對CAN總線(xiàn)通信系統進(jìn)行了形式化建模。通過(guò)此仿真模型,分析了CAN總線(xiàn)通信系統中負載率的變化對網(wǎng)絡(luò )吞吐量、平均信息時(shí)延、通信沖突率、網(wǎng)絡(luò )利用率、網(wǎng)絡(luò )效率以及負載完成率的影響。
1CAN總線(xiàn)通信控制協(xié)議
根據ISO11898(1993)標準,CAN從結構上分為物理層和數據鏈路層,數據鏈路層又包括邏輯鏈路層控制子層(LLC)和介質(zhì)訪(fǎng)問(wèn)控制子層(MAC)。在CAN總線(xiàn)系統中,節點(diǎn)間通過(guò)公共傳輸介質(zhì)傳輸數據,因而數據鏈路層是總線(xiàn)的核心部分。CAN總線(xiàn)數據鏈路層的通信介質(zhì)訪(fǎng)問(wèn)控制方式為事件觸發(fā),采用CSMA/CD。只要總線(xiàn)空閑,網(wǎng)絡(luò )上任意節點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò )上其他節點(diǎn)發(fā)送信息,而不分主從,節點(diǎn)在請求發(fā)送信息時(shí),首先偵聽(tīng)總線(xiàn)狀態(tài),若總線(xiàn)空閑(或等待至總線(xiàn)空閑)則開(kāi)始發(fā)送。當多個(gè)節點(diǎn)同時(shí)發(fā)送產(chǎn)生沖突時(shí),采用非破壞性位仲裁機制,即借助ID標識符及逐位仲裁規則,低優(yōu)先級節點(diǎn)主動(dòng)停止發(fā)送,高優(yōu)先級節點(diǎn)不受影響繼續發(fā)送,從而避免總線(xiàn)沖突,避免信息和時(shí)間發(fā)生損失。在發(fā)送過(guò)程中,發(fā)送節點(diǎn)對發(fā)送信息進(jìn)行校驗,完成發(fā)送后釋放總線(xiàn)。CAN總線(xiàn)系統通過(guò)使用這種非破壞性的逐位線(xiàn)仲裁技術(shù)來(lái)處理多個(gè)節點(diǎn)同時(shí)訪(fǎng)問(wèn)網(wǎng)絡(luò )的沖突,最后優(yōu)先級最高的節點(diǎn)能夠立即發(fā)送數據,滿(mǎn)足了高優(yōu)先級節點(diǎn)實(shí)時(shí)性的相關(guān)需要。
2CAN總線(xiàn)系統仿真模型
文章在Matlab/Simulink軟件Stateflow仿真環(huán)境中建立了16節點(diǎn)的CAN總線(xiàn)通信系統仿真模型。節點(diǎn)1-16的結構是相同的,節點(diǎn)模塊如圖1所示。

圖1節點(diǎn)模塊
節點(diǎn)模塊包括發(fā)送、緩存、數據采集3個(gè)部分。因為本次仿真主要研究CAN總線(xiàn)的通信性能,所以建立節點(diǎn)模型時(shí),只考慮了其通信活動(dòng)所涉及的部分,沒(méi)有加入節點(diǎn)計算控制活動(dòng)部分和數據接收部分。數據采集用于采集Simulink中輸入的數據,數據長(cháng)度服從隨機平均分布,在狀態(tài)有數據中,數據被組裝成CAN標準短幀。在實(shí)際系統中,數據可能是節點(diǎn)本身采集的現場(chǎng)檢測數據,或是節點(diǎn)控制器輸出的數據。緩存代表節點(diǎn)的緩沖器,這里假設容量為 1。包括兩個(gè)狀態(tài):空和非空。數據被采集并組裝成CAN標準短幀后,觸發(fā)由空到非空的轉換,將節點(diǎn)信息放在等待發(fā)送的緩沖器中,發(fā)送完成后,返回空狀態(tài),等待下一次觸發(fā)。發(fā)送代表節點(diǎn)發(fā)送部分,當緩沖器有數據等待傳輸時(shí),觸發(fā)由停止到等待的轉換,進(jìn)入等待狀態(tài);當總線(xiàn)仲裁允許本節點(diǎn)發(fā)送時(shí),觸發(fā)由等待到傳送的轉換,開(kāi)始發(fā)送數據;當緩沖器的數據傳送完成時(shí),觸發(fā)由傳送到停止的轉換,等待下一次發(fā)送。

圖2通信調度模塊
通信調度模塊,如圖2所示。包括總線(xiàn)活動(dòng)模塊fieldbus和仲裁判斷函數compete。fieldbus模塊包括3個(gè)狀態(tài):空閑、 忙碌、幀間隔。開(kāi)始總線(xiàn)在空閑狀態(tài)下,當有節點(diǎn)要發(fā)送信息時(shí),用compete函數對待發(fā)節點(diǎn)進(jìn)行仲裁,并觸發(fā)由空閑到忙碌的轉換;節點(diǎn)發(fā)送數據完成后,以返回事件觸發(fā)由忙碌到幀間隔的轉換;經(jīng)過(guò)一個(gè)幀間隔后,回到空閑狀態(tài),等待下一次傳輸。compete函數對各節點(diǎn)的仲裁符合CAN仲裁機制,通過(guò)比較各待發(fā)節點(diǎn)的優(yōu)先級,實(shí)現線(xiàn)與功能,將發(fā)送權給優(yōu)先級最高的節點(diǎn)。
以上所述的仿真平臺簡(jiǎn)潔直觀(guān)地解釋了CAN網(wǎng)絡(luò )的控制機理,并能動(dòng)態(tài)地仿真其通信活動(dòng)。
3網(wǎng)絡(luò )性能
3.1性能指標
我們先介紹總線(xiàn)網(wǎng)絡(luò )相關(guān)性能指標的相關(guān)定義。
網(wǎng)絡(luò )負載率:?jiǎn)挝粫r(shí)間內發(fā)出訪(fǎng)問(wèn)網(wǎng)絡(luò )的節點(diǎn)數(需要傳送的報文數)與網(wǎng)絡(luò )最大容量的比率。
吞吐量:?jiǎn)挝粫r(shí)間內系統成功發(fā)送信息數量的均值。
平均信息時(shí)延:從信息發(fā)出傳輸請求到被成功地傳輸到目的節點(diǎn)所需要的平均時(shí)間。
通信沖突率:節點(diǎn)遭受通信沖突的概率。
網(wǎng)絡(luò )利用率:?jiǎn)挝粫r(shí)間內通道傳送信息號的時(shí)間比率,即是通道處于忙碌狀態(tài)的概率,它反映了通道被利用的情況。
網(wǎng)絡(luò )效率:?jiǎn)挝粫r(shí)間內通道成功傳送的信息與通道發(fā)送信息的時(shí)間比率,即吞吐量與通道利用率兩者間的比率。
負載完成率:所有節點(diǎn)運行完成后成功向總線(xiàn)上發(fā)送的報文幀的總個(gè)數與所有節點(diǎn)請求發(fā)送的報文幀的總個(gè)數的比率。
3.2性能分析
仿真設定CAN總線(xiàn)傳輸速率為200kbit/s,總的運行時(shí)間為T(mén)=2s,并假設每一幀報文的數據長(cháng)度為100bit,可以得知,CAN總線(xiàn)滿(mǎn)負載時(shí)傳輸4000幀數據,表示為N=4000幀,即滿(mǎn)負載時(shí)傳輸的數據幀的總長(cháng)度為400kbit,表示為S=400kbit。通過(guò)設定各節點(diǎn)的發(fā)送周期,來(lái)調整負載率的大小。
CAN總線(xiàn)仿真模型中,輸出參數含義分別為:u代表通道處于忙碌狀態(tài)的總時(shí)間;thout代表所有節點(diǎn)發(fā)送的所有數據幀的總長(cháng)度;fz代表所有節點(diǎn)產(chǎn)生的所有數據幀的總長(cháng)度;b1-b16分別代表第1-16個(gè)節點(diǎn)每次運行完成后成功向總線(xiàn)上發(fā)送的數據幀的個(gè)數;p1-p16分別代表第1-16節點(diǎn)每次請求發(fā)送的數據幀的個(gè)數。
評論