《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 一種自動獲取CAN網(wǎng)絡(luò)拓?fù)潢P(guān)系的方法研究
一種自動獲取CAN網(wǎng)絡(luò)拓?fù)潢P(guān)系的方法研究
2017年微型機(jī)與應(yīng)用第10期
張向文,張帆,李向陽
北京航天發(fā)射技術(shù)研究所,北京 100076
摘要: 基于控制系統(tǒng)智能化水平日益增長的背景,快速自動識別出CAN總線網(wǎng)絡(luò)拓?fù)潢P(guān)系的需求日益突出 ,采用在CAN總線傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中增加中間層的措施,結(jié)合CAN總線網(wǎng)絡(luò)鏈路動態(tài)分離的機(jī)制,設(shè)計了詳細(xì)的切換電路,介紹了電路的工作原理及整個系統(tǒng)的工作原理,明確了總線數(shù)據(jù)的處理流程、方法,實(shí)現(xiàn)了CAN總線網(wǎng)絡(luò)拓?fù)潢P(guān)系的快速自動識別,為后續(xù)相關(guān)技術(shù)的應(yīng)用奠定了基礎(chǔ)。
Abstract:
Key words :

  張向文,張帆,李向陽

  (北京航天發(fā)射技術(shù)研究所,北京 100076)

  摘要:基于控制系統(tǒng)智能化水平日益增長的背景,快速自動識別出CAN總線網(wǎng)絡(luò)拓?fù)?/a>關(guān)系的需求日益突出 ,采用在CAN總線傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中增加中間層的措施,結(jié)合CAN總線網(wǎng)絡(luò)鏈路動態(tài)分離的機(jī)制,設(shè)計了詳細(xì)的切換電路,介紹了電路的工作原理及整個系統(tǒng)的工作原理,明確了總線數(shù)據(jù)的處理流程、方法,實(shí)現(xiàn)了CAN總線網(wǎng)絡(luò)拓?fù)潢P(guān)系的快速自動識別,為后續(xù)相關(guān)技術(shù)的應(yīng)用奠定了基礎(chǔ)。

  關(guān)鍵詞:CAN總線;網(wǎng)絡(luò)拓?fù)洌?a class="innerlink" href="http://theprogrammingfactory.com/tags/編組" title="編組" target="_blank">編組邏輯序列;動態(tài)分離

  中圖分類號:TN710文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.021

  引用格式:張向文,張帆,李向陽.一種自動獲取CAN網(wǎng)絡(luò)拓?fù)潢P(guān)系方法的研究[J].微型機(jī)與應(yīng)用,2017,36(10):74-76,80.

0引言

 

Image 001.jpg

  控制器局域網(wǎng)絡(luò)(Controller Area Net,CAN)是Robert Bosch公司在20世紀(jì)80年代初為汽車業(yè)開發(fā)的一種串行數(shù)據(jù)通信總線,其通信速率可達(dá)到1 Mb/s,并且通信距離在1 Mb/s下可達(dá)到40 m。CAN已有國際標(biāo)準(zhǔn),即用于高速場合的ISO 11898和用于低速場合的ISO 115193[12]。由于其具備可靠性和良好的性能價格比,在軍民領(lǐng)域均已得到廣泛應(yīng)用。近些年隨著信息化技術(shù)的快速發(fā)展,智能化的應(yīng)用如雨后春筍般不斷涌現(xiàn),同樣基于CAN總線網(wǎng)絡(luò)的智能化應(yīng)用也在不斷地發(fā)展與進(jìn)步,對CAN總線網(wǎng)絡(luò)的相關(guān)基礎(chǔ)技術(shù)提出的新的要求。在新的軌道交通的環(huán)節(jié)中,由于存在列車的編組需要,導(dǎo)致整個CAN總線網(wǎng)絡(luò)并不是固定的、穩(wěn)定的,它是根據(jù)不同的任務(wù)需求進(jìn)行臨時、快速組合的[34]。因此產(chǎn)生了對CAN總線網(wǎng)絡(luò)拓?fù)潢P(guān)系自動進(jìn)行快速識別的需求,以便用戶、設(shè)計人員能夠快速掌握當(dāng)前控制系統(tǒng)網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)潢P(guān)系,為后續(xù)網(wǎng)絡(luò)管理以及相關(guān)智能化應(yīng)用奠定基礎(chǔ)。本文基于此需求,設(shè)計了一種快速CAN總線網(wǎng)絡(luò)拓?fù)潢P(guān)系自動獲取的方法。

