ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:178.06KB ,
资源ID:5904700      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5904700.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM简单嵌入式WEB服务器系统的方案设计书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于ARM简单嵌入式WEB服务器系统的方案设计书.docx

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

2、关键词:ARM体系;嵌入式WEB服务器;HTTP协议 ;SOCKET网络编程。 目录第一章 绪论 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课题简介随着

3、后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。ARM单片机技术由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。ARM单片机控制嵌入式WEB服务器系统,是利用ARM作为系统的主控制器,由linux下的vi编程,来实现对于嵌入式WEB服务器的访问。本设计采用ARM技术,其具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于绝大多数的控制过程。鉴于这样的重要性

4、,我们打算设计一种基于ARM的嵌入式服务器系统。1.2设计目的通过本次工程实践,运用ARM体系结构与编程所学知识及查阅相关资料,完成嵌入式WEB服务器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。通过本次设计训练,可以使我们在基本思路和基本方法上对基于ARM的设计有一个比较感性的认识,并具备一定程度的设计能力。1.3设计内容熟知嵌入式WEB服务器的工作原理、SOCKET网络编程。使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译WEB服务器的驱动模块和应用程序,实现嵌入式WEB服务器的设计。1.4 设计用途学习使用SOCKET进行通讯编程的过程

5、,了解一个实际的网络通讯应用程序整体设计, 读懂HTTPD.C 源代码。在此基础上增加一些其他功能。在PC计算机上使用浏览器测试嵌入式WEB服务器的功能。第二章 嵌入式WEB服务器设计原理简介2.1 需求说明图2.1 嵌入式WEB服务器需求说明2.2 功能需求详细说明1)获取服务器当前目录文件列表将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。2)获取指定文件将客户请求的文件发送给客户。3)获取HTML 类型文件将客户请求的HTML 类型文件发送给客户。4)获取纯文本文件将客户请求的纯文本发送给客户。5)获取JPG 图像文件将客户请求的JPG 图像文件发送给客户。6

6、)获取GIF 图像文件将客户请求的GIF 图像文件发送给客户。7)解析用户请求分析客户的请求,将请求信息解析为几个变量,包括:请求的命令、请求的文件名、请求的文件类型。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 系统结构

7、图3.2 整体结构图说明主程序:建立TCP 类型SOCKET 在80 端口进行监听连接请求。接收到连接请求,将请求传送给连接处理模块处理。并继续进行监听。3.3 连接处理模块图3.2 连接处理模块3.4功能分配1)发送当前目录文件列表信息将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。2)发送HTML 类型文件将客户请求的HTML 类型文件发送给客户。3)发送纯文本文件将客户请求的纯文本发送给客户。4)发送JPG 图像文件将客户请求的JPG 图像文件发送给客户。5)发送GIF 图像文件将客户请求的GIF 图像文件发送给客户。6)解析客户请求HTTP 协议头分析客户的

8、请求,包括:1. 空格处理2. 解析客户请求命令3. 解析客户请求的资源名4. 解析客户请求的资源类型。7)客户连接处理解析Referrer 和content_length 字段值并调用客户请求解析函数。8)发送HTTP 协议数据头根据发送文件类型发送相应的HTTP 协议头信息。第四章 嵌入式WEB服务器设计程序分析及实践4.1 程序设计4.1.1、接口设计客户连接处理函数名:int HandleConnect(int fd)参数:客户连接文件描述字4.1.2、解析客户请求函数名:int ParseReq(FILE *f, char *r)参数:参数1:文件流FILE 结构指针,用于表示客户连

9、接的文件流指针。参数2:字符串指针,待解析的字符串。4.1.3、发送HTTP协议数据头函数名:int PrintHeader(FILE *f, int content_type)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。用于写入HTTP协议数据头信息。参数2:信息类型,用于确定发送的HTTP 协议数据头信息。4.1.4、发送当前目录文件列表信息函数名:int DoDir(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。用于写入目录文件信息数据。参数2:目录名,表示客户请求的目录信息。4.1.5、发送HTM

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

11、。用于写入文件信息数据。参数2:客户请求的文件名。4.1.8、发送GIF图像文件内容函数名:int DoGif(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。用于写入文件信息数据。参数2:客户请求的文件名。4.2程序分析 4.2.1、主程序设计1)功能说明系统的总入口,也是系统的主要控制函数。分别完成如下功能:􀂋建立环境设置。􀂋设置信号处理方式。􀂋建立侦听TCP 流方式SOCKET 并绑定80 端口。􀂋建立连接侦听及客户连接处理调用主循环。2)算法流程图算法流

12、程图如图4.1所示:图4.1 主程序数据流程图3)命令行输入处理用户在命令行输入参数 -i ,则将客户输入文件描述字设为0,即标准输入。用于在本机进行测试。其他输入全部忽略。4.2.2、客户连接处理模块设计1)功能说明用于初步处理客户的连接请求,并将请求信息传递给客户请求解析函数处理。2)算法算法流程图如图2.2所示:图4.2 客户连接处理模块数据流程图4.2.3、客户请求解析处理模块设计1)功能说明用于解析客户的请求,并根据请求信息调用相应的函数进行请求处理。2)算法算法流程图如图2.3所示:图4.3 客户请求解析处理模块数据流程图4.2.4、发送HTTP协议数据头模块设计1)功能说明根据参

13、数的不同,发送不同的HTTP 协议头信息。2)算法函数定义为:int PrintHeader(FILE *f, int content_type)􀂗发送请求成功信息:HTTP/1.0 200 OK。􀂗根据文档类型发送相应的信息: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

14、,Content-type: image/jpegn);break;case h:fprintf(f,Content-type: text/htmln);break;发送服务器信息:fprintf(f,Server: AMRLinux-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

15、/basic/09_httpd/rootzxt 09_httpd# makearmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT=/mnt/yaffs -c -o httpd.o httpd.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

16、-lpthreadrootzxt 09_httpd# lscopy.c doc httpd httpd.o Makefilecopy.o Google httpd.c index.html Makefile.bak4.3.3、下载调试使用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、本机

17、测试在台式机的浏览器中输入http:/192.168.0.111(111 为UP-AMR2410-S 实验板的IP地址),观察在客户机的浏览器中的连接请求结果(如图4.4)和在开发板上的服务器的打印信息。图4.4 IE显示结果参考文献1 杜春雷,ARM体系结构与编程M清华大学出版社,2003,22 梅丽凤等,单片机原理及接口技术(修订本)M北方交通大学出版社,2004,23 王洪辉,嵌入式系统Linux内核开发实战指南(ARM平台)M电子工业出版社,2009,34 李宁,ARM开发工具 ReaIView MDK 使用入门M北京航空航天大学出版社,2008,35 王福瑞 等单片机微机测控系统设计大全M北京航空航天大学出版社,1999.3

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1