基于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 嵌入式系统设计与开发》
文章评论(0条评论)
登录后参与讨论