嵌入式课程设计报告基于web的嵌入式远程监控系统_第1页
嵌入式课程设计报告基于web的嵌入式远程监控系统_第2页
嵌入式课程设计报告基于web的嵌入式远程监控系统_第3页
嵌入式课程设计报告基于web的嵌入式远程监控系统_第4页
嵌入式课程设计报告基于web的嵌入式远程监控系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 web 的嵌入式远程监控系统 摘要: 随针对当前国内国外嵌入式服务器技术研究和发展情况的分析,本报告 提出了将 WEB 服务器、嵌入式系统以及当前的一些嵌入式实验板板载功能进行 融合的设计思想。设计了结合 WEB 服务器技术的嵌入式监控系统。该系统具有 浏览交互式网页,对嵌入式平台进行监视和控制等功能。 通过本套嵌入式WEBK 务器系统,用户可以通过 HTTP 协议方便的访问相应的嵌入式平台进行有效监视 的同时还可以进行实时的有效控制。该系统对硬件要求极低、响应速度快、 安全 性好、可扩展性强等优点,具有较高的实际应用价值。该系统在智能家居、嵌入 式组网等方面的应用将有较广阔的发展前途。

2、 关键词:ARM嵌入式系统;嵌入式web监控;boa服务器;CGI编程;Linux操 作系统 关键词:自动化、奏乐器、VHDL数字电路 Abstract: According to the analysis of the researches about the status of the mbeddedserver of the world.We rise a design of a embeddedinternet control system basedon the Web service which integrates the web server,embedded technolo

3、gy and thefunctions on the embedded experiment Board.This system has the function of browsing the web pages,monitoring theembedded Board and so on.With this embedded WEB server,the users can watchthe embeddedsystem conveniently according the HTTPprotocol.At the sametime the users can also monitor th

4、e ystem.This system have a lot of longtageslike a low request of the hardware,limited time of response and a stable status.Wewill see that this kind of system used in the application of intelligent familyelectronics,embedded neting and so on would have a good development. Keywords: ARM Embedded Syst

5、em;Embedded Web Server System;Boa Server;CGI Programing;Linux Operating System 1 引言 嵌入式系统课程设计是本专业在学习完 C 语言、 LINUX 操作系统、嵌入式 系统原理与接口设计、 嵌入式操作系统原理之后的专业课程设计, 属于专业课内 容。通过课程设计建立嵌入式系统主体环节, 嵌入式系统的最小结构和系统应用 设计基本技能, 培养分析和解决一些简单的实际问题的能力, 为今后毕业设计奠 定基础。随着嵌入式技术的发展和高速宽带网络的普及 , 利用网络实现远程监控 已为人们广泛接受 , 嵌入式网络监控技术正是在此条件

6、下逐步发展成熟起来的。 用户使用 Web 浏览器, 通过以太网远程访问内置 Web 服务器的监控摄像机 , 不但可以实现对现场的远程视频监控 , 而且可以向监控现场发送指令。 在整个 系统的实现过程中 , 嵌入式 Web 服务器起着十分重要的作用。本课题就是基于 该项技术,最终编程实现通过网络控制下位机嵌入式控制器的电机启动和停止。 1.1 研究目的和意义 1、通过嵌入式课程设计,熟练掌握 C 语言的编程方法。基于 WEB 的远程 监控的实现, CGI 的编写和使用,将理论联系到实践中去,提高我们的动脑和动 手的能力。 2、通过基于 WEB 的嵌入式远程监控系统的设计,掌握 S3C2410 实

7、验箱 ,直 流电机的工作原理,BOA服务器的使用,CGI的使用和简单程序的编写及调试方 法,最终提高我们的动手实践能力。 3、本课题的研究目的是用BOA服务器、CGI、IE浏览器设计一个通过IE浏 览器监控电机的系统,能够通过两个简单的按键对电机进行启动和停止的控制, 并能够在 IE 浏览器上看到电机的当前状态 4、由于基于 WEB 的嵌入式远程监控系统将成为今后远程监控技术发展的主 流方向,所以需要设计出简单实用,让人们更满意的产品。 1.2 本设计任务和主要内容 1基本要求 本课题主要设计和研究基于WE的嵌入式远程监控系统,要求在保证可靠运 行的前提下,电路设计尽量简洁紧凑,以减小成本、提