1傳統(tǒng)CAN網(wǎng)絡(luò)的組成介紹

  傳統(tǒng)的CAN總線網(wǎng)絡(luò)如圖1所示,主要包括單機(jī)、CAN總線電纜、終端電阻。單機(jī)內(nèi)部主要包括處理器、CAN總線協(xié)議芯片、隔離器件、CAN總線驅(qū)動芯片等[57]。各個單機(jī)的驅(qū)動芯片的CANH、CANL與總線電纜的CANH、CANL直接連接。各個CAN總線單機(jī)通過CAN總線電纜實(shí)現(xiàn)單機(jī)的互聯(lián)互通,從而實(shí)現(xiàn)一個設(shè)備發(fā)送全部設(shè)備均可接收的效果。CAN總線終端電阻掛于CAN總線電纜的兩端。

  在傳統(tǒng)架構(gòu)下,單機(jī)2發(fā)送的CAN總線信號可以同時傳輸給單機(jī)1、單機(jī)3、單機(jī)n,各設(shè)備均可以進(jìn)行應(yīng)答,從而在傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)中任何單機(jī)均可以無差別地實(shí)現(xiàn)與網(wǎng)絡(luò)中所有單機(jī)的通信,滿足了一對多的高效通信,有效提高了系統(tǒng)的通信效率[89]。但是在這種網(wǎng)絡(luò)架構(gòu)下,網(wǎng)絡(luò)中的單機(jī)無法實(shí)現(xiàn)對其他單機(jī)設(shè)備處于本設(shè)備的那個方向的識別,從而無法構(gòu)建出各單機(jī)的網(wǎng)絡(luò)邏輯關(guān)系,不能支持軌道交通編組條件下的快速網(wǎng)絡(luò)拓?fù)潢P(guān)系的自動識別。

  因此在傳統(tǒng)網(wǎng)絡(luò)架構(gòu)中,要識別動態(tài)編組網(wǎng)絡(luò)中的邏輯拓?fù)潢P(guān)系,為用戶、應(yīng)用設(shè)計人員提供基礎(chǔ)的網(wǎng)絡(luò)架構(gòu)信息是無法完成的。

  2自動網(wǎng)絡(luò)拓?fù)潢P(guān)系識別網(wǎng)絡(luò)架構(gòu)設(shè)計

  為解決傳統(tǒng)網(wǎng)絡(luò)的不足,本文提出了一種新型的CAN總線網(wǎng)絡(luò)拓?fù)浼軜?gòu),以滿足CAN總線網(wǎng)絡(luò)拓?fù)潢P(guān)系自動識別的目的。

  2.1總體設(shè)計

Image 002.jpg

  如圖2所示,在新的網(wǎng)絡(luò)架構(gòu)中與傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的區(qū)別主要有三點(diǎn):(1)在單機(jī)的CAN驅(qū)動芯片與CAN總線電纜之間串入切換電路,切換電路用于完成總線網(wǎng)絡(luò)的前后向通信切換以及CAN總線電氣網(wǎng)路的補(bǔ)償;(2)每個單機(jī)的總線CANH、CANL均有兩對接口,與切換電路對應(yīng)的接口相連,系統(tǒng)中終端電阻仍在CAN總線電纜的兩頭掛接;(3)系統(tǒng)中設(shè)置網(wǎng)絡(luò)管理單機(jī),用于實(shí)現(xiàn)整個網(wǎng)絡(luò)拓?fù)浼軜?gòu)的識別與輸出,其可以使用任意單機(jī)設(shè)備來執(zhí)行相應(yīng)的功能。另外為了方便后續(xù)描述,本文規(guī)定了前向、后向網(wǎng)絡(luò)的方向,由圖2可以看出,單機(jī)左側(cè)為單機(jī)的后向網(wǎng)絡(luò),單機(jī)右側(cè)為單機(jī)的前向網(wǎng)絡(luò)。

  2.2切換電路設(shè)計

Image 003.jpg

  切換電路的接口示意圖如圖3所示,其中CANH1、CANL2用于與CAN總線驅(qū)動芯片的CANH、CANL相連,IO接口用于實(shí)現(xiàn)單機(jī)設(shè)備對切換電路內(nèi)部繼電器的控制。CANH2、CANL2用于連接前向通信CAN總線設(shè)備,CANH3、CANL3用于連接后向通信CAN總線設(shè)備。單機(jī)根據(jù)CAN總線指令控制IO端口實(shí)現(xiàn)各個CAN端口的連接與斷開,從而實(shí)現(xiàn)前向、后向通信的偵測。

