1、级通信工程专业方向课程设计模板重庆交通大学信息科学与工程学院课程设计报告题 目基于ARM的嵌入式服务器设计专 业通信工程班 级通信3班学 号 631204080232姓 名庞海燕指导教师张升军信息科学与技术学院二一五年九月 通信工程专业方向课程设计成绩鉴定表进行时间2015-2016学年第1学期第1、2周成绩鉴定学习内容(20分)与教学任务计划结合程度(10分)与专业培养结合程度(5分)其它(5分)过程评价(20分)实践能力(10分)学习态度(5分)学习纪律(5分)报告鉴定(60分) 报告内容与实践过程紧密结合(15分)报告内容与教学计划内容紧密结合(15分)报告质量(主题、结构、观点、逻辑、
2、资料、字数 30分)指导教师姓名职称成绩摘 要随着计算机、网络通信和Internet 技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛。如何将嵌入式系统和工业控制系统接入Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为倍受关注的研究课题。嵌入式Web服务器是指将Web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为以底层通信协议,并采用ARM技术,其具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于绝大多数的控制过程。基于TCP/IP协议栈实现的,需要实现TCP、UDP、HTTP等协
3、议,客户机在网络中任一点接入都可以浏览Web页面并对系统进行管理和控制,服务器端对客户的请求进行解析。在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。关键词:web服务器;嵌入式系统;远程设备;监控;框架设计目 录摘 要 II目 录 III第1章 绪论 11.1 二级标题 11.2 二级标题 11.3 二级标题 11.4 二级标题 1第2章 一级标题 32.1 二级标题 32.2 二级标题 32.3二级标题 3结论 4参考文献 5附录 6第1章 绪论1.1 概念及嵌入式web服务器概述嵌入式W
4、eb服务器是指将Web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。EWS系统与传统的Web应用相比,简化了系统结构,将信息采集和信息发布都集成到现场的测控设备中。而有了标准的接口形式和通信协议,内嵌于设备的从Web服务器同样可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面,浏览器成了设备的前端控制板。由于Web技术的开放性和独立平台特性,大大降低了软件系统和通信系统的设计、维护工作量,节省了人员培训费用等,提高了现场测试和控制设备
5、的管理水平。ARM单片机控制嵌入式WEB服务器系统,是利用ARM作为系统的主控制器,由linux下的vi编程,来实现对于嵌入式WEB服务器的访问。本设计采用ARM技术,其具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于绝大多数的控制过程。鉴于这样的重要性,我们打算设计一种基于ARM的嵌入式服务器系统。当在客户端浏览器中输入嵌入式Web服务器的地址,要经过以下步骤才能成功访问或操作嵌入式Web服务器:(1)客户端通过TCP发起建立连接请求,服务器确认请求合法即建立连接。这个过程实际上就是通过TCP的“三次握手”方式建立连接。(2)接下来,HTTP协议通过TCP/IP协议向服务器
6、端发出HTTP请求。(3)服务器端接到客户端的HTTP请求后,并对请求进行解析,通过解析结果可以得知请求的类型。(4)客户端收到服务器的反馈后,本地通过对HTML格式信息进行分析,并显示网页内容。 1.2 嵌入式系统与协议分析嵌入式系统:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统是将先进的计算机技术、半导体技术、电子技术和各个行业的具体应用相结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 图1-1:嵌入式系统的基本组成本课程设计基于ARM的
7、嵌入式硬件平台的开发。以ARM9系列芯片AT91SAM9为核心,构建硬件平台。硬件平台提供丰富的外设接口,包括RS232串口、DEBUG口、红外接口、数码管、触摸屏、LCD、按键、JTAG调试口、USB hostdevice接口、AC97音频接口、网络接口、无线传感器网络接口等。嵌入式软件平台开发。包括:移植开发bootloader作为系统引导程序,我们使用的是U-BOOT作为本系统的bootloader移植Linux内核到硬件平台,采用Linux内核版本为Linux一2.6.22;开嵌入式平台上各外设驱动。1.3 嵌入式web服务器体系结构嵌入式Web服务器是基于TCP/IP协议栈实现的,需
8、要实现TCP、UDP、HTTP等协议,客户机在网络中任一点接入都可以浏览Web页面并对系统进行管理和控制,服务器端对客户的请求进行解析,生成相应的静态页面或动态页面返还给客户端,如果需要进一步控制,服务器端将调用相关的应用程序进行必要的处理。 图1-2体系结构第2章 系统设计2.1嵌入式web服务器的设计2.1.1嵌入式web服务器的需求 获取服务器当前目录文件列表、获取指定文件、获取HTML 类型文件、获取纯文本文件、获取JPG 图像文件、获取GIF 图像文件、解析用户请求、访问静态网页、访问动态网页。2.1.2功能需求说明1)获取服务器当前目录文件列表将服务器当前目录下所有文件的信息发送给
9、客户端,信息包括:文件名、大小、日期。2)获取指定文件将客户请求的文件发送给客户。3)获取HTML 类型文件将客户请求的HTML 类型文件发送给客户。4)获取纯文本文件将客户请求的纯文本发送给客户。5)获取JPG 图像文件将客户请求的JPG 图像文件发送给客户。6)获取GIF 图像文件将客户请求的GIF 图像文件发送给客户。7)解析用户请求分析客户的请求,将请求信息解析为几个变量,包括:请求的命令、请求的文件名、请求的文件类型。2.1.3数据需求回应HTTP协议数据头格式要求,如表所示:行号字段内容举例1状态行HTTP/1.0 200 OK2文件类型Content-type: text/htm
10、l3服务器信息Server: ARMLinux-httpd 0.2.44是否过期Expires: 0 表2-1 数据格式2.2web服务器设计流程2.2.1系统结构: 图2-1 系统结构流程图2.2.2整体结构图说明:主程序:建立TCP 类型SOCKET 在80 端口进行监听连接请求。接收到连接请求,将请求传送给连接处理模块处理。并继续进行监听。2.2.3、连接处理模块:图2-2 连接模块流程图2.2.4功能分配1)发送当前目录文件列表信息将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。2)发送HTML 类型文件将客户请求的HTML 类型文件发送给客户。3)发送纯文
11、本文件将客户请求的纯文本发送给客户。4)发送JPG 图像文件将客户请求的JPG 图像文件发送给客户。5)发送GIF 图像文件将客户请求的GIF 图像文件发送给客户。6)解析客户请求HTTP 协议头分析客户的请求,包括:. 空格处理. 解析客户请求命令. 解析客户请求的资源名. 解析客户请求的资源类型。7)客户连接处理解析Referrer 和content_length 字段值并调用客户请求解析函数。8)发送HTTP 协议数据头根据发送文件类型发送相应的HTTP 协议头信息。2.3嵌入式web服务器模块功能实现框图:2.3.1监听模块这个模块主要完成服务器端与客户端建立连接,并保持服务器端为监听
12、状态,监听来自于客户端HTTP。 图2-3 监听模块流程图2.3.2解析和处理HTTP请求模块:这个模块对接收到的HTTP请求进行解析,确定请求的类型,并进行相应的处理。图2-4 HTTP请求流程图(3)静态页面请求处理 图2-5 静态页面请求流程图2.4函数模块程序分析:2.4.1、主程序设计:1)功能说明 系统的总入口,也是系统的主要控制函数。分别完成如下功能: 建立环境设置。设置信号处理方式。建立侦听TCP 流方式SOCKET 并绑定80 端口。建立连接侦听及客户连接处理调用主循环。2)算法流程图: 图2-6 算法流程图3)命令行输入处理用户在命令行输入参数 -i ,则将客户输入文件描述
13、字设为0,即标准输入。用于在本机进行测试。其他输入全部忽略。2.5、客户连接处理模块设计:1)功能说明用于初步处理客户的连接请求,并将请求信息传递给客户请求解析函数处理。2)算法:算法流程图如图: 图2-7 算法流程图2.6客户请求解析处理模块设计1)功能说明用于解析客户的请求,并根据请求信息调用相应的函数进行请求处理。2)算法算法流程图所示: 图2-8 客户请求算法流程图2.7发送HTTP协议数据头模块设计1、功能说明根据参数的不同,发送不同的HTTP 协议头信息。2、算法函数定义为:int PrintHeader(FILE *f, int content_type)发送
14、请求成功信息: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,Content-type: image/jpegn);break;case h:fprintf(f,Content-type: text/htmln);break;发送
15、服务器信息:fprintf(f,Server: AMRLinux-httpd 0.2.4n);发送文件过期为永不过期:fprintf(f,Expires: 0n);结论测试结果:在计算机机的浏览器中输入http:/192.168.0.111(111 为UP-AMR2410-S 实验板的IP地址),观察在客户机的浏览器中的连接请求结果和在开发板上的服务器的打印信息。图3-1 结果图由于Internet的普及,借助于Internet可以快速、可靠地传递各种控制信息。而嵌入式系统具有成本、体积、功耗等方面的优势,因此,将嵌入式系统与Internet 结合起来,是其发展的潮流与趋势。Internet
16、中发展最快而且最先被广泛使用的是WWW服务,Web服务器与Web浏览器提供了方便而稳定的服务,通过在嵌入式设备中增加TCPIP协议栈并构建Web服务器,用户就可以通过Web浏览器远程监控并管理该设备。用户可以在任何地点用标准Web浏览器(如IE和Netscape浏览器) 访问嵌入式web服务器,而不需要编写任何客户端程序。嵌入式Web服务器可以提供丰富多彩的信息,如数据、文字、图像、表格、语音等,数据还可以实时更新,对设备控制的结果也可以立即得到反馈。嵌入式Web服务器设计是一个复杂的过程,涉及嵌入式领域,同时也必须对相关的Internet通信协议有清楚的了解,比如TCP/IP、HTTP等。本
17、次设计的嵌入式Web服务器,实现嵌入式Web服务器的基本功能:获取服务器当前目录文件列表、获取指定文件、获取HTML 类型文件、获取纯文本文件、获取JPG 图像文件、获取GIF 图像文件、解析用户请求、客户端浏览器对服务器端静态网页的访问及动态交互等。通过本次课程设计,我对嵌入式和各种网络协议有了更深入的了解,虽然在一开始是一头雾水,但通过自己学习和队友合作以及老师的帮助下思路逐渐清晰,通过不断的摸索完成了设计。相信这次课程设计的经历会让我对嵌入式的应用有更深入的理解! 参考文献【1】墨菲著,李雪飞,吴明晖译.Android开发入门教程. 人民邮电出版社,2010.【2】沈连风编, 嵌入式系统
18、及其开发应用,电子工业出版社,2007年.【3】叶核亚主编.Java2程序设计实用教程(第二版). 电子工业出版社,2007.【4】 李荣鑫,喻国平.基于ARM的嵌入式WEB 服务器技术研究.J微计算机信息, 2007(8) 【5】 王庆志.嵌入式Web服务器的结构研究与设计.中国石油大学2010年【6】 范静丽,赵磊,刘永亮.甄鹏.嵌入式Web服务器远程监控系统的设计与实现.微计算机信息2008年32期 【7】 方光深;基于ARM的嵌入式Web服务器的研究与实现D;昆明理工大学;2008年附录1、阅读理解源码进入/arm2410s/exp/basic/09_httpd 目录,使用vi 编辑器
19、或其他编辑器阅读理解源代码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 httpd.carmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT=/mnt/yaffs -c -o copy.carmv4l-unknown-linux-gcc -o ./bin/httpd httpd.
20、o copy.o -lpthreadarmv4l-unknown-linux-gcc -o httpd httpd.o copy.o -lpthreadrootzxt 09_httpd# lscopy.c doc httpd httpd.o Makefilecopy.o Google httpd.c index.html Makefile.bak3、下载调试使用NFS 服务方式将HTTPD 下载到开发板上,并拷贝测试用的网页进行调试,本例中用的是index 测试网页。/mnt/yaffscd /host/exp/basic/09_httpd/host/exp/basic/09_httpd./h
21、ttpdstarting httpd.press q to quit.wait for connection.备注:1、模板中红色字部分需要根据不同题目作相应的修改或者是需要删除的备注信息;2、正文(不包括附录)字数不少于三千字。3、第2章是课程设计写作要求,这些内容供参阅使用,在最终报告中必须删除。)图1-1 XXXX图(备注:所有图的下方应加上图号和图名,例如:“图1-1 XXXX图”,表示第1章的第1个图。以此类推.。)表1-1 XXXX表(备注:1、所有表的上方应加上表号和表名,例如:“表1-1 XXXX表”,表示第1章的第1个表。以此类推.。2、表的左右两端不应封口,即没有左右边线!
22、) (1-1)(备注:1、公式采用公式编辑器编辑(插入-对象-Microsoft 公式 3.0);2、公式应居中编排;3、公式编号排在右侧,形式为“(1-1)”,表示第1章的第1个公式。)(空1行,一级标题另起一页开始)第2章 一级标题(空1行)*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*。2.1 二级标题*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*。2.2 二
23、级标题2.3二级标题*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*。结论*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*。*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*。(备注:对工作进行总结,归纳取得的成果、存在的不足以及今后改进的方向。)参考文献【1
24、】王珊,陈红数据库系统原理教程清华大学出版社,1998【2】J.Han and M.Kamber数据挖掘:概念与技术范明,孟小峰等机械工业出版社,2001【3】黄进,尹治本关联规则挖掘的Apriori算法的改进电子科技大学学报2003,32(1):76-79(备注:1、参考文献需要根据不同的题目作相应的修改;2、第1个参考文献为“书籍”的参考文献格式;3、第2个参考文献为“翻译书籍”的参考文献格式;4、第3个参考文献为“论文”的参考文献格式。)附录*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*。*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*报告模板*。(备注:在过程中有价值而又不适合放入报告正文中的材料,如程序源代码等。若有多个附录,应分别进行编号:如附录一、附录二等。)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1