“ Hello world ”

Post on 24-Jan-2016

46 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

“ Hello world ”. 张彦龙. 实验综述. 实验目的: 两台 PC 可以通过 netmagic08(NM08) 平台进行数据传输。 我们以最简单的两台主机发送 ping 报文为例进行实验说明。 实验方案: 机器 1 连接到 NM08 的 1 号 端口对 NetMagic08 进行配置和管理 。 机器 2 连接到 NM08 的 2 号 端口 机器 3 连接到 NetMagic08 的 3 号 端口 端口 2 和端口 3 之间 发送 ping 报文 报文 不 经过任何修改直接进行转发。. 实验 准备. 硬件设备准备: - PowerPoint PPT Presentation

Transcript

“Hello world”

张彦龙

实验综述 实验目的:

两台 PC 可以通过 netmagic08(NM08) 平台进行数据传输。

我们以最简单的两台主机发送 ping 报文为例进行实验说明。

实验方案: 机器 1 连接到 NM08 的 1 号端口对 NetMagic08 进行配

置和管理。 机器 2 连接到 NM08 的 2 号端口 机器 3 连接到 NetMagic08 的 3 号端口 端口 2 和端口 3 之间发送 ping 报文 报文不经过任何修改直接进行转发。

实验准备 硬件设备准备:

一台可用的 netmagic 和三台 pc 硬件运行环境准备

QuartusII (推荐 Quartus11.0 版本) “hello world ” 程序代码

软件运行环境准备 操作系统: Red Hat Enterprise Linux 5 内核版本: 2.6.18.8 工具包版本: libnet-1.1.4 libpcap-1.1.1 NMAC 函数库

设备连接方式

Netmagic 配带设备清单 电源线(一根) 电源适配器(一个) 10pin 延长线(一根) USB 转换线(一根) USB Blaster 模块(一个) 光电接口转换器 ( 四个 )

Netmagic 的电源连接方式 电源的连接

一台 netmagic 会配带一个电源线和一个电源适配器

电源线和电源适配器的连接示意图

Netmagic 的 USB Blaster 连接方式 USB Blaster 线的连接方法

USB 转换线与 USB Blaster 模块的连接示意图

数据线与 USB Blaster 模块的连接示意图

硬件设备连接方式

网线与 NM 连接示意图 NM 光电转换连接示意图

网线与 PC 连接示意图 NM 数据线连接示意图( JTAG/Flash )

硬件运行环境准备

Quartus II 在实验实施之前请确保您的 PC 上应经安装了

Quartus 软件程序,并可以正常使用,界面如下图所示。

“Hello world” 实例下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

“Hello world” 实例下载 --2 单击 more… 进入下一级页面后,在 netmagic

demonstration project 模块中单击 Download new! 下载

工程载入 Quartus 测试实例代码下载完后就可以把它加入到 Quartus 具体加载步骤:

找到下载文件所在的位置 双击文件中名为 netFPGAmini.qpf 的文件 等待 Quartus 正常打开后,工程加载完成

netFPGAmini.qpf 文件位置

加载完成后界面

PC 机配置说明 由于我们的实验是以发送 ping 包的例,因此两台主

机应该将 IP 地址设置为同一网段内。 另外,在实现前两台主机应把自已的防火墙设置为关

闭状态。

Altera USB-Blaster 驱动的安装 正确插好下载线后,打开 NetMagic 的电源开关, NetMagic 处于

加电状态系统将提示安装硬件驱动 , 如下图所示

此时我们可以按照提示进行操作,在选择驱动文件的步骤中选择ALTERA USB Blaster 的驱动目录: Quartus II 10.0 的安装目录下: quartus\drivers\usb-blaster\x32\usbblst.inf 。

软件运行环境准备

Linux 环境准备 NetMagic 08 的软件开发、调试和管理等操作都是

使用 Linux 系统进行操作。在这里我们可以使用在虚拟机中安装 Linux 操作系统的方法进行操作,使其和硬件开发在同一台计算机上完成,不用重新再找一台单独安装 Linux 操作系统的计算机。

我们以下以 linux 在 vmware 虚拟机中为例进行实验说明。

我们使用的 linux 的版本为 Red Hat Enterprise Linux 5 。

VMware 中运行 linux

虚拟机中 Linux 安装完成界面示意图

Linux 在 vmware 中运行效果

Linux 的开机界面示意图

Libpcap 的下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

