011-25651309

我们只用绿色的食品原料

乐鱼官网app零食加工厂,只为您的健康着想

正点原子开拓者NiosII资料第25章WebServer实验

本文摘要:1)实验平台:正点原子开拓者FPGA 开发板2)摘自《开拓者 Nios II开发指南》关注官方微信号民众号,获取更多资料:正点原子3)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/index.html第二十五章基于NicheStack的WebServer实验本章我们通过修改Intel官方的一个Web Server的例程来展示如何在开拓者FPGA开发板上实现Web Server服务器。

乐鱼官网app

1)实验平台:正点原子开拓者FPGA 开发板2)摘自《开拓者 Nios II开发指南》关注官方微信号民众号,获取更多资料:正点原子3)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/index.html第二十五章基于NicheStack的WebServer实验本章我们通过修改Intel官方的一个Web Server的例程来展示如何在开拓者FPGA开发板上实现Web Server服务器。我们可以通过在浏览器中输入开发板的IP地址来会见开发板,这时开发板会返回一个网页,我们可以通过网页控制开发板的LED灯的显示。本章分为以下几个部门:25.1 简介25.2 实验任务25.3 硬件设计25.4 软件设计25.5 下载验证简介一、 Web Server简介Web Server中文名称叫网页服务器或web服务器。

WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功效是存储、处置惩罚和向客户端提供Web页面。Web服务器的客户端和服务器之间的通信使用超文本传输协议(HTTP)举行。提供的页面最常见的是HTML文档,除了文本内容之外,还可能包罗图像、样式表和剧本。

用户署理(通常是Web浏览器或Web爬虫法式)通过使用HTTP发出对特定资源的请求来启动通信,而且服务器响应该资源的内容或者如果不能这样做则响应错误消息。资源通常是服务器辅助存储上的真实文件,但纷歧定是此种情况,取决于Web服务器的实现方式。虽然Web Server的主要功效是提供内容,但HTTP的完整实现还包罗从客户端吸收内容的方式。

此功效用于提交Web表单,包罗上载文件。许多通用Web服务器还支持使用Active ServerPages(ASP),PHP(超文本预处置惩罚器)或其他剧本语言的服务器端剧本。这意味着Web服务器的行为可以在单独的文件中编写剧本,而实际的服务器软件保持稳定。通常,此函数用于动态生成HTML文档,而不是返回静态文档。

前者主要用于从数据库中检索或修改信息。后者通常更快,更容易缓存,但无法提供动态内容。Web服务器不仅用于服务万维网,还可以嵌入在诸如打印机,路由器,网络摄像头之类的设备中,而且仅用于当地网络。

用作监视或治理以上设备系统的一部门。这通常意味着不需要在客户端盘算机上安装其他软件,因为只需要Web浏览器(现在大多数操作系统都包罗浏览器)。二、 Read-Only Zip File简介英特尔FPGA提供了一个只读zip文件系统,用于硬件抽象层(HAL)。只读zip文件系统提供对存储在Flash中的简朴文件系统的会见。

该文件系统适用于嵌入式软件。驱动法式使用文件子系统的HAL通用设备驱动法式框架。因此,可以使用ANSI C尺度库I/O函数(例如fopen()和fread())会见zip文件子系统。

英特尔FPGA只读zip文件系统作为软件包提供。HAL驱动法式的所有源文件和头文件都位于<Nios II EDS安装路径>/components/altera_ro_zipfs/HAL目录中。

zip文件必须是未压缩的。Altera只读zip文件系统仅使用zip花样将文件捆绑在一起;它不提供已知zip工具的文件解压缩功效。使用WinZip GUI可以直接建立没有压缩的zip文件。或者使用-e0选项在下令行中使用winzip或pkzip时禁用压缩。

实验任务本章的实验任务是使用基于Nios II SBT for Eclipse自带的Web Server工程模板建设一个适用于开拓者开发板的Web Server。硬件设计本章的Web Server实验硬件部门可以基于《基于NicheStack的简朴telnet服务器实验》,在该实验的硬件部门(Qsys)对三个IP核的设置举行小的修改即可。第一个修改的IP核是添加到Qsys的EPCS IP核, 将其名称修改为epcs_flash_controller,将其地址设置为0并锁定,如下图所示:图 25.3.1 设置EPCS的名称和基址修更名称是为了和软件部门相对应,后面会讲到,修改地址是为了利便后面使用,也是因为此工程的要求。

第二个修改的IP核是SDRAM,因为我们将EPCS的地址设为0,所以我们需要将SDRAM的地址设为0x0200_0000或其它的合适值,如下图所示:图 25.3.2 设置SDRAM的基址第三个修改的IP核是Nios II,由于修改了EPCS的名称,所以需要将Reset Vector重新设置为更改之后的EPCS,如下图所示:图 25.3.3 重新设置Nios II的复位向量修改完之后如果没有错误的话就重新Generate,如果有地址错误,就先点击自动分配地址,然后再修改SDRAM的地址为0x0200_0000或其它的合适值即可。重新Generate之后,由于硬件的Verilog HDL顶层代码和之前一样,无需改动,所以我们直接编译生成sof文件。至此,硬件部门设计完成,下面开始基于 Nios II SBT for Eclipse 的软件部门的设计。

