劉夏陽,吳慶豐,黃松濤,李小紅
(1 新譽集團有限公司,江蘇常州213011;2 江蘇常牽龐巴迪牽引系統(tǒng)有限公司,江蘇常州213011)
列車通信網(wǎng)絡(luò)(TCN)是國際電工委員會(IEC)于20世紀90年代與國際鐵路聯(lián)盟(UIC)合作開發(fā)符合IEC 61375標準的鐵路專用的現(xiàn)場總線,隨著車載智能化電氣設(shè)備增多,傳統(tǒng)的WTB與MVB總線局限性漸漸顯露出來,如逼近帶寬上限,設(shè)備成本仍是開放式控制局域網(wǎng)(CANOpen)、以太網(wǎng)總線設(shè)備的數(shù)十倍,物理接口難于兼容,導致車載系統(tǒng)總線種類多、存在不同總線的轉(zhuǎn)換網(wǎng)關(guān)而增加額外成本,同時需要不同的總線配置與分析工具,因此基于高性能、標準化的TCP/IP或UDP/IP的傳輸協(xié)議已成為一種必然。龐巴迪向德國與新西蘭交付的基于車載以太網(wǎng)的區(qū)間列車就成為首個采用以太網(wǎng)協(xié)議的列車控制與網(wǎng)絡(luò)成功案例,與傳統(tǒng)TCN網(wǎng)絡(luò)相比降低了成本與提升了功能的擴展性。列車以太網(wǎng)的核心概念之一就是確定如何尋址車載以太網(wǎng)設(shè)備。
以太網(wǎng)互聯(lián)列車通信網(wǎng)絡(luò)(IP-TCN)尋址不僅需考慮在以太網(wǎng)互聯(lián)層次上尋址,同時也需在更高的功能層及物理底層尋址(MAC地址),這對基于IP-TCN的列車控制管理系統(tǒng)(TCMS)的部署是至關(guān)重要的;尋址方案不僅要識別TCMS系統(tǒng)中硬件設(shè)備,并能根據(jù)相應的基礎(chǔ)通信協(xié)議以訪問相應的資源;既要考慮傳統(tǒng)TCN列車的應用經(jīng)驗,又要兼顧以太網(wǎng)行業(yè)的統(tǒng)一資源標志符(URI)尋址的規(guī)約;
IP-TCN尋址方案的困難在于列車網(wǎng)絡(luò)及編組的動態(tài)性,如構(gòu)成列車的編組單元數(shù)量與順序可能會變化、車載功能冗余設(shè)備故障情況下的切換,因此尋址方案的根本性要求是須解決允許應用程序從功能應用層面上尋址訪問列車內(nèi)外的特定功能,而無須關(guān)注這些邏輯功能地址與實際物理地址之間的映射關(guān)系。邏輯功能地址借用以太網(wǎng)行業(yè)中采用ASCII碼字符串的常規(guī)表示方式,如采用“dr@vcu1.lead Car.lead Cst.train17”來識別訪問位于某17號列車編組單元1主控車廂內(nèi)的數(shù)據(jù)記錄儀,先將ASCII碼字符串轉(zhuǎn)換成TCP/UDP的IP地址與訪問端口號,然后將其翻譯成網(wǎng)絡(luò)設(shè)備的物理地址(MAC)。
從上面簡單分析說明IP-TCN列車尋址方案至少應包含物理硬件地址(MAC)、IP網(wǎng)絡(luò)地址及邏輯功能地址,及其不同層次地址之間的映射關(guān)系,在一般應用程序中通過邏輯功能地址來訪問設(shè)備,在某些特定應用與服務(wù)程序中可采用IP網(wǎng)絡(luò)地址乃至物理硬件MAC地址直接訪問。表1反映了此地址方案與開放系統(tǒng)互聯(lián)(OS I)7層協(xié)議模型中的對應關(guān)系:
尋址方案還應兼顧軌道車輛應用的一些特殊要求:
(1)如單元編組構(gòu)成的子網(wǎng)在列車編組發(fā)生改變時(沒有列車級通信)時仍可正常工作,這就要求單元編組子網(wǎng)的MAC地址與IP地址須靜態(tài)分配,另外整個IP網(wǎng)絡(luò)須采用列車級主干網(wǎng)與單元編組子網(wǎng)的層次化結(jié)構(gòu)。
表1 地址方案與開放系統(tǒng)互聯(lián)7層協(xié)議模型對應關(guān)系
(2)對跨境或跨界運營的列車可能會存在來自不同車輛制造商或鐵路運營商的車輛,應無需由專門特定的組織來給所有列車分配唯一的網(wǎng)絡(luò)地址,避免地址分配的集中管理將有助于簡化列車網(wǎng)絡(luò)管理。
(3)考慮到與UIC 556的一致性,列車以太網(wǎng)尋址須符合UIC 556中定義的地址結(jié)構(gòu),如包含車輛編組及順位信息等。
(4)簡化調(diào)試過程部件的安裝及故障部件替換,最好具備"即插即用"的功能,這就要求根據(jù)不同安裝位置、不同類型的網(wǎng)絡(luò)設(shè)備可以分配固定的IP網(wǎng)絡(luò)地址,并且在不同列車編組網(wǎng)絡(luò)中可以有相同的IP地址。
根據(jù)前面分析,應用程序需盡可能不受IP地址分配與網(wǎng)絡(luò)動態(tài)變化的影響,很好的一個例子是位于列車兩端的冗余數(shù)據(jù)記錄儀在列車行駛方向改變或工作數(shù)據(jù)記錄儀故障切換時,車載或地面設(shè)備需要上載記錄時,應用程序應無需知道實際工作的記錄儀是哪一個。基本方法是從網(wǎng)絡(luò)地址抽象出來而采用特定的會話名字來替代,IP-TCN列車尋址方案中定義為“邏輯功能地址”,此概念源自于UIC 556并結(jié)合以太網(wǎng)應用進行了優(yōu)化。邏輯功能尋址要滿足TCMS設(shè)備之間過程數(shù)據(jù)與消息數(shù)據(jù)交換實時性的要求,同時參照互聯(lián)網(wǎng)標準統(tǒng)一資源標志符(RFC 3986)定義,IP-TCN網(wǎng)絡(luò)資源應理解為實現(xiàn)某特定功能的應用或系統(tǒng)軟件與組件,用IPT-URI表示。
據(jù)此對IP-TCN網(wǎng)絡(luò)中功能資源采用“f un@host”格式定義,“f un”是指所識別的TCMS通信功能,而“host”是指實現(xiàn)此功能設(shè)備的網(wǎng)絡(luò)接口地址。由通信固件將IPT-URI中的“host”設(shè)備地址轉(zhuǎn)化成發(fā)送所需的物理以太網(wǎng)IP地址,由于IP-TCN網(wǎng)絡(luò)的動態(tài)性因此該轉(zhuǎn)化過程也是動態(tài)的;另外通信固件還需翻譯IPURI中的“f un”部分,以識別網(wǎng)絡(luò)數(shù)據(jù)所需達到的應用或系統(tǒng)組件。
IPT-URI的語法定義格式可參見RFC 3986采用巴科斯—諾爾范式(BNF)標注法(圖1)。
圖1 巴科斯——諾爾范式標注法
IPT:∥為URI語法,是一個可以擴展的命名系統(tǒng),對應每個尋址方案可以要求更嚴格的語法及特定的方案標志,以“IPT”起始來表示以太網(wǎng)列車通信網(wǎng)絡(luò)(IP-TCN)的尋址方案;實例句柄為表示某個功能號的應用實例;功能號為應用程序或系統(tǒng)組件中軟件功能號;設(shè)備終端為用于設(shè)備車載設(shè)備終端;車廂號為用于標志設(shè)備終端所在的車廂;編組號為識別終端設(shè)備所在的基本運轉(zhuǎn)編組;列車號為識別終端設(shè)備所在的列車,列車號省略時表示本列車,此時URI應以編組號結(jié)束(如:ipt:∥instance.function@device.car.consist)。
IPT-URI中的用戶部分“實例句柄.功能號”允許尋址終端設(shè)備應用中的某個功能或其多個應用實例,可用作源數(shù)據(jù)地址(S)或目的數(shù)據(jù)地址(D);同時可預定義一些實例句柄與功能名,如aInst表示某功能的所有實例等。
UIC 556推薦定義了一些列車應用功能的通用標志,因此在IP-TCN尋址方案中的功能號可以借用其常規(guī)的命名約定如“司機室”對應的功能名為“cab”、廣播功能對應為“pub Adr”等,以保持良好的兼容性,這尤其在UIC國際列車應用中是必須遵循的。
某些情況下,功能組尋址方式將優(yōu)于單個功能尋址,在IP-TCN尋址中也是可能的,但應考慮以下局限性:在接收數(shù)據(jù)的終端設(shè)備中應對所有功能復制所接收的數(shù)據(jù),此功能須有通信固件來處理;另外IP-TCN尋址并不區(qū)分單個功能與功能組,這對于需要確認的消息數(shù)據(jù)通信是非常關(guān)鍵的,因為通信系統(tǒng)僅期望收到最多一個來自終端設(shè)備的應答,須由通信協(xié)議堆棧固件來確保功能組的成員只發(fā)送一個消息應答報文。
IPT-URI的主機用來確定列車以太通信網(wǎng)絡(luò)中源數(shù)據(jù)或目的數(shù)據(jù)位置,相應定義了設(shè)備級的通信端點,列車以太網(wǎng)支持點對點與一對多的通信形式。在一對多通信時,可采用組設(shè)備下定義,組設(shè)備可以局限在某列車特定區(qū)域內(nèi),如某個車廂、某個基本運轉(zhuǎn)編組或某列車??赏ㄟ^一些預定義的標志來尋址特定的設(shè)備組如l Dev表示用于尋址位于本地設(shè)備上的所有可尋址的功能。
單個設(shè)備地址示例有:設(shè)備名.本車,設(shè)備名.本廂號.本編組等。
組設(shè)備尋址示例有:grp All.aCar.l Cat,grp All.a Car.aCst.l Train。
UIC 556提供了某車或某編組的群組訪問功能,可以向某些特定車輛的應用發(fā)送數(shù)據(jù),如晚上臥車門上鎖。類似的,在IP-TCN中可定義列車級專門設(shè)備組與屬于該設(shè)備組的終端設(shè)備來實現(xiàn)(如臥車的門控制器),但像“gr p Car XXX”顯示的定義車組在IPT尋址方案是不支持的。
整個IPv4地址空間包含232個地址,其中大多數(shù)地址是全局分配為唯一的,但其中有3個地址范圍是作為內(nèi)網(wǎng)專用,作為目的地址時將不會尋址到專網(wǎng)以外的設(shè)備。
A類的10.0.0.0~10.255.255.255,B類的:172.16.0.0~172.31.255.255,C類的192.168.0.0~192.168.255.255;每個地址塊可進一步分成具有一定數(shù)量主機的子網(wǎng),根據(jù)RFC 1519的無類別域間路由(CIDR),可以靈活的安排一定數(shù)量的子網(wǎng)及主機,如10.0.0.0/16定義了16位子網(wǎng)掩碼,給出了254個子網(wǎng),每個子網(wǎng)有65 535臺主機;如10.0.0.0/18給出18位子網(wǎng)掩碼,對應1 024個子網(wǎng),每個子網(wǎng)有16 384臺主機。
原則上列車以太網(wǎng)絡(luò)只是局部靜態(tài)的以太網(wǎng),可作為兩種方式嵌入于運營商的網(wǎng)絡(luò),一種是從運營商網(wǎng)絡(luò)保留一定的地址空間,也就是列車以太網(wǎng)直接屬于運營商網(wǎng)絡(luò)的一部分;稱為靜態(tài)IP地址分配方式;另一種可能是給每個列車網(wǎng)絡(luò)定義一個獨立的局部地址空間,“動態(tài)”IP地址分配方式。實際應用,兩種分配方案都可能采用,下面分別討論。
對所有列車的每個以太網(wǎng)設(shè)備須在運營商網(wǎng)絡(luò)的地址空間中分配唯一的IP地址(典型域名為:10.0.0.0/8);可通過地址分配集中管理及通過唯一車輛ID對應獲得;此分配方式對小規(guī)模的列車組比較容易,只需2層網(wǎng)絡(luò)交換機就可構(gòu)建,但對國際聯(lián)運列車大規(guī)模列車組時,集中管理困難并且缺少透明度,對中間網(wǎng)絡(luò)設(shè)備如交換機不能校驗發(fā)送者所尋址的車輛是否為一個舊編組狀態(tài),同時列車級、車廂級之間網(wǎng)絡(luò)沒有適當隔離。
通過動態(tài)IP地址分配方案,避免靜態(tài)分配方案要求整個列車組所有以太網(wǎng)設(shè)備IP地址唯一的缺點,而只需在基本運轉(zhuǎn)編組(Consist)級地址唯一分配。因此在同一列車不同編組單元內(nèi)的地址可以重疊,通過定義編組間如何通信以避免由于地址重復而通信混亂。關(guān)鍵通過定義列車級與編組級兩個不同子網(wǎng),子網(wǎng)內(nèi)地址唯一來實現(xiàn)。
每個IP列車構(gòu)成一個專網(wǎng),網(wǎng)址為10.0.0.0到10.255.255.255(子網(wǎng)為:10.0.0.0/8),由兩級子網(wǎng)構(gòu)成,列車主干以太子網(wǎng)(ETB),網(wǎng)址范圍為10.252.0.0~10.252.0.62,子網(wǎng)為10.252.0.0/26;另外一個為基本運轉(zhuǎn)編組以太子網(wǎng)(ECN),范圍為10.0.0.0~10.0.15.254,子網(wǎng)為10.0.0.0/20。
如圖2所示,列車以太網(wǎng)為內(nèi)部專網(wǎng),跟外部公網(wǎng)(如軌旁)通信時需要一定的地址翻譯機制,因為專網(wǎng)地址不會被以太網(wǎng)路由器路由。但此轉(zhuǎn)換機制不屬于車載以太網(wǎng)討論范疇。
圖2 列車以太網(wǎng)IP地址分配示例
3.2.1 基本運轉(zhuǎn)編組子網(wǎng)ECN源地址分配
基本運轉(zhuǎn)編組子網(wǎng)內(nèi)永久安裝的終端系統(tǒng)與工作的網(wǎng)絡(luò)部件必須從ECN子網(wǎng)中分配相應的源地址,根據(jù)ECN子網(wǎng)10.0.0.0/20可以定義有如表2二進制表示格式,表格中[h]部分網(wǎng)絡(luò)主機標志符,為除了所有‘0’與所有‘1’以外的任何數(shù)字。主機標志符定義編組內(nèi)的某個設(shè)備。位于同一編組內(nèi)的相同類型的設(shè)備如(VCU)須通過不同主機標志來區(qū)分。
表2 ECN源地址分配
原則上主機標志(host-id)可進一步結(jié)構(gòu)化與子網(wǎng)分區(qū),因為網(wǎng)絡(luò)地址此部分內(nèi)容是預配置與靜態(tài),在實際應用中按表3形式進一步結(jié)構(gòu)化與分區(qū)是有意義的,表中[d]部分表示設(shè)備標志部分,除了所有‘0’與所有‘1’以外的任何數(shù)字,[c]部分表示車輛標志,表明車輛在編組中的順序位置。
表3 網(wǎng)絡(luò)地址內(nèi)容
3.2.2 列車主干網(wǎng)ETB源地址分配
路由設(shè)備通常有超過一個IP源地址,每一個IP源地址與路由器所連的子網(wǎng)相對應,這就要求ETB子網(wǎng)與ECN子網(wǎng)之間的路由器至少有兩個IP源地址,一個為按上述ECN地址分配規(guī)則的源地址,另一個對應ETB網(wǎng)絡(luò)則應以表4格式。
表4 ETB源地址分配
表中[u]部分為編組子網(wǎng)標志(unit-id),表示編組順序號(1~62)之間,與ECN子網(wǎng)相反,此標志在列車初始化時動態(tài)分配。
3.2.3 以太網(wǎng)列車虛擬地址空間
從動態(tài)IP地址分配方案中可以看到當IPT域名中有多個ECN子網(wǎng)時存在一定范圍的地址重疊,ECN子網(wǎng)具有相同地址空間范圍的重要原因是可以避免同一車隊中所有基本運轉(zhuǎn)編組集中管理,而每個編組具有相同配置便于管理。
地址空間重疊意味著任何兩個ECN子網(wǎng)之間不可能有直接通信,否則對發(fā)送側(cè)而言對單主IP目標地址是模糊不確定的,對接收者而言IP源地址也是模糊的。為此定義了兩個不同的地址層次空間,每個擴展為一個虛擬地址空間:編組層地址空間與列車層地址空間,編組層地址空間用于編組內(nèi)通信,列車層地址空間用于編組間通信。
編組層地址空間定義類似于ECN子網(wǎng)的地址范圍,為10.0.0.1~10.0.15.254。
編組層內(nèi)的終端設(shè)備與網(wǎng)絡(luò)部件的地址分配須在編組層地址空間范圍內(nèi)定義,如表5所示。
表5 編組層地址
列車層地址空間的通信關(guān)系建立在跨越一個編組邊界時適用,范圍為10.0.16.1~10.255.239.254。
編組間通信的終端設(shè)備與網(wǎng)絡(luò)部件的IP地址應采用如表6的二進制形式。
表6 二進制地址
表格中[h]為主機標志,除了全為‘1’與全為‘0’以外的任何數(shù)字;[u]:編組標志,在列車初始化時動態(tài)分配(1~62);[x]:為拓撲計數(shù)器,在1到63之間的任何值,當不用時置為0。
編組層與列車層之間地址轉(zhuǎn)換(NAT)在列車主干網(wǎng)路由器(ETBN)中完成轉(zhuǎn)換。
IP源地址從編組層翻譯到列車層時應附加:(1)采用列車層地址空間;(2)應附加發(fā)送側(cè)的編組標志(unit-id);(3)拓撲計數(shù)器。
反之將列車層地址翻譯到編組層地址時應移除:(1)采用編組層地址空間;(2)發(fā)送側(cè)的編組標志應移除;(3)拓撲計數(shù)器。
所有連接到以太網(wǎng)的設(shè)備網(wǎng)絡(luò)接口卡都配置有唯一的物理MAC源地址(MAC SA),每個MAC地址為48位長度,典型表示成“XX:XX:XX:XX:XX:XX”,詳細的地址字段格式在IEEE 802.3小冊子定義,對列車以太網(wǎng)絡(luò)而言僅采用全局管理的MAC地址,每個MAC地址是唯一的,由設(shè)備廠商配置。
基于IP系統(tǒng)中數(shù)據(jù)包的交換與路由是根據(jù)IP源與目的地址來完成的,但另一方面終端應用是根據(jù)前面定義的IPT-URI符號地址來交換的,兩者之間的映射過程就是地址解析。使用邏輯功能地址應用的每個終端必須有相應的地址解析器,通過需要一些額外的信息來完成地址解析任務(wù),這些信息可以位于本地也可位于遠程服務(wù)器,在IP應用中通常有域名服務(wù)器(DNS)完成。
對于諸如IP-TCN動態(tài)系統(tǒng),需要考慮額外信息,如通信開始之前系統(tǒng)的當前配置情況。如某個應用在向另外一個車的應用發(fā)送消息數(shù)據(jù)時必須知道此應用當前的車輛號,或應用須在計算邏輯功能地址之前首先確定哪些車支持此應用功能;為此通信固件應確實包含生成功能地址與解析功能地址。
UIC 556小冊子應用于UIC列車總線的列車目錄生成機制可借用于此來支持生成功能地址。在UIC應用中,當列車重新完成初始化后,跟列車相關(guān)的信息如UIC車號、方向、車輛屬性、功能和其他更多的信息將保存于節(jié)點地址與屬性數(shù)據(jù)庫(NADI)中,此NADI由WTB網(wǎng)關(guān)非集中生成,并分發(fā)到所有需要此信息的終端設(shè)備中用于本地地址解析。IP列車同樣采用了此概念用于地址解析,為了與WTB和UIC-NADI數(shù)據(jù)庫區(qū)別,存儲地址解析的數(shù)據(jù)庫稱為“以太網(wǎng)列車目錄”數(shù)據(jù)庫,簡稱為IPTDir,與UIC一樣在列車每次編組(“列車初始化”)以后由列車以太網(wǎng)交換機(ETBN)重新計算,采用UIC中的算法計算。首先靜態(tài)的基本運轉(zhuǎn)編組(Consist)被完全預配置,編組及其組成的車輛信息完全收集于編組目錄(Cst Dir)并保存在列車交換機(ETBN)中。在列車初始化過程中,列車交換機將組播此信息到所有其他列車交換機,這樣所有列車交換機包含了列車所有的編組信息,基于此列車交換機運行UIC初始化算法生成列車以太網(wǎng)目錄(IPTDir),每個IPTDir也包含一個拓撲計數(shù)器(topoCount)標志IPTDir版本。
在每次新的列車初始化后,IPTDir在編組級內(nèi)組播至所有感興趣的終端設(shè)備(ED),每個終端地址解析器本地保存了IPTDir的拷貝,用于解析IPT-URI并生成相關(guān)IP地址。
從開放系統(tǒng)互聯(lián)的不同層面介紹了以太網(wǎng)列車通信網(wǎng)絡(luò)的尋址方式,并對車載以太網(wǎng)按列車級、基本運轉(zhuǎn)編組與車輛分隔成不同的專網(wǎng),列車級主干以太網(wǎng)ETB在列車初始化時動態(tài)分配,而基本運轉(zhuǎn)編組內(nèi)以太網(wǎng)(ECN)為預配IP的靜態(tài)分配方法,滿足了軌道車輛以太網(wǎng)應用的特定需求。
[1]國際鐵路聯(lián)盟,UIC-Code 556列車信息傳輸(列車總線)[S].2004.
[2]The internet society RFC-3986 統(tǒng)一資源標識符(URI):通用語法 [S].2005.
[3]The inter net society RFC-1519無類別域間路由(CIDR):地址分配與聚合機制[S].2005.