Libpcap 的下载 --2 单击 more… 进入下一级页面后,在 Libpcap and

Libnet 模块中单击 Download libpcap-1.1.1 now! 下载

Libpcap 软件包下载页面示意图

Libpcap 的安装步骤 --1 将 libpcap 安装包解压到本地

输入命令: tar –zxvf libpcap-1.1.1.tar.gz

tar 命令示意图

Libpcap 的安装步骤 --2 进入到 libpcap-1.1.1 目录,执行 configure 命令进

行配置 cd libpcap-1.1.1 输入命令: cd libpcap-1.1.1

./configure

configure 命令示意图

Libpcap 的安装步骤 --3 执行 make 命令进行编译

输入命令 :make

make 命令示意图

Libpcap 的安装步骤 --4 执行 make install 完成安装

输入命令: make install

make install 命令示意图

Libnet 的下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

Libnet 的下载 --2 单击 more… 进入下一级页面后,在 Libpcap and

Libnet 模块中单击 Download libnet-1.1.4 now! 下载

Libnet 软件包下载页面示意图

Libnet 的安装步骤 --1 解压 libnet 安装包到本地

输入命令: tar –zxvf libnet-1.1.4.tar.gz

tar 命令示意图

Libnet 的安装步骤 --2 进入到 libnet-1.1.4 目录,执行 configure 命令进行

配置; 输入命令: cd libnet-1.1.4 ./configure

configure 命令示意图

Libnet 的安装步骤 --3 执行 make 命令进行编译

输入命令: make

make 命令示意图

Libnet 的安装步骤 --4 执行 make install 完成安装。

输入命令: make install

make install 命令示意图

NMAC 函数库下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

NMAC 函数库下载 --2 单击 more… 进入下一级页面后,在 NMAC Source

Code 模块中单击 Download new! 下载

NMAC 函数库下载示意图

NMAC 的函数库编译步骤 --1 解压 NMAC 安装包到本地

输入命令: tar –xvf nmac.tar

tar 命令示意图

NMAC 的函数库编译步骤 --2 进入到 nmac 目录,运行 ./Compile 编译 nmac 函

数库 输入命令: cd nmac

./compile

compile 命令示意图

NMAC 的函数库编译步骤 --3 nmac 文件夹下提供了一个名为 debug 的通用命令

行调试程序,可以运行 debug 程序进行设备调试和功能测试 . 输入命令: ./debug

debug 命令示意图

实验演示

实例说明 为了方便读者理解和使用 NetMagic 平台,我们准备了一

个名为 netFPGAmini 的测试实例,其功能是在 NetMagic 的外部端口 2 和外部端口 3 之间直接进行报文拷贝,外部控制主机通过端口 1 对平台进行配置管理。

需要说明的是,在大多数硬件代码和软件代码里面,对于端口号的定义,都是从 0 开始的,这和对数组的定义是一致的,而在设备的外部端口标识上,一般都是从 1 号开始的。因此当我们讲在外部端口 2 和外部端口 3 之间进行报文转发时,对应硬件或软件代码,实际上是在 1 号和 2 号端口间进行报文转发。它们之间的关系是:外部端口号 = 代码端口号+1 。

直接拷贝的意思是,从前导符到 CRC校验值,整个以太网帧传输期间,不修改报文的任何内容,直接在端口 2 和端口 3之间进行转发。

实验演示的操作步骤 硬件设备的连接

Quartus 工程的运行

软件的配置

硬件设备的连接

硬件设备的连接—电源连接

电源连接示意图

电源连接 NM 示意图

硬件设备的连接— USB Blaster 连接

USB Blaster 连接示意图

USB Blaster 连接 NM 示意图

USB Blaster 连接 PC 示意图

硬件设备的连接—网线连接

网线连接 NM 示意图

网线连接 PC 示意图

Quartus 工程的运行

Quartus 工程的运行 --1 工程载入后单击 hierarchy 标签 如果加载正确,则显示下图所示界面

Quartus 工程的运行 --2 工程载入正确单击 files 标签。 在 files 标签中双击树形列表中的 files 文件夹图标。

如图所示:

Quartus 工程的运行 --3 双击 Files 文件夹图标后,软件弹出“ Settings-

netFPGAmini” 对话框。 在此对话框选中的左框管理文件树中选

择“ Libraries” 单击右框 Global library name 文本框后的 按钮。

