收藏 分销(赏)

基于ARM简单嵌入式WEB服务器系统的设计.doc

上传人:精*** 文档编号:2862343 上传时间:2024-06-07 格式:DOC 页数:21 大小:253.54KB
下载 相关 举报
基于ARM简单嵌入式WEB服务器系统的设计.doc_第1页
第1页 / 共21页
基于ARM简单嵌入式WEB服务器系统的设计.doc_第2页
第2页 / 共21页
基于ARM简单嵌入式WEB服务器系统的设计.doc_第3页
第3页 / 共21页
基于ARM简单嵌入式WEB服务器系统的设计.doc_第4页
第4页 / 共21页
基于ARM简单嵌入式WEB服务器系统的设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、摘 要工程实践教学步骤是为了学生能够愈加好地巩固和实践所学专业知识而设置,在此次工程实践中,我们以ARM体系结构和编程课程中所学知识为基础,对基于ARM简单嵌入式WEB服务器系统进行了简单设计。本设计利用ARM 自带WEB服务器技术,来实现对嵌入式WEB服务器系统控制设计。该技术基于WEB服务器之上,且用嵌入式WEB服务器来实现对于网络访问。本设计说明关键介绍了以下几方面内容:1)基于嵌入式WEB服务器HTTP协议;12)Linux 下signal()函数使用;3)嵌入式WEB服务器工作原理;4)ARM开发板上SOCKET网络编程。关键词:ARM体系;嵌入式WEB服务器;HTTP协议 ;SOC

2、KET网络编程。 目录第一章 绪论31.1课题介绍31.2设计目标31.3设计内容31.4 设计用途3第二章 嵌入式WEB服务器设计原理介绍42.1 需求说明42.2 功效需求具体说明42.3 数据流图(DFD)62.4 数据需求6第三章 嵌入式WEB服务器设计步骤73.1 系统结构图73.2 整体结构图说明73.3 连接处理模块83.4功效分配8第四章 嵌入式WEB服务器设计程序分析及实践104.1 程序设计104.2程序分析114.3 试验步骤15参考文件17第一章 绪论1.1课题介绍伴随后PC时代到来,嵌入式系统技术已经成为了一个万众瞩目标焦点。现在已广泛应用于信息家电、数据网络、工业控

3、制、医疗卫生、航空航天等众多领域。巨大市场潜力,无穷商机,吸引了各路英豪纷踵沓来。ARM单片机技术因为其微小体积和极低成本,广泛应用于家用电器、工业控制等领域中。在工业生产中,电流、电压、温度、压力和流量也全部是常见被控参数。ARM单片机控制嵌入式WEB服务器系统,是利用ARM作为系统主控制器,由linux下vi编程,来实现对于嵌入式WEB服务器访问。本设计采取ARM技术,其含有集成度高,运算快速快,体积小、运行可靠,价值低廉特点,适宜于绝大多数控制过程。鉴于这么关键性,我们计划设计一个基于ARM嵌入式服务器系统。1.2设计目标经过此次工程实践,利用ARM体系结构和编程所学知识及查阅相关资料,

4、完成嵌入式WEB服务器设计,达成理论知识和实践愈加好结合、提升综合利用所学知识和设计能力目标。经过此次设计训练,能够使我们在基础思绪和基础方法上对基于ARM设计有一个比较感性认识,并含有一定程度设计能力。1.3设计内容熟知嵌入式WEB服务器工作原理、SOCKET网络编程。使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译WEB服务器驱动模块和应用程序,实现嵌入式WEB服务器设计。1.4 设计用途学习使用SOCKET进行通讯编程过程,了解一个实际网络通讯应用程序整体设计, 读懂HTTPD.C 源代码。在此基础上增加部分其它功效。在PC计算机上使用浏览器测试嵌入式WEB服务器

5、功效。第二章 嵌入式WEB服务器设计原理介绍2.1 需求说明图2.1 嵌入式WEB服务器需求说明2.2 功效需求具体说明1)获取服务器目前目录文件列表将服务器目前目录下全部文件信息发送给用户端,信息包含:文件名、大小、日期。2)获取指定文件将用户请求文件发送给用户。3)获取HTML 类型文件将用户请求HTML 类型文件发送给用户。4)获取纯文本文件将用户请求纯文本发送给用户。5)获取JPG 图像文件将用户请求JPG 图像文件发送给用户。6)获取GIF 图像文件将用户请求GIF 图像文件发送给用户。7)解析用户请求分析用户请求,将请求信息解析为多个变量,包含:请求命令、请求文件名、请求文件类型。

6、2.3 数据流图(DFD)图2.2 数据流图(DFD)2.4 数据需求回应HTTP协议数据头格式要求,如表2.1 所表示:表2.1 HTTP 协议数据头格式行号字段内容举例1状态行HTTP/1.0 200 OK2文件类型Content-type: text/html3服务器信息Server: ARMLinux-httpd 0.2.44是否过期Expires: 0第三章 嵌入式WEB服务器设计步骤3.1 系统结构图图3.1 系统结构图3.2 整体结构图说明主程序:建立TCP 类型SOCKET 在80 端口进行监听连接请求。接收到连接请求,将请求传送给连接处理模块处理。并继续进行监听。3.3 连接

7、处理模块图3.2 连接处理模块3.4功效分配1)发送目前目录文件列表信息将服务器目前目录下全部文件信息发送给用户端,信息包含:文件名、大小、日期。2)发送HTML 类型文件将用户请求HTML 类型文件发送给用户。3)发送纯文本文件将用户请求纯文本发送给用户。4)发送JPG 图像文件将用户请求JPG 图像文件发送给用户。5)发送GIF 图像文件将用户请求GIF 图像文件发送给用户。6)解析用户请求HTTP 协议头分析用户请求,包含:1. 空格处理2. 解析用户请求命令3. 解析用户请求资源名4. 解析用户请求资源类型。7)用户连接处理解析Referrer 和content_length 字段值并

