|
|
%# -*- coding: utf-8-unix -*-
|
|
|
|
|
|
\chapter{可编程网络平台-操作手册}
|
|
|
\label{app:openbox}
|
|
|
|
|
|
\subsection{FAST简介}
|
|
|
|
|
|
针对近年来关于工业控制网络创新技术、创新网络结构、
|
|
|
时间敏感网络、SDN网络、FPGA硬件加速技术及下一代网络技术的研究需求,
|
|
|
由国防科大与湖南新实共同发起的开源项目
|
|
|
——FAST(FPGA Accelerated Switcing plaTform)于2016年创建。
|
|
|
|
|
|
FAST平台的架构是一种通用多核CPU加FPGA形态的网络处理架构,
|
|
|
该平台架构主要由硬件逻辑和软件逻辑两部分组成,
|
|
|
实现软硬件耦合通信与支持软硬件可编程的网络创新实验系统。
|
|
|
其中硬件包括平台相关的数据IO和FAST硬件逻辑。
|
|
|
软件部分包括通用操作系统与FAST软件逻辑。
|
|
|
FAST软件逻辑包括FAST软件开发环境和FAST UA程序。
|
|
|
在FAST平台,不仅支持FAST的UA编程开发,同时也支持通用APP的运行。
|
|
|
|
|
|
\subsection{设备简介}
|
|
|
|
|
|
OpenBox-S4是一款软硬件全可编程网络实验平台,
|
|
|
基于多核CPU加FPGA异构模型的FAST处理架构实现,
|
|
|
软件在CPU上使用C语言编程,硬件在FPGA芯片上使用Verilog语言编程。
|
|
|
全系统根据FAST架构搭建其软硬件基础运行环境,
|
|
|
内部软硬件用户逻辑支持所有FAST架构开发的应用、
|
|
|
标准的网络协议栈与通用网络应用。
|
|
|
平台软硬件逻辑代码开源免费,支持用户二次开发。
|
|
|
|
|
|
\subsection{设备上电检测}
|
|
|
当我们拿到设备后,并不知道这个设备有没有故障。
|
|
|
所以在使用设备进行实验前,我们尽量简单并全面的对设备进行一次上电检测,
|
|
|
以确认设备是否没有故障。
|
|
|
|
|
|
\subsubsection{设备外部接口及其配件说明}
|
|
|
\begin{enumerate}
|
|
|
\item 设备外部接口,如下图所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f01}
|
|
|
\caption{正面外部接口}
|
|
|
\label{fig:a:ob_f01}
|
|
|
\end{figure}
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f02}
|
|
|
\caption{反面外部接口}
|
|
|
\label{fig:a:ob_f02}
|
|
|
\end{figure}
|
|
|
|
|
|
\item 12V-1A电源线,如下图所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f03}
|
|
|
\caption{设备电源线}
|
|
|
\label{fig:a:ob_f03}
|
|
|
\end{figure}
|
|
|
|
|
|
\item 串口线,如下图所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f04}
|
|
|
\caption{设备串口线}
|
|
|
\label{fig:a:ob_f04}
|
|
|
\end{figure}
|
|
|
|
|
|
\item 设备烧录线,如下图所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f05}
|
|
|
\caption{设备烧录线}
|
|
|
\label{fig:a:ob_f05}
|
|
|
\end{figure}
|
|
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
\subsubsection{检测准备}
|
|
|
\begin{enumerate}
|
|
|
\item 物品准备
|
|
|
\begin{table}[!htp]
|
|
|
\small
|
|
|
\centering
|
|
|
\caption{以太网帧格式}
|
|
|
\label{tab:c:wireshark_eth-format}
|
|
|
\begin{tabular}{|c|c|} \hline
|
|
|
\heiti 测试项 & \heiti 所需物品 \\ \hline
|
|
|
上电检测 & 一台设备及电源\\ \hline
|
|
|
串口检测 & 一台设备及电源、一台电脑、一个micro usb 串口线\\ \hline
|
|
|
管理网口(MGMT) & 一台设备及电源、一台电脑、一个网线\\ \hline
|
|
|
\end{tabular}
|
|
|
\end{table}
|
|
|
\end{enumerate}
|
|
|
|
|
|
\subsubsection{上电检测}
|
|
|
\begin{enumerate}
|
|
|
\item 连接电源,将电源开关拨到ON(向右)。
|
|
|
\item 观察电源指示灯变化情况:
|
|
|
\item 电源开关拨到ON(向右)后,CFG电源指示灯会亮一下;
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f06}
|
|
|
\caption{电源指示灯(刚接入电源)}
|
|
|
\label{fig:a:ob_f06}
|
|
|
\end{figure}
|
|
|
\item CFG电源指示灯过几秒后就灭了;
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f07}
|
|
|
\caption{电源指示灯(系统配置)}
|
|
|
\label{fig:a:ob_f07}
|
|
|
\end{figure}
|
|
|
图 7 电源指示灯(系统配置)
|
|
|
\item 等待15秒左右,RUN电源指示灯常亮。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f08}
|
|
|
\caption{电源指示灯(系统运行)}
|
|
|
\label{fig:a:ob_f08}
|
|
|
\end{figure}
|
|
|
\end{enumerate}
|
|
|
\subsubsection{串口检测}
|
|
|
\begin{enumerate}
|
|
|
\item 确保micro usb串口线正确连接到设备上,并且设备已上电。
|
|
|
\item 确保调试电脑已按照《01\_常用软件的安装使用手册.pdf》
|
|
|
文档进行了PUTTY串口终端工具的安装。
|
|
|
\item 确保调试电脑已按照《01\_常用软件的安装使用手册.pdf》
|
|
|
文档进行了CP2102驱动的安装。
|
|
|
\item 在电脑的设备管理器,查看设备的COM口数值。
|
|
|
(如下图,设备成的COM口数值为COM4,不同的电脑显示的COM口数值会不同)
|
|
|
\item 打开PUTTY工具界面。
|
|
|
\begin{enumerate}
|
|
|
\item 先点击左边“category”栏的 “serial”选项;
|
|
|
\item 在“Serial line to connect to ”栏,填写设备管理器中看到的COM数值;
|
|
|
\item 在“Speed”栏,填写串口的波特率为“115200”;
|
|
|
\item 在 “Data bits”栏。填写数据位宽为“8”;
|
|
|
\item 在“Flow control”栏,选择“None”。
|
|
|
\item 如下所示,调试电脑的COM数值为COM3,所以“serial line”栏填写为“COM3”。
|
|
|
(不同电脑的COM数值可能不同,请填写实际的COM数值)
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f09}
|
|
|
\caption{putty软件串口配置参数}
|
|
|
\label{fig:a:ob_f09}
|
|
|
\end{figure}
|
|
|
\end{enumerate}
|
|
|
\item 点击 “open” ,进入设备系统,则串口测试OK。
|
|
|
\end{enumerate}
|
|
|
\subsubsection{管理网口检测}
|
|
|
\begin{enumerate}
|
|
|
\item 使用一根网线,将调试电脑与设备的obx0口连接。
|
|
|
\item
|
|
|
\item 设备的eth0网口的默认ip地址为:192.168.50.5,
|
|
|
所以需要将调试电脑的ip地址设置成与设备eth0网口的ip地址在同一个网段下
|
|
|
(也就是192.168.50网段)。
|
|
|
\item 在调试电脑的 控制面板->网络和Internet->网络设备中。
|
|
|
点击以太网->属性->internet协议版本4(TCP/IPV4),进行ip地址的配置。如下所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f10}
|
|
|
\caption{配置以太网的ip地址}
|
|
|
\label{fig:a:ob_f10}
|
|
|
\end{figure}
|
|
|
图 10 配置以太网的ip地址
|
|
|
\item 在调试电脑的 控制面板>系统和安全>Windows Defender 防火墙>自定义设置中。
|
|
|
关闭调试电脑的防火墙功能。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f11}
|
|
|
\caption{关闭防火墙功能}
|
|
|
\label{fig:a:ob_f11}
|
|
|
\end{figure}
|
|
|
\item 在调试电脑的CMD终端下,使用ping命令能正常与eth0网口通讯,
|
|
|
则说明管理网络检测OK。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f12}
|
|
|
\caption{ping 命令测试网络连通性}
|
|
|
\label{fig:a:ob_f12}
|
|
|
\end{figure}
|
|
|
|
|
|
\end{enumerate}
|
|
|
\subsection{搭建环境}
|
|
|
OpenBox-S4是一款软硬件全可编程网络实验平台,
|
|
|
根据FAST架构搭建其软硬件基础运行环境,
|
|
|
内部软硬件用户逻辑支持所有FAST架构开发的应用,
|
|
|
是一款专业的网络实验与研究验证平台。
|
|
|
\subsubsection{连接二层交换拓扑}
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f13}
|
|
|
\caption{二层交换连接拓扑示意图}
|
|
|
\label{fig:a:ob_f13}
|
|
|
\end{figure}
|
|
|
|
|
|
其中PC1的IP地址设置为“192.168.1.20”,PC2的IP地址设置为“192.168.1.21”
|
|
|
\subsubsection{在OpenBox-S4上运行二层交换程序}
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f14}
|
|
|
\caption{二层交换命令启动输出图}
|
|
|
\label{fig:a:ob_f14}
|
|
|
\end{figure}
|
|
|
|
|
|
在串口登录界面或网络登录界面输入命令:l2switch
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f15}
|
|
|
\caption{二层交换命令运行输出图}
|
|
|
\label{fig:a:ob_f15}
|
|
|
\end{figure}
|
|
|
|
|
|
\subsubsection{在PC两端进行PING测试}
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f16}
|
|
|
\caption{端主机PING通结果图}
|
|
|
\label{fig:a:ob_f16}
|
|
|
\end{figure}
|
|
|
|
|
|
\subsection{常用软件安装与使用}
|
|
|
\subsubsection{Wireshark抓包工具的安装使用}
|
|
|
\begin{enumerate}
|
|
|
\item 安装教程
|
|
|
\begin{enumerate}
|
|
|
\item 进入“\\06\_软件包及工具\\抓包工具”目录。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f17}
|
|
|
\caption{Wireshark安装包路径}
|
|
|
\label{fig:a:ob_f17}
|
|
|
\end{figure}
|
|
|
\item 鼠标双击Wireshark-win64-3.2.5.exe文件,
|
|
|
进入到下图中的安装界面。直接点击“agree”进行下一步。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f18}
|
|
|
\caption{Wireshark许可协议}
|
|
|
\label{fig:a:ob_f18}
|
|
|
\end{figure}
|
|
|
\item 选择软件的安装路径。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f19}
|
|
|
\caption{更改Wireshark安装路径}
|
|
|
\label{fig:a:ob_f19}
|
|
|
\end{figure}
|
|
|
\item 点击 “install”进行安装。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f20}
|
|
|
\caption{Wireshark 开始安装}
|
|
|
\label{fig:a:ob_f20}
|
|
|
\end{figure}
|
|
|
\item 弹出Npacp组件安装窗口,点击 “install”进行安装。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f21}
|
|
|
\caption{Wireshark 安装Npacp组件}
|
|
|
\label{fig:a:ob_f21}
|
|
|
\end{figure}
|
|
|
\end{enumerate}
|
|
|
\item 使用教程
|
|
|
\begin{enumerate}
|
|
|
\item 捕获网络接口
|
|
|
\begin{enumerate}
|
|
|
\item 打开安装好的wireshark,会进入如下所示界面。
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f22}
|
|
|
\caption{Wireshark启动界面说明}
|
|
|
\label{fig:a:ob_f22}
|
|
|
\end{figure}
|
|
|
|
|
|
\item 这里以有线网口为例,则点击选择 “以太网”,
|
|
|
就可以捕获有线网口的所有数据报文。如下所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f23}
|
|
|
\caption{以太网接口捕获数据报文情况}
|
|
|
\label{fig:a:ob_f23}
|
|
|
\end{figure}
|
|
|
\end{enumerate}
|
|
|
\item wireshark 窗口介绍
|
|
|
wireshark主要分为这几个窗口,如下所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f24}
|
|
|
\caption{Wireshark窗口说明}
|
|
|
\label{fig:a:ob_f24}
|
|
|
\end{figure}
|
|
|
\begin{enumerate}
|
|
|
\item Display Filter(显示过滤器):用于设置过滤条件进行数据包列表过滤。
|
|
|
\item Packet List Pane(封包列表):简要地显示捕获到的数据包,
|
|
|
每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。
|
|
|
不同协议的数据包使用了不同的颜色区分显示。。
|
|
|
\item Packet Details Pane(封包详细信息):在数据包列表中选择指定数据包,
|
|
|
在数据包详细信息中会显示数据包的所有详细信息内容。
|
|
|
数据包详细信息面板是最重要的,用来查看协议中的每一个字段。
|
|
|
\item Packet Bytes Pane(16进制数据):以十六进制和ASCII码的形式显示数据包的内容。
|
|
|
这里显 示了一个数据包未经处理的原始样子,也就是在链路上传播时的数据形式。
|
|
|
\item Miscellanous(状态栏):包含有专家信息、注释、包的数量和Profile。
|
|
|
\end{enumerate}
|
|
|
\item 过滤报文
|
|
|
\begin{enumerate}
|
|
|
\item 在显示过滤器栏中,输入指定地过滤条件即可过滤报文。
|
|
|
\item 如过滤ip地址为“192.168.1.1”的报文,
|
|
|
则输入过滤条件“ip.addr == 192.168.1.1”。如下所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f25}
|
|
|
\caption{过滤指定ip地址报文}
|
|
|
\label{fig:a:ob_f24}
|
|
|
\end{figure}
|
|
|
\item 如过滤mac地址为“01:00:5e:7f:ff:fa”的报文,
|
|
|
则输入过滤条件 “eth.addr == 01:00:5e:7f:ff:fa”如下所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f26}
|
|
|
\caption{过滤指定mac地址报文}
|
|
|
\label{fig:a:ob_f24}
|
|
|
\end{figure}
|
|
|
\item 由于篇幅的原因,wireshark的其他使用,在本文档就不再说明了。
|
|
|
\end{enumerate}
|
|
|
\end{enumerate}
|
|
|
\end{enumerate}
|
|
|
\subsubsection{CP2102串口驱动的安装使用}
|
|
|
\begin{enumerate}
|
|
|
\item 在“06\_软件包及工具/CP2102串口驱动”目录下,
|
|
|
根据电脑的操作系统选择对应的软件包。
|
|
|
\item 如以windows~10操作系统的电脑为例,
|
|
|
则选择 “06\_软件包及工具/CP2102串口驱动/win10版/CP210x\_Windows10\_Driver.zip”。
|
|
|
如下所示。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f27}
|
|
|
\caption{CP2102串口驱动压缩包}
|
|
|
\label{fig:a:ob_f27}
|
|
|
\end{figure}
|
|
|
\item 解压软件包,若根据系统为64位,则双击“CP210xVCPInstaller\_x64.exe”运行安装。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f28}
|
|
|
\caption{解压CP2102串口驱动压缩包}
|
|
|
\label{fig:a:ob_f28}
|
|
|
\end{figure}
|
|
|
\item 如下所示,完成安装。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f29}
|
|
|
\caption{CP2102串口驱动完成安装}
|
|
|
\label{fig:a:ob_f29}
|
|
|
\end{figure}
|
|
|
\end{enumerate}
|
|
|
\subsection{系统更新}
|
|
|
\subsubsection{系统组成}
|
|
|
OpenBox-S4的系统架构为通用多核CPU加FPGA,
|
|
|
使用的是Xilinx公司的ZYNQ系列芯片提供的整体封装解决方案。
|
|
|
在ZYNQ芯片中包含CPU系统与FPGA系统两部分,其内部通过高速总线连接。
|
|
|
在OpenBox-S4的设备中,其管理接口(MGMT)由CPU引出,其他4个标准网口则由FPGA引出。
|
|
|
|
|
|
整个系统的逻辑运行是从SD卡中的几个文件开始,
|
|
|
主要包括:BOOT.bin、devicetree.dtb、uImage和uramdisk.image.gz四个部分。
|
|
|
其中BOOT.bin定义的整个芯片的物理系统构成、连接关系和FPGA的功能逻辑;
|
|
|
devicetree.dtb文件则定义了系统的硬件资源定义,在CPU运行系统内核镜像时,
|
|
|
提供外设硬件及资源定义参数;uImage是CPU运行的系统内核镜像文件,
|
|
|
提供linux的内核运行环境及外设驱动;uramdisk.image.gz是linux系统的根文件系统,
|
|
|
包含内核引导起来后所使用的存储根文件系统、
|
|
|
系统配置信息、系统命令工具和用户命令等。
|
|
|
|
|
|
在所有的OpenBox-S4设备的系统中,BOOT.bin与devicetree.dtb是匹配成套生成的,
|
|
|
uImage和uramdisk.image.gz是所有系统通用匹配使用的。
|
|
|
用户如果要修改芯片系统架构、连接以及硬件逻辑,
|
|
|
则需要重新生成BOOT.bin和devicetree.dtb文件,替换原来系统的这两件文件,
|
|
|
即可重新定义设备的硬件逻辑功能。如果需要重新定义系统内核功能,
|
|
|
则需要重新编译生成uImage文件进行替换。如果是用户软件逻辑或工具命令,
|
|
|
则可随时通过网络、U盘等上传至系统/mnt/openbox/目录即可使用。
|
|
|
|
|
|
\subsubsection{系统更新}
|
|
|
如上节所述,更新系统最多是替换该设备环境中的4个核心文件,
|
|
|
通常用户只修改硬件逻辑就不需要替换uImage和uramdisk.image.gz文件,
|
|
|
如果不调修改原有接口的地址资源配置地址,也无需devicetree.dtb文件,
|
|
|
仅需要更新替换Boot.bin文件即可。此文档主要描述一下,
|
|
|
如何更新整个系统运行环境,即替换系统的4个核心文件。
|
|
|
|
|
|
\begin{enumerate}
|
|
|
\item 备份系统原有系统核心文件
|
|
|
通过设备的管理接口连接到用户操作主机,
|
|
|
通过SCP远程复制的方法将OpenBox-S4的系统备份到用户主机本地保存。
|
|
|
Windows主机请使用putty配套的pscp命令工具,用法相同。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f30}
|
|
|
\caption{下载备份原有系统}
|
|
|
\label{fig:a:ob_f30}
|
|
|
\end{figure}
|
|
|
\item 上传用户新的系统核心文件
|
|
|
|
|
|
将用户修改系统硬件逻辑后生成的BOOT.bin和devicetree.dtb
|
|
|
文件保存在本地update目录中,
|
|
|
将备份目录中的uImage和uramdisk.image.gz文件复制到update目录,
|
|
|
确保update更新目录中包含OpenBox-S4系统运行环境的4个核心文件,
|
|
|
其中BOOT.bin和devicetree.dtb是用户最新生成的。执行如下命令,
|
|
|
将更新目录的4个核心文件上传替换原来OpenBox-S4上面的核心文件。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f31}
|
|
|
\caption{上传更新用户系统}
|
|
|
\label{fig:a:ob_f31}
|
|
|
\end{figure}
|
|
|
\item 断电后重启设备验证系统
|
|
|
|
|
|
确认更新文件已经上传后,即可关机、断电和重新加电进行测试。
|
|
|
|
|
|
重新加电进入系统后,使用系统自带工具读取硬件系统版本号。
|
|
|
如果其版本号读出与你的硬件逻辑定义一致,则说明系统更新成功。
|
|
|
如果不同说明系统更新没有替换原来的文件,请检查上传操作是否与上述截图一致,
|
|
|
是否有报错信息。系统自带标准五级流水线版本号为0x2020181108,
|
|
|
如下图所示,即说明系统更新成功
|
|
|
(当前运行系统的硬件版本号为用户更新版本号:0x2020191231)。
|
|
|
|
|
|
\begin{figure}[!htp]
|
|
|
\centering
|
|
|
\includegraphics[width=11cm]{f32}
|
|
|
\caption{读硬件版本号验证}
|
|
|
\label{fig:a:ob_f32}
|
|
|
\end{figure}
|
|
|
\end{enumerate}
|