Quartus 工程的运行 --4 单击 按钮后弹出“浏览文件夹”对话框。 选择你工程所在文件夹。

Quartus 工程的运行 --5 打开工程文件夹的树。 在树结构中打开 sfp 文件夹,选

中“ triple_speed_ethernet-llibrary” 文件夹 , 单击“确定”。

Quartus 工程的运行 --6 单击”确定”后, Settings-netFPGAmini” 对话框

中的“ Global library name“ 文本框中会显示出库文件的路径,然后单击 按钮。Add

Quartus 工程的运行 --7 单击 按钮后,库路径就会添加到“ Libraries” 文本框中,然后单击 按钮,库添加完成。OK

Quartus 工程的运行 --8 库添加完成后,单击工具栏中的 按钮开始编译

工程,开始编译后可以选择 Tasks 标签查看编译的进度。

Quartus 工程的运行— 9 编译完成后,在 Tools 菜单中选择 SignalTap II

Logic Analyzer启动 SignalTAP 。

Quartus 工程的运行— 10 进入 SignalTap Logic Analyzer 后,单击右边的

JTAG框中的 Hardware 文本框后面的 按钮。Setup…

Quartus 工程的运行— 11 单击 后弹出 Hardware Setup 的对话框 , 在

Available hardware items 文件框下选择” USB-Blaster” 后单击 按钮关闭对话框

Setup…

Close

Quartus 工程的运行— 12 关闭 Hardware Setup 对话框后 JTAG框显示的内容

如下图所示。 单击 按钮开始向 NM烧写程序。

Quartus 工程的运行 --13 烧写完成后,在“ Instance Manager”框中双

击“ input_ctrl_packets” 项。选择 标签。 设置触发条件为:当信号 cdp2um_data_valid 上升沿到达时采样。

Quartus 工程的运行 --14 触发条件设置完成后机器就可以这送 ping 包了, 在发包后可以选择 Instance Manager 中的实例后单

击 按钮开始自动分析数据 。

Quartus 工程的运行 --15 开始分析波形后, input_ctrl_packets 实例的波形

如下所示。

output_ctrl_packets 实例的波形如下所示。

Localbus 实例的波形如下所示。

软件的配置

nm-debuger 设置 我们可以在机器 1 上,通过一个叫做 nm-debuger

调试工具读取和设置内部寄存器。 nm-debuger 是我们利用 NMAC协议和函数库开发

的一个专门用于 NetMagic08 平台的调试小工具 .

nm-debuger 下载 --1 打开 netmagic 网页的首页,在页面中的 source

code downlad 模块中选择 more… 选项。

网址: http://www.netmagic.org。

nm-debuger 下载 --2 单击 more… 进入下一级页面后,在 nm debuger

模块中单击 Download new! 下载

NM -debuger 下载示意图

nm-debuger 的安装步骤 --1 将 NM Debuger 文件夹拷到根目录 /root 下 打开 NM Debuger 中的 glade 文件

点击 glade菜单中的“联编”

保存后退出。

nm-debuger 的安装步骤 --2 进入程序主目录

输入命令: cd NM Debuger ./autogen.sh

autogen 命令示意图

nm-debuger 的安装步骤 --3 编译

输入命令: make

make 命令示意图

nm-debuger 的安装步骤 --4 进入到 src 目录,运行程序

输入命令: cd src ./nm-debuger

nm-debuger 命令及命令结果示意图

nm-debuger 的操作—通信连接的建立 首先在本地标识信息域 netmagic ID 中填 1 (不能填入其他值)

然后点击“连接”按钮

nm-debuger 的操作 -- 本地寄存器读取 读数据首地址:填写需要读取的寄存器的首地址 读地址数目:连续读取的地址的数目。范围是 1-

366 。 读取操作完成后,会在下面的信息显示栏中显示这些寄存器的值。

nm-debuger 的操作 -- 本地寄存器写入 写数据首地址:填写需要写入的寄存器的首地址 写地址数目:连续写入的地址的数目。范围是 1-366 写入数据:连续写入的数据,输入十六进制数据,数

据间以换行隔开。 读取操作完成后,会在下面的信息显示栏中显示这些寄存器的值。

实验完成 通过以上的步骤您可以在 Netmagic 中运行一个简单

的发送 ping 报文的小程序。如果您想了解很多关于Netmagic 的信息和实现实例请去我们的网站下载。

网址: http://www.netmagic.org.

top related