原创 创芯Xilinx Microblaze 学习系列第二集

2013-8-23 10:38 2397 19 19 分类: FPGA/CPLD 文集: 创芯Xilinx Microblaze 学习系列

基于TMAClwip的三态以太网设计

一、 系统架构

1.      总线决定硬件架构

AXI4PLB总线用于MicroBlaze访问外设和非高速缓存。AXI4ARM公司推出的第4AMBA接口,Virtex-6中的MicroBlaze v8.20全面采用AXI4标准,Xilinx 7系列FPGA采用ARM核代替MicroBlaze,因此AXI总线是趋势;而之前版本的MicroBlaze主要采用PLBv46总线;

AXI总线需使用AXI_EthernetAXI_DMAAXI_V6_DDRX三个关键IP核实现以太网;PLB总线需使用XPS_LL_TEMACMMPC(带DMA)两个关键IP核。此外,XPS_INTCXPS_TIMERIP核都是必须的。

两种方案的架构详见UG650 July 6, 2011Figure 0Figure 4,以及各个IP核的user guide

 

2.      TCP/IP协议库的选择

lwiplow weight IP,轻量级IP)是开源的TCP/IP协议栈,适用于嵌入式系统。Lwip130_v3_01_a库适用于XilinxTEMAC IP核,运行在MicroBlaze处理器。

lwip为用户提供两种APIRAW APISocket APIRAW API不带操作系统,可以提供更高的数据吞吐率,因为没有操作系统,所以软件实现相对复杂;Socket API用于Xilkernel操作系统上,因为运行了操作系统,所以数据吞吐率降低,但软件实现相对简单。两种AIP性能如下:

 

 

一、  功能描述

硬件IP核功能大致相同,都是实现MAC层协议,所以系统的功能主要取决于MicroBlaze上运行的软件。目前,软件可以实现以下功能:echo severweb severTFTP severTCP RX吞吐率测试、TCP TX吞吐率测试。每个功能都有RAW APISocket API两种API函数(C程序),这5种功能都在ML605上验证通过,各种功能简单介绍如下:

1.      echo sever

echo severPC键盘上的输入通过网络返回给PC的程序。该功能使用telnet协议,主要用于远程登录服务。 

2.      web sever

本文web sever只执行HTTP 1.1协议的子集,通过浏览器控制和监视嵌入式平台。该功能可以传输命令,用于平台参数的配置。

本文web sever通过HTTP GET命令访问内存文件系统MFSMFS需事先下载到内存中,网页浏览器通过IP地址访问该文件;

通过HTTP POST明天控制LED灯的亮灭;

通过HTTP POST获取ML605板上DIP拨动开关的状态。

3.      TFTP sever

TFTP(普通文件传输协议)是基于UDP的用于收发文件的协议,UDP不能保证数据包传递的可靠性,但TFPT可以确保数据包不会丢失。(估计该项目中不会使用)

4.      TCP TXRX测试

TXRX吞吐率测试是一个简单的应用,它可以测试TCP收发的最大吞吐率。PC上需运行iperf开源软件,iperflwip之间传输数据。 

TXRX吞吐率测试,各模块的关系如下图所示: 

 

 

 

一、     PCFPGA配置

硬件上,PCFPGA通过JTAGUART、网线连接。

1.        PC主机设置

a.      主机网络设置

PCML605IP地址要在同一个子网中,FPGA上的C程序设置ML605IP地址为192.168.1.10main.c函数中,可更改),PCIP地址可设置为192.168.1.100。 

 

 

b.      主机网络协议安装

echo severTFTP要在CMD中运行相应命令,必须先打开telnetTFTP协议和命令,否则运行时CMD提示找不到该命令

方法:Control Panel -> Programs -> Turn Windows features on or off->选中TFT Client、telnet client、telnet sever –> OK

 

 

 

c.      PCiperf软件安装

网上下载的iperf-2.0.5是在linuxunixOS上运行的,要装在windows需安装Linux模拟器Cygwin Terminal,网上有教程,该方法复杂,不推荐使用。

JperfJAVA编写了图像界面,其本质和iperf一致。

Windows下推荐使用iperf.exe,在CMD中运行iperf命令,需cd进入iperf.exe程序所在文件夹或者修改环境变量,否则会提示找不到该命令。

d.      PCTera Term软件安装

Tera TermUART串口调试中断,本文波特率为9600,其他选项默认。

 

2.        FPGA配置

SDK中,需要导入AXIDMAlwip库,导入成功后bspMicroBlazelibsrc文件夹下会包含这两个库,clean project后也不会消失。然后,导入RAW APISocket API两个工程,再build project生成elf文件。详细步骤见xapp10269-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 嵌入式系统设计与开发》

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
19
关闭 站长推荐上一条 /1 下一条