Image 004.jpg

  切換電路內(nèi)部原理如圖4所示,由圖4可以看出,整個電路主要包括K1、K2、K3、K4、K5 五個繼電器,R1A、R2A兩個CAN總線終端匹配電阻。電路工作原理為:在單元初始上電狀態(tài)下,K1繼電器閉合,K2、K3繼電器斷開,K4、K5 繼電器通電分別與各自的1端進(jìn)行閉合。在此種狀態(tài)下,構(gòu)成的CAN總線網(wǎng)絡(luò)架構(gòu)與傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)完成相同,整個系統(tǒng)可按照傳統(tǒng)模式進(jìn)行工作。當(dāng)需要進(jìn)行網(wǎng)絡(luò)拓?fù)潢P(guān)系識別時,單機(jī)通過CAN總線接收到了網(wǎng)絡(luò)主機(jī)發(fā)送的要求本機(jī)進(jìn)行自動識別的指令時,單機(jī)通過IO控制,斷開K1繼電器,并同時接通K2、K3繼電器,從而使原來完整的一條CAN總線網(wǎng)絡(luò)形成了兩條獨(dú)立的CAN總線網(wǎng)絡(luò),其中R1A、R2A分別用于補(bǔ)充前向網(wǎng)絡(luò)、后向網(wǎng)絡(luò)中的終端匹配電阻,以便兩個獨(dú)立的CAN總線網(wǎng)絡(luò)均可以進(jìn)行獨(dú)立工作。然后控制K4、K5繼電器通電使CANH1、CANL1先與對應(yīng)繼電器的1端聯(lián)通,使本單機(jī)與后向網(wǎng)絡(luò)相連,單機(jī)向后向CAN總線網(wǎng)絡(luò)發(fā)送網(wǎng)絡(luò)架構(gòu)幀測幀,獲取后向各個單機(jī)的網(wǎng)絡(luò)編號,然后單機(jī)控制K4、K5繼電器通電使CANH1、CANL1與對應(yīng)繼電器的2端聯(lián)通,使單機(jī)與前向網(wǎng)絡(luò)相聯(lián)通,單機(jī)向前向CAN總線網(wǎng)絡(luò)發(fā)送網(wǎng)絡(luò)架構(gòu)幀測幀,獲取后向各個單機(jī)的網(wǎng)絡(luò)編號,最后單機(jī)恢復(fù)K2、K3斷電,K4、K5繼電器與1端閉合,K1通電導(dǎo)通恢復(fù)整個網(wǎng)絡(luò)的傳統(tǒng)架構(gòu),本單機(jī)發(fā)送所獲取的單機(jī)前后向設(shè)備編號數(shù)據(jù)給網(wǎng)絡(luò)管理單機(jī)。

  2.3系統(tǒng)工作過程設(shè)計

  整個網(wǎng)絡(luò)連接后關(guān)系如圖5所示,系統(tǒng)設(shè)定單機(jī)4為管理單機(jī)。整個系統(tǒng)的工作原理如下。

  首先上電后,各個單機(jī)均為上電初始狀態(tài),即整個系統(tǒng)的網(wǎng)絡(luò)架構(gòu)與傳統(tǒng)的網(wǎng)絡(luò)架構(gòu)相同,各個單機(jī)之間可按照傳統(tǒng)的模式進(jìn)行通信。然后系統(tǒng)根據(jù)用戶指令或預(yù)定的計劃由網(wǎng)絡(luò)管理單機(jī)(單機(jī)4)獲取單機(jī)前向、后向單機(jī)的ID號(參見切換電路工作原理)并記錄,再依據(jù)所獲取的設(shè)備ID號,依次給所有的單機(jī)發(fā)送獲取其前、后向網(wǎng)絡(luò)單機(jī)的指令,獲取相關(guān)的獲取單機(jī)前向、后向單機(jī)的ID號并記錄。當(dāng)網(wǎng)絡(luò)中所有的設(shè)備信息獲取完成后,網(wǎng)絡(luò)管理單機(jī)對數(shù)據(jù)進(jìn)行處理,獲得系統(tǒng)各單機(jī)的連接關(guān)系,輸出給設(shè)計人員或用戶平臺。

  

Image 005.jpg

  2.4數(shù)據(jù)處理方法設(shè)計

  如圖5所示,在管理單機(jī)完成數(shù)據(jù)提取工作后,其所獲數(shù)據(jù)如表1所示。

  

Image 008.jpg

  通過對數(shù)據(jù)的分析可以看出,每個設(shè)備的后向設(shè)備ID號的信息對于設(shè)備在網(wǎng)絡(luò)中的關(guān)系有一定的反映關(guān)系。通過初步分析總結(jié)歸納如下:首先通過查表獲取后向(或前向)為空的設(shè)備ID,將其作為整個網(wǎng)絡(luò)端首設(shè)備,如表1所示,單機(jī)1為網(wǎng)絡(luò)端首設(shè)備,然后查表獲取其他后向設(shè)備ID號只含有單機(jī)1的設(shè)備ID號,如表所示為單機(jī)2 ,之后通過查表方式查找其他后向設(shè)備ID只包含單機(jī)1、單機(jī)2的設(shè)備ID,依次查找,即可確定整個網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)潢P(guān)系。

  為驗(yàn)證方法的正確性,模擬各單機(jī)設(shè)備進(jìn)行重新編組,編組后的關(guān)系如圖6所示。

 

