zedboard - 轻量级以太网控制器LWIP

ipconfig/all

route print  显示本机所有的网络


网关是什么

那么 网关到底是什么呢?网关实质上是一个网络通向其他网络的IP 地址。比如有网络A和网络B,网络A的IP 地址范围为“192.168.1.1~192. 168.1.254”, 子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有 路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台 交换机(或 集线器)上,TCP/IP协议也会根据 子网掩码(255.255.255.0)判定两个网络中的 主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过 网关。如果网络A中的 主机发现 数据包的目的主机不在本地网络中,就把数据包转发给它自己的 网关,再由 网关转发给网络B的 网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发 数据包的过程也是如此。所以说,只有设置好网关的IP 地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP 地址是哪台机器的IP 地址呢?网关的IP地址是具有 路由功能的设备的IP地址,具有路由功能的设备有 路由器、启用了 路由协议的服务器(实质上相当于一台路由器)、 代理服务器(也相当于一台路由器)。

ISE14.7搭建LWIP

首先我们要知道,在zedboard中ECH是挂在Cortex-A9上的 ,zedboard上用的是RGMII接口的1000M PHY芯片。有了PHY我们才有了硬件支持,好比我们煮饭有了锅一样。顺便说一下,RGMII是精简的吉比特吉比特介质独立接口。http://baike.baidu.com/view/1030176.htm?fr=aladdin



3 MAC与PHY

有了PHY还不行 ,众所周知,在网络ISO模型中最多有7层。最低的两层便是MAC与PHY,也就是数据链路与物理接口层。




那是不是我们还需要有MAC芯片呢,原则上是需要的,但是但是不用担心,在zynq的A9中,已经给我们做好了,并且可以实现RGMII接口(一个接受一个发送)



4 利用ISE  SDK生成LWIP

既然有了PHY和MAC,那么我们需要做什么呢?我们就需要做数据封装,应用的编写了啊。不然我们的数据报文是怎么来的,就是通过LWIP进行MAC、IP、等等的封包。

用一个空的EDK工程导入到SDK中,为什么用空工程,因为我们暂时不需要PL端的外设。建立一个application project,选择LWIP service模版。具体的工程可以参考CTT   ZedBoard: Zynq-7000 AP SoC Concepts, Tools, and Techniques  A Hands-On Guide to Effective Embedded System Design或者是XILINX  workshops        embedded_system_design_flow_using_zynq  http://china.xilinx.com/support/university/professors.html

然后编译调试:

注:一定要将IP地址设置成和电脑主机同一个子段的IP,比如我的主机是192.168.0.101,那么zedboard就可以设置成192.168.0.xxx
这里建立的是一个 service,将zedboard的网络线连接在PC机公用的路由上。在电脑主机上安装一个网络调试助手。我用的是网上下载的http://download.csdn.net/detail/xiabodan/7652995

zedboard是接受PC   Client发送的数据,然后立即返回给PC,所以我们看到收到的数据和发送的数据。

5 利用xapp1026文档移植LWIP (基于FreeRTOS)

由于以上是裸机程序 如果想要挂载一个简易的操作系统可以考虑FreeRTOS

参见zedboard官方网页:http://www.zedboard.org/support/design/1521/11

ZedBoard version of XAPP1026: LightWeight IP (lwIP) Application Examples

我的移植工程在http://pan.baidu.com/s/1dDiqDah

参考:

   datasheet:  LightWeight IP (lwIP) Application Examples

ipconfig/all

route print  显示本机所有的网络


网关是什么

那么 网关到底是什么呢?网关实质上是一个网络通向其他网络的IP 地址。比如有网络A和网络B,网络A的IP 地址范围为“192.168.1.1~192. 168.1.254”, 子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有 路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台 交换机(或 集线器)上,TCP/IP协议也会根据 子网掩码(255.255.255.0)判定两个网络中的 主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过 网关。如果网络A中的 主机发现 数据包的目的主机不在本地网络中,就把数据包转发给它自己的 网关,再由 网关转发给网络B的 网关,网络B的网关再转发给网络B的某个主机。网络B向网络A转发 数据包的过程也是如此。所以说,只有设置好网关的IP 地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP 地址是哪台机器的IP 地址呢?网关的IP地址是具有 路由功能的设备的IP地址,具有路由功能的设备有 路由器、启用了 路由协议的服务器(实质上相当于一台路由器)、 代理服务器(也相当于一台路由器)。

ISE14.7搭建LWIP

首先我们要知道,在zedboard中ECH是挂在Cortex-A9上的 ,zedboard上用的是RGMII接口的1000M PHY芯片。有了PHY我们才有了硬件支持,好比我们煮饭有了锅一样。顺便说一下,RGMII是精简的吉比特吉比特介质独立接口。http://baike.baidu.com/view/1030176.htm?fr=aladdin



3 MAC与PHY

有了PHY还不行 ,众所周知,在网络ISO模型中最多有7层。最低的两层便是MAC与PHY,也就是数据链路与物理接口层。




那是不是我们还需要有MAC芯片呢,原则上是需要的,但是但是不用担心,在zynq的A9中,已经给我们做好了,并且可以实现RGMII接口(一个接受一个发送)



4 利用ISE  SDK生成LWIP

既然有了PHY和MAC,那么我们需要做什么呢?我们就需要做数据封装,应用的编写了啊。不然我们的数据报文是怎么来的,就是通过LWIP进行MAC、IP、等等的封包。

用一个空的EDK工程导入到SDK中,为什么用空工程,因为我们暂时不需要PL端的外设。建立一个application project,选择LWIP service模版。具体的工程可以参考CTT   ZedBoard: Zynq-7000 AP SoC Concepts, Tools, and Techniques  A Hands-On Guide to Effective Embedded System Design或者是XILINX  workshops        embedded_system_design_flow_using_zynq  http://china.xilinx.com/support/university/professors.html

然后编译调试:

注:一定要将IP地址设置成和电脑主机同一个子段的IP,比如我的主机是192.168.0.101,那么zedboard就可以设置成192.168.0.xxx
这里建立的是一个 service,将zedboard的网络线连接在PC机公用的路由上。在电脑主机上安装一个网络调试助手。我用的是网上下载的http://download.csdn.net/detail/xiabodan/7652995

zedboard是接受PC   Client发送的数据,然后立即返回给PC,所以我们看到收到的数据和发送的数据。

5 利用xapp1026文档移植LWIP (基于FreeRTOS)

由于以上是裸机程序 如果想要挂载一个简易的操作系统可以考虑FreeRTOS

参见zedboard官方网页:http://www.zedboard.org/support/design/1521/11

ZedBoard version of XAPP1026: LightWeight IP (lwIP) Application Examples

我的移植工程在http://pan.baidu.com/s/1dDiqDah

参考:

   datasheet:  LightWeight IP (lwIP) Application Examples

猜你喜欢

转载自blog.csdn.net/zhipao6108/article/details/81141554
今日推荐