软件设计在打开Nios II SBT for Eclipse之前,我们需要做一些准备事情以便能正确运行WebServer。因为Nios II SBT for Eclipse自带的Web Server工程模板例程是需要Read-Only Zip文件系统才可以正常运行,很不幸的是官方的Read-Only Zip文件系统的驱动法式是基于并行接口的CFI Flash,而我们开拓者开发板上只有基于串行SPI接口的EPCS,而没有并口的CFI Flash,所 以 不 进 行 相 应 修 改 是 使 用 不 了 的。这 里 我 们 需 要 将 位 于 <Quartus 安 装 文 件夹>nios2edscomponentsaltera_ro_zipfsHALsrc目录下的altera_ro_zipfs.c文件替换成我们提供在本工程的doc文件夹下的支持串行接口Flash的altera_ro_zipfs.c文件。下面我们以read_word函数来简朴的看一下这两个文件的区别。

乐鱼官网app

原始的altera_ro_zipfs.c文件的read_word函数:图 25.4.1 原read_word函数更改后的altera_ro_zipfs.c文件的read_word函数:图 25.4.2 修改后的read_word函数可以看到更改后的文件增加了if-else语句来判断是串口的Flash还是并口的Flash。需要注意的是其中的EPCS_FLASH_CONTROLLER_BASE和epcs_flash_controller,只有当我们在Qsys中将EPCS的名称设置为epcs_flash_controller时才会泛起的。现在我们打开Nios II SBT for Eclipse,点击File/New/Nios Application and BSP fromTemplate选项后进入图 25.4.3所示界面,输入完相应的信息后,我们在左下方的“Template”栏选择“Web Server”,这是一个在MicroC/OS-II上使用NichStack的HTTP服务器工程模板,服务器可以处置惩罚从Altera只读zip文件系统提供的HTML、JPEG和GIF文件的基本请求,需要注意的是它并不是功效齐全的HTTP服务器的完整实现。图 25.4.3 建立Web Server工程选择完成后,点击“Finish”,工程建立完成后,有如下图所示的工程目录结构:图 25.4.4 WebServer工程结构其中的C源文件说明如下:alt_error_handler.c:alt_uCOSIIErrorHandler函数的界说,用于MicroC/OS-II错误的简朴错误处置惩罚法式,并打印相应信息。

alt_error_handler.h:上述函数的声明。http.c:HTTP服务器的实现,包罗所有须要的套接字挪用,以处置惩罚多个毗连并剖析基本HTTP下令以处置惩罚GET和POST请求。

通过HTTP GET对文件的请求指示服务器从Flash文件系统获取文件(如果可用)并将其发送到请求它的客户端。http.h:界说HTTP服务器实现和常见HTTP服务器字符串和常量的头信息。network_utilities.c:包罗用于治理寻址的MAC地址、IP地址和DHCP。这些在初始化期间由NicheStack使用,可是是特定于实现的,所以我们需要对该文件稍作修改——将MAC地址设置为任何合适的值,后面我们会解说如何修改。

srec_flash.c:包罗远程设置所需的SREC剖析和flash编程例程。web_server.c:main函数所在的源文件,包罗大量代码,包罗,网络初始化例程,Web服务器任务(WSTask)以及所有板控制实用法式/任务。web_server.h:整个示例应用法式的界说。

另外system文件夹下的ro_zipfs.zip文件是ro_zip文件系统所使用的文件,我们将其替换成我们自己的ro_zipfs.zip文件(放在工程所在的doc文件夹下)。因为此例程默认使用DHCP客户端,由于我们不需要使用,所以将其关闭。

右键点击qsys_webserver_bsp,选择“Nios II/BSP Editor”,进入下图所示界面图 25.4.5 取消勾选DHCP客户端在 “ Software Packages” 菜 单 栏 下 选中“ altera_iniche ” 后 取 消 勾 选“enable_dhcp_client”。除 此 之 外 , 我 们 还 需 要 设 置 “ altera_ro_zipfs ”。选 中“altera_ro_zipfs”后,将“ro_zipfs_offset”设置为0x100,如下图所示:图 25.4.6 设置ro_zip文件系统的偏移地址其中“ro_zipfs_base”是Flash器件在Qsys中的基址,由于我们在Qsys中将EPCS的基址设为0x0,所以此处无需修改,此处需要注意的是该工程模板的要求是存放Flash的基址必须是0x0,“ro_zipfs_name”为文件系统的挂在点,保持默认即可,“ro_zipfs_offset”指明文件系统在Flash中的偏移量,默认值为0x100000,远大于EPCS器件的巨细(0x800),所以此处我们将其设置为0x100。

