引 言
基于分布式控制的MVB(多功能車輛總線)是IEC61375-l(1999)TCN(列車通信網絡國際標準)的推薦方案,它與WTB(絞線式列車總線)構成的列車通信總線具有實時性強、可靠性高的特點。MVB作為快速的過程控制優化的總線,能提供最佳的響應速度.是主要用于有互操作性和互換性要求的互聯設備之間的串行數據通信總線,適合用作車輛總線,對于固定編組的列車,MVB也可以用作列車總線,如圖1所示。
隨著系統集成技術的不斷成熟,出現了一種新興的產業,即IP(Intellcctual Property,知識產權)產品及模塊化設計。在集成電路設計中,IP特指可以通過知識產權貿易,在各設計公司間流通的實現特定功能的電路模塊。IP核的奉質特征是可鶯用性,通常滿足良好的通用性、可移植性及絕對正確3個基本特征,是未來SOPC(System OnProgrammable Chit))設計的核心。要使SOPC設計成功,就要更多地采用知識產權(IP)復用,以快速地完成設計,得到價格低廉的硅器件,從而滿足市場需求。
筆者對國外傳統MVB通信控制器芯片MVBC以及MVB底層通信協議進行了深入的研究,在此基礎上設計了自主知識產權的MVB總線訪問IP核,并利用SOPC技術設計了MVB控制器。
1 MVBC介紹
MVBC(多功能車輛總線控制器)是MVB總線上的新一代核心處理器。它獨立于物理層和功能設備,為總線上的各個設備提供通信接口和通信服務。MVBC與上一代MVB通信控制器BAP15-2/3相比,在性能上有了很大的提高,是目前MVH總線上最先進的通信控制器。MVBC內部結構如圖2所示。
MVBC用于將來自MVB總線的串行位信號轉換為并行的數據字節,把需發送的字節交由串行化電路發送到傳輸介質上,實現數據鏈路層以及部分傳輸層的數據處理,并通過通信存儲器與上層軟件交互。總線控制器內部包含編解碼電路和控制通信存儲器所需的邏輯電路,用來控制幀的發送和接收(如沖突檢測、幀的前導比特處理和CRC校驗位的處理等)。
2 MVB總線訪問IP核的實現
總線訪問IP核用于代替現有MVB網卡的MVBC芯片實現應用的功能,由此IP核結合物理層的總線收發器完成總線訪問。總線訪問IP核可分為物理層、數據鏈路層和與應用層的接口3部分。
①物理層:實現基帶曼徹斯特Biphase-L編解碼,介質冗余處理,介質安裝單元接口,以及用于輸入解碼的數字鎖相環的設計。
②數據鏈路層:包括尋址方式,F-code(功能代碼)的生成,主從設備幀內容的填充以及介質訪問控制(MAC)等。
③與應用層的接口:通常采用共享存儲器的方法,需要完成端口的定義與維護、通信存儲器的控制等,其邏輯框圖如圖3所示。
2.1 MVB幀結構
在MVB中有兩種幀格式:一種是只能由總線主設備發送的主設備幀,簡稱“主幀”;另一種是為響應主幀而由從設備發送的從設備幀,簡稱“從幀”。一個幀以9位定界符開始,主設備幀分界符和從設備幀分界符對于防止同步失敗是不相同的。圖4為MVB主從幀結構圖。
2.2 MVB幀發送器
MVB總線數據以幀為基本單位,數據幀采用了曼徹斯特碼傳輸。編碼器和解碼器不只是進行曼徹斯特編解碼,幀頭幀尾的特殊編解碼也需要在這里進行,采用傳統的曼徹斯特編解碼器將無法完成此項工作。在本設計中,采用結合收發器的狀態機具體狀態進行編解碼設訃的方法解決這一問題。MVB幀發送器通過控制邏輯模塊,調用曼徹斯特編碼與CRC校驗模塊,通信存儲單元模塊完成緩沖區數據的發送。
下面說明發送器的狀態機FSM(Finite State Machine)的設計。發送器的一項主要功能是實現并串轉換和組幀。MVB總線數據在收到發送置位信號后開始進行數據發送;當數據存入通信存儲單元后,等待控制邏輯模塊的置位信號;然后進入幀的發送狀態,通過時鐘信號的觸發完成各個狀態之問的轉移,實現一組有效的幀數據發送。發送器的狀態機FSM如圖5所示。
2.3 MVB幀接收器
接收器實現的關鍵是有效數據幀的識別,實現思路類似于發送器,根據編碼校驗可以實現。另一個問題是與總線的接口方式,本設計采用了8位并行數據寬度輸出,加序號標識的方法可以接收任意給定長度的有效數據。接收器的狀態機如圖6所示。
2.4 Avalon總線接口
采用Altera公司開發的Avalon交互式片上系統總線作為本總線訪問IP核的內聯總線,連接IP核內各個模塊。如圖7所示,總線訪問IP核結構包括:編碼器模塊、解碼器模塊、宿端口刷新時間監控模塊、一類設備邏輯控制模塊。總線訪問IP核內共有4個Avalon從端口,其中NiosII主控制器上設置了一個Avalon總線主端口,其他各個模塊上面均設置了Avalon總線從端口,由主控制器控制總線上的數據流傳輸實現各個模塊的協同工作,其邏輯框圖如圖7所示。
3 SOPC片上系統MVB控制器設計
3.1 總線訪問IP核與NiosII的系統集成
利用QuartersII的SOPC Builder工具,集成了1個32位NiosII軟核處理器、4 KB的片內RAM、MVB總線訪問IP核(包括編碼器和解碼器)以及LCD控制模塊,在Altera的CycloneII FPGA上構成了一個能實現MVB一類網絡節點功能的片上系統,如圖8所示。圖9為SOPCBuilder中各個功能模塊的凋用情況。
3.2 NiosII處理器上的軟件設計
基于上述SOPC系統,設計了一個基本的MVB節點,以實現過程數據傳輸。該節點將Oxl4地址設置為源端口。當主幀輪詢0x14地址時,本節點將此端口里的數據打包成從幀發送到總線上面,以刷新0x14地址的宿端口。
MVB模塊頭文件altera_avalon_mvb.h的設計,包括總線訪問IP核寄存器讀寫的宏定義。
在主函數里置MVB總線接收允許位,循環等待接收MVB主控制器發過來的主幀。節點在接收到主幀之后,程序進入中斷處理程序。在巾斷程序里提取接收到的主幀里的端口地址,并與自身預設的端幾地址碼進行比較。如果地址碼相符,則節點將本端口的數據通過MVB發送器發到總線上,實現端口數據刷新操作。
主循環代碼節選:
4 仿真與實測波形
4.1 仿真波形
在本實驗中,對實驗室設計的MVB板卡進行了功能仿真和FPGA驗證.通過對過程數據的發送與接收驗證了所搭建的MVB系統。對MVB總線控制器發送過程的主從幀仿真結果如圖10所示。發送的主從幀數據都為0x0055,包含1個幀頭及8位CRC校驗數據。
4.2 實測波形
編好程序后,再編譯一遍QuartersII工程文件,將得到的.pof文什下載至FPGA內。上電后用示波器測輸出引腳,便可觀察到MVB從幀波形,實測波形如圖11所示。對照IEC-61375協議標準,可以判斷出該渡形為符合標準的正確波形,并且源端口節點上收到了正確的數據,從而證明該過程數據端口成功刷新。
結語
目前,MVB控制器實現了實驗室環境中過程變量的正確接收和發送。本總線訪問IP核實現的功能與MVBC相當,但是由于采用了先進的SOPC設計技術,其體系結構大大簡化,設計難度也大大降低,在通用性方面有了很大的提高。