标题:
基于以太网LWIP的Web server的实现
[打印本页]
作者:
pengpengpang
时间:
2014-10-23 22:00
标题:
基于以太网LWIP的Web server的实现
在目前的嵌入式系统设备中,WEB服务器的搭建越来越受欢迎,它广泛应用于智能家居、环境监测、交易/支付终端及网络传感器等领域。通过以太网接口将嵌入式设备和PC机相连,实现高速数据的传输。人们可以通过PC机上的浏览器访问嵌入式设备的服务器,能快速的存储和读取相关数据,也能控制嵌入式设备。本设计是基于安福利公司的LX9 Microboard开发板,采用赛灵思公司的Microblaze软核搭建一个嵌入式系统,通过LWIP协议实现以太网数据的传输。
以太网络接口采用的是TCP/IP协议栈,而LWIP是TCP/IP协议栈的一种实现,全称是LightWeight IP,它是TCP/IP实现的简化。LWIP的主要目的是减少存储器利用量和代码尺寸,使 LWIP适合应用于小的、资源有限的处理器如嵌入式系统。为了减少处理器和存储器要求,lwIP 可以通过不需任何数据拷贝的API进行裁减。
赛灵思的软件开发平台SDK提供了LWIP的IP核,用户只需配置参数后即可调用。在配置参数时,LWIP的实现提供了两种模式,分别为Socket模式和RAW模式。Socket模式需要调用xilkernel操作系统,而RAW模式可以直接使用,占用资源相对较少,本设计采用RAW模式实现以太网的数据传输。
一:硬件设计
运用Xilinx ISE Design Suite 13.1中的EDK创建一个新的工程。CPU的时钟设置为100M,由于系统有两种总线标准,相比于PLB总线,AXI总线具有更高的带宽,可以传输更高的速率,因此本设计采用AXI总线。在外围设备配置中选择DIP_Switches_4Bits、Ethernet_MAC、LEDs_4Bits、MCB3_LPDDR、SPI_FLASH、USB_Uart、axi_timer_0等IP核。配置完成后,在System Assembly View中可以看到系统各个IP核的关系,如图1所示。
[[wysiwyg_imageupload:87:]]
图1 系统各个IP核的联系
编译完成后,硬件配置即完成。
二:软件设计
1:文件系统制作
在下载程序时,必须将WEB服务器的相关文件先做成镜像文件,再通过JTAG下载到开发板中。
WEB服务器的文件采用安福利公司提供的演示文件,在CMD环境下,使用命令
mfsgen -cvbf ../image.mfs 3000 css images js yui generate-mfs index.html xapp1026.pdf
,
如图2所示。
[[wysiwyg_imageupload:88:]]
图2 镜像文件的制作
2:程序设计
程序的基本流程为:先设置服务器和客户端的IP地址,再对lwip进行初始化,调用初始化函数lwip_init();再初始化以太网设置,调用xemac_add()函数;再打开系统中断,调用函数microblaze_enable_interrupts();然后打开WEB服务器的设置,最后进入while循环,等待客户端访问。
程序通过编译后,下载到开发板中,将PC机的IP地址和服务器的IP地址设置为同一网段。下载完成后,串口将输出信息,如图3所示。
[[wysiwyg_imageupload:89:]]
图3 串口输出信息
在PC机上打开浏览器,输入网址:
http://192.168.1.10
,即可访问下载到开发板中的网页文件了,其页面如图4:所示。
[[wysiwyg_imageupload:90:]]
图4 访问页面
点击网页上的Toggle LEDs按钮将能控制4个LED灯的状态。修改代码,也可以分别控制每个LED灯。点击网页上的Update Status按钮将能读取开关变量的值。
三:结论及展望
通过本设计,基本能实现利用FPGA实现WEB服务器的开发,由于赛灵思提供了强大的IP核功能,利用赛灵思的嵌入式工具开发比较小的系统时,通常具有开发周期短,难度低,成本小和可移植性好的优点。在此基础上,我们还能扩展出许多其它的功能,比如开发板外接温度传感器芯片、湿度检测芯片和场强检测芯片等,读取室内温度值、湿度值和场强值等发回到网站页面上,人们可以方便的知道室内的环境。
如果想看大图可以点击附件看pdf文档
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0