设置完成后,点击右下角的“Generate”,再点击“Exit”退出,弹出下图所示信息时点击“Yes,Save”。图 25.4.7 生存修改为了编译能正确通过,我们再次右键点击qsys_webserver_bsp,选择“Nios II/ GenerateBSP”。因为不使用DHCP,所以我们需要设置静态IP地址。

打开qsys_webserver目录下的web_server.h文件,修改第64行~72行的宏界说,如下图所示:图 25.4.8 设置静态IP地址修改完静态IP地址后,我们还需要给WebServer服务器一个MAC地址。我们只需将qsys_webserver目录下的network_utilities.c文件第282行的get_board_mac_addr函数修改成如下形式:图 25.4.9 设置MAC地址MAC地址任意设置。设置完成后,如果我们直接编译工程,会泛起如下错误:图 25.4.10 未界说错误因为我们没有“EXT_FLASH_NAME”只有“EPCS_FLASH_CONTROLLER_NAME”,所以我们需要将错误所在行的“EXT_FLASH_NAME”替换为“EPCS_FLASH_CONTROLLER_NAME”。

替换完成后,编译通过。经由以上修改后,软件设计部门就可以正常使用了。

下载验证讲完了软件工程,接下来我们就将该实验下载至我们的开拓者开发板举行验证。首先我们用一根网线将开发板和电脑举行毗连,然后毗连JTAG和电源,开发板上电后我们在Quartus II软件中将qsys_eth.sof文件下载至我们的开拓者开发板,qsys_eth.sof下载完成后,我们就将ro_zip文件系统下载至我们的EPCS,下载方法如下:在Nios II SBT for Eclipse软件中点击“Nios II”菜单栏,单击“Flash Programmer”,如下图所示:图 25.5.1 打开Flash Programmer或者按快捷键Ctrl+7,弹出下图所示界面:图 25.5.2 新建下载项我们点击“File”菜单,选择“New...”,弹出下图所示界面:图 25.5.3 加载settings.bsp文件我们先点击箭头1所指的“…”添加qsys_webserver_bsp工程下的settings.bsp文件,然后点击箭头2所指的“OK”按钮,进入下图所示界面:图 25.5.4 泛起时间戳不匹配错误可以看到界面下方泛起了系统时间戳不匹配的错误,我们单击右上角箭头1所指的“Connection...”按钮,在下图所示界面中,勾选“System ID checks”下的两个选项:图 25.5.5 勾选忽视时间戳匹配此时系统时间戳不匹配的错误酿成警告,不影响下载,单击“Close”按钮。点击图 25.5.4箭头2所指的“Add...”按钮,在弹出的界面中将标识1的“Files of type”设置为“All Files”,标识2的“Look in”为qsys_webserver的system文件夹,选中标识3的“ro_zipfs”,单击标识4的“Select” ,如下图所示:图 25.5.6 添加ro_zip文件回到下图所示界面后,我们将箭头1所指“Flash Offset”设置为0x100,这是我们在BSP中设置的ro_zip文件系统在Flash中的偏移地址,然后点击箭头2所指的“Start”,开始将ro_zip文件系统下载到EPCS中。

图 25.5.7 设置偏移地址下载完成后,在win10系统下可能会弹出下图所示的警告,这是由于版本不新引起的,不外不影响功效,在win7系统下则没有此警告。点击“Exit”,退出下载Flash界面。图 25.5.8 win10下的警告将ro_zip文件系统下载到开拓者开发板的EPCS Flash中后,我们将最后一个文件qsys_webserver.elf下载至我们的开拓者开发板,qsys_webserver.elf下载完成以后,我们的C法式就会执行在我们的开拓者开发板上,此时在Nios II Console上打印如下信息:图 25.5.9 Nios II控制台打印信息从中我们可以看到此处MAC地址(十六进制)与我们设置的十进制相符,IP地址也是我们设置的静态IP地址192.168.1.234。

et1的IP地址为192.168.1.234,此IP地址为我们可以通过电脑浏览器会见的地址。现在我们打开电脑的浏览器,看一下会泛起什么效果吧。

此处我们选择Google Chrome浏览器(任一浏览器都可以),在地址栏输入“192.168.1.234”,如下图所示:图 25.5.10 浏览器中输入IP地址回车后,泛起下图所示界面:图 25.5.11 毗连乐成后显示的网页与此同时,控制台会打印以下信息:图 25.5.12 控制台打印相应信息讲明乐成抓取到需要显示的文件。我们点击“LEDs”下的“Start”按钮后,开拓者开发板上的4个led灯显示快速流水效果,如下:图 25.5.13 显示效果。


本文关键词:正点,原子,开拓者,NiosII,资料,第,25章,WebServer,乐鱼官网app

本文来源:乐鱼官网app-www.renheguoshu.com