系統(tǒng)體系結(jié)構(gòu)
本設(shè)計(jì)正是基于SOPC的思想,開發(fā)實(shí)現(xiàn)自主知識(shí)產(chǎn)權(quán)的MVB收發(fā)控制器IP核,借助于QuartersII開發(fā)工具,集成至AlteraFPGA器件內(nèi)部,構(gòu)建SOC片上系統(tǒng)實(shí)現(xiàn)MVB網(wǎng)卡基本功能,相比傳統(tǒng)國(guó)外的MVB網(wǎng)卡,大大簡(jiǎn)化了系統(tǒng)的結(jié)構(gòu),降低了開發(fā)難度。
傳統(tǒng)MVB網(wǎng)卡的硬件結(jié)構(gòu)比較復(fù)雜,設(shè)計(jì)實(shí)現(xiàn)上有較大的難度。如圖1所示,是Duagon公司的一款典型的MVB網(wǎng)卡d113的硬件結(jié)構(gòu)。其硬件主要有以下幾個(gè)部分構(gòu)成:中央控制器采用高性能的32位ARM處理器,存儲(chǔ)系統(tǒng)由非易失性程序存儲(chǔ)器(ROM)Flash,以及數(shù)據(jù)存儲(chǔ)器RAM組成,可編程器件上實(shí)現(xiàn)MVB收發(fā)器以及外部PC/104總線接口。
圖1 d113硬件框圖
本設(shè)計(jì)在一片F(xiàn)PGA上,采用SOPC技術(shù)實(shí)現(xiàn)的MVB網(wǎng)卡:由Altera公司提供的32位高性能軟核處理器NiosII取代ARM處理器,ROM,RAM及TrafficMemory均可以在FPGA片內(nèi)由SOPCBuilder工具實(shí)現(xiàn),再集成MVB總線訪問(wèn)IP核便可以構(gòu)成MVB網(wǎng)卡,實(shí)現(xiàn)了真正的片上系統(tǒng)。其硬件框圖如圖2所示。
圖2 網(wǎng)卡結(jié)構(gòu)框圖
總線訪問(wèn)IP核的實(shí)現(xiàn)
總線訪問(wèn)IP核是實(shí)現(xiàn)WTB和MVB的總線訪問(wèn)處理器(BAP)的核心內(nèi)容。由此IP核結(jié)合物理層的總線收發(fā)器完成總線訪問(wèn)。總線訪問(wèn)IP核可分為物理層、數(shù)據(jù)鏈路層與應(yīng)用層的接口三大部分。1)在物理層實(shí)現(xiàn)基帶曼徹斯特Biphase-L編解碼,介質(zhì)冗余處理,介質(zhì)安裝單元接口;用于輸入解碼的數(shù)字鎖相環(huán)的設(shè)計(jì)。2)鏈路層包括尋址方式,F(xiàn)-code(功能代碼)的生成,主從設(shè)備幀內(nèi)容的填充,介質(zhì)訪問(wèn)控制(MAC)等。3)與應(yīng)用層的接口通常采用共享存儲(chǔ)器的方法,需要完成端口的定義與維護(hù),通信存儲(chǔ)器的控制等。其邏輯框圖如圖3。
圖3 網(wǎng)卡結(jié)構(gòu)框圖
MVB幀結(jié)構(gòu)
在MVB中有兩種幀格式,一種是只能由總線主設(shè)備發(fā)送的主設(shè)備幀,簡(jiǎn)稱主幀,一種是為響應(yīng)主幀而由從設(shè)備發(fā)送的從設(shè)備幀,簡(jiǎn)稱從幀。一個(gè)幀以9位定界符開始,主設(shè)備幀分界符和從設(shè)備幀分界符對(duì)防止同步失敗是不相同的。
MVB編碼器
MVB總線數(shù)據(jù)以幀為基本單位,數(shù)據(jù)幀采用了曼徹斯特碼傳輸,編碼和解碼器不只是進(jìn)行曼徹斯特編解碼,幀頭幀尾的特殊編解碼也需要在這里進(jìn)行,采用傳統(tǒng)的曼徹斯特編解碼器將無(wú)法完成此項(xiàng)工作。在本設(shè)計(jì)中,采用了結(jié)合收發(fā)器的狀態(tài)機(jī)具體狀態(tài)進(jìn)行編解碼的設(shè)計(jì)方法解決這一問(wèn)題。MVB幀發(fā)送器通過(guò)控制邏輯模塊調(diào)用曼徹斯特編碼與CRC校驗(yàn)?zāi)K、通信存儲(chǔ)單元模塊完成緩沖區(qū)數(shù)據(jù)的發(fā)送。
MVB幀接收器
接收器實(shí)現(xiàn)的關(guān)鍵是有效數(shù)據(jù)幀的識(shí)別,實(shí)現(xiàn)思路類似于發(fā)送器,根據(jù)編碼校驗(yàn)可以實(shí)現(xiàn)。另一個(gè)問(wèn)題是與總線的接口方式,該設(shè)計(jì)采用了8位并行數(shù)據(jù)寬度輸出,加序號(hào)標(biāo)識(shí)的方法可以接收任意給定長(zhǎng)度的有效數(shù)據(jù)。
數(shù)據(jù)校驗(yàn)
幀數(shù)據(jù)用一個(gè)或更多的8位校驗(yàn)序列來(lái)保護(hù),數(shù)據(jù)的內(nèi)容應(yīng)處理成64位的代碼字(對(duì)小一些的數(shù)據(jù)用16或32位),不包括起始分界符和終止分界符。這個(gè)代碼字和隨后的校驗(yàn)序列應(yīng)作為最高有效的數(shù)據(jù)位首先發(fā)送。
校驗(yàn)序列按被其保護(hù)的16,32或64位數(shù)據(jù)的循環(huán)冗余校驗(yàn)(CRC)計(jì)算。校驗(yàn)序列按多項(xiàng)式計(jì)算,7位運(yùn)算結(jié)果用一個(gè)偶校驗(yàn)位進(jìn)行擴(kuò)展。所有的8位數(shù)據(jù)取反發(fā)送。
通信存儲(chǔ)單元模塊
通信存儲(chǔ)器(TrafficStore)作為MVB標(biāo)準(zhǔn)中的一個(gè)重要實(shí)現(xiàn)手段,是MVB接口網(wǎng)卡中的重要組成部分。通信存儲(chǔ)器容量的大小依據(jù)具體應(yīng)用而定。在MVB網(wǎng)絡(luò)中通常所需要的通信存儲(chǔ)器容量為32或64個(gè)端口即可,每個(gè)端口需要占用的空間最大為256位,這樣通信存儲(chǔ)器所需要的空間為8kbits或16kbits。開辟FPGA中的DRAM作為通信存儲(chǔ)單元,完成數(shù)據(jù)交互功能。用來(lái)存儲(chǔ)經(jīng)由MVB總線傳輸?shù)臄?shù)據(jù),是控制邏輯模塊與編碼校驗(yàn)單元之間的共享單元。控制邏輯模塊依據(jù)通信存儲(chǔ)模塊端口地址的起始地址,以及其數(shù)據(jù)長(zhǎng)度,來(lái)讀取相應(yīng)的過(guò)程數(shù)據(jù)和消息數(shù)據(jù)等。
Avolon總線接口設(shè)計(jì)
MVB總線處理IP核與NiosII的接口設(shè)計(jì)的實(shí)現(xiàn)是通過(guò)TrafficStore(共享RAM)來(lái)實(shí)現(xiàn)的。使用QuartersⅡ中的MegaWizard?plug-inManager工具來(lái)產(chǎn)生一個(gè)雙口RAM模塊,其設(shè)置如表1所示。
該通信存儲(chǔ)器與NiosII處理器通過(guò)Avalon總線接口。
SOPC片上系統(tǒng)MVB網(wǎng)卡的實(shí)現(xiàn)
總線訪問(wèn)IP核與NiosII的系統(tǒng)集成
利用QuartersII的SOPCBuilder工具我們集成了NiosII軟核處理器、4k的片內(nèi)RAM、MVB總線訪問(wèn)IP核(包括編碼器和解碼器)以及LCD控制模塊,構(gòu)成了一個(gè)能實(shí)現(xiàn)MVB一類網(wǎng)卡功能的片上系統(tǒng)。
軟件設(shè)計(jì)
基于以上所述的SOPC系統(tǒng),我們?cè)O(shè)計(jì)了一個(gè)基本的MVB節(jié)點(diǎn)以實(shí)現(xiàn)過(guò)程數(shù)據(jù)傳輸。本節(jié)點(diǎn)將0x14地址設(shè)置為源端口,當(dāng)主幀輪詢0x14地址時(shí),本節(jié)點(diǎn)將此端口里的數(shù)據(jù)打包成從幀發(fā)送到總線上面,以刷新0x14地址的宿端口。
altera_avalon_mvb.h的設(shè)計(jì),包括總線訪問(wèn)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ā)過(guò)來(lái)的主幀。節(jié)點(diǎn)在接收到主幀之后,程序進(jìn)入中斷處理程序。在中斷程序里提取接收到的主幀里的端口地址,并與自身預(yù)設(shè)的端口地址碼進(jìn)行比較,如果地址碼相符,則節(jié)點(diǎn)將本端口的數(shù)據(jù)通過(guò)MVB發(fā)送器發(fā)到總線上,實(shí)現(xiàn)端口數(shù)據(jù)刷新操作。
仿真及實(shí)現(xiàn)
仿真波形
在本實(shí)驗(yàn)中,對(duì)實(shí)驗(yàn)室設(shè)計(jì)的MVB板卡進(jìn)行了功能仿真和FPGA驗(yàn)證,通過(guò)對(duì)過(guò)程數(shù)據(jù)的發(fā)送與接收驗(yàn)證了所搭建的MVB系統(tǒng)。
實(shí)測(cè)波形
在編好程序后,再編譯一遍QuartersII工程文件,將得到的.pof文件下載至FPGA內(nèi),上電后用示波器測(cè)輸出管腳,便可觀察到MVB幀波形。對(duì)照IEC-61375協(xié)議標(biāo)準(zhǔn),可以判斷出該波形為符合標(biāo)準(zhǔn)的正確波形,并且源端口節(jié)點(diǎn)上收到了正確的數(shù)據(jù),從而證明該過(guò)程數(shù)據(jù)端口的成功刷新。
結(jié)語(yǔ)
目前國(guó)內(nèi)的列車網(wǎng)絡(luò)及控制技術(shù)是在技術(shù)引進(jìn)的基礎(chǔ)上發(fā)展起來(lái)的,國(guó)外廠商只愿提供產(chǎn)品而不轉(zhuǎn)讓關(guān)鍵技術(shù)。由于難以單獨(dú)購(gòu)買網(wǎng)絡(luò)專用芯片等種種原因,目前仍是直接采用國(guó)外產(chǎn)品,或用國(guó)外(設(shè)計(jì))的網(wǎng)卡(萬(wàn)元以上的高價(jià))等進(jìn)行系統(tǒng)集成,以此構(gòu)成列車通信網(wǎng)絡(luò)(即國(guó)產(chǎn)化)。本論文圍繞MVB總線底層協(xié)議展開研究,基于SOPC設(shè)計(jì)思想,對(duì)利用FPGA實(shí)現(xiàn)IEC61375協(xié)議進(jìn)行了嘗試,初步完成了MVB網(wǎng)絡(luò)I類板卡的設(shè)計(jì)。目前,對(duì)該網(wǎng)絡(luò)協(xié)議的實(shí)現(xiàn)方面還僅限于初期階段,只實(shí)現(xiàn)了MVB總線基本的過(guò)程數(shù)據(jù)的收發(fā)。該系統(tǒng)的后續(xù)還需加入消息監(jiān)督數(shù)據(jù)等的通信。在實(shí)際的節(jié)點(diǎn)應(yīng)用中,也可能出現(xiàn)各種各樣的問(wèn)題需要加以改進(jìn)。
責(zé)任編輯:gt
-
控制器
+關(guān)注
關(guān)注
112文章
16448瀏覽量
179466 -
總線
+關(guān)注
關(guān)注
10文章
2903瀏覽量
88399 -
IP核
+關(guān)注
關(guān)注
4文章
331瀏覽量
49643
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
MVB總線接口技術(shù)
MVB總線訪問(wèn)IP內(nèi)核和網(wǎng)卡該如何去設(shè)計(jì)?
基于SOPC的列車通信網(wǎng)卡的設(shè)計(jì)
MVB技術(shù)在列車PIS組網(wǎng)中的應(yīng)用
![<b class='flag-5'>MVB</b>技術(shù)在列車PIS組網(wǎng)中的應(yīng)用](https://file.elecfans.com/web2/M00/48/E9/pYYBAGKhtCyANgQPAAARUsXfGYM974.jpg)
基于SOPC的車輛息線控制器設(shè)計(jì)方案
![基于<b class='flag-5'>SOPC</b>的車輛息線<b class='flag-5'>控制器</b>設(shè)計(jì)方案](https://file1.elecfans.com//web2/M00/A5/F6/wKgZomUMOwaAHYr2AAASdTuot8E341.jpg)
MVB總線協(xié)議分析儀的設(shè)計(jì)與實(shí)現(xiàn)
![<b class='flag-5'>MVB</b>總線協(xié)議分析儀的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>](https://file.elecfans.com/web2/M00/49/21/pYYBAGKhtDqAIV_5AAARnLP1drs682.jpg)
多功能車輛總線,深扒MVB協(xié)議
![多功能車輛總線,深扒<b class='flag-5'>MVB</b>協(xié)議](https://file1.elecfans.com//web2/M00/A7/2F/wKgZomUMQuGAdGNvAAAhOyr4Y3s179.png)
MVB三層架構(gòu)的網(wǎng)絡(luò)模型(OPNET仿真)
MVB-CAN通信網(wǎng)關(guān)的硬件設(shè)計(jì)框圖、軟件設(shè)計(jì)和系統(tǒng)性能測(cè)試詳細(xì)介紹
![<b class='flag-5'>MVB</b>-CAN通信網(wǎng)關(guān)的硬件設(shè)計(jì)框圖、軟件設(shè)計(jì)和系統(tǒng)性能測(cè)試詳細(xì)介紹](https://file.elecfans.com/web1/M00/67/D4/o4YBAFu-ycWAOCS2AACeqHFz2LQ379.png)
采用NET+50和MVBC01芯片實(shí)現(xiàn)MVB 2類設(shè)備系統(tǒng)的設(shè)計(jì)
![采用NET+50和MVBC01芯片<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>MVB</b> 2類設(shè)備系統(tǒng)的設(shè)計(jì)](https://file.elecfans.com/web1/M00/BA/B7/o4YBAF6g6OGAS2gsAACh8ntlrEw318.png)
采用可編輯邏輯器件實(shí)現(xiàn)MVB總線分析結(jié)構(gòu)的設(shè)計(jì)
![采用可編輯邏輯器件<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>MVB</b>總線分析結(jié)構(gòu)的設(shè)計(jì)](https://file.elecfans.com/web1/M00/C4/6B/pIYBAF8zrmSAd3OgAABJUuDPmhY760.png)
通用MVB從站網(wǎng)卡Modbus協(xié)議概述
![通用<b class='flag-5'>MVB</b>從站<b class='flag-5'>網(wǎng)卡</b>Modbus協(xié)議概述](https://file1.elecfans.com/web2/M00/8E/98/wKgZomTIp-eAeCUMAAC9Ba2q17U569.jpg)
基于MVB總線的動(dòng)車組網(wǎng)絡(luò)控制的設(shè)計(jì)與實(shí)現(xiàn)
![基于<b class='flag-5'>MVB</b>總線的動(dòng)車組網(wǎng)絡(luò)<b class='flag-5'>控制</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論