劉晨曦, 杜振環(huán), 王 鋒
(中車大連電力牽引研發(fā)中心有限公司, 遼寧大連 116052)
國內(nèi)某型動車組,單列車拓?fù)淇煞譃椤皠恿?8輛拖車+控制車”短編組的動車組或“動力車+16輛拖車+動力車”長編組的動車組,配置十分靈活。不同廠家的控制車、動力車通過重聯(lián)網(wǎng)關(guān)互聯(lián)互通。
FPGA(現(xiàn)場可編程門陣列)作為 ASIC(Application Specific Integrated Circuit)領(lǐng)域中的一種半定制電路,解決了定制電路的不足,可以實(shí)現(xiàn)多種邏輯功能。WTB幀數(shù)據(jù)是曼徹斯特碼,它是一種常用的基帶信號編碼。IEC61375[1]規(guī)定,列車間WTB通信數(shù)據(jù)以曼徹斯特碼傳輸,實(shí)現(xiàn)列車間的互操作。
絞線式列車總線WTB(wire train bus)幀格式如圖1所示,包括幀頭(文中研究32 bits幀頭)、幀數(shù)據(jù)、和幀尾(終止分界符)。
(1)幀頭:即前導(dǎo)碼preamble,由高電平“1”起始,接著若干個(gè)‘0’‘1’對(文中為15對)并以“1”結(jié)束,用于WTB幀數(shù)據(jù)同步;
(2)幀數(shù)據(jù):標(biāo)準(zhǔn)HDLC數(shù)據(jù);
(3)幀尾:兩個(gè)時(shí)間單位寬度的高電平。
圖1 WTB幀
硬件測試平臺如圖2所示(X1和X2為DB9對外連接器),用于測試WTB編解碼器。ARM處理器AT91SAM3U4E,主頻96 MHz,內(nèi)存256 kB,SRAM是52 kB。FPGA是XILINX公司的Spartan-6系列芯片,型號XC6SLX9,用來實(shí)現(xiàn)WTBC編解碼器。用WTB線纜把TCN分析儀串聯(lián)在發(fā)送通道與接收通道之間。
ARM處理器通過可變靜態(tài)存儲控制器FSMC接口訪問配置FPGA,通過WTB鏈路層接口從應(yīng)用層控制WTB數(shù)據(jù)發(fā)送和接收。初始化成功后,在WTB通信板卡X1接口定時(shí)發(fā)送變化的WTB幀數(shù)據(jù),通過TCN分析儀在接口X2接收,應(yīng)用層軟件對接收數(shù)據(jù)進(jìn)行統(tǒng)計(jì),可判斷接收數(shù)據(jù)與期望是否相符。對于不同類型請求/響應(yīng)幀數(shù)據(jù)(包括狀態(tài)請求/狀態(tài)響應(yīng)幀、檢測請求/檢測響應(yīng)幀、命名請求/命名響應(yīng)幀、存在請求/存在響應(yīng)幀等),通過TCN分析儀進(jìn)行數(shù)據(jù)統(tǒng)計(jì)和分析,達(dá)到測試WTB編解碼器的目的。
圖2 硬件測試平臺
WTBC編解碼器核心是編碼器和解碼器。編碼是完成WTB數(shù)據(jù)編碼并進(jìn)行CRC校驗(yàn);解碼是實(shí)現(xiàn)接收波形的位同步和數(shù)據(jù)解析,如果計(jì)算的CRC與接收到的CRC結(jié)果不符,則放棄此幀數(shù)據(jù)。其原理如圖3所示。主要分為以下幾個(gè)部分:CPU接口模塊,HDLC控制器模塊及曼徹斯特編解碼模塊。
圖3 WTBC編解碼器
(1)CPU接口模塊
CPU接口模塊包括數(shù)據(jù)線(uPD)、地址線(uPA)、寫(uPWR#)、讀(uPRD#)、片選(uPESCCCS#)、中斷(ESCC_INT#)等信號(如圖4所示)。CPU接口模塊作為WTB編解碼器與外部處理器CPU的接口,是WTB編解碼器與CPU的數(shù)據(jù)傳輸通道,CPU通過訪問編碼器和解碼器的內(nèi)部寄存器,控制WTB數(shù)據(jù)發(fā)送接收。
圖4 WTBC編解碼器CPU接口信號示意圖
(2)HDLC控制器模塊
HDLC數(shù)據(jù)是串行數(shù)據(jù)幀格式,與時(shí)序邏輯緊密聯(lián)系,包括HDLC發(fā)送控制器和HDLC接收控制器。
①HDLC發(fā)送控制器。即HDLC編碼器,是功能和時(shí)序復(fù)雜的時(shí)序邏輯電路,可抽象成有限狀態(tài)機(jī)。其狀態(tài)轉(zhuǎn)換與數(shù)據(jù)處理包括HDLC數(shù)據(jù)的0比特插入,CRC校驗(yàn)等都可以按照ISO 3309標(biāo)準(zhǔn)實(shí)現(xiàn)。根據(jù)HDLC編碼協(xié)議,得到HDLC編碼器有限狀態(tài)機(jī):CPU發(fā)送數(shù)據(jù)時(shí)首先要讀取發(fā)送寄存器狀態(tài),當(dāng)TxDo=1時(shí),HDLC控制器緩存CPU發(fā)送的數(shù)據(jù)到RAM中,CPU發(fā)送完一包數(shù)據(jù)后向發(fā)送寄存器寫入TxEN=1命令。發(fā)送緩存接收到TxEN=1指令后跳轉(zhuǎn)至read狀態(tài),TxOK=1;緩存的數(shù)據(jù)經(jīng)CRC校驗(yàn)和時(shí)鐘同步后,再把并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),同時(shí)檢驗(yàn)每位數(shù)據(jù)信息,即串行數(shù)據(jù)出現(xiàn)連續(xù)5個(gè)‘1’時(shí)在其后插入1個(gè)‘0’;并行數(shù)據(jù)轉(zhuǎn)換串行數(shù)據(jù)的起始生成幀頭flag,轉(zhuǎn)換完成生成幀尾flag。HDLC發(fā)送控制器狀態(tài)轉(zhuǎn)換如圖5所示。
圖5 HDLC發(fā)送控制器狀態(tài)機(jī)
②HDLC接收控制器。即HDLC解碼器,和編碼器一樣是時(shí)序邏輯電路,同樣可抽象成有限狀態(tài)機(jī),包括幀頭幀數(shù)據(jù)檢測、CRC校驗(yàn)、0比特刪除等部分。HDLC接收是發(fā)送的逆過程,需要對接收的每一個(gè)數(shù)據(jù)位進(jìn)行判斷。HDLC接收模塊檢測總線上的數(shù)據(jù),當(dāng)識別到“01111110”即flag,則FlagDetect=1,并進(jìn)行串行數(shù)據(jù)到并行數(shù)據(jù)轉(zhuǎn)換,與此同時(shí)執(zhí)行0比特刪除操作,即檢測到連續(xù)5個(gè)‘1’則自動將其后面的‘0’刪除;再經(jīng)過時(shí)鐘同步和CRC校驗(yàn),當(dāng)WR=1時(shí)向雙口RAM寫入1個(gè)字節(jié)的數(shù)據(jù),當(dāng)數(shù)據(jù)長度大于等于31字節(jié)產(chǎn)生FULL中斷,CPU從RAM讀取31個(gè)字節(jié)數(shù)據(jù)并把CPU_ACK置1,直到產(chǎn)生EOF幀尾中斷(若幀長度小于31字節(jié)則只產(chǎn)生幀尾中斷),CPU從RAM讀取剩余數(shù)據(jù)并把CPU_ACK再置1,狀態(tài)機(jī)恢復(fù)到空閑。HDLC接收控制器狀態(tài)轉(zhuǎn)換如圖6所示。
圖6 HDLC接收控制器狀態(tài)機(jī)
(3)曼徹斯特編解碼模塊
曼徹斯特編解碼模塊具有同步HDLC幀與WTB幀,和對數(shù)據(jù)進(jìn)行曼徹斯特編碼和解碼。幀同步是通過程序中的移位寄存器暫時(shí)存放HDLC數(shù)據(jù)并與WTB曼徹斯特編碼模塊進(jìn)行信號交互來實(shí)現(xiàn)。幀同步的狀態(tài)轉(zhuǎn)換如圖7所示。曼徹斯特編碼模塊生成WTB幀32 bits幀頭、2 bits終止分界符,及HDLC數(shù)據(jù)的曼徹斯特編碼;曼徹斯特解碼模塊用來識別WTB幀頭幀尾并將其刪除,同時(shí)對數(shù)據(jù)進(jìn)行曼徹斯特解碼。
圖7 幀同步狀態(tài)機(jī)
根據(jù)上面所描述的方法,采用自頂向下的設(shè)計(jì)理念,使用VHDL硬件描述語言和ISE14.7開發(fā)工具,仿真綜合實(shí)現(xiàn)并下載到FPGA芯片(FPGA仿真如圖8所示,從圖中可以看出,CPU發(fā)送數(shù)據(jù)為0x1f,接收數(shù)據(jù)為0x1f,接收與發(fā)送數(shù)據(jù)相同),使用ChipScope軟件監(jiān)測波形如圖9所示。
圖8 功能仿真
圖9 WTB幀波形
圖9中,RxClk是接收時(shí)鐘,Tx是HDLC數(shù)據(jù)幀,MAIN_OUT為WTB數(shù)據(jù)幀,幀頭32 bits,這里以HDLC數(shù)據(jù)是0x1,1個(gè)字節(jié)為例。分析WTB波形,與標(biāo)準(zhǔn)要求一致。圖10、圖11是通過示波器監(jiān)測的實(shí)際波形,符合WTB一致性要求。通過TCN分析儀多次長時(shí)間測試,所設(shè)計(jì)的WTBC編解碼器能夠被分析儀很好地識別,不存在丟幀和錯幀(如圖12、圖13所示),符合IEC 61375標(biāo)準(zhǔn)規(guī)定。
圖10 測試波形(WTB幀頭)
圖11 測試波形(WTB幀)
圖12 TCN分析儀測試結(jié)果
WTB一致性測試檢驗(yàn)依據(jù)是GB/T 28029.2-2011《列車通信網(wǎng)絡(luò)一致性測試》,檢驗(yàn)項(xiàng)目包括WTB設(shè)備節(jié)點(diǎn)的插入損失測試,WTB設(shè)備中間設(shè)置的輸入阻抗測試,WTB設(shè)備發(fā)送器測試,WTB設(shè)備發(fā)送器幀尾測試,WTB設(shè)備發(fā)送器噪聲測試,WTB設(shè)備發(fā)送器容錯測試,WTB設(shè)備接收器測試,WTB鏈路層接口測試和穩(wěn)定性測試。檢驗(yàn)項(xiàng)目全部測試通過,B線發(fā)送幀尾測試如圖14所示。
(1)網(wǎng)關(guān)發(fā)送幀尾,輸出信號第一次達(dá)到1.100 V電平之后20.0 μs后的波動范圍-B線
(2)網(wǎng)關(guān)發(fā)送幀尾,輸出信號第一次達(dá)到1.100 V電平之后64.0 μs后的波動范圍-B線
該WTBC編解碼器已應(yīng)用于某型動車組WTB重聯(lián)網(wǎng)關(guān),并通過了與其他廠家網(wǎng)關(guān)的互聯(lián)互通測試,實(shí)現(xiàn)不同廠家設(shè)備的互控。為了驗(yàn)證重聯(lián)網(wǎng)關(guān)WTBC編解碼器功能和可靠性,在某型動車組列車進(jìn)行通信試驗(yàn),試驗(yàn)拓?fù)淙鐖D15所示,TCN網(wǎng)絡(luò)分析儀串聯(lián)在主從控車中間(以測試線路B為例),在動車組運(yùn)行過程中監(jiān)測WTB通信數(shù)據(jù)。在監(jiān)測期間,未發(fā)生WTB初運(yùn)行,WTB通信正常。
圖14 WTB一致性測試
圖15 測試拓?fù)鋱D
WTBC編解碼器是重聯(lián)網(wǎng)關(guān)的重要組成部分,數(shù)據(jù)格式符合IEC 61375的要求,目前已應(yīng)用于某型動車組上。實(shí)踐結(jié)果表明,帶有該WTBC編解碼器的重聯(lián)網(wǎng)關(guān)能夠和其他廠家網(wǎng)關(guān)互聯(lián)互通,并通過運(yùn)營考核,可靠性高。