張向文,張帆,李向陽
(北京航天發射技術研究所,北京 100076)
摘要:基于控制系統智能化水平日益增長的背景,快速自動識別出CAN總線網絡拓撲關系的需求日益突出 ,采用在CAN總線傳統網絡架構中增加中間層的措施,結合CAN總線網絡鏈路動態分離的機制,設計了詳細的切換電路,介紹了電路的工作原理及整個系統的工作原理,明確了總線數據的處理流程、方法,實現了CAN總線網絡拓撲關系的快速自動識別,為后續相關技術的應用奠定了基礎。
中圖分類號:TN710文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.021
引用格式:張向文,張帆,李向陽.一種自動獲取CAN網絡拓撲關系方法的研究[J].微型機與應用,2017,36(10):74-76,80.
0引言
控制器局域網絡(Controller Area Net,CAN)是Robert Bosch公司在20世紀80年代初為汽車業開發的一種串行數據通信總線,其通信速率可達到1 Mb/s,并且通信距離在1 Mb/s下可達到40 m。CAN已有國際標準,即用于高速場合的ISO 11898和用于低速場合的ISO 115193[12]。由于其具備可靠性和良好的性能價格比,在軍民領域均已得到廣泛應用。近些年隨著信息化技術的快速發展,智能化的應用如雨后春筍般不斷涌現,同樣基于CAN總線網絡的智能化應用也在不斷地發展與進步,對CAN總線網絡的相關基礎技術提出的新的要求。在新的軌道交通的環節中,由于存在列車的編組需要,導致整個CAN總線網絡并不是固定的、穩定的,它是根據不同的任務需求進行臨時、快速組合的[34]。因此產生了對CAN總線網絡拓撲關系自動進行快速識別的需求,以便用戶、設計人員能夠快速掌握當前控制系統網絡的網絡拓撲關系,為后續網絡管理以及相關智能化應用奠定基礎。本文基于此需求,設計了一種快速CAN總線網絡拓撲關系自動獲取的方法。
1傳統CAN網絡的組成介紹
傳統的CAN總線網絡如圖1所示,主要包括單機、CAN總線電纜、終端電阻。單機內部主要包括處理器、CAN總線協議芯片、隔離器件、CAN總線驅動芯片等[57]。各個單機的驅動芯片的CANH、CANL與總線電纜的CANH、CANL直接連接。各個CAN總線單機通過CAN總線電纜實現單機的互聯互通,從而實現一個設備發送全部設備均可接收的效果。CAN總線終端電阻掛于CAN總線電纜的兩端。
在傳統架構下,單機2發送的CAN總線信號可以同時傳輸給單機1、單機3、單機n,各設備均可以進行應答,從而在傳統的網絡架構中任何單機均可以無差別地實現與網絡中所有單機的通信,滿足了一對多的高效通信,有效提高了系統的通信效率[89]。但是在這種網絡架構下,網絡中的單機無法實現對其他單機設備處于本設備的那個方向的識別,從而無法構建出各單機的網絡邏輯關系,不能支持軌道交通編組條件下的快速網絡拓撲關系的自動識別。
因此在傳統網絡架構中,要識別動態編組網絡中的邏輯拓撲關系,為用戶、應用設計人員提供基礎的網絡架構信息是無法完成的。
2自動網絡拓撲關系識別網絡架構設計
為解決傳統網絡的不足,本文提出了一種新型的CAN總線網絡拓撲架構,以滿足CAN總線網絡拓撲關系自動識別的目的。
2.1總體設計
如圖2所示,在新的網絡架構中與傳統網絡架構的區別主要有三點:(1)在單機的CAN驅動芯片與CAN總線電纜之間串入切換電路,切換電路用于完成總線網絡的前后向通信切換以及CAN總線電氣網路的補償;(2)每個單機的總線CANH、CANL均有兩對接口,與切換電路對應的接口相連,系統中終端電阻仍在CAN總線電纜的兩頭掛接;(3)系統中設置網絡管理單機,用于實現整個網絡拓撲架構的識別與輸出,其可以使用任意單機設備來執行相應的功能。另外為了方便后續描述,本文規定了前向、后向網絡的方向,由圖2可以看出,單機左側為單機的后向網絡,單機右側為單機的前向網絡。
2.2切換電路設計
切換電路的接口示意圖如圖3所示,其中CANH1、CANL2用于與CAN總線驅動芯片的CANH、CANL相連,IO接口用于實現單機設備對切換電路內部繼電器的控制。CANH2、CANL2用于連接前向通信CAN總線設備,CANH3、CANL3用于連接后向通信CAN總線設備。單機根據CAN總線指令控制IO端口實現各個CAN端口的連接與斷開,從而實現前向、后向通信的偵測。
切換電路內部原理如圖4所示,由圖4可以看出,整個電路主要包括K1、K2、K3、K4、K5 五個繼電器,R1A、R2A兩個CAN總線終端匹配電阻。電路工作原理為:在單元初始上電狀態下,K1繼電器閉合,K2、K3繼電器斷開,K4、K5 繼電器通電分別與各自的1端進行閉合。在此種狀態下,構成的CAN總線網絡架構與傳統的網絡架構完成相同,整個系統可按照傳統模式進行工作。當需要進行網絡拓撲關系識別時,單機通過CAN總線接收到了網絡主機發送的要求本機進行自動識別的指令時,單機通過IO控制,斷開K1繼電器,并同時接通K2、K3繼電器,從而使原來完整的一條CAN總線網絡形成了兩條獨立的CAN總線網絡,其中R1A、R2A分別用于補充前向網絡、后向網絡中的終端匹配電阻,以便兩個獨立的CAN總線網絡均可以進行獨立工作。然后控制K4、K5繼電器通電使CANH1、CANL1先與對應繼電器的1端聯通,使本單機與后向網絡相連,單機向后向CAN總線網絡發送網絡架構幀測幀,獲取后向各個單機的網絡編號,然后單機控制K4、K5繼電器通電使CANH1、CANL1與對應繼電器的2端聯通,使單機與前向網絡相聯通,單機向前向CAN總線網絡發送網絡架構幀測幀,獲取后向各個單機的網絡編號,最后單機恢復K2、K3斷電,K4、K5繼電器與1端閉合,K1通電導通恢復整個網絡的傳統架構,本單機發送所獲取的單機前后向設備編號數據給網絡管理單機。
2.3系統工作過程設計
整個網絡連接后關系如圖5所示,系統設定單機4為管理單機。整個系統的工作原理如下。
首先上電后,各個單機均為上電初始狀態,即整個系統的網絡架構與傳統的網絡架構相同,各個單機之間可按照傳統的模式進行通信。然后系統根據用戶指令或預定的計劃由網絡管理單機(單機4)獲取單機前向、后向單機的ID號(參見切換電路工作原理)并記錄,再依據所獲取的設備ID號,依次給所有的單機發送獲取其前、后向網絡單機的指令,獲取相關的獲取單機前向、后向單機的ID號并記錄。當網絡中所有的設備信息獲取完成后,網絡管理單機對數據進行處理,獲得系統各單機的連接關系,輸出給設計人員或用戶平臺。
2.4數據處理方法設計
如圖5所示,在管理單機完成數據提取工作后,其所獲數據如表1所示。
通過對數據的分析可以看出,每個設備的后向設備ID號的信息對于設備在網絡中的關系有一定的反映關系。通過初步分析總結歸納如下:首先通過查表獲取后向(或前向)為空的設備ID,將其作為整個網絡端首設備,如表1所示,單機1為網絡端首設備,然后查表獲取其他后向設備ID號只含有單機1的設備ID號,如表所示為單機2 ,之后通過查表方式查找其他后向設備ID只包含單機1、單機2的設備ID,依次查找,即可確定整個網絡的網絡拓撲關系。
為驗證方法的正確性,模擬各單機設備進行重新編組,編組后的關系如圖6所示。
假設單機4為管理節點,其自動獲取到的各單機的前后向網絡ID號如表2所示。
按照上述方法,首先查表獲取后向設備ID為空的設備為單機2,然后查表獲取后向設備ID僅含單機2的設備為單機1,然后查表獲取后向設別ID僅包含單機1、2的設備為單機5,然后獲取單機設備中僅含有單機1、2、5的設備為單機4,依次類推便可以自動獲取后向的關系,設備的順序依次為單機2、單機1、單機5、單機4、單機3、…、單機n。通過以上對數據的分析,證明是可以獲取系統設備的網絡邏輯關系的。
為了提高效率,對數據進行進一步分析,通過表1、表2內的數據可以看出,設備節點所處的位置與后向設備的ID數量有關,即其所處的位置為后向設備ID數量+1的位置。另外前向設備ID中的數據規律與后向設備ID中的數據相同,可僅處理后向數據或前向數據即可。
在現實CAN總線系統中,設備的ID號不一定是連續的,并且可能分成多個區段,為了解決這一問題,縮短系統比對時間,提高效率,對數據表進行規定,要求所有的設備ID排列順序為從小到大順序排列,并且依次放入對應的數組中,單機ID作為數據表中的一個屬性項。系統設定數組來進行數據表管理,包含數組X[n][n]與設備ID號數組DVEID[n],X[n][n]用來存儲對應單機ID設備的后向設備ID,
DVE-ID[i]用于存儲對應的單機設備ID號,n為系統中的設備數。設定Y[n]為設備最終序列存儲數組,設備邏輯序列的具體流程圖如圖7所示。即通過判斷對應設備ID的后向設備數量直接將對應的本設備的ID號賦予最終數組的位置。通過一次處理即可獲取到設備邏輯序列,并輸出到Y[n]數組中。
3結論
隨著控制系統中對信息化、智能化水平的要求越來越高,對于更多地、更智能地掌握整個控制系統中信息的要求越來越突出,控制系統中的總線網絡邏輯拓撲關系則是其中關鍵的一環,順利掌握其信息,可以為全網絡提供更加智能的解決方案,同時為用戶提供更加直觀的系統架構信息。本文針對CAN總線網絡架構邏輯拓撲關系的自動識別,提出了通過增加切換電路的方法,改變了傳統的CAN總線網絡架構,根據網絡反饋數據提出了數據處理方法,并給出了整個系統的工作原理,圓滿地實現了基于CAN總線網絡架構下邏輯拓撲關系識別的問題,同時可以為其他網絡的識別提供借鑒。
參考文獻
[1] 尚明玲. 基于SJA1000的CAN總線智能網橋設計[J]. 現代制造技術與裝備, 2015(4):8687.