基于CANopen總線協(xié)議的城市地鐵數(shù)據(jù)通信網(wǎng)設(shè)計
摘要:介紹了CANopen總線協(xié)議的通信接口以及啟動和仲裁機制,給出了在軌道交通車輛網(wǎng)絡(luò)監(jiān)測系統(tǒng)中引入CANopen總線協(xié)議來實現(xiàn)CAN-open應(yīng)用層功能的設(shè)計方法。同時給出了列車通信層的網(wǎng)絡(luò)拓撲結(jié)構(gòu)以及CANopen接口的配置過程。
關(guān)鍵詞:CANopen;總線協(xié)議;地鐵通信;網(wǎng)絡(luò)接口
0 引言
城市軌道交通網(wǎng)絡(luò)的快速發(fā)展,給智能化、網(wǎng)絡(luò)化的地鐵通信提出了新的要求。事實上,城市軌道交通系統(tǒng)也必須具有一套專門負責(zé)城市地鐵中列車各模塊的數(shù)據(jù)采集、分析系統(tǒng),以對列車各設(shè)備實施監(jiān)測,提高列車車輛的運行安全。
通過地鐵通信網(wǎng)絡(luò)可對列車的運行、狀態(tài)和故障進行監(jiān)測和診斷,同時也可以對旅客服務(wù)信息進行綜合處理。它可以應(yīng)用多種總線技術(shù)把分布于各車廂內(nèi)部的、可以獨立完成特定功能的計算機互連起來,從而形成一種局域網(wǎng),進而實現(xiàn)資源共享、協(xié)同工作、分散監(jiān)測和集中操作。
CAN是一種可有效支持分布式控制和實時控制的串行通信網(wǎng)絡(luò),該總線具有很高的時效性、可靠性、抗干擾能力和檢錯能力,而且開發(fā)費用比較低??梢詰?yīng)用于城市軌道交通車輛的現(xiàn)場總線中。但是,CAN總線只是對網(wǎng)絡(luò)的物理層和數(shù)據(jù)鏈路層進行了規(guī)范,而沒有對應(yīng)用層做相應(yīng)的說明。為此,本文給出了通過配置CANopen網(wǎng)絡(luò)接口來對地鐵現(xiàn)場控制系統(tǒng)中各個部分的主要參數(shù)進行采集,并通過CANopen總線發(fā)送到服務(wù)器的實現(xiàn)方法。
1 CANopen簡介
CANopen是基于CAN-bus的分布式工業(yè)控制技術(shù)標準。它是由生產(chǎn)商和用戶聯(lián)合CiA共同開發(fā)的一種CENELEC EN 50325-4標準。CANopen已經(jīng)在廣泛的工業(yè)通信上建立了標準(例如:機械工程,驅(qū)動系統(tǒng)和組件,醫(yī)療設(shè)備,樓宇自動化,交通工具等等)。CANopen的基本通信機制被
稱為通信描述,不同的生產(chǎn)廠商可以協(xié)調(diào)使用一個CANopen網(wǎng)絡(luò)。通信描述的結(jié)構(gòu)增補是為專門的應(yīng)用而設(shè)計的,這就是結(jié)構(gòu)怎樣定義安全數(shù)據(jù)傳輸(“CANopen Safety”)或可編程設(shè)備(例如PLC)。對象詞典是每個CANopen設(shè)備的中心元素,具有描述設(shè)備的功能。
1.1 對象詞典(Objeet Directory)
對象詞典是每個CANopen設(shè)備的中心元素,可用于描述網(wǎng)絡(luò)上設(shè)備的所有功能。對象詞典可描述網(wǎng)絡(luò)和應(yīng)用程序之間的接口,所有對象詞典的人口都引用16位的索引和8位子索引。對象詞典包含著所有通過網(wǎng)絡(luò)訪問的參數(shù),例如設(shè)備標識符、生產(chǎn)商名、PDOs和SDOs的通信參數(shù)、設(shè)備監(jiān)控(“error control”)等都保存在對象詞典的通用區(qū)。設(shè)備描述區(qū)包含有IO功能(開關(guān)量和模擬量的輸入和輸出)、以及設(shè)備參數(shù)和PLC映射。如果發(fā)生錯誤,對象詞典還可以配置其行為。因此,對象詞典可以使設(shè)備行為符合各自的應(yīng)用。
對象詞典位于通信層和用戶層之間,其主要作用是為用戶提供服務(wù)接口。圖1所示是一個對象詞典在CANopen設(shè)備模型中的結(jié)構(gòu)圖。
1.2 設(shè)備描述
設(shè)備描述表用于描述自動控制系統(tǒng)中主要設(shè)備的類型屬性和特點。它定義了標準設(shè)備類型的功能和參數(shù),所有的參數(shù)都保存在對象詞典中,從而可保證CAN-bus用同一方式訪問CANopen設(shè)備。通過不同生產(chǎn)商設(shè)備的互用性和可交換性,可為多客戶需求提供先決條件。用戶也可為開關(guān)量和模擬量的I/O設(shè)備、PLC設(shè)備和控制器定義設(shè)備描述表,以便在標準的EDS文件中用ASCII形式描述CANopen設(shè)備的參數(shù)和屬性,并作為一個包含所有設(shè)備屬性的表格訪問網(wǎng)絡(luò)。專門設(shè)備配置的實時參數(shù)通常保存在DCF(deviee configurationfile)中,DCF是繼承于EDS的配置文件。
1.3 使用PDO/SDO進行數(shù)據(jù)傳輸
CANopen的數(shù)據(jù)傳輸具有兩個不同的數(shù)據(jù)傳輸機制,CANopen一般用過程數(shù)據(jù)對象(PDOs,Process Data Object)來處理短過程數(shù)據(jù)的快速交換,并通過SDO(Service Data Object)訪問對象詞典的人口。PDO可根據(jù)事件約束來循環(huán)或查詢傳輸,其傳輸采用無協(xié)議廣播形式。一個PDO傳輸可以達到八個字節(jié),一個同步信息可同步網(wǎng)絡(luò)上數(shù)據(jù)的發(fā)送和遷移。每個PDO的屬性都可以在對象詞典中進行配置,其中包含通信參數(shù)(CAN標識符、傳輸類型等)和為每個PDO映射分配過程的數(shù)據(jù)。SDO則通過2個CAN-telegrams證實數(shù)據(jù)傳輸,并在兩個設(shè)備間建立點對點的通信。這樣,一個大的數(shù)據(jù)包(大于8字節(jié))就能被傳輸給每個SDO。
1.4 CANopen通信接口
CANopen協(xié)議中將通信對象分為四種:網(wǎng)絡(luò)管理對象(Network Management object,NMT),服務(wù)數(shù)據(jù)對象(SDO),過程數(shù)據(jù)對象(PDO)和預(yù)
定義報文/特殊功能對象。其中網(wǎng)絡(luò)管理對象(NMT)負責(zé)層管理、網(wǎng)絡(luò)管理和ID分配;服務(wù)數(shù)據(jù)對象用于對對象詞典中的項進行訪問,此類報
文可以工作在預(yù)操作狀態(tài)和正常狀態(tài);過程數(shù)據(jù)對象工作在正常操作狀態(tài),可以傳送8個數(shù)據(jù)字節(jié),也就是64個狀態(tài)位。通常用于實時數(shù)據(jù)的傳送:預(yù)定義報文/特殊功能對象可為CANopen設(shè)備提供特定的功能,以方便CANopen主站對從站的管理。
1.5 CANopen總線的啟動和仲裁機制
在網(wǎng)絡(luò)初始化過程中,CANopen可支持最小boot-up機制和擴展boot-up機制,其中擴展boot-up是可選的,而所有CANopen設(shè)備和節(jié)點都必須能夠支持最小的boot-up機制。
當(dāng)兩個或更多的結(jié)點在同時發(fā)送時,往往可能產(chǎn)生數(shù)據(jù)沖突,這樣,CANopen總線就必須有一個仲裁機制,以便在發(fā)生沖突時可以可靠地分配總線給一個預(yù)備發(fā)送的結(jié)點。這個策略叫做總線仲裁。CAN總線使用一位一位的總線仲裁方式。當(dāng)兩個CAN站同時發(fā)送時,其發(fā)送權(quán)力可由顯性總線狀態(tài)決定。通過監(jiān)視總線,當(dāng)一個結(jié)點失去了總線仲裁時,它會被立即偵察到并停止發(fā)送,而當(dāng)所有的結(jié)點都發(fā)送一個隱性位時,總線只在隱性狀態(tài)。事實上,只要有一個結(jié)點發(fā)送一個顯性位,整個總線電平就都是顯性的。
2 城市軌道列車通信網(wǎng)絡(luò)的設(shè)計
2.1 列車現(xiàn)場控制級通信網(wǎng)絡(luò)
本文以4輛地鐵列車車廂編組為對象來進行列車通信網(wǎng)絡(luò)的設(shè)計,4輛地鐵列車車廂由兩個車輛單元組成,每一個單元包含帶司機室的拖車(Trail car with cab,Tc)和帶受電弓的動車(MotorCar with pantograph,Mp)。圖2所示是基于CAN總線網(wǎng)絡(luò)的列車通信網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計圖。
該列車通信網(wǎng)絡(luò)系統(tǒng)參照TCN(Topology Change Notification)配置,采用的是CAN總線,列車編組單元內(nèi)的車輛總線采用CANopen協(xié)議。
所設(shè)計的地鐵列車通信網(wǎng)絡(luò)系統(tǒng)是基于輕型、模塊化和分布式設(shè)計,列車網(wǎng)絡(luò)采用兩級總線的層次結(jié)構(gòu)。本系統(tǒng)采用兩路CAN總線來將各子系統(tǒng)的控制單元合理地分配到這兩路CAN總線上。每路CAN總線在Mp(帶受電弓的動車)車上有一個中繼器,各個子系統(tǒng)提供的CANopen接口都連接
到列車總線,以便于傳遞控制數(shù)據(jù)和狀態(tài)數(shù)據(jù)。列車控制監(jiān)控系統(tǒng)可監(jiān)視各子系統(tǒng)設(shè)備,同時接收各子系統(tǒng)的故障和狀態(tài)數(shù)據(jù),并通過總線控制子系統(tǒng)以完成相應(yīng)的功能。
一般情況下,在選擇網(wǎng)絡(luò)拓撲結(jié)構(gòu)時,應(yīng)考慮到網(wǎng)絡(luò)的適應(yīng)性、可靠性、可擴充性等性能,以選擇合理的網(wǎng)絡(luò)拓撲結(jié)構(gòu),從而實現(xiàn)機車設(shè)備級CAN總線網(wǎng)絡(luò)物理層的高可靠性。本文選擇的CAN總線型網(wǎng)絡(luò)拓撲結(jié)構(gòu)能夠更好地運行列車自動系統(tǒng),其中包括列車自動保護系統(tǒng)(ATP)和列車自動運行系統(tǒng)(ATO)。
2.2 VCU控制單元
城市地鐵列車網(wǎng)絡(luò)的硬件系統(tǒng)通常由列車車輛控制單元(VCU),遠程輸入輸出模塊(RemoteI/O Module,RIOM),司機顯示單元(DDU),列車通信中繼器(Repeater)等組成。其中列車車輛控制單元(VCU)用于通過車輛總線連接各子設(shè)備,負責(zé)列車網(wǎng)絡(luò)中各種數(shù)據(jù)的傳輸和管理,列車車輛控制單元與列車各子系統(tǒng)通信,可以采集列車運行時各子系統(tǒng)的數(shù)據(jù),并將相應(yīng)的控制指令發(fā)送到各子系統(tǒng),以便對列車各設(shè)備實施列車級控制。VCU可選用高性能的列車專用PLC來實現(xiàn)。列車上的兩臺VCU分為強主VCU和弱主VCU,兩個VCU互為冗余。在強主VCU工作時,弱主VCU一直處于偵聽狀態(tài),同時也可接收網(wǎng)絡(luò)上傳送的任何數(shù)據(jù),但不行使網(wǎng)絡(luò)管理和控制功能。只有當(dāng)強主VCU發(fā)生故障時,弱主VCU將馬上自動接替強主VCU工作,從而保證列車的正常運行。
2.3 配置過程
本設(shè)計在CANopen通信網(wǎng)絡(luò)的基礎(chǔ)上,以牽引系統(tǒng)為例來設(shè)計牽引系統(tǒng)與控制單元之間的通信網(wǎng)絡(luò)接口,然后由列車主控制器VCU完成監(jiān)測過程中數(shù)據(jù)的處理和虛擬儀器的工作。圖3所示是由VCU完成監(jiān)測控制的程序流程圖。
當(dāng)系統(tǒng)進行完網(wǎng)絡(luò)管理狀態(tài)轉(zhuǎn)換之后,即可對控制系統(tǒng)節(jié)點啟動配置過程,具體步驟是在DCU不在線時,由VCU通過SDO周期性詢問DCU
是否在線;如果DCU已經(jīng)連接到CAN總線上,則由DCU響應(yīng)VCU的SDO請求;之后,再由VCU配置DCU的Rx PDO和Tx PDO,對象為14xxh和18xxh;之后由VCU配置DCU的消費者心跳,對象為1016h;同時由VCU配置DCU的生產(chǎn)者心跳,對象為1017h;最后,由VCU啟動DCU系統(tǒng)。此時,DCU系統(tǒng)將處于預(yù)操作模式,之后,DCU系統(tǒng)將進入操作階段,這時,PDO就能夠進行交換了。
在CANopen網(wǎng)絡(luò)對牽引的控制過程中,其傳輸?shù)臄?shù)據(jù)類型有過程數(shù)據(jù)(PDO)、服務(wù)數(shù)據(jù)(SDO)、網(wǎng)絡(luò)管理數(shù)據(jù)(NMT)、時間戳(TimeStamp)和心跳數(shù)據(jù)(Heart-Beat)。其中過程數(shù)據(jù)用于傳輸DCU狀態(tài)數(shù)據(jù)、故障數(shù)據(jù)、控制指令等;服務(wù)數(shù)據(jù)指的是DCU系統(tǒng)所提供的一個SDO信道,這個信道用于網(wǎng)絡(luò)配置;網(wǎng)絡(luò)管理表示VCU使用NMT對象來管理和控制DCU通信;時間戳的作用主要是為了同步,通常VCU會周期性地廣播一個標準的時間戳到DCU,以便使DCU實時時鐘與VCU同步;此外,系統(tǒng)中的DCU也將周期性地產(chǎn)生一個心跳信息,這樣,VCU就可以通過檢測DCU心跳信息來了解其狀態(tài);反之亦然。
3 結(jié)束語
利用CANopen總線網(wǎng)絡(luò)拓撲結(jié)構(gòu)能很好地連接城市軌道列車的各個數(shù)據(jù)模塊。另外,CANopen總線強大的數(shù)據(jù)傳輸能力,也可以讓列車通信模塊變得容易擴充。應(yīng)當(dāng)說明的是,CANopen總線協(xié)議的接口配置對不同的應(yīng)用系統(tǒng)各有不同,而不同的配置也會影響通信速率,因此,只有合理配置,才能保證整個列車通信系統(tǒng)的正常工作。