8、高系统的效率和安全性。 2应解决的问题 1)设计系统网络方案 2)分析网络程序结构和应用程序的使用方法 3)编程实现嵌入式系统服务器功能 4)编程实现嵌入式系统联网功能 5)编程实现通过网络控制下位机嵌入式控制器的电机启动和停止 3扩展功能 演奏时可以通过按键选择是手动演奏还是自动演奏,手动演奏是通过按键进 行简易乐曲的演奏。 2总体方案设计 2.1整体方案设计 系统总体设计是基于嵌入式系统和 WEB服务器结合的思想开发的,其网络 拓扑结构如图2.1所示 设备1 核心 核心 4 4 J WEB 乱EB ft 曲机、交换机 * WEB * - WEB 1 f 匙理器 处屬 设备3设备4 图2.1

9、系统网络拓扑图 针对本次课程设计提出的系统设计如图2.2所示 图2.2系统方案框图 2.2 硬件系统设计 2.3.1 核心处理器的选择 核心处理芯片需要完成处理和支持整个系统的功能需求,通过运行 BOA 服 务器要实施的接收来自各个客户端的请求和信息, 并根据获得的请求和信息进行 相应的后台处理以及信息的反馈。为完成上述功能,实现服务器正常运行, 对处 理芯片进行选型,对比现有处理芯片的优缺点,选择ARM9 S3C2410X芯片作为 设计开发嵌入式服务器系统的核心处理芯片。S3C2410X微处理器是一款由 Samsu ng公司为手持设备设计的低功耗、高集成度的基于 ARM920T核的微处理 器

10、,为了降低系统总成本和减少外围器件, 这款芯片还集成了以下部件: 16KB 指 令Cache、16KB数据Cache、MMU外部存储器控制器、LCD控制器、NANtFLASH 控制器、 4 个 DMA 通道、 3 个 UART 通道、 1 个 IIC 总线控制器、 1 个 IIS 总线控制器、4个PWM定时器、1个内部定时器、通用10 口、实时时钟、8通 道10位ADC和触摸屏接口、USB主、USB从、SD/MMC卡接口等。 2.3 软件环境选择 2.3.1 操作系统的选择 当选定了硬件系统后, 为了配合硬件达到系统的最优控制要求, 对市面上常用 的嵌入式系统进行分析比较。 (1) 价格比较:

11、 Linux 是完全免费的操作系统,只需遵循 GPL 声明,不需支 付任何费用; WinCE 是微软的商用嵌入式操作系统,使用它需要支付 WinCE 及 其开发环境的费用,开发出来的每套产品也需交纳一定费用。 uc/osII 系统, 可以免费用于学习或科研,但开发商使用产品或销售都是收费的。 (2) 开放性比较: Linux 是源代码完全开放的操作系统,可以自由下载, 并且 在遵循GPL声明的前提下可以自由地修改、移植,为系统的开发和调试带来极大 的便利;winCE是部分源码开放的商用操作系统,如果要修改其中的代码,需获 得微软公司的授权; uc/os II 也是开放的实时操作系统。 (3)

12、文件系统的比较: Linux 支持绝大部分文件系统, 只需选择相应的文件系 统即可; WinCE仅支持 Win dows系列的FAT16、有限文件系统;uc/os II本身没有 包括文件系统,需购买或移植。Linux与ARM处理器从以上可以看出,Linux系 统在诸多方面都存在优势,而且本身的 ARM 处理器与 Linux 也有着紧密的联 系。因此采用 Linux 操作系统。 2.3.2 服务器的选择 典型的嵌入式 Web 服务器有 Boa 和 thttpd 两种,它们和 Apache 等高性 能的 Web 服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用 户请求后才能响应另一个用

13、户的请求, 而无法并发响应, 但这在嵌入式设备的应 用场合里已经足够了。 Boa 是一个非常小巧的 Web 服务器,可执行代码只有约 60KB它是一个单任务 Web服务器,只能依次完成用户的请求,而不会fork出 新的进程来处理并发连接请求。但 Boa支持CGI,能够为CGI程序fork出一 个进程来执行。 Boa 的设计目标是速度和安全, 在其站点公布的性能测验中, Boa 的性能要好于Apache服务器。经过上述的对比和判断,选择Boa作为系统的嵌 入式服务器。 综合以上的讨论以及选择, 根据系统的实际需求, 最终确定了采用 S3C2410X 为核心处理器, Linux 为嵌入式操作系统,

