基于SOPC的車輛總線控制器設(shè)計方案
3 SOPC片上系統(tǒng)MVB控制器設(shè)計
3.1 總線訪問IP核與NiosII的系統(tǒng)集成
利用QuartersII的SOPC Builder工具,集成了1個32位NiosII軟核處理器、4 KB的片內(nèi)RAM、MVB總線訪問IP核(包括編碼器和解碼器)以及LCD控制模塊,在Altera的CycloneII FPGA上構(gòu)成了一個能實現(xiàn)MVB一類網(wǎng)絡(luò)節(jié)點功能的片上系統(tǒng),如圖8所示。圖9為SOPCBuilder中各個功能模塊的凋用情況。
3.2 NiosII處理器上的軟件設(shè)計
基于上述SOPC系統(tǒng),設(shè)計了一個基本的MVB節(jié)點,以實現(xiàn)過程數(shù)據(jù)傳輸。該節(jié)點將Oxl4地址設(shè)置為源端口。當(dāng)主幀輪詢0x14地址時,本節(jié)點將此端口里的數(shù)據(jù)打包成從幀發(fā)送到總線上面,以刷新0x14地址的宿端口。
MVB模塊頭文件altera_avalon_mvb.h的設(shè)計,包括總線訪問IP核寄存器讀寫的宏定義。
在主函數(shù)里置MVB總線接收允許位,循環(huán)等待接收MVB主控制器發(fā)過來的主幀。節(jié)點在接收到主幀之后,程序進入中斷處理程序。在巾斷程序里提取接收到的主幀里的端口地址,并與自身預(yù)設(shè)的端幾地址碼進行比較。如果地址碼相符,則節(jié)點將本端口的數(shù)據(jù)通過MVB發(fā)送器發(fā)到總線上,實現(xiàn)端口數(shù)據(jù)刷新操作。
主循環(huán)代碼節(jié)選:
4 仿真與實測波形
4.1 仿真波形
在本實驗中,對實驗室設(shè)計的MVB板卡進行了功能仿真和FPGA驗證.通過對過程數(shù)據(jù)的發(fā)送與接收驗證了所搭建的MVB系統(tǒng)。對MVB總線控制器發(fā)送過程的主從幀仿真結(jié)果如圖10所示。發(fā)送的主從幀數(shù)據(jù)都為0x0055,包含1個幀頭及8位CRC校驗數(shù)據(jù)。
4.2 實測波形
編好程序后,再編譯一遍QuartersII工程文件,將得到的.pof文什下載至FPGA內(nèi)。上電后用示波器測輸出引腳,便可觀察到MVB從幀波形,實測波形如圖11所示。對照IEC-61375協(xié)議標(biāo)準(zhǔn),可以判斷出該渡形為符合標(biāo)準(zhǔn)的正確波形,并且源端口節(jié)點上收到了正確的數(shù)據(jù),從而證明該過程數(shù)據(jù)端口成功刷新。
結(jié)語
目前,MVB控制器實現(xiàn)了實驗室環(huán)境中過程變量的正確接收和發(fā)送。本總線訪問IP核實現(xiàn)的功能與MVBC相當(dāng),但是由于采用了先進的SOPC設(shè)計技術(shù),其體系結(jié)構(gòu)大大簡化,設(shè)計難度也大大降低,在通用性方面有了很大的提高。
評論