系統(tǒng)體系結(jié)構(gòu)
本設(shè)計正是基于SOPC的思想,開發(fā)實現(xiàn)自主知識產(chǎn)權(quán)的MVB收發(fā)控制器IP核,借助于QuartersII開發(fā)工具,集成至AlteraFPGA器件內(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及TrafficMemory均可以在FPGA片內(nèi)由SOPCBuilder工具實現(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)用層的接口通常采用共享存儲器的方法,需要完成端口的定義與維護(hù),通信存儲器的控制等。其邏輯框圖如圖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ù)幀采用了曼徹斯特碼傳輸,編碼和解碼器不只是進(jìn)行曼徹斯特編解碼,幀頭幀尾的特殊編解碼也需要在這里進(jìn)行,采用傳統(tǒng)的曼徹斯特編解碼器將無法完成此項工作。在本設(shè)計中,采用了結(jié)合收發(fā)器的狀態(tài)機(jī)具體狀態(tài)進(jìn)行編解碼的設(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ù)寬度輸出,加序號標(biāo)識的方法可以接收任意給定長度的有效數(shù)據(jù)。
數(shù)據(jù)校驗
幀數(shù)據(jù)用一個或更多的8位校驗序列來保護(hù),數(shù)據(jù)的內(nèi)容應(yīng)處理成64位的代碼字(對小一些的數(shù)據(jù)用16或32位),不包括起始分界符和終止分界符。這個代碼字和隨后的校驗序列應(yīng)作為最高有效的數(shù)據(jù)位首先發(fā)送。
校驗序列按被其保護(hù)的16,32或64位數(shù)據(jù)的循環(huán)冗余校驗(CRC)計算。校驗序列按多項式計算,7位運算結(jié)果用一個偶校驗位進(jìn)行擴(kuò)展。所有的8位數(shù)據(jù)取反發(fā)送。
通信存儲單元模塊
通信存儲器(TrafficStore)作為MVB標(biāo)準(zhǔn)中的一個重要實現(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)是通過TrafficStore(共享RAM)來實現(xiàn)的。使用QuartersⅡ中的MegaWizard?plug-inManager工具來產(chǎn)生一個雙口RAM模塊,其設(shè)置如表1所示。
該通信存儲器與NiosII處理器通過Avalon總線接口。
SOPC片上系統(tǒng)MVB網(wǎng)卡的實現(xiàn)
總線訪問IP核與NiosII的系統(tǒng)集成
利用QuartersII的SOPCBuilder工具我們集成了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核寄存器讀寫的宏定義。
#defineIORD_ALTERA_AVALON_MVB_SENDREG(base)IORD(base,0)
#defineIOWR_ALTERA_AVALON_MVB_SENDREG(base,data)IOWR(base,0,data)
在主函數(shù)里置MVB總線接收允許位,循環(huán)等待接收MVB主控制器發(fā)過來的主幀。節(jié)點在接收到主幀之后,程序進(jìn)入中斷處理程序。在中斷程序里提取接收到的主幀里的端口地址,并與自身預(yù)設(shè)的端口地址碼進(jìn)行比較,如果地址碼相符,則節(jié)點將本端口的數(shù)據(jù)通過MVB發(fā)送器發(fā)到總線上,實現(xiàn)端口數(shù)據(jù)刷新操作。
仿真及實現(xiàn)
仿真波形
在本實驗中,對實驗室設(shè)計的MVB板卡進(jìn)行了功能仿真和FPGA驗證,通過對過程數(shù)據(jù)的發(fā)送與接收驗證了所搭建的MVB系統(tǒng)。
實測波形
在編好程序后,再編譯一遍QuartersII工程文件,將得到的.pof文件下載至FPGA內(nèi),上電后用示波器測輸出管腳,便可觀察到MVB幀波形。對照IEC-61375協(xié)議標(biāo)準(zhǔn),可以判斷出該波形為符合標(biāo)準(zhǔn)的正確波形,并且源端口節(jié)點上收到了正確的數(shù)據(jù),從而證明該過程數(shù)據(jù)端口的成功刷新。
結(jié)語
目前國內(nèi)的列車網(wǎng)絡(luò)及控制技術(shù)是在技術(shù)引進(jìn)的基礎(chǔ)上發(fā)展起來的,國外廠商只愿提供產(chǎn)品而不轉(zhuǎn)讓關(guān)鍵技術(shù)。由于難以單獨購買網(wǎng)絡(luò)專用芯片等種種原因,目前仍是直接采用國外產(chǎn)品,或用國外(設(shè)計)的網(wǎng)卡(萬元以上的高價)等進(jìn)行系統(tǒng)集成,以此構(gòu)成列車通信網(wǎng)絡(luò)(即國產(chǎn)化)。本論文圍繞MVB總線底層協(xié)議展開研究,基于SOPC設(shè)計思想,對利用FPGA實現(xiàn)IEC61375協(xié)議進(jìn)行了嘗試,初步完成了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)各種各樣的問題需要加以改進(jìn)。
責(zé)任編輯:gt
-
控制器
+關(guān)注
關(guān)注
112文章
16207瀏覽量
177442 -
總線
+關(guān)注
關(guān)注
10文章
2868瀏覽量
87994 -
IP核
+關(guān)注
關(guān)注
4文章
326瀏覽量
49430
發(fā)布評論請先 登錄
相關(guān)推薦
評論