14、 boa 为服务器以及相应的 http 浏览 器的系统设计方案 3硬件设计 3.1系统硬件平台介绍 我们所介绍的硬件平台是基于 ARM体系结构,由北京博创兴业科技有限公 司开发的 UP-NetARM2410-S实验仪器。UP-NetARM2410-S 的 CPU 为 ARM920T 内核的三星S3c2410芯片,由于有MMU(内存管理单元)可以运行标准的 ARM-LINUX内核。通过这个平台,我们可以实现嵌入式 LINUX中的针对无MMU 的开发过程 3.2 s3c2410芯片介绍 凹 5 I EMM Id CACHIL JWKBJ JL qnbrtaic* F T 1 F MM Ll1 宀!

15、戶- 5 门 AFW9FDHI Pl JCUUftii L.U IV Irltvi I ErbvMivil IF* AM” Dub WF 工1L 心 ND NHO nb On: I EPfr*Wil, 卅 KOLJ9 CCKIT XTV ftrtrtflTiL! M日左 LCD L8 COL Uli NH-CQtJT M CON IT CC*TT j AM*JQR.a JRAM 1廿I El 讨口a ujugi I rid* L DMA MCk) | I -i 开启设备时,配置 IO 口为定时器工作方式: ( GPBCON GPBCON |= 0 xa; 配置定时器的各控制寄存器: ( TCF

16、G0 TCFG0 |= (DCM_TCFG0); TCFG1 TCNTB0 = DCM_TCNTB0; /* less than 10ms */ TCMPB0 = DCM_TCNTB0/2; TCON TCON |= (0 x2); TCON TCON |= (0 x19); ) 在 s3c2410_dcm_ioctl 中提供调速功能接口: case DCM_IOCTRL_SETPWM: return dcm_setpwm(int)arg); 应用程序 dcm_main.c 中调用: ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor); 实现直

17、流电机速度的调整。 a. 编译直流电机模块 cd /arm2410s/kernel-2410s make menuconfig 进入 Ma in Menu / Character devices 菜单,选择 DC MOTOR为模块加载: b. 编译内核模块: make dep make make modules 直流电机模块的编译结果为: /arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o c. 编译应用程序 cd /arm2410s/exp/basic/10_dcmotor/ make 生成 dcm_main d. 挂载驱动模块 in

18、smod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o e. 运行程序 mount - t nfs 192.168.0.xxx:/arm2410s /host insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o cd /host/exp/basic/10_dcmotor/ ./dcm_main 程序运行结果:直流电机转动 1 秒,停转 1 秒。由于是根据原有变速程序稍做 改动完成的程序,所以遇到的问题不是很多,经过几次尝试就得到了期望的结果 5.3调试结果分析 5.3.1调试

