許 婧,楊 碩,季志均
(卡斯柯信號有限公司 聯鎖系統開發部,上海 200072)
目標控制器(OC,Object Controller)系統可取代傳統計算機聯鎖系統中的繼電電路和監測電路,實現對轉轍機、信號機、電碼化設備等軌旁設備的驅動和采集[1]。OC系統目前被集成于第二代智能安全型全電子計算機聯鎖系統[2]、列車自主運行系統[3]、列控聯鎖一體化系統[4-5]中,具有廣闊的應用前景。
由于OC系統是在定制的母板上運行嵌入式軟件,研發成本高、定制周期長,若其存在硬件設計問題,需要耗費較長時間進行修正。此外,OC系統具備分布式系統和二乘二取二系統的特點,配置靈活多變,負載種類繁多,為驗證多種應用場景,需要搭建復雜的實驗環境、投入大量的硬件資源;OC系統的研發和測試團隊受限于硬件資源和實驗室空間,能搭建的真實環境數量較少,開發調試工作和測試工作易形成資源沖突,導致項目進度滯后。
數字孿生技術是指通過數據的交互融合,設計虛擬模型并建立虛擬系統與真實系統的映射關系,進而“鏡像”實體的技術[6-7]。數字孿生技術最早被應用于飛機的故障預測[8],目前,已廣泛應用于衛星[9]、電力[10]、智慧城市[11]等多個領域。
針對OC系統面臨的問題,本文研究和設計一種OC數字孿生系統,通過分析虛擬實體的運行狀態,預測真實OC設備的運行結果,及時修正研發方向,從而降低研發成本、提升研發效率。
OC系統的主要功能是根據聯鎖控制系統主控計算機(MCC,Master Control Computer)的驅動命令,控制室外的信號設備,并將室外設備的狀態返回給MCC。OC系統采用模塊化設計理念,每種控制模塊完成一個獨立的功能。其系統組成如圖1所示。

圖1 OC系統組成
OC系統采用二乘二取二架構。二取二是指每個控制模塊內部采用雙通道架構,每個通道各有1個運算單元,獨立得出2個運算結果,結果一樣則輸出,不一樣則不輸出。控制模塊中的某些關鍵電路采用雙通道差異化設計,能夠有效減少共因失效產生的幾率。二乘二取二是指系統中相同的2個控制模塊互為冗余、相互獨立,即使出現了交叉故障,只要互為冗余的2個控制模塊不同時失效,系統仍能保持正常功能。
用于執行OC系統與MCC間的通信,通過L1安全紅網和L2安全藍網接收來自MCC的命令,根據鐵路信號安全協議-I(RSSP-I,Railway Signal Safety Protocol-I)和FSFB/2(Fail Safe Field Bus second generation)協議控制GUEST模塊,并且將OC系統的狀態上傳給MCC。同時,安全通信模塊參與維護系統通信,通過L3維護網送出OC系統的維護和診斷信息,支持簡單網絡管理協議(SNMP,Simple Network Management Protocol)、簡單文件傳輸協議(TFTP,Trivial File Transfer Protocol)、用戶數據協議(UDP,User Datagram Protocol)、簡單網絡時間協議(SNTP,Simple Network Time Protocol)協議?;槿哂嗟陌踩ㄐ拍KA和B之間通過L7內網相連。
GUEST模塊是OC系統中負責控制各種信號設備的板卡(如狀態采集板卡、道岔驅動板卡、信號機驅動板卡等),根據驅動命令控制室外的信號設備,并采集室外設備的狀態。OC系統內2個相同種類的GUEST模塊可互為冗余,例如:GUEST模塊Ai與GUEST模塊 Bi兩兩配對使用,并通過L4電纜連接到軌道電路、轉轍機、信號機、安全繼電器、電碼化設備、零散設備等室外設備。GUEST模塊結構如圖2所示。

