張?jiān)鲆?宋 揚(yáng) 魯振山
(1.中車大連電力牽引研發(fā)中心有限公司,116052,大連;2.動車組和機(jī)車牽引與控制國家重點(diǎn)實(shí)驗(yàn)室,116052,大連∥第一作者,工程師)
由于列車運(yùn)行環(huán)境復(fù)雜多變,TCMS(列車控制與管理系統(tǒng))在運(yùn)行過程中需應(yīng)對氣壓、溫差、空氣質(zhì)量以及電磁環(huán)境等多重因素瞬時(shí)突變造成的影響。因此,除對設(shè)備及通信線路進(jìn)行更高等級的防護(hù),以及執(zhí)行更嚴(yán)苛的試驗(yàn)測試標(biāo)準(zhǔn)外,通常采用冗余設(shè)計(jì)以保證系統(tǒng)安全和穩(wěn)定地實(shí)現(xiàn)其通信管理及控制功能。本文利用在研項(xiàng)目的帶高速智能網(wǎng)絡(luò)系統(tǒng)的某城市軌道交通車輛配置的兩種車輛控制總線所搭建的數(shù)據(jù)交互環(huán)境,研究網(wǎng)絡(luò)主控設(shè)備列車中央控制單元(CCU)對于自身及冗余設(shè)備運(yùn)行異常、通信功能異常等狀態(tài)進(jìn)行高速判別,并進(jìn)行準(zhǔn)確應(yīng)對處理的有效實(shí)現(xiàn)方法,提出基于雙總線的雙級熱備冗余控制的設(shè)計(jì)思路,以實(shí)現(xiàn)TCMS 運(yùn)行安全性能的進(jìn)一步提升。
在研項(xiàng)目帶高速智能網(wǎng)絡(luò)系統(tǒng)的某城市軌道交通車輛,其列車4 節(jié)編組結(jié)構(gòu)為:1 節(jié)帶司機(jī)室動車+1 節(jié)拖車+1 節(jié)帶受電弓拖車+1 節(jié)帶司機(jī)室動車。TCMS 采用編組以太網(wǎng)(ECN)和多功能車輛總線(MVB)兩種車輛總線拓?fù)浣Y(jié)構(gòu)。列車各設(shè)備均通過兩種總線進(jìn)行數(shù)據(jù)交互,默認(rèn)采用高速的ECN 總線作為首選數(shù)據(jù)信任總線,MVB 為冗余總線,并同時(shí)提供相關(guān)人機(jī)交互接口用于首選控制線設(shè)置及切換。
在該項(xiàng)目中,ECN 總線采用TRDP(列車實(shí)時(shí)數(shù)據(jù)協(xié)議)中的數(shù)據(jù)協(xié)議棧進(jìn)行實(shí)時(shí)數(shù)據(jù)傳輸。2015年7 月出臺機(jī)車車輛使用的工業(yè)以太網(wǎng)標(biāo)準(zhǔn)IEC 61375-2-3(Edition1.0)[1],其定義ECN 的4~7 層都將使用專為鐵路用途開發(fā)的自主協(xié)議TRDP,并通過行業(yè)團(tuán)體TCNOpen 以開源的形式公開。TRDP的協(xié)議棧在以太網(wǎng)中所處位置如圖1 所示[2]。
CCU 作為TCMS 核心部件,負(fù)責(zé)整車網(wǎng)絡(luò)管理和車輛運(yùn)行控制功能。該項(xiàng)目列車裝配2 臺互為冗余的CCU,其中1 臺作為冗余設(shè)備(從CCU)處于熱備狀態(tài),實(shí)時(shí)檢測主CCU 狀態(tài),確保在主CCU發(fā)生故障時(shí)能夠迅速接管主CCU 全部功能,以持續(xù)保證系統(tǒng)功能安全運(yùn)行。
圖1 TRDP 在ECN 機(jī)構(gòu)中的位置
CCU 的硬件部分采用低功耗嵌入式PC/104 結(jié)構(gòu)的工業(yè)計(jì)算機(jī)104-1645CLDN-(24B)板卡,集成了AMD LX800CPU、256 MB 的DDR、1 個PC/104擴(kuò)展接口、1 個10/100 Mbit/s 自適應(yīng)網(wǎng)口、1 個IDE接口、2 個串口、USB2.0 接口等[2];軟件部分主要包括底層系統(tǒng)軟件和上層應(yīng)用軟件,前者是后者的操作系統(tǒng)平臺,采用基于x86 硬件平臺的VxWorks 多任務(wù)實(shí)時(shí)操作系統(tǒng),進(jìn)行軟件輸入輸出映射管理、內(nèi)存管理、任務(wù)調(diào)度等功能,是本研究中實(shí)現(xiàn)雙級熱備冗余控制的主要研究對象。
所謂雙級熱備冗余控制,即在配置兩種控制總線的列車上通過優(yōu)化CCU 底層系統(tǒng)軟件設(shè)計(jì),使CCU 同時(shí)實(shí)現(xiàn)數(shù)據(jù)接收總線間的總線級冗余控制,以及主、從CCU 間的設(shè)備級冗余控制功能。通過對總線和設(shè)備的雙級冗余處理,分別對通信總線突發(fā)的暫時(shí)性通信異常以及設(shè)備部件功能性故障進(jìn)行應(yīng)對處理,使系統(tǒng)運(yùn)行得到更高效、全面的保護(hù)。
本項(xiàng)目采用MVB 和ECN 雙總線數(shù)據(jù)交互的車輛控制總線配置方式,實(shí)現(xiàn)整車設(shè)備通信功能。CCU 通過雙總線同時(shí)向其他設(shè)備發(fā)送數(shù)據(jù),并將由雙總線接收的數(shù)據(jù)分別進(jìn)行緩存處理,默認(rèn)優(yōu)先選擇ECN 總線作為數(shù)據(jù)信任總線,也可通過人機(jī)交互界面對數(shù)據(jù)信任總線進(jìn)行選擇。CCU 實(shí)時(shí)監(jiān)視對比兩個總線接收的緩存數(shù)據(jù),判斷總線數(shù)據(jù)健康狀態(tài),并選擇處于健康狀態(tài)的數(shù)據(jù)作為CCU 邏輯運(yùn)算輸入結(jié)果,實(shí)現(xiàn)總線級冗余控制。
2.1.1 總線冗余實(shí)現(xiàn)方式
在項(xiàng)目設(shè)計(jì)階段,為使上層應(yīng)用軟件對設(shè)備接收數(shù)據(jù)的處理不受數(shù)據(jù)總線選擇的影響,開發(fā)者會對兩種通信接口協(xié)議進(jìn)行統(tǒng)一編制,并分別生成MVB 和TRDP 通信配置文件。
MVB 通信配置了CCU 各端口源宿屬性、端口號、端口大小及特征周期4 種參數(shù),并根據(jù)主、從CCU 通信性質(zhì)分別進(jìn)行配置。CCU 底層軟件將在啟動后的初始化過程中讀取MVB 通信配置文件,并依據(jù)其中的端口號大小自動排列端口順序,再結(jié)合端口大小計(jì)算出各個端口數(shù)據(jù)的內(nèi)存偏移地址。底層軟件在輪詢各端口并讀取端口數(shù)據(jù)后將按照該內(nèi)存偏移地址將數(shù)據(jù)依次映射在分配好的內(nèi)存空間內(nèi),完成MVB 數(shù)據(jù)緩存。
TRDP 通信配置了CCU 數(shù)據(jù)通信各數(shù)據(jù)包相關(guān)的數(shù)據(jù)源設(shè)備、源設(shè)備IP 地址、宿設(shè)備IP 地址、數(shù)據(jù)包ComId、數(shù)據(jù)包源宿類型、數(shù)據(jù)量、偏移位置以及特征周期等8 種參數(shù)。CCU 底層軟件將在啟動后的初始化過程中讀取TRDP 通信配置文件,并依據(jù)文件內(nèi)各宿類型數(shù)據(jù)包偏移位置大小自動排列,同時(shí)按順序?yàn)槊總€數(shù)據(jù)包創(chuàng)建1 個socket(套接字)。底層軟件在輪詢socket 并讀取接收到的數(shù)據(jù)后,將按數(shù)據(jù)包規(guī)定的內(nèi)存偏移地址將數(shù)據(jù)依次映射在分配好的內(nèi)存空間內(nèi),完成TRDP 數(shù)據(jù)緩存。
由于MVB 和TRDP 均嚴(yán)格規(guī)定了數(shù)據(jù)偏移位置,在兩個數(shù)據(jù)總線通信狀態(tài)完全正常時(shí),兩個數(shù)據(jù)緩存區(qū)內(nèi)數(shù)據(jù)內(nèi)容應(yīng)一致。而在數(shù)據(jù)信任總線受到干擾時(shí),CCU 按照當(dāng)前信任總線確定1 個數(shù)據(jù)集合單元,并以該數(shù)據(jù)集合單元為單位,對兩個總線數(shù)據(jù)緩存區(qū)內(nèi)的數(shù)據(jù)內(nèi)容進(jìn)行健康狀態(tài)對比,以非信任總線中健康的數(shù)據(jù)集合單元對信任總線中不健康的數(shù)據(jù)集合單元進(jìn)行替換處理,實(shí)現(xiàn)更高效的數(shù)據(jù)總線來源切換。數(shù)據(jù)接收雙總線冗余的軟件執(zhí)行邏輯如圖2 所示。
本設(shè)計(jì)中,CCU 按照不同的信任總線確定用于作為數(shù)據(jù)冗余單位的數(shù)據(jù)集合單元,各數(shù)據(jù)集合單元標(biāo)定在2 個數(shù)據(jù)緩存區(qū)索引數(shù)據(jù)的內(nèi)存偏移地址和數(shù)據(jù)長度。當(dāng)MVB 總線為信任總線時(shí),CCU 以MVB 通信配置的數(shù)據(jù)端口作為數(shù)據(jù)集合單元,并在緩存區(qū)內(nèi)分別對各端口接收的數(shù)據(jù)進(jìn)行健康狀態(tài)判斷,對于非健康數(shù)據(jù)以數(shù)據(jù)端口對應(yīng)內(nèi)存偏移作為索引地址在非信任ECN 總線數(shù)據(jù)緩存區(qū)內(nèi)進(jìn)行索引,并進(jìn)行數(shù)據(jù)冗余處理;當(dāng)ECN 總線為信任總線時(shí),CCU 以TRDP 通信配置的各數(shù)據(jù)包作為數(shù)據(jù)集合單元,并在緩存區(qū)內(nèi)分別對各數(shù)據(jù)包對應(yīng)socket 接收的數(shù)據(jù)進(jìn)行健康狀態(tài)判斷,對于非健康數(shù)據(jù)以數(shù)據(jù)包對應(yīng)內(nèi)存偏移作為索引地址在非信任總線MVB數(shù)據(jù)緩存區(qū)內(nèi)進(jìn)行索引,并進(jìn)行數(shù)據(jù)冗余處理。
總線級冗余功能嵌入在CCU 底層軟件的主應(yīng)用任務(wù)中執(zhí)行,執(zhí)行周期為20 ms。
2.1.2 MVB 數(shù)據(jù)健康狀態(tài)判斷
MVB 為信任總線時(shí)以數(shù)據(jù)端口為數(shù)據(jù)集合單元進(jìn)行數(shù)據(jù)冗余處理。CCU 通過對比每個端口刷新時(shí)間與其對應(yīng)的健康判斷時(shí)間,進(jìn)行MVB 端口數(shù)據(jù)健康判斷。在本設(shè)計(jì)中每個端口健康判斷時(shí)間與其端口特征周期存在對應(yīng)關(guān)系,具體如表1 所示。
圖2 數(shù)據(jù)接收雙總線冗余
表1 MVB 端口特征周期與健康判斷時(shí)間對應(yīng)表
各端口健康判斷時(shí)間以該端口特征周期乘以對應(yīng)判斷系數(shù)N 而得出。當(dāng)端口刷新時(shí)間未超過其對應(yīng)的健康判斷時(shí)間時(shí),視為該端口數(shù)據(jù)處于健康狀態(tài);反之,則視為該端口數(shù)據(jù)處于非健康狀態(tài),按照該數(shù)據(jù)集合單元標(biāo)定的內(nèi)存偏移地址和端口大小,在TRDP 數(shù)據(jù)緩存區(qū)索引對應(yīng)數(shù)據(jù),并進(jìn)行數(shù)據(jù)替換處理完成數(shù)據(jù)冗余。
2.1.3 ECN 總線數(shù)據(jù)健康狀態(tài)判斷
ECN 總線為信任總線時(shí)以通信配置的各數(shù)據(jù)包為數(shù)據(jù)集合單元進(jìn)行冗余數(shù)據(jù)處理。在TRDP 通信配置階段,已經(jīng)將各子設(shè)備向CCU 的數(shù)據(jù)通信配置在不同的socket 進(jìn)行接收,通過輪詢每個socket實(shí)現(xiàn)在同一周期內(nèi)對全部子設(shè)備發(fā)送數(shù)據(jù)進(jìn)行接收。對于讀取出的數(shù)據(jù)分別進(jìn)行解析、校驗(yàn),并將數(shù)據(jù)向TRDP 數(shù)據(jù)緩存區(qū)進(jìn)行映射,同時(shí)判定該數(shù)據(jù)集合單元健康狀態(tài)良好。當(dāng)讀取socket 無數(shù)據(jù)時(shí),為保證數(shù)據(jù)接收在同一運(yùn)行周期內(nèi)的運(yùn)行實(shí)時(shí)性,將進(jìn)行循環(huán)讀取socket 動作,直至讀取出數(shù)據(jù)或循環(huán)次數(shù)超過M 次(本設(shè)計(jì)中M=10)時(shí)停止循環(huán)讀取動作。當(dāng)連續(xù)5 個任務(wù)運(yùn)行周期讀取socket 無數(shù)據(jù)次數(shù)超過M 次時(shí),判定該數(shù)據(jù)集合單元為非健康狀態(tài);將根據(jù)該數(shù)據(jù)集合單元標(biāo)定的內(nèi)存偏移地址和數(shù)據(jù)長度在MVB 數(shù)據(jù)緩存區(qū)內(nèi)索引對應(yīng)數(shù)據(jù),并進(jìn)行數(shù)據(jù)替換處理完成數(shù)據(jù)冗余。
為了實(shí)現(xiàn)更完備、高效的設(shè)備冗余切換功能,本研究根據(jù)以往項(xiàng)目中CCU 的故障案例,總結(jié)了CCU 運(yùn)行過程中可能突發(fā)的各類設(shè)備功能性故障,并對這些故障所期望得到的設(shè)備冗余功能應(yīng)對效果進(jìn)行統(tǒng)計(jì)性研究,最終形成有效的設(shè)備級冗余控制方法。CCU 功能性故障類型如表2 所述(冗余控制只應(yīng)對單設(shè)備故障)。對表2 中闡述的各類型故障進(jìn)行總結(jié),形成主、從CCU 故障判斷條件,并以此形成自身及冗余設(shè)備故障判斷結(jié)果,最終對判斷結(jié)果進(jìn)行相應(yīng)的應(yīng)對處理。主、從CCU 設(shè)備級冗余控制功能的實(shí)現(xiàn)過程分別如圖3、圖4 所示。
在上述邏輯判斷條件中,MVB 宿端口超時(shí)判斷及TRDP 數(shù)據(jù)有效性判斷方法,與總線級冗余控制描述的數(shù)據(jù)健康狀態(tài)判斷方法一致,但設(shè)備級冗余控制是針對設(shè)備功能性異常進(jìn)行的,需對全部數(shù)據(jù)集合單元的健康狀態(tài)進(jìn)行判斷得出判斷結(jié)果。為保證邏輯判斷時(shí)間充足且不影響冗余切換功能的高效性,本設(shè)計(jì)中將全部MVB 宿端口超時(shí)判斷時(shí)間設(shè)置為256 ms,全部TRDP 數(shù)據(jù)失效判斷時(shí)間設(shè)置為100 ms,即保證設(shè)備在300 ms 內(nèi)完成設(shè)備功能性故障狀態(tài)判斷。
主、從CCU 通過單獨(dú)配置的MVB 內(nèi)部通信端口和TRDP 單播數(shù)據(jù)包,實(shí)現(xiàn)設(shè)備間內(nèi)部通信。在內(nèi)部通信數(shù)據(jù)中,單向包含主或從CCU 設(shè)備的MVB 接收功能狀態(tài)、TRDP 接收功能狀態(tài)、自身故障判斷以及生命信號,利用內(nèi)部通信中數(shù)據(jù)信息的傳輸,使主、從設(shè)備雙方得到充足的數(shù)據(jù)依據(jù),了解故障時(shí)刻雙方狀態(tài),并以此做出準(zhǔn)確的故障判斷及應(yīng)對動作。本設(shè)計(jì)中MVB 內(nèi)部端口特征周期設(shè)置為32 ms,TRDP 內(nèi)部通信周期設(shè)置為20 ms。在主CCU 判斷自身故障狀態(tài)后,主動進(jìn)行TRDP 及MVB 的從狀態(tài)配置,規(guī)避總線上雙主故障情況。
表2 CCU 功能性故障分類
圖3 主CCU 冗余控制判斷邏輯及應(yīng)對動作
本項(xiàng)目中采用的CCU 設(shè)備,TRDP 主從狀態(tài)切換可以由軟件瞬間完成;而MVB 主從狀態(tài)切換需要主板調(diào)度MVB 通信板卡進(jìn)行主從狀態(tài)重新配置過程,實(shí)測耗時(shí)為295 ms。因而,從CCU 在完成主CCU 故障判斷后,在不中斷應(yīng)用邏輯運(yùn)算的前提下,首先進(jìn)行TRDP 通信主從狀態(tài)切換,以TRDP通信數(shù)據(jù)維持系統(tǒng)正??刂萍巴ㄐ殴芾砉δ?。同時(shí)啟動MVB 主配置加載任務(wù),待到MVB 加載主配置成功后,再恢復(fù)數(shù)據(jù)總線冗余功能。
圖4 從CCU 冗余控制判斷邏輯及應(yīng)對動作
雙級熱備冗余控制通過軟件實(shí)現(xiàn)后,在實(shí)驗(yàn)室搭建網(wǎng)絡(luò)拓?fù)錅y試環(huán)境(如圖5),對冗余控制功能效果進(jìn)行模擬驗(yàn)證測試。其中,陪試設(shè)備為可編程的通信模擬設(shè)備,可模擬項(xiàng)目中全部網(wǎng)絡(luò)子設(shè)備數(shù)據(jù)發(fā)送功能,并可通過在線調(diào)試模式控制兩種總線的任意數(shù)據(jù)集合單元數(shù)據(jù)發(fā)送,以此模擬數(shù)據(jù)異常狀態(tài)。
圖5 驗(yàn)證測試環(huán)境的網(wǎng)絡(luò)拓?fù)鋱D
總線級冗余功能測試中,通過陪試設(shè)備模擬2種總線不同數(shù)據(jù)集合單元的異常狀態(tài),測試結(jié)果表明,利用MVB 為信任總線并模擬其故障時(shí),數(shù)據(jù)總線冗余完成時(shí)間與表1 中規(guī)定的MVB 端口健康狀態(tài)判斷時(shí)間一致,各數(shù)據(jù)端口可在其對應(yīng)的健康狀態(tài)判斷時(shí)間(最小160 ms,最大1 024 ms)內(nèi)利用TRDP 數(shù)據(jù)完成數(shù)據(jù)冗余;ECN 總線為信任總線并模擬其故障時(shí),冗余完成時(shí)間為5 個主任務(wù)執(zhí)行周期,即5×20 ms=100 ms 完成數(shù)據(jù)冗余。
設(shè)備級冗余功能測試中,通過軟件模擬與線纜通斷操作,對表2 中描述的CCU 故障情況逐一進(jìn)行模擬。測試結(jié)果表明,從CCU 在256 ms 完成對MVB 和TRDP 通信狀態(tài)的有效性判斷,并優(yōu)先進(jìn)行TRDP 主從切換保證CCU 控制功能順利進(jìn)行,完成切換時(shí)間為256 ms。
在調(diào)試過程中,主、從CCU 始終運(yùn)行具備雙級熱備冗余控制功能的底層系統(tǒng)軟件,并在整個靜調(diào)、動調(diào)測試過程中,CCU 控制功能完全正常,說明雙級熱備冗余控制的軟件實(shí)現(xiàn)在保證冗余功能的同時(shí),沒有對列車網(wǎng)絡(luò)控制功能造成任何不良影響。
一系列驗(yàn)證測試結(jié)果表明,雙級熱備冗余控制功能具備較高的實(shí)時(shí)性和可靠性,在充分保證網(wǎng)絡(luò)主控設(shè)備對列車的穩(wěn)定控制功能的同時(shí),有力應(yīng)對了通信瞬時(shí)異常及設(shè)備功能性故障對于TCMS 安全運(yùn)行所造成的風(fēng)險(xiǎn),對軌道交通車輛的安全運(yùn)行性能的提升具有較現(xiàn)實(shí)的參考意義。