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