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

  張向文,張帆,李向陽

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

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

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

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

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

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

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

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

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

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

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

  2.1總體設(shè)計(jì)

Image 002.jpg

  如圖2所示,在新的網(wǎng)絡(luò)架構(gòu)中與傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的區(qū)別主要有三點(diǎn):(1)在單機(jī)的CAN驅(qū)動(dòng)芯片與CAN總線電纜之間串入切換電路,切換電路用于完成總線網(wǎng)絡(luò)的前后向通信切換以及CAN總線電氣網(wǎng)路的補(bǔ)償;(2)每個(gè)單機(jī)的總線CANH、CANL均有兩對(duì)接口,與切換電路對(duì)應(yīng)的接口相連,系統(tǒng)中終端電阻仍在CAN總線電纜的兩頭掛接;(3)系統(tǒng)中設(shè)置網(wǎng)絡(luò)管理單機(jī),用于實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)拓?fù)浼軜?gòu)的識(shí)別與輸出,其可以使用任意單機(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è)計(jì)

Image 003.jpg

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

Image 004.jpg

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

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

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

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

  

Image 005.jpg

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

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

  

Image 008.jpg

  通過對(duì)數(shù)據(jù)的分析可以看出,每個(gè)設(shè)備的后向設(shè)備ID號(hào)的信息對(duì)于設(shè)備在網(wǎng)絡(luò)中的關(guān)系有一定的反映關(guān)系。通過初步分析總結(jié)歸納如下:首先通過查表獲取后向(或前向)為空的設(shè)備ID,將其作為整個(gè)網(wǎng)絡(luò)端首設(shè)備,如表1所示,單機(jī)1為網(wǎng)絡(luò)端首設(shè)備,然后查表獲取其他后向設(shè)備ID號(hào)只含有單機(jī)1的設(shè)備ID號(hào),如表所示為單機(jī)2 ,之后通過查表方式查找其他后向設(shè)備ID只包含單機(jī)1、單機(jī)2的設(shè)備ID,依次查找,即可確定整個(gè)網(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),其自動(dòng)獲取到的各單機(jī)的前后向網(wǎng)絡(luò)ID號(hào)如表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,依次類推便可以自動(dòng)獲取后向的關(guān)系,設(shè)備的順序依次為單機(jī)2、單機(jī)1、單機(jī)5、單機(jī)4、單機(jī)3、…、單機(jī)n。通過以上對(duì)數(shù)據(jù)的分析,證明是可以獲取系統(tǒng)設(shè)備的網(wǎng)絡(luò)邏輯關(guān)系的。

  為了提高效率,對(duì)數(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號(hào)不一定是連續(xù)的,并且可能分成多個(gè)區(qū)段,為了解決這一問題,縮短系統(tǒng)比對(duì)時(shí)間,提高效率,對(duì)數(shù)據(jù)表進(jìn)行規(guī)定,要求所有的設(shè)備ID排列順序?yàn)閺男〉酱箜樞蚺帕?,并且依次放入?duì)應(yīng)的數(shù)組中,單機(jī)ID作為數(shù)據(jù)表中的一個(gè)屬性項(xiàng)。系統(tǒng)設(shè)定數(shù)組來進(jìn)行數(shù)據(jù)表管理,包含數(shù)組X[n][n]與設(shè)備ID號(hào)數(shù)組DVEID[n],X[n][n]用來存儲(chǔ)對(duì)應(yīng)單機(jī)ID設(shè)備的后向設(shè)備ID,

  

Image 007.jpg

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

3結(jié)論

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

  參考文獻(xiàn)

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


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