基于SoPC的網(wǎng)絡(luò )模塊設計與實(shí)現
DM9000A為本設計的核心,其模塊如圖6所示。其中:本文引用地址:http://dyxdggzs.com/article/154540.htm
網(wǎng)絡(luò )通信,最重要的就是協(xié)議的一致。本設計將各個(gè)協(xié)議字段存儲在一維無(wú)符號字符型數組中,根據各個(gè)協(xié)議需求的不同而開(kāi)辟不同的空間,如下:
接收到的數據報存儲在無(wú)符號字符型數組中,其中數組長(cháng)度,即可接收的數據報長(cháng)度MAX_PACKET_SIZE由頭文件確定為1522,如下:
unsigned char rcv [MAX_PACKET_SIZE];
//接收到的報文
網(wǎng)絡(luò )模塊控制流程如圖7所示。系統首先對網(wǎng)絡(luò )控制器DM9000A進(jìn)行初始化,包括ARP、內存、定時(shí)器等的初始化。初始化完成之后,通過(guò)特定接口設置網(wǎng)卡的IP地址、子網(wǎng)掩碼、默認網(wǎng)關(guān)等信息。接下來(lái),網(wǎng)絡(luò )模塊開(kāi)啟中斷,以便接收網(wǎng)絡(luò )控制器的中斷信號。當接收到發(fā)送端或接收端的中斷信號后,分別進(jìn)入到各自的處理進(jìn)程中進(jìn)行處理。若沒(méi)有中斷,系統則進(jìn)入等待狀態(tài)。
3 系統測試
由前面的工作,完成了網(wǎng)絡(luò )模塊軟、硬件部分的設計。將設計下載到FPGA平臺中,運行該系統。
使用網(wǎng)線(xiàn)將FPGA的RJ45接口與路由器相連接。網(wǎng)絡(luò )模塊自動(dòng)獲取IP地址為192.168.0.101,子剛掩碼為255.255.255.0,默認網(wǎng)關(guān)為192.168.0.1計算機也與同一個(gè)路由器相連,其獲取的IP地址為192.168.0.100。這樣計算機與FPGA中網(wǎng)絡(luò )模塊處于同一網(wǎng)段,互相之間可以通信。使用Ping命令,由計算機向網(wǎng)絡(luò )模塊的IP地址192.168.0.101發(fā)送500個(gè)包,無(wú)丟包現象,在這500個(gè)數據包中,返回速度在2~5ms之間。通過(guò)在NiosⅡIDE中編程實(shí)現網(wǎng)絡(luò )模塊Ping計算機,同樣發(fā)送500個(gè)包沒(méi)有丟包現象。
將另一個(gè)同樣的FPGA連接到路由器上,獲取到IP地址192.168.0.102。在NiosⅡIDE中編程,IP地址為192.168.0.101的FPGA通過(guò)網(wǎng)絡(luò )模塊向IP地址為192.168.0.102的FPGA發(fā)送UDP格式的控制報文,可以順利控制后者面板上LED燈的亮滅,延遲不超過(guò)1秒。
本設計完成了基于SoPC的網(wǎng)絡(luò )摸塊的軟硬件設計與調試,驗證了網(wǎng)絡(luò )饃塊的工作狀況,并在此基礎上實(shí)現了基于網(wǎng)絡(luò )的控制命令的傳送,使SoPC設計能與PC機或其他各種電子設備進(jìn)行數據交換。隨著(zhù)物聯(lián)網(wǎng)技術(shù)的發(fā)展,基于網(wǎng)絡(luò )的系統必將具有廣闊的應用前景。
評論