19、结果 1、静态网页 图5.1静态网页 2、乘法网页 id翼辑a:爭他 庁z时iMii 晤血却 匕義U U O U-J lJ 三 id 测试 UffVW入剩阳UHR禅.揑下酗超后可卿難果住下耐(人郭敷初赧除* a r 图5.2乘法网页 3、电机控制网页 输人st art右菇屯机勒LAEap谆jL岂机si irt 图5.3电机控制网页 图5.4返回结果 5.3.2结果分析 经过x86下的调试和基于ARM的下载与调试后,系统能够实现静态网页浏 览,简单人机交互以及电机控制的功能,系统工作稳定,响应速度快,组网方便 快捷,如果与DNS服务器或者 WINS服务器相结合即可实现用主机名就能登录 相应平台的

20、功能 6 设计总结 经过三个周的学习与努力, 经过系统分析、 方案论证、 硬件和软件设计、 调 试 等阶段完成了基于 web 的嵌入式远程监控系统的设计制作。 在这三个周的课 程设计中, 我得到了老师和同学很大的帮助,有时候觉得进行不下去了,老师或 同学一句话就能让我茅塞顿开。即使听不懂,他们也会耐心的讲解。 在系统的设计制作过程中,确实遇到了各种各样的问题,如调试思路正确但 是没有能够进行找到合适的方法进行进一步的实验, 设计中对于程序的编写以及 目录结构的认知上存在偏差, 其主要原因还是基础功不扎实, 把握系统的能力不 足,这为我们以后的学习和工作提了一个醒。 在问题的解决过程中, 也提高

21、了组 员的动手动脑能力, 学到了许多在书本上学不到的知识。 在具体的设计当中解决 了诸如boa服务器的搭建,C程序的修改及CGI编程的理解,程序的调试和系 统的整体认识等问题,小组成员收获很大 致谢 在这次课程设计中,学校和学院给予了大力的支持,提供了与设计有关的环 境,方便了课程设计的顺利进行。在这其中我确实学到了很多知识,在此仅代表 个人衷心的感谢学校和学院的大力支持。本论文是在指导老师蔡烁的悉心指导和 严格要求下完成的。在整个课程设计过程中,蔡烁老师时时督促和引导,并在设 计过程中进行了方向指导,在总体方向不出错的基础上,施展自己的所学,发挥 个人的所长。他不仅在学习上和生活上给予了我们

22、多方面的指导和无微不至的关 怀,而且他渊博的学识、严谨的治学态度、孜孜不倦的工作作风和宽以待人的处 事风格使我终身受益,并且还从中学会了分析问题和解决问题的方法此外,在本 次设计过程中,还得到了其他老师和的热情关心和帮助,值此论文完成之际,谨 向老师表示崇高的敬意和最诚挚的谢意。 参考文献 1 郑灵翔编著 嵌入式 LINUX 系统设计 北京航空航天大学 2008 年 2 孙纪坤、张小全编著 嵌入式LINUX系统开发技术详解-基于ARM人民邮 电出版社 2007.9 、 3 王进德 编著 嵌入式 LINUX 程序设计与应用案例 中国电力出版社 2007.5 4 郑慕德 编著 嵌入式微型计算机系统

23、实例教程 -ARM 与 LINUX 科学出版 社2006.7 5 刘淼 编著 嵌入式系统接口设计与 LINUX 驱动程序开发 北京航空航天 大学出版社, 2006.5 6 魏洪兴等编著 嵌入式系统设计与实例开发 II- 基于 ARM9 微处理器与 LINUX 操作系统 清华大学出版社 2005.12 7 魏洪兴等编著 嵌入式系统设计与实例开发实验教材 II- 基于 ARM9 微处理 器与LINUX操作系统清华大学出版社2005.12 8 金敏等编著 嵌入式组成、原理与设计编程 人民邮电出版社 2007.6 附录 1 主要程序清单 乘法网页的HTM表单: 测试 测试 vINPUT NAME=m

24、请在下面填入乘数和被乘数,按下确定后可以看到结果 SIZE=5 vINPUT TYPE=SUBMIT VALUE 确定 vp align=center v/p v/body v/html 乘法程序清单: #include vstdio.h #include int main(void) char *data; long m,n; printf(%s%c%c,Content-Type:text/html;charset=gb2312nn,13,10); printf( 乘法结果 ); printf( 乘法结果 ); data = getenv(QUERY_STRING); if(data = N

25、ULL) printf( 错误!数据没有被输入或者数据传输有问题 ); else if(sscanf(data,m=%ld else printf(%ld 和 ld的成绩是:ld。,m,n,m*n); return 0; 电机网页的HTM表单: 监控电机 输入start启动电机,输入stop停止电机 td alig n=right 电机程序清单: #include #include #include #include #include #define DCM_IOCTRL_SETPWM #define DCM_TCNTB0 #define ERROR printf(error) static

26、int dcm_fd=-1; char *DCM_DEV=/dev/dcm/0raw; char* getcgidata(FILE* fp,char* requestmethod); int main() char *input; char *req_method; char name5; int i=0; int j=0; int k; int status=1; int setpwm=0; int factor=DCM_TCNTB0/1024; if(dcm_fd=open(DCM_DEV,O_WRONLY)0) printf(Error opening %s devicen,DCM_DEV); return 1; printf(Content-type:text/htmlnn); req_method=getenv(REQUEST_METHOD); input=getcgidata(stdin,req_method); k=strlen(input); printf(%d,k); for(i=9;istrlen(input);i+)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论