tag 标签: 基于tmac和lwip的三态以太网设计

相关博文
  • 热度 19
    2013-8-23 10:38
    2398 次阅读|
    0 个评论
    基于 TMAC 和 lwip 的三态以太网设计 一、  系统架构 1.      总线决定硬件架构 AXI4 和 PLB 总线用于 MicroBlaze 访问外设和非高速缓存。 AXI4 是 ARM 公司推出的第 4 代 AMBA 接口, Virtex-6 中的 MicroBlaze v8.20 全面采用 AXI4 标准, Xilinx 7 系列 FPGA 采用 ARM 核代替 MicroBlaze ,因此 AXI 总线是趋势;而之前版本的 MicroBlaze 主要采用 PLBv46 总线; AXI 总线需使用 AXI_Ethernet 、 AXI_DMA 、 AXI_V6_DDRX 三个关键 IP 核实现以太网; PLB 总线需使用 XPS_LL_TEMAC 、 MMPC (带 DMA )两个关键 IP 核。此外, XPS_INTC 、 XPS_TIMER 等 IP 核都是必须的。 两种方案的架构详见 UG650 July 6, 2011 的 Figure 0 和 Figure 4 ,以及各个 IP 核的 user guide 。   2.      TCP/IP 协议库的选择 lwip ( low weight IP ,轻量级 IP )是开源的 TCP/IP 协议栈,适用于嵌入式系统。 Lwip130_v3_01_a 库适用于 Xilinx 的 TEMAC IP 核,运行在 MicroBlaze 处理器。 lwip 为用户提供两种 API : RAW API 和 Socket API 。 RAW API 不带操作系统,可以提供更高的数据吞吐率,因为没有操作系统,所以软件实现相对复杂; Socket API 用于 Xilkernel 操作系统上,因为运行了操作系统,所以数据吞吐率降低,但软件实现相对简单。两种 AIP 性能如下:     一、  功能描述 硬件 IP 核功能大致相同,都是实现 MAC 层协议,所以系统的功能主要取决于 MicroBlaze 上运行的软件。目前,软件可以实现以下功能: echo sever 、 web sever 、 TFTP sever 、 TCP RX 吞吐率测试、 TCP TX 吞吐率测试。每个功能都有 RAW API 和 Socket API 两种 API 函数( C 程序),这 5 种功能都在 ML605 上验证通过,各种功能简单介绍如下: 1.      echo sever echo sever 将 PC 键盘上的输入通过网络返回给 PC 的程序。该功能使用 telnet 协议,主要用于远程登录服务。  2.      web sever 本文 web sever 只执行 HTTP 1.1 协议的子集,通过浏览器控制和监视嵌入式平台。 该功能可以传输命令,用于平台参数的配置。 本文 web sever 通过 HTTP GET 命令访问内存文件系统 MFS , MFS 需事先下载到内存中,网页浏览器通过 IP 地址访问该文件; 通过 HTTP POST 明天控制 LED 灯的亮灭; 通过 HTTP POST 获取 ML605 板上 DIP 拨动开关的状态。 3.      TFTP sever TFTP (普通文件传输协议)是基于 UDP 的用于收发文件的协议, UDP 不能保证数据包传递的可靠性,但 TFPT 可以确保数据包不会丢失。(估计该项目中不会使用) 4.      TCP TX 和 RX 测试 TX 和 RX 吞吐率测试是一个简单的应用,它可以测试 TCP 收发的最大吞吐率。 PC 上需运行 iperf 开源软件, iperf 与 lwip 之间传输数据。  TX 和 RX 吞吐率测试,各模块的关系如下图所示:        一、     PC 和 FPGA 配置 硬件上, PC 和 FPGA 通过 JTAG 、 UART 、网线连接。 1.        PC 主机设置 a.      主机网络设置 PC 和 ML605 的 IP 地址要在同一个子网中, FPGA 上的 C 程序设置 ML605 的 IP 地址为 192.168.1.10 ( main.c 函数中,可更改), PC 的 IP 地址可设置为 192.168.1.100 。      b.      主机网络协议安装 echo sever 和 TFTP 要在 CMD 中运行相应命令,必须先打开 telnet 和 TFTP 协议和命令,否则运行时 CMD 提示找不到该命令 方法:Control Panel - Programs - Turn Windows features on or off-选中TFT Client、telnet client、telnet sever – OK       c.      PC 端 iperf 软件安装 网上下载的 iperf-2.0.5 是在 linux 或 unix 等 OS 上运行的,要装在 windows 需安装 Linux 模拟器 Cygwin Terminal ,网上有教程,该方法复杂,不推荐使用。 Jperf 用 JAVA 编写了图像界面,其本质和 iperf 一致。 Windows 下推荐使用 iperf.exe ,在 CMD 中运行 iperf 命令,需 cd 进入 iperf.exe 程序所在文件夹或者修改环境变量,否则会提示找不到该命令。 d.      PC 端 Tera Term 软件安装 Tera Term 是 UART 串口调试中断,本文波特率为 9600 ,其他选项默认。   2.        FPGA 配置 SDK 中,需要导入 AXIDMA 和 lwip 库,导入成功后 bsp 的 MicroBlaze 的 libsrc 文件夹下会包含这两个库, clean project 后也不会消失。然后,导入 RAW API 和 Socket API 两个工程,再 build project 生成 elf 文件。详细步骤见 xapp1026 的 9-11 页。之后,依次下载 bit 文件、下载 mfs 文件、下载 elf 文件: a.       下载 bit 文件: Tools  -  Program FPGA b.      下载 MFS 文件:在 XMD Console 中依次运行 cd E:/Tri_Mode_Ethernet/MicroBlaze/ml605_lwip_axi_13.2/ready_for_download connectmbmdm dow -data uestc.mfs 0xCF000000 c.       下载 elf 文件:点中 raw app 或者 socket app 工程下的 binary 下的 elf ,右键 run as - launch on hardware   ü  此时, Tera Term 应出现以下界面:           各功能演示   5 个功能演示如下:( Win7 系统要用管理员身份登录) 01234567890abcd       以上内容摘自《基于XILINX FPGA 嵌入式系统设计与开发》