圖2 GUEST模塊結構示意
各類GUEST模塊的結構基本相同,主要由以下2部分組成。
(1)母板。其上集成了特定的硬件組件,例如采集電路、驅動電路、隔離電路、熔絲電路及與這些部件接口的部分現場可編程門陣列(FPGA,Field Programmable Gate Array);
(2)安全控制單元(VCU,Vital Control Unit)扣板?;诙《軜嫷哪K,其上集成了CPU_A、CPU_B、Flash存儲器和隨機存取存儲器(RAM,Random Access Memory)。
用于實現OC系統內部的連接和通信,提供電源接口、地址信息接口、配置數據接口、連接安全通信模塊和各GUEST模塊的控制器局域網(CAN,Controller Area Network)總線接口等。
每個GUEST模塊具有2個獨立的CAN通信接口,可以通過背板連接在2個獨立冗余的CAN總線上。正常工作時,安全通信模塊通過2個CAN總線(CAN_A、CAN_B)與GUEST模塊通信。
OC數字孿生系統架構包括分析與統計層、測試層、系統環境層、硬件仿真層等4層。各層相互獨立、充分耦合,通過接口進行交互,實現物理隔離、邏輯相通,便于功能擴展和系統集成,根據不同使用場景的需求,實現多種運行模式。其系統架構如圖3所示。

圖3 OC數字孿生系統架構示意
(1)硬件仿真層可實現對OC數字孿生系統運行環境的快速構建和部署,根據應用場景的需要組成多配置項、多機測試環境??稍谕ㄓ糜嬎銠C中虛擬運行多片CPU及芯片外設,將要測試的嵌入式軟件的二進制代碼裝載到不同的虛擬安全通信模塊和虛擬GUEST模塊中。
(2)系統環境層是整個OC數字孿生系統的核心層,可實現對真實OC系統各應用場景的全系統虛擬。系統環境層在OC數字孿生系統運行時,動態加載CPU模擬器、外設芯片構成虛擬實例,從而完成整個OC數字孿生系統的運行,包括運行操作系統和應用軟件。虛擬實例可通過接口管理與其他相關測試系統進行互聯,構成閉環運行環境。在系統環境層中,可根據場景需求,完成執行環境和通信協議的配置。
(3)測試層對測試用例進行管理,根據測試需要完成故障注入,并將需要運行的測試指令傳輸到系統環境層。
(4)在測試執行后,系統環境層將測試執行期間收集到的測試數據發送到分析統計層,在分析與統計層對故障相關數據進行故障原因分析和記錄,最終由分析統計層輸出測試結果。
OC系統中的安全通信模塊和GUEST模塊均以VCU為核心處理單元,擴展不同外圍功能電路。根據真實OC系統中的安全通信模塊和GUEST模塊的結構特點,可在OC數字孿生系統的系統環境層中搭建相應的虛擬模塊。
2.2.1 安全通信模塊虛擬化
安全通信模塊主要實現的功能如下。
(1)提供3個對外網口,實現OC系統對外的網絡通信;提供1個對內網口,實現與另一個安全通信模塊間的內部網絡通信;
(2)對于二取二架構中的每個通道,安全通信模塊的二進制代碼和電子戳存儲在虛擬VCU的Flash中;安全通信模塊通過2個串行外設接口(SPI,Serial Peripheral Interface)通道,讀取相關配置數據,并將數據存儲在其他虛擬的Flash外設之中;
(3)通過2條虛擬的CAN總線與系統內的GUEST模塊交互數據。
在OC數字孿生系統中,虛擬的VCU是雙通道架構,每個通道以1個虛擬的MCF54418 CPU為核心處理器,雙通道之間通過模擬的內部串口實現高頻二取二交互通信。
2.2.2 GUEST模塊虛擬化
GUEST模塊的虛擬化架構與安全通信模塊類似,但真實OC系統的GUEST模塊中有眾多繼電器、自檢電路、ADC數字采樣和FPGA等硬件組件。系統環境層根據每類GUEST模塊的構造,進行硬件功能的FPGA仿真,通過虛擬的通用輸入/輸出(GPIO,General Purpose Input/Output)和FPGA接口,與VCU模塊進行交互,從而實現模塊自檢、驅動命令的執行與反饋、開關量的采集和模擬量的采集等功能,為OC數字孿生系統提供必要的自檢和運行條件。
硬件仿真層根據應用場景搭建外圍設備模塊,對OC系統中GUEST模塊的負載進行模擬,為OC數字孿生系統提供開關量、模擬量數據。
SkyEye是基于可視化建模的硬件行為級仿真平臺,支持用戶通過拖拽的方式對硬件進行行為級別的仿真和建模。基于SkyEye搭建的嵌入式系統虛擬化運行環境,研發人員可不受物理硬件限制,隨時訪問目標系統,快速搭建虛擬硬件模型[12]。本文在Windows操作系統下,進行基于SkyEye平臺的OC數字孿生系統的開發,完成對真實OC系統的虛擬化。
OC數字孿生系統的開發框架如圖4所示,由OC數字孿生系統構建、OC數字孿生運行環境和OC數字孿生配置管理工具構成。

