基于SOPC的列車通信網(wǎng)卡的設(shè)計
摘要: 本文介紹了MVB總線幀結(jié)構(gòu),并完成了用于網(wǎng)絡(luò)連接的MVB總線訪問IP核的設(shè)計?;?strong>SOPC的設(shè)計思想,本文通過Quarters II軟件平臺的SOPC Builder設(shè)計工具,集成NiosII軟核處理器與總線訪問IP核,實現(xiàn)了滿足MVB協(xié)議的I類網(wǎng)卡設(shè)計。
關(guān)鍵詞: 列車通信網(wǎng)絡(luò)(TCN);MVB;總線訪問IP核(BAP);SOPC;NiosII
國內(nèi)外車載網(wǎng)絡(luò)技術(shù)的發(fā)展是隨著現(xiàn)場總線網(wǎng)絡(luò)技術(shù)的發(fā)展而發(fā)展起來的,先后產(chǎn)生了RS485、Lonworks、WorldFIP等多種總線網(wǎng)絡(luò)形式。1999年,國際電工委員會(IEC)頒布了IEC-61375標準,該標準中將車載網(wǎng)絡(luò)分為兩級總線的層次結(jié)構(gòu),即用于連接各節(jié)可動態(tài)編組的車輛間的絞線式列車總線WTB(Wire Train Bus)和用于連接車輛(或固定編組的車輛單元)內(nèi)部各種設(shè)備的多功能車輛總線MVB(Multifunction Vehicle Bus),它們之間的列車總線節(jié)點起著網(wǎng)關(guān)的作用,其中MVB網(wǎng)絡(luò)由于較低的要求和其易用性高的特點,在實際中運用很廣泛。本文通過深入研究幾種列車通信網(wǎng)絡(luò)產(chǎn)品底層協(xié)議,特別是TCN 的底層協(xié)議及關(guān)鍵技術(shù),基于SOPC的設(shè)計思想,設(shè)計出符合IEC-61375 標準的MVB總線訪問IP(Intellectual Property)內(nèi)核和網(wǎng)卡。
系統(tǒng)體系結(jié)構(gòu)
本設(shè)計正是基于SOPC的思想,開發(fā)實現(xiàn)自主知識產(chǎn)權(quán)的MVB收發(fā)控制器IP核,借助于Quarters II開發(fā)工具,集成至Altera FPGA器件內(nèi)部,構(gòu)建SOC片上系統(tǒng)實現(xiàn)MVB網(wǎng)卡基本功能,相比傳統(tǒng)國外的MVB網(wǎng)卡,大大簡化了系統(tǒng)的結(jié)構(gòu),降低了開發(fā)難度。
傳統(tǒng)MVB網(wǎng)卡的硬件結(jié)構(gòu)比較復(fù)雜,設(shè)計實現(xiàn)上有較大的難度。如圖1所示,是Duagon公司的一款典型的MVB網(wǎng)卡d113的硬件結(jié)構(gòu)。其硬件主要有以下幾個部分構(gòu)成:中央控制器采用高性能的32位ARM處理器,存儲系統(tǒng)由非易失性程序存儲器(ROM)Flash,以及數(shù)據(jù)存儲器RAM組成,可編程器件上實現(xiàn)MVB收發(fā)器以及外部PC/104總線接口。
圖1 d113硬件框圖
本設(shè)計在一片F(xiàn)PGA上,采用SOPC技術(shù)實現(xiàn)的MVB網(wǎng)卡:由Altera 公司提供的32位高性能軟核處理器NiosII取代ARM處理器,ROM,RAM及Traffic Memory均可以在FPGA片內(nèi)由SOPC Builder工具實現(xiàn),再集成MVB總線訪問IP核便可以構(gòu)成MVB網(wǎng)卡,實現(xiàn)了真正的片上系統(tǒng)。其硬件框圖如圖2所示。
圖2 網(wǎng)卡結(jié)構(gòu)框圖
總線訪問IP核的實現(xiàn)
總線訪問IP 核是實現(xiàn)WTB和MVB的總線訪問處理器(BAP)的核心內(nèi)容。由此IP 核結(jié)合物理層的總線收發(fā)器完成總線訪問??偩€訪問IP核可分為物理層、數(shù)據(jù)鏈路層與應(yīng)用層的接口三大部分。1)在物理層實現(xiàn)基帶曼徹斯特Biphase-L編解碼,介質(zhì)冗余處理,介質(zhì)安裝單元接口;用于輸入解碼的數(shù)字鎖相環(huán)的設(shè)計。2)鏈路層包括尋址方式,F(xiàn)-code(功能代碼)的生成,主從設(shè)備幀內(nèi)容的填充,介質(zhì)訪問控制(MAC)等。3)與應(yīng)用層的接口通常采用共享存儲器的方法,需要完成端口的定義與維護,通信存儲器的控制等。其邏輯框圖如圖3。
圖3 網(wǎng)卡結(jié)構(gòu)框圖
MVB幀結(jié)構(gòu)
在MVB中有兩種幀格式,一種是只能由總線主設(shè)備發(fā)送的主設(shè)備幀,簡稱主幀,一種是為響應(yīng)主幀而由從設(shè)備發(fā)送的從設(shè)備幀,簡稱從幀。 一個幀以9位定界符開始,主設(shè)備幀分界符和從設(shè)備幀分界符對防止同步失敗是不相同的。
MVB編碼器
MVB總線數(shù)據(jù)以幀為基本單位,數(shù)據(jù)幀采用了曼徹斯特碼傳輸,編碼和解碼器不只是進行曼徹斯特編解碼,幀頭幀尾的特殊編解碼也需要在這里進行,采用傳統(tǒng)的曼徹斯特編解碼器將無法完成此項工作。在本設(shè)計中,采用了結(jié)合收發(fā)器的狀態(tài)機具體狀態(tài)進行編解碼的設(shè)計方法解決這一問題。MVB幀發(fā)送器通過控制邏輯模塊調(diào)用曼徹斯特編碼與CRC校驗?zāi)K、通信存儲單元模塊完成緩沖區(qū)數(shù)據(jù)的發(fā)送。
MVB幀接收器
接收器實現(xiàn)的關(guān)鍵是有效數(shù)據(jù)幀的識別,實現(xiàn)思路類似于發(fā)送器,根據(jù)編碼校驗可以實現(xiàn)。另一個問題是與總線的接口方式,該設(shè)計采用了8位并行數(shù)據(jù)寬度輸出,加序號標識的方法可以接收任意給定長度的有效數(shù)據(jù)。
數(shù)據(jù)校驗
幀數(shù)據(jù)用一個或更多的8位校驗序列來保護,數(shù)據(jù)的內(nèi)容應(yīng)處理成64位的代碼字(對小一些的數(shù)據(jù)用16或32位),不包括起始分界符和終止分界符。這個代碼字和隨后的校驗序列應(yīng)作為最高有效的數(shù)據(jù)位首先發(fā)送。
校驗序列按被其保護的16,32或64位數(shù)據(jù)的循環(huán)冗余校驗(CRC)計算。校驗序列按多項式計算,7位運算結(jié)果用一個偶校驗位進行擴展。所有的8位數(shù)據(jù)取反發(fā)送。
通信存儲單元模塊
通信存儲器(Traffic Store)作為MVB標準中的一個重要實現(xiàn)手段,是MVB接口網(wǎng)卡中的重要組成部分。通信存儲器容量的大小依據(jù)具體應(yīng)用而定。在MVB網(wǎng)絡(luò)中通常所需要的通信存儲器容量為32或64個端口即可,每個端口需要占用的空間最大為256位,這樣通信存儲器所需要的空間為8kbits或16kbits。開辟FPGA中的DRAM作為通信存儲單元,完成數(shù)據(jù)交互功能。用來存儲經(jīng)由MVB總線傳輸?shù)臄?shù)據(jù),是控制邏輯模塊與編碼校驗單元之間的共享單元??刂七壿嬆K依據(jù)通信存儲模塊端口地址的起始地址,以及其數(shù)據(jù)長度,來讀取相應(yīng)的過程數(shù)據(jù)和消息數(shù)據(jù)等。
Avolon總線接口設(shè)計
MVB總線處理IP核與NiosII的接口設(shè)計的實現(xiàn)是通過Traffic Store(共享RAM)來實現(xiàn)的。使用Quarters Ⅱ中的MegaWizard plug-in Manager工具來產(chǎn)生一個雙口RAM模塊,其設(shè)置如表1所示。
該通信存儲器與Nios II處理器通過Avalon總線接口。
SOPC片上系統(tǒng)MVB網(wǎng)卡的實現(xiàn)
總線訪問IP核與Nios II的系統(tǒng)集成
利用Quarters II的SOPC Builder工具我們集成了NiosII 軟核處理器、4k的片內(nèi)RAM、MVB總線訪問IP核(包括編碼器和解碼器)以及LCD控制模塊,構(gòu)成了一個能實現(xiàn)MVB一類網(wǎng)卡功能的片上系統(tǒng)。
軟件設(shè)計
基于以上所述的SOPC系統(tǒng),我們設(shè)計了一個基本的MVB節(jié)點以實現(xiàn)過程數(shù)據(jù)傳輸。本節(jié)點將0x14地址設(shè)置為源端口,當(dāng)主幀輪詢0x14地址時,本節(jié)點將此端口里的數(shù)據(jù)打包成從幀發(fā)送到總線上面,以刷新0x14地址的宿端口。
altera_avalon_mvb.h的設(shè)計,包括總線訪問IP核寄存器讀寫的宏定義。
#define IORD_ALTERA_AVALON_ MVB_SENDREG(base) IORD(base, 0)
#define IOWR_ALTERA_AVALON_ MVB_SENDREG(base, data) IOWR(base, 0, data)
在主函數(shù)里置MVB總線接收允許位,循環(huán)等待接收MVB主控制器發(fā)過來的主幀。節(jié)點在接收到主幀之后,程序進入中斷處理程序。在中斷程序里提取接收到的主幀里的端口地址,并與自身預(yù)設(shè)的端口地址碼進行比較,如果地址碼相符,則節(jié)點將本端口的數(shù)據(jù)通過MVB發(fā)送器發(fā)到總線上,實現(xiàn)端口數(shù)據(jù)刷新操作。
仿真及實現(xiàn)
仿真波形
在本實驗中,對實驗室設(shè)計的MVB板卡進行了功能仿真和FPGA驗證,通過對過程數(shù)據(jù)的發(fā)送與接收驗證了所搭建的MVB系統(tǒng)。
實測波形
在編好程序后,再編譯一遍QuartersII工程文件,將得到的.pof文件下載至FPGA內(nèi),上電后用示波器測輸出管腳,便可觀察到MVB幀波形。對照IEC-61375協(xié)議標準,可以判斷出該波形為符合標準的正確波形,并且源端口節(jié)點上收到了正確的數(shù)據(jù),從而證明該過程數(shù)據(jù)端口的成功刷新。
結(jié)語
目前國內(nèi)的列車網(wǎng)絡(luò)及控制技術(shù)是在技術(shù)引進的基礎(chǔ)上發(fā)展起來的,國外廠商只愿提供產(chǎn)品而不轉(zhuǎn)讓關(guān)鍵技術(shù)。由于難以單獨購買網(wǎng)絡(luò)專用芯片等種種原因,目前仍是直接采用國外產(chǎn)品,或用國外(設(shè)計)的網(wǎng)卡(萬元以上的高價)等進行系統(tǒng)集成,以此構(gòu)成列車通信網(wǎng)絡(luò)(即國產(chǎn)化)。本論文圍繞MVB總線底層協(xié)議展開研究,基于SOPC設(shè)計思想,對利用FPGA實現(xiàn)IEC61375協(xié)議進行了嘗試,初步完成了MVB網(wǎng)絡(luò)I類板卡的設(shè)計。目前,對該網(wǎng)絡(luò)協(xié)議的實現(xiàn)方面還僅限于初期階段,只實現(xiàn)了MVB總線基本的過程數(shù)據(jù)的收發(fā)。該系統(tǒng)的后續(xù)還需加入消息監(jiān)督數(shù)據(jù)等的通信。在實際的節(jié)點應(yīng)用中,也可能出現(xiàn)各種各樣的問題需要加以改進。
參考文獻:
1. IEC61375-1-1999, Part 1:“Train Communication Network”
2. zur Bonsen, The Multifunction Vehicle Bus (MVB), Factory Communication Systems, 1995
3. Jaime Jiménez, José L.Martin, Carlos Cuadrado, Jagoba Arias and Jesús Lázaro, “A Top-down Design for the Train Communication Network”,2003 IEEE
4. Alberto Chavarría, Joseba López de Arroyabe, Aitzol Zuloaga, " Slave node architecture for train communications networks" , 2000 IEEE
5. 張大波、王建,《MVB總線實時協(xié)議實現(xiàn)及其實驗研究》
6. 侯寧,丁榮軍,王永翔,王立德,《MVB網(wǎng)卡的幀收發(fā)器設(shè)計》