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