圖4 OC數字孿生系統開發框架示意
3.1.1 系統構建
本文通過設計通用模塊和提供可配置的各類硬件外設接口,靈活構建OC數字孿生系統。構建思路如下:
(1)將通用API接口封裝成核心動態庫,支持其他模塊的接口調用;
(2)采用模塊化的設計思想,系統的處理器、內存總線、外圍設備等均被設計為獨立的模塊;
(3)通過硬件配置腳本靈活搭建目標系統,根據硬件配置生成不同GUEST模塊的面板顯示,并根據程序運行情況點亮面板燈;
(4)實現二進制文件解析和加載功能。
3.1.2 運行環境
在真實OC系統中,最多包含2個安全通信模塊和28個GUEST模塊。與之對應的,在OC數字孿生系統中,最多虛擬30個VCU模塊同時運行的狀態,每個VCU包含2個CPU,并對OC系統的內部通信進行虛擬,還原真實系統的運行情況。為實現60個CPU的同時運行,本文設計了多VCU目標機集成方案:啟動4個SkyEye進程,再通過時間同步工具進行統一的時鐘推進,確保OC數字孿生系統的協同運行。
通過SkyEye集成MCF54418 CPU及芯片外設仿真、時間同步工具和二進制動態編譯等組件,提供統一的OC數字孿生系統的部署驗證。應用程序可直接在OC數字孿生系統中運行,在與真實OC系統的硬件輸入條件相同、運行時間相同時,能得到與真實運行結果相同的輸出。運行環境中的時間同步工具是OC數字孿生系統按時序運行的基礎,主要有2個功能:(1)實現單VCU模塊內CPU_A和CPU_B的同步;(2)實現模塊之間的同步。
3.1.3 配置管理工具
配置管理工具基于運行環境,提供系統配置管理功能,包括虛擬硬件的設備管理、OC節點管理、節點間網絡通信狀態管理、日志管理、軟件配置文件的加載、系統運行時間與數據同步的設置等。
通過SkyEye對VCU進行建模,虛擬VCU內部設計和多VCU間的通信,如圖5所示。VCU_0模塊描述VCU內部對雙通道的規劃,以core、ram、spi、uart、flash、net、gpio、can外設為基礎搭建系統。VCU_1描述多個VCU之間通過can_linker的方式進行通信的機制。

圖5 SkyEye環境下的VCU建模示意
本文設計的OC數字孿生系統是真實OC系統設備的數字映射,已于2023年2月,在上海地鐵3號及4號線改造工程中上線試運行。研發人員使用OC數字孿生系統在真實OC硬件未制造時提前驗證OC系統的硬件設計、軟件功能和系統性能,在發現設計缺陷后及時優化,減少了產品研發的迭代次數,將研發時間從半年縮短至2個月左右,節約了研發成本。在排查OC系統的故障時,售后人員利用OC數字孿生系統還原了現場的復雜場景,快速復現了現場問題,及時定位了故障原因,減少了售后工作的人力消耗。
本文基于OC系統架構設計了OC數字孿生系統,介紹了關鍵模塊的虛擬化方式,并基于SkyEye進行開發。該系統已在上海地鐵3號及4號線改造工程中上線試運行,運行效果良好,可有效緩解開發調試工作和測試工作形成的資源沖突,縮短研發周期,同時,降低OC系統的維護成本,具有推廣價值。