新闻中心

EEPW首页>手机与无线通信>设计应用> 基于SoPC的网络模块设计与实现

基于SoPC的网络模块设计与实现

作者: 时间:2012-06-27 来源:网络 收藏

DM9000A为本的核心,其如图6所示。其中:

本文引用地址://m.amcfsurvey.com/article/154540.htm


通信,最重要的就是协议的一致。本将各个协议字段存储在一维无符号字符型数组中,根据各个协议需求的不同而开辟不同的空间,如下:
j.JPG
接收到的数据报存储在无符号字符型数组中,其中数组长度,即可接收的数据报长度MAX_PACKET_SIZE由头文件确定为1522,如下:
unsigned char rcv [MAX_PACKET_SIZE];
//接收到的报文

k.JPG


控制流程如图7所示。系统首先对控制器DM9000A进行初始化,包括ARP、内存、定时器等的初始化。初始化完成之后,通过特定接口设置网卡的IP地址、子网掩码、默认网关等信息。接下来,网络开启中断,以便接收网络控制器的中断信号。当接收到发送端或接收端的中断信号后,分别进入到各自的处理进程中进行处理。若没有中断,系统则进入等待状态。

3 系统测试
由前面的工作,完成了网络模块软、硬件部分的。将设计下载到FPGA平台中,运行该系统。
使用网线将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发送500个包,无丢包现象,在这500个数据包中,返回速度在2~5ms之间。通过在NiosⅡIDE中编程网络模块Ping计算机,同样发送500个包没有丢包现象。
将另一个同样的FPGA连接到路由器上,获取到IP地址192.168.0.102。在NiosⅡIDE中编程,IP地址为192.168.0.101的FPGA通过网络模块向IP地址为192.168.0.102的FPGA发送UDP格式的控制报文,可以顺利控制后者面板上LED灯的亮灭,延迟不超过1秒。
本设计完成了的网络摸块的软硬件设计与调试,验证了网络馍块的工作状况,并在此基础上网络的控制命令的传送,使设计能与PC机或其他各种电子设备进行数据交换。随着物联网技术的发展,网络的系统必将具有广阔的应用前景。


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