張向文,張 帆,李向陽(yáng)
(北京航天發(fā)射技術(shù)研究所,北京 100076)
一種自動(dòng)獲取CAN網(wǎng)絡(luò)拓?fù)潢P(guān)系的方法研究
張向文,張 帆,李向陽(yáng)
(北京航天發(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ǔ)。
CAN總線;網(wǎng)絡(luò)拓?fù)?;編組;邏輯序列;動(dòng)態(tài)分離
圖1 傳統(tǒng)CAN總線網(wǎng)絡(luò)組成示意圖
控制器局域網(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)獲取的方法。
傳統(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ī)通過(guò)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ī)均可以無(wú)差別地實(shí)現(xiàn)與網(wǎng)絡(luò)中所有單機(jī)的通信,滿足了一對(duì)多的高效通信,有效提高了系統(tǒng)的通信效率[8-9]。但是在這種網(wǎng)絡(luò)架構(gòu)下,網(wǎng)絡(luò)中的單機(jī)無(wú)法實(shí)現(xiàn)對(duì)其他單機(jī)設(shè)備處于本設(shè)備的那個(gè)方向的識(shí)別,從而無(wú)法構(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)信息是無(wú)法完成的。
為解決傳統(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ì)
如圖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è)備來(lái)執(zhí)行相應(yīng)的功能。另外為了方便后續(xù)描述,本文規(guī)定了前向、后向網(wǎng)絡(luò)的方向,由圖2可以看出,單機(jī)左側(cè)為單機(jī)的后向網(wǎng)絡(luò),單機(jī)右側(cè)為單機(jī)的前向網(wǎng)絡(luò)。
圖2 自動(dòng)網(wǎng)絡(luò)拓?fù)潢P(guān)系識(shí)別網(wǎng)絡(luò)架構(gòu)示意圖
2.2 切換電路設(shè)計(jì)
圖3 切換電路的接口示意圖
切換電路的接口示意圖如圖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è)。
切換電路內(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ī)通過(guò)CAN總線接收到了網(wǎng)絡(luò)主機(jī)發(fā)送的要求本機(jī)進(jìn)行自動(dòng)識(shí)別的指令時(shí),單機(jī)通過(guò)IO控制,斷開K1繼電器,并同時(shí)接通K2、K3繼電器,從而使原來(lái)完整的一條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ī)。
圖4 切換電路的原理圖
2.3 系統(tǒng)工作過(guò)程設(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)。
圖5 單機(jī)連接示意圖1
2.4 數(shù)據(jù)處理方法設(shè)計(jì)
如圖5所示,在管理單機(jī)完成數(shù)據(jù)提取工作后,其所獲數(shù)據(jù)如表1所示。
表1 網(wǎng)絡(luò)管理節(jié)點(diǎn)獲取的數(shù)據(jù)
通過(guò)對(duì)數(shù)據(jù)的分析可以看出,每個(gè)設(shè)備的后向設(shè)備ID號(hào)的信息對(duì)于設(shè)備在網(wǎng)絡(luò)中的關(guān)系有一定的反映關(guān)系。通過(guò)初步分析總結(jié)歸納如下:首先通過(guò)查表獲取后向(或前向)為空的設(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 ,之后通過(guò)查表方式查找其他后向設(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所示。
圖6 單機(jī)連接示意圖2
假設(shè)單機(jī)4為管理節(jié)點(diǎn),其自動(dòng)獲取到的各單機(jī)的前后向網(wǎng)絡(luò)ID號(hào)如表2所示。
表2 重新后網(wǎng)絡(luò)管理節(jié)點(diǎn)獲取的數(shù)據(jù)
按照上述方法,首先查表獲取后向設(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。通過(guò)以上對(duì)數(shù)據(jù)的分析,證明是可以獲取系統(tǒng)設(shè)備的網(wǎng)絡(luò)邏輯關(guān)系的。
為了提高效率,對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步分析,通過(guò)表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ù)即可。
圖7 設(shè)備邏輯關(guān)系鏈表獲取流程圖
在現(xiàn)實(shí)CAN總線系統(tǒng)中,設(shè)備的ID號(hào)不一定是連續(xù)的,并且可能分成多個(gè)區(qū)段,為了解決這一問(wèn)題,縮短系統(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ù)組來(lái)進(jìn)行數(shù)據(jù)表管理,包含數(shù)組X[n][n]與設(shè)備ID號(hào)數(shù)組DVE-ID[n],X[n][n]用來(lái)存儲(chǔ)對(duì)應(yīng)單機(jī)ID設(shè)備的后向設(shè)備ID,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所示。即通過(guò)判斷對(duì)應(yīng)設(shè)備ID的后向設(shè)備數(shù)量直接將對(duì)應(yīng)的本設(shè)備的ID號(hào)賦予最終數(shù)組的位置。通過(guò)一次處理即可獲取到設(shè)備邏輯序列,并輸出到Y(jié)[n]數(shù)組中。
隨著控制系統(tǒng)中對(duì)信息化、智能化水平的要求越來(lái)越高,對(duì)于更多地、更智能地掌握整個(gè)控制系統(tǒng)中信息的要求越來(lái)越突出,控制系統(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í)別,提出了通過(guò)增加切換電路的方法,改變了傳統(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í)別的問(wèn)題,同時(shí)可以為其他網(wǎng)絡(luò)的識(shí)別提供借鑒。
[1] 尚明玲.基于SJA1000的CAN總線智能網(wǎng)橋設(shè)計(jì)[J].現(xiàn)代制造技術(shù)與裝備,2015(4):86-87.
[2] 彭鐵牛,席自強(qiáng).基于CAN總線的汽車網(wǎng)絡(luò)控制研究[J].信息系統(tǒng)工程,2016(3):41.
[3] 陳美霞,邵國(guó)棟,張軍賢.列車綜合網(wǎng)絡(luò)控制系統(tǒng)一體化設(shè)計(jì)研究[J].城市軌道交通研究,2016,19(1):74-78.
[4] 楊遠(yuǎn)燕,李文正,王爭(zhēng).基于自動(dòng)重聯(lián)的列車網(wǎng)絡(luò)控制系統(tǒng)在新型跨座式單軌上的應(yīng)用 [J].科技創(chuàng)新與應(yīng)用,2016(1):163,165.
[5]王渙,劉鐘宇.CAN總線網(wǎng)路節(jié)點(diǎn)電路設(shè)計(jì)[J].微處理機(jī),2013,34(4):14-15.
[6]王冬良.基于CAN總線的轉(zhuǎn)向角傳感器采集電路設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014,33(22):77-79.
[7] 韓建,田博文,王春龍.基于FPGA的CAN總線網(wǎng)絡(luò)故障檢測(cè)修復(fù)系統(tǒng)研究[J].化工自動(dòng)化及儀表,2014(9):1040-1042.
[8] 陸遠(yuǎn).汽車CAN總線網(wǎng)絡(luò)結(jié)構(gòu)測(cè)試研究及分析[J].汽車電器,2014(10):52-56.
[9] 景曉峰.基于CAN總線的汽車電氣控制系統(tǒng)設(shè)計(jì)研究[J].山東工業(yè)技術(shù),2016(5):240.
Research on a method of automatically obtaining the network topology of CAN bus
Zhang Xiangwen,Zhang Fan,Li Xiangyang
(Beijing Institute of Space Launch Technology,Beijing 100076,China)
With the development of the intelligent of control-system,fast-automatic recognition of the CAN network topology has became an urgent technology.Based on the new middleware and dynamic separation of CAN,a switching circuit has been designed.The principle of the system,especially the circuit system was introduced,the data processing was elaborated, and the goal of fast-automatic recognition of the CAN network topology was achieved,which lays the foundation of follow-up related technologies.
CAN bus; network topology; grouping;logical sequence;dynamic separation
TN710
A
10.19358/j.issn.1674- 7720.2017.10.021
張向文,張帆,李向陽(yáng).一種自動(dòng)獲取CAN網(wǎng)絡(luò)拓?fù)潢P(guān)系方法的研究[J].微型機(jī)與應(yīng)用,2017,36(10):74-76,80.
2016-11-28)
張向文(1979-),男,碩士研究生,主要研究方向:控制專業(yè)智能化、無(wú)人駕駛技術(shù)、信息化技術(shù)。