8、调用用户请求解析函数。8)发送HTTP 协议数据头依据发送文件类型发送对应HTTP 协议头信息。第四章 嵌入式WEB服务器设计程序分析及实践4.1 程序设计4.1.1、接口设计用户连接处理函数名:int HandleConnect(int fd)参数:用户连接文件描述字4.1.2、解析用户请求函数名:int ParseReq(FILE *f, char *r)参数:参数1:文件流FILE 结构指针,用于表示用户连接文件流指针。参数2:字符串指针,待解析字符串。4.1.3、发送HTTP协议数据头函数名:int PrintHeader(FILE *f, int content_type)参数:参数

9、1:文件流FILE 结构指针,用于表示用户连接文件流指针。用于写入HTTP协议数据头信息。参数2:信息类型,用于确定发送HTTP 协议数据头信息。4.1.4、发送目前目录文件列表信息函数名:int DoDir(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示用户连接文件流指针。用于写入目录文件信息数据。参数2:目录名,表示用户请求目录信息。4.1.5、发送HTML文件内容函数名:int DoHTML(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示用户连接文件流指针。用于写入文件信息数据。参数2:用户请求文件名。4

10、.1.6、发送纯文本(TXT)文件内容函数名:int DoText(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示用户连接文件流指针。用于写入文件信息数据。参数2:用户请求文件名。4.1.7、发送JPEG图像文件内容函数名:int DoJpeg(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示用户连接文件流指针。用于写入文件信息数据。参数2:用户请求文件名。4.1.8、发送GIF图像文件内容函数名:int DoGif(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示用户连接

11、文件流指针。用于写入文件信息数据。参数2:用户请求文件名。4.2程序分析4.2.1、主程序设计1)功效说明系统总入口,也是系统关键控制函数。分别完成以下功效:􀂋建立环境设置。􀂋设置信号处理方法。􀂋建立侦听TCP 流方法SOCKET 并绑定80 端口。􀂋建立连接侦听及用户连接处理调用主循环。2)算法步骤图算法步骤图图4.1所表示:图4.1 主程序数据步骤图3)命令行输入处理用户在命令行输入参数 -i ,则将用户输入文件描述字设为0,即标准输入。用于在本机进行测试。其它输入全部忽略。4.2.2、用户连接处理模块设计1)功效说明

12、用于初步处理用户连接请求,并将请求信息传输给用户请求解析函数处理。2) 算法算法步骤图图2.2所表示:图4.2 用户连接处理模块数据步骤图4.2.3、用户请求解析处理模块设计1)功效说明用于解析用户请求,并依据请求信息调用对应函数进行请求处理。2)算法算法步骤图图2.3所表示:图4.3 用户请求解析处理模块数据步骤图4.2.4、发送HTTP协议数据头模块设计1)功效说明依据参数不一样,发送不一样HTTP 协议头信息。2)算法函数定义为:int PrintHeader(FILE *f, int content_type)􀂗发送请求成功信息:HTTP/1.0 200 OK。

13、048727;依据文档类型发送对应信息:fprintf(),函数中第一个参数f 为用户连接文件流句柄。switch (content_type)case t:fprintf(f,Content-type: text/plainn);break;case g:fprintf(f,Content-type: image/gifn);break;case j:fprintf(f,Content-type: image/jpegn);break;case h:fprintf(f,Content-type: text/htmln);break;发送服务器信息:fprintf(f,Server: AMRL

14、inux-httpd 0.2.4n);发送文件过期为永不过期:fprintf(f,Expires: 0n);4.3 试验步骤4.3.1、阅读了解源码进入/arm2410s/exp/basic/09_httpd 目录,使用vi 编辑器或其它编辑器阅读了解源代码4.3.2、编译应用程序运行make 产生可实施文件httpdrootzxt /# cd /arm2410s/exp/basic/09_httpd/rootzxt 09_httpd# makearmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT=/mnt/yaffs -c -o httpd.o htt

15、pd.carmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT=/mnt/yaffs -c -o copy.carmv4l-unknown-linux-gcc -o ./bin/httpd httpd.o copy.o -lpthreadarmv4l-unknown-linux-gcc -o httpd httpd.o copy.o -lpthreadrootzxt 09_httpd# lscopy.c doc httpd httpd.o Makefilecopy.o 谷歌 httpd.c index.html Makefile.bak4.3.3、下载调试

16、使用NFS 服务方法将HTTPD 下载到开发板上,并拷贝测试用网页进行调试,本例中用是index 测试网页。/mnt/yaffscd /host/exp/basic/09_httpd/host/exp/basic/09_httpd./httpdstarting httpd.press q to quit.wait for connection.4.3.4、本机测试在台式机浏览器中输入http:/192.168.0.111(111 为UP-AMR2410-S 试验板IP地址),观察在用户机浏览器中连接请求结果(图4.4)和在开发板上服务器打印信息。图4.4 IE显示结果参考文件1 杜春雷,ARM体系结构和编程M清华大学出版社,,22 梅丽凤等,单片机原理及接口技术(修订本)M北方交通大学出版社,,23 王洪辉,嵌入式系统Linux内核开发实战指南(ARM平台)M电子工业出版社,,34 李宁,ARM开发工具 ReaIView MDK 使用入门M北京航空航天大学出版社,35 王福瑞 等单片机微机测控系统设计大全M北京航空航天大学出版社,1999.3

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服