Image 006.jpg

  假設(shè)單機(jī)4為管理節(jié)點(diǎn),其自動獲取到的各單機(jī)的前后向網(wǎng)絡(luò)ID號如表2所示。

  

Image 009.jpg

  按照上述方法,首先查表獲取后向設(shè)備ID為空的設(shè)備為單機(jī)2,然后查表獲取后向設(shè)備ID僅含單機(jī)2的設(shè)備為單機(jī)1,然后查表獲取后向設(shè)別ID僅包含單機(jī)1、2的設(shè)備為單機(jī)5,然后獲取單機(jī)設(shè)備中僅含有單機(jī)1、2、5的設(shè)備為單機(jī)4,依次類推便可以自動獲取后向的關(guān)系,設(shè)備的順序依次為單機(jī)2、單機(jī)1、單機(jī)5、單機(jī)4、單機(jī)3、…、單機(jī)n。通過以上對數(shù)據(jù)的分析,證明是可以獲取系統(tǒng)設(shè)備的網(wǎng)絡(luò)邏輯關(guān)系的。

  為了提高效率,對數(shù)據(jù)進(jìn)行進(jìn)一步分析,通過表1、表2內(nèi)的數(shù)據(jù)可以看出,設(shè)備節(jié)點(diǎn)所處的位置與后向設(shè)備的ID數(shù)量有關(guān),即其所處的位置為后向設(shè)備ID數(shù)量+1的位置。另外前向設(shè)備ID中的數(shù)據(jù)規(guī)律與后向設(shè)備ID中的數(shù)據(jù)相同,可僅處理后向數(shù)據(jù)或前向數(shù)據(jù)即可。

  在現(xiàn)實(shí)CAN總線系統(tǒng)中,設(shè)備的ID號不一定是連續(xù)的,并且可能分成多個區(qū)段,為了解決這一問題,縮短系統(tǒng)比對時間,提高效率,對數(shù)據(jù)表進(jìn)行規(guī)定,要求所有的設(shè)備ID排列順序?yàn)閺男〉酱箜樞蚺帕校⑶乙来畏湃雽?yīng)的數(shù)組中,單機(jī)ID作為數(shù)據(jù)表中的一個屬性項(xiàng)。系統(tǒng)設(shè)定數(shù)組來進(jìn)行數(shù)據(jù)表管理,包含數(shù)組X[n][n]與設(shè)備ID號數(shù)組DVEID[n],X[n][n]用來存儲對應(yīng)單機(jī)ID設(shè)備的后向設(shè)備ID,

  

Image 007.jpg

  DVE-ID[i]用于存儲對應(yīng)的單機(jī)設(shè)備ID號,n為系統(tǒng)中的設(shè)備數(shù)。設(shè)定Y[n]為設(shè)備最終序列存儲數(shù)組,設(shè)備邏輯序列的具體流程圖如圖7所示。即通過判斷對應(yīng)設(shè)備ID的后向設(shè)備數(shù)量直接將對應(yīng)的本設(shè)備的ID號賦予最終數(shù)組的位置。通過一次處理即可獲取到設(shè)備邏輯序列,并輸出到Y(jié)[n]數(shù)組中。

3結(jié)論

  隨著控制系統(tǒng)中對信息化、智能化水平的要求越來越高,對于更多地、更智能地掌握整個控制系統(tǒng)中信息的要求越來越突出,控制系統(tǒng)中的總線網(wǎng)絡(luò)邏輯拓?fù)潢P(guān)系則是其中關(guān)鍵的一環(huán),順利掌握其信息,可以為全網(wǎng)絡(luò)提供更加智能的解決方案,同時為用戶提供更加直觀的系統(tǒng)架構(gòu)信息。本文針對CAN總線網(wǎng)絡(luò)架構(gòu)邏輯拓?fù)潢P(guān)系的自動識別,提出了通過增加切換電路的方法,改變了傳統(tǒng)的CAN總線網(wǎng)絡(luò)架構(gòu),根據(jù)網(wǎng)絡(luò)反饋數(shù)據(jù)提出了數(shù)據(jù)處理方法,并給出了整個系統(tǒng)的工作原理,圓滿地實(shí)現(xiàn)了基于CAN總線網(wǎng)絡(luò)架構(gòu)下邏輯拓?fù)潢P(guān)系識別的問題,同時可以為其他網(wǎng)絡(luò)的識別提供借鑒。

  參考文獻(xiàn)

 ?。?] 尚明玲. 基于SJA1000的CAN總線智能網(wǎng)橋設(shè)計[J]. 現(xiàn)代制造技術(shù)與裝備, 2015(4):8687.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。