第一篇:基于web的嵌入式远程监控系统
基于web的嵌入式远程监控系统
第1页
共33页
基于web的嵌入式远程监控系统
学生:刘 仁
指导老师:蔡 硕
摘要: 随针对当前国内国外嵌入式服务器技术研究和发展情况的分析,本报告提出了将 WEB 服务器、嵌入式系统以及当前的一些嵌入式实验板板载功能进行融合的设计思想。设计了结合 WEB 服务器技术的嵌入式监控系统。该系统具有浏览交互式网页,对嵌入式平台进行监视和控制等功能。通过本套嵌入式WEB 服务器系统,用户可以通过 HTTP 协议方便的访问相应的嵌入式平台进行有效监视的同时还可以进行实时的有效控制。该系统对硬件要求极低、响应速度快、安全性好、可扩展性强等优点,具有较高的实际应用价值。该系统在智能家居、嵌入式组网等方面的应用将有较广阔的发展前途。
关键词:ARM 嵌入式系统;嵌入式 web 监控;boa 服务器;CGI 编程;Linux 操作系统
关键词:自动化、奏乐器、VHDL、数字电路
基于web的嵌入式远程监控系统
第2页
共33页
Abstract: According to the analysis of the researches about the status of the mbeddedserver of the world.We rise a design of a embedded internet control system basedon the Web service which integrates the web server,embedded technology 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 embedded system conveniently according the HTTP protocol.At the sametime the users can also monitor the 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 System;Embedded Web Server System;Boa Server;CGI Programing;Linux Operating System
基于web的嵌入式远程监控系统
第3页
共33页
引 言
嵌入式系统课程设计是本专业在学习完 C 语言、LINUX 操作系统、嵌入式系统原理与接口设计、嵌入式操作系统原理之后的专业课程设计,属于专业课内容。通过课程设计建立嵌入式系统主体环节,嵌入式系统的最小结构和系统应用设计基本技能,培养分析和解决一些简单的实际问题的能力,为今后毕业设计奠定基础。随着嵌入式技术的发展和高速宽带网络的普及, 利用网络实现远程监控已为人们广泛接受, 嵌入式网络监控技术正是在此条件下逐步发展成熟起来的。用户使用 Web 浏览器, 通过以太网远程访问内置 Web 服务器的监控摄像机, 不但可以实现对现场的远程视频监控, 而且可以向监控现场发送指令。在整个系统的实现过程中, 嵌入式 Web 服务器起着十分重要的作用。本课题就是基于该项技术,最终编程实现通过网络控制下位机嵌入式控制器的电机启动和停止。
1.1研究目的和意义
1、通过嵌入式课程设计,熟练掌握 C 语言的编程方法。基于 WEB 的远程监控的实现,CGI 的编写和使用,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过基于 WEB 的嵌入式远程监控系统的设计,掌握 S3C2410 实验箱,直流电机的工作原理,BOA 服务器的使用,CGI 的使用和简单程序的编写及调试方法,最终提高我们的动手实践能力。
3、本课题的研究目的是用 BOA 服务器、CGI、IE 浏览器设计一个通过 IE 浏览器监控电机的系统,能够通过两个简单的按键对电机进行启动和停止的控 3
基于web的嵌入式远程监控系统
第4页
共33页
制,并能够在 IE 浏览器上看到电机的当前状态。
4、由于基于 WEB 的嵌入式远程监控系统将成为今后远程监控技术发展的主流方向,所以需要设计出简单实用,让人们更满意的产品。
1.2 本设计任务和主要内容
1.基本要求
本课题主要设计和研究基于WEB的嵌入式远程监控系统,要求在保证可靠运行的前提下,电路设计尽量简洁紧凑,以减小成本、提高系统的效率和安全性。
2.应解决的问题 1)设计系统网络方案
2)分析网络程序结构和应用程序的使用方法 3)编程实现嵌入式系统服务器功能 4)编程实现嵌入式系统联网功能
5)编程实现通过网络控制下位机嵌入式控制器的电机启动和停止
3.扩展功能
演奏时可以通过按键选择是手动演奏还是自动演奏,手动演奏是通过按键进行简易乐曲的演奏。
基于web的嵌入式远程监控系统
第5页
共33页总体方案设计
2.1 整体方案设计
系统总体设计是基于嵌入式系统和 WEB 服务器结合的思想开发的,其网络拓扑结构如图 2.1 所示
图 2.1 系统网络拓扑图
针对本次课程设计提出的系统设计如图 2.2 所示
图 2.2 系统方案框图
基于web的嵌入式远程监控系统
第6页
共33页
2.2 硬件系统设计
2.3.1 核心处理器的选择
核心处理芯片需要完成处理和支持整个系统的功能需求,通过运行 BOA 服务器要实施的接收来自各个客户端的请求和信息,并根据获得的请求和信息进行相应的后台处理以及信息的反馈。为完成上述功能,实现服务器正常运行,对处理芯片进行选型,对比现有处理芯片的优缺点,选择 ARM9 S3C2410X 芯片作为设计开发嵌入式服务器系统的核心处理芯片。S3C2410X 微处理器是一款由 Samsung 公司为手持设备设计的低功耗、高集成度的基于ARM920T 核的微处理器,为了降低系统总成本和减少外围器件,这款芯片还集成了以下部件:16KB 指令 Cache、16KB 数据 Cache、MMU、外部存储器控制器、LCD 控制器、NAND FLASH 控制器、4 个 DMA 通道、3 个 UART 通道、1 个 IIC 总线控制器、1 个 IIS总线控制器、4 个 PWM 定时器、1 个内部定时器、通用 IO 口、实时时钟、8 通道 10 位ADC 和触摸屏接口、USB 主、USB 从、SD/MMC 卡接口等。
2.3 软件环境选择
2.3.1 操作系统的选择
当选定了硬件系统后,为了配合硬件达到系统的最优控制要求,对市面上常用的嵌入式系统进行分析比较。
(1)价格比较:Linux 是完全免费的操作系统,只需遵循 GPL 声明,不需支付任何费用;WinCE 是微软的商用嵌入式操作系统,使用它需要支付 WinCE 及其开发环境的费用,开发出来的每套产品也需交纳一定费用。uc/os—II 系统,可以免费用于学习或科研,但开发商使用产品或销售都是收费的。
(2)开放性比较:Linux 是源代码完全开放的操作系统,可以自由下载,并且
基于web的嵌入式远程监控系统
第7页
共33页
在遵循GPL 声明的前提下可以自由地修改、移植,为系统的开发和调试带来极大的便利;winCE是部分源码开放的商用操作系统,如果要修改其中的代码,需获得微软公司的授权;uc/os—II 也是开放的实时操作系统。
(3)文件系统的比较:Linux 支持绝大部分文件系统,只需选择相应的文件系统即可;
WinCE 仅支持 Windows 系列的 FAT16、有限文件系统;uc/os—II 本身没有包括文件系统,需购买或移植。Linux 与 ARM 处理器从以上可以看出,Linux 系统在诸多方面都存在优势,而且本身的 ARM 处理器与 Linux 也有着紧密的联系。因此采用 Linux 操作系统。2.3.2 服务器的选择
典型的嵌入式 Web 服务器有 Boa 和 thttpd 两种,它们和 Apache 等高性能的 Web 服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。Boa 是一个非常小巧的 Web 服务器,可执行代码只有约 60KB。它是一个单任务 Web服务器,只能依次完成用户的请求,而不会 fork 出新的进程来处理并发连接请求。但 Boa支持 CGI,能够为 CGI 程序 fork 出一个进程来执行。Boa 的设计目标是速度和安全,在其站点公布的性能测验中,Boa 的性能要好于 Apache 服务器。经过上述的对比和判断,选择Boa 作为系统的嵌 入式服务器。
综合以上的讨论以及选择,根据系统的实际需求,最终确定了采用 S3C2410X 为核心处理器,Linux 为嵌入式操作系统,boa 为服务器以及相应的 http 浏览器的系统设计方案。
基于web的嵌入式远程监控系统
第8页
共33页硬件设计
3.1 系统硬件平台介绍
我们所介绍的硬件平台是基于 ARM 体系结构,由北京博创兴业科技有限公司开发的UP-NetARM2410-S 实验仪器。UP-NetARM2410-S 的 CPU 为 ARM920T 内核的三星S3c2410 芯片,由于有 MMU(内存管理单元)可以运行标准的 ARM-LINUX 内核。通过这个平台,我们可以实现嵌入式 LINUX 中的针对无 MMU 的开发过程。
3.2 s3c2410 芯片介绍
图 3.1 芯片结构图
基于web的嵌入式远程监控系统
第9页
共33页
3.3 ARM 处理器的外围设备
3.3.1 电源电路
设备提供 12v 的电源,经 LM1085-3.3V 和 AS1117-1.8V 分别得到 3.3V 和 1.8V 的工作电压。开发板上的芯片多数使用了 3.3V 电压,而 1.8V 是供给 S3C2410 内核使用的。5V 电压供给 LCD、电机、总线等电路使用。
图 3.2 电源电路
3.3.2 硬件复位电路
硬件复位电路由IMP811T构成,实现对电源电压的监控和手动复位操作。2410-S主板复位电路设置专用逻辑:IMP811T 的复位电平可以使CPU JTAG(nTRST和板级系统(nRESET)全部复位;来自仿真器的ICE_nSRST 信号只能使板级复位;来自仿真器的ICE_nTRST 可以使JTAG(nTRST)复位,通过跳线选择是否使板级nRESET复位。nRESET反相后得到RESET 信号。硬件复位电路如图3.3所示
基于web的嵌入式远程监控系统
第10页
共33页
图3.3 硬件复位
基于web的嵌入式远程监控系统
第11页
共33页软件设计
4.1 设计思想
基于 web 的嵌入式监控系统设计主要的功能有简单的网页浏览,实现简单应用功能(客户端与服务器的交互)以及服务器端的控制功能。因此软件的设计分为三个部分:boa 服务器的搭建、应用程序设计和驱动程序的加载。
4.2 BOA 服务器的简介与搭建
4.2.1 嵌入式 Web 服务器 Boa 的特点
Boa 是一款单任务的 HTTP 服务器, 与其他传统的 Web 服务器不同的是当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接, 而是通过建立 HTTP 请求列表来处理多路 HTTP 连接请求, 同时它只为 CGI 程序创建新的进程,这样就在最大程度上节省了系统资源, 这对嵌入式系统来说至关重要。同时它还具有自动生成目录、自动解压文件等功能, 因此 Boa 具有很高的 HTTP 请求处理速度和效率, 在嵌入式系统中具有很高的应用价值。4.2.2 Boa 的功能实现
嵌入式 Web 服务器 Boa 和普通 Web 服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客 户端返回请求结果等任务。它的工作过程主要包括:
(a)完成 Web 服务器的初始化工作, 如创建环境变量、创建 TCP 套接字、绑定端口、开始侦听、进入循环结构, 以及等待接收客户浏览器的连接请求;
(b)当有客户端连接请求时,Web 服务器负责接收客户端请求, 并保存相关请求信息;
(c)在接收到客户端的连接请求之后,分析客户端请求, 解析出请求的方法、基于web的嵌入式远程监控系统
第12页
共33页
URL 目标、可选的查询信息及表单信息, 同时根据请求做出相应的处理;
(d)Web 服务器完成相应处理后, 向客户端浏览器发送响应信息, 关闭与客户机的TCP 连接。嵌入式 Web 服务器 Boa 根据请求方法的不同,做出不同的响应。如果请求方法为HEAD,则直接向浏览器返回响应首部;如果请求方法为 GET,则在返回响应首部的同时,将客户端请求的 URL 目标文件从服务器上读出,并且发送给客户端浏览器;如果请求方法为 POST,则将客户发送过来的表单信息传送给相应的 CGI 程序,作为 CGI 的参数来执行 CGI 程序,并将执行结果发送给客户端浏览器。Boa 的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。4.2.3 BOA 的搭建与移植
(1)准备源代码、解压软件包,安装源代码到 boa 网站 http://www.xiexiebang.comTB0 = DCM_TCNTB0;/* less than 10ms */ TCMPB0 = DCM_TCNTB0/2;TCON &=~(0xf);TCON |=(0x2);TCON &=~(0xf);TCON |=(0x19);})在 s3c2410_dcm_ioctl 中提供调速功能接口: case DCM_IOCTRL_SETPWM: return dcm_setpwm((int)arg);应用程序 dcm_main.c 中调用:
ioctl(dcm_fd, DCM_IOCTRL_SETPWM,(setpwm * factor));实现直流电机速度的调整。a.编译直流电机模块 cd /arm2410s/kernel-2410s
基于web的嵌入式远程监控系统
第20页
共33页
make menuconfig 进入 Main 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.挂载驱动模块
insmod /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 秒。由于是根据原有变速程序稍做改动完成的程序,所以遇到的问题不是很多,经过几次尝试就得到了期望的结果。
基于web的嵌入式远程监控系统
第21页
共33页
5.3 调试结果分析
5.3.1 调试结果
1、静态网页
图 5.1 静态网页
2、乘法网页
图 5.2 乘法网页
基于web的嵌入式远程监控系统
第22页
共33页
3、电机控制网页
图 5.3 电机控制网页
图 5.4 返回结果
5.3.2 结果分析
经过 x86 下的调试和基于 ARM 的下载与调试后,系统能够实现静态网页浏览,简单人机交互以及电机控制的功能,系统工作稳定,响应速度快,组网方便快捷,如果与 DNS 服务器或者 WINS 服务器相结合即可实现用主机名就能登录相应平台的功能。
基于web的嵌入式远程监控系统
第23页
共33页设计总结
经过三个周的学习与努力,经过系统分析、方案论证、硬件和软件设计、调试 等阶段完成了基于 web 的嵌入式远程监控系统的设计制作。在这三个周的课程设计中,我得到了老师和同学很大的帮助,有时候觉得进行不下去了,老师或同学一句话就能让我茅塞顿开。即使听不懂,他们也会耐心的讲解。
在系统的设计制作过程中,确实遇到了各种各样的问题,如调试思路正确但是没有能够进行找到合适的方法进行进一步的实验,设计中对于程序的编写以及目录结构的认知上存在偏差,其主要原因还是基础功不扎实,把握系统的能力不足,这为我们以后的学习和工作提了一个醒。在问题的解决过程中,也提高了组员的动手动脑能力,学到了许多在书本上学不到的知识。在具体的设计当中解决了诸如 boa 服务器的搭建,C 程序的修改及 CGI编程的理解,程序的调试和系统的整体认识等问题,小组成员收获很大。
基于web的嵌入式远程监控系统
第24页
共33页
致谢
在这次课程设计中,学校和学院给予了大力的支持,提供了与设计有关的环境,方便了课程设计的顺利进行。在这其中我确实学到了很多知识,在此仅代表个人衷心的感谢学校和学院的大力支持。本论文是在指导老师蔡烁的悉心指导和严格要求下完成的。在整个课程设计过程中,蔡烁老师时时督促和引导,并在设计过程中进行了方向指导,在总体方向不出错的基础上,施展自己的所学,发挥个人的所长。他不仅在学习上和生活上给予了我们多方面的指导和无微不至的关怀,而且他渊博的学识、严谨的治学态度、孜孜不倦的工作作风和宽以待人的处事风格使我终身受益,并且还从中学会了分析问题和解决问题的方法此外,在本次设计过程中,还得到了其他老师和的热情关心和帮助,值此论文完成之际,谨向老师表示崇高的敬意和最诚挚的谢意。
基于web的嵌入式远程监控系统
第25页
共33页
参考文献
[1]郑灵翔编著 《嵌入式 LINUX 系统设计》 北京航空航天大学 2008 年 [2]孙纪坤、张小全编著 《嵌入式 LINUX 系统开发技术详解-基于 ARM》人民邮电出版社 2007.9、[3]王进德 编著 《嵌入式 LINUX 程序设计与应用案例》 中国电力出版社 2007.5 [4]郑慕德 编著 《嵌入式微型计算机系统实例教程-ARM 与 LINUX》 科学出版社2006.7 [5]刘淼 编著 《嵌入式系统接口设计与 LINUX 驱动程序开发》 北京航空航天大学出版社,2006.5 [6]魏洪兴等编著 《嵌入式系统设计与实例开发 II-基于 ARM9 微处理器与 LINUX 操作系统》 清华大学出版社 2005.12 [7]魏洪兴等编著 《嵌入式系统设计与实例开发实验教材 II-基于 ARM9 微处理器与LINUX 操作系统》清华大学出版社 2005.12 [8]金敏等编著 《嵌入式组成、原理与设计编程》 人民邮电出版社 2007.6
基于web的嵌入式远程监控系统
第26页
共33页
附录 1 主要程序清单
乘法网页的HTML表单:
测试
第二篇:基于嵌入式Web的远程监控系统设计
基于嵌入式Web的远程监控系统设计
摘 要:本文结合机房环境设备的管理需要,分析了远程监控系统的特点,提出基于嵌入式Web服务器的远程监控系统设计思路、体系架构方法,并对基于OPC技术的互联与基于嵌入式Web服务器的互联作了简要对比。文章结合CGI程序的设计,着重探讨了嵌入式Web服务器的实现方法。关键词:嵌入式平台,Web服务器,远程监控,CGI程序
⒈引言
随着计算机和网络技术的普及,计算机系统的数量与日俱增,计算机机房已成为各大型单位的信息枢纽。机房中的环境设备(如空调、UPS电源、配电柜、消防设备等)为网络系统的安全运行提供了环境保障。同时,环境设备自身的安全运行,也成为机房管理的重要内容之一。一旦机房的环境设备出现故障,就会直接影响计算机系统的正常运行,严重的还会造成机房内的相关设备损坏,甚至导致网络系统瘫痪[1]。因此,对机房环境设备的运行状态进行实时监控,是保证机房设备安全运行的关键措施。
⒉远程监控系统的需求分析
对机房环境设备的监控主要涉及以下几个方面的内容:对配电系统、UPS系统、空调系统工作状态的监视;对机房的温湿度、生活用水和供暖制冷系统漏水情况等进行监测、报警,以及对门禁系统、消防系统、保安系统等的管理。由于这些环境设备是连续工作的,因此要求监控系统也必须是长时间连续工作的。这样就对系统设计的可靠性、安全性、可维护性等方面提出了更高的要求[1],具体表现在以下几个方面:
⑴高可靠性。要求监控系统可长时间不间断运行,无故障运行时间要长,且系统的维护快速简便。
⑵高安全性。系统应能够提供多种安全保护措施,对异常状态进行分析、记录、及时报警,以便让管理人员能够尽快了解所发生的情况并及时处理。
⑶较强的实时性。监控系统对信息的传输要及时,不能有过大的延时,否则难以及时跟踪被监控对象的当前状况。
⑷易用性和易维护性。机房环境设备监控系统,应以GUI的方式提供良好的人机界面,便于人机交互。同时,监控系统要有通用性和灵活性,即可以在对系统进行少量修改或扩充就可增加新的监控项目,扩充监测点数,以满足新的监控要求。
⑸丰富的系统功能。要求监控系统不仅能够提供一般的报警功能,对采集的当前数据进行记录且保存
历史数据,并以图形方式对环境设备运行状态和参数进行直观显示。
实施监控的主要方法,即是在现场控制器的控制之下,实时地采集数据并与预设的值进行比较,如果超出相应的阀值则给出报警,以提示有关人员进行相应处理。根据对环境设备监控的位置不同,可把监控系统分为本地监控和远程监控两大类。本地监控方式往往需要派人长期现场值守,管理成本较高;而借助于公共的Internet或企业内部的Intranet网络实施远程监控则可做到无人值守,从而大幅度地节约管理成本、提高机房管理水平和效率,因此成为监控系统发展的主流方向。
⒊远程监控系统的设计
基于对远程监控系统的需求分析,进行系统设计时应重点考虑如下几种因素:首先,要考虑现场总线与数据网的互联问题。由于被监控对象的信号种类较多,所采用的现场总线标准各异,因此不同总线标准之间的转换以及现场总线与数据网之间的互联是系统设计时需要重点考虑的问题[2]。其次,实时性要求是远程监控网络系统区别于普通网络系统的基本特征。如果监控系统的实时性得不到保障,现场监控就失去了实用价值。第三,为满足监控系统的高可靠性要求,应分别对硬件系统和软件系统进行抗干扰设计。第四,根据远程连接方式不同,应采用不同的安全措施以保证信息的安全传输。3.1监控系统的功能设计
监控系统的基本功能主要包括:现场数据的实时采集、发送和显示;对采集到的数据进行处理和存储;对数据处理的结果进行分析、判断和报警;提供多种业务支持功能。3.1.1实时数据采集
实时数据采集是实施系统监控的基础。在环境设备的监控系统中,需要实时采集的数据主要包括高低压配电系统及UPS电源的电压、电流、电源开关状态等参数,空调机的冷热水温度、流量、送风量、送风温度、新风量等状态参数,以及机房内部的环境参数(如温度、湿度、水浸、烟感、门禁等)。不同的参数采用的总线标准不同(如RS232/485总线、Lonworks总线),只有把它们统一到TCP/IP协议上,才能实现真正意义上的远程监控。
3.1.2报警功能
报警是监控系统的基本功能之一。监控系统对采集到的数据进行分析、处理,如果发现相关数据超限、数据异常,则说明环境设备出现异常情况,此时应发出相应报警。设计报警功能时,需要考虑被监控对象的自身特性、优先级别等因素,对多个报警信号进行加权处理,以保证系统的所有重要报警都能被及时处理。
3.1.3多种业务支持功能
灵活的查询和丰富的报表功能是对监控系统基本功能的扩展。通过对设备运行状态的实时数据、历史数据进行对比分析,从不同角度向管理者提供设备运行和维护信息,为设备的维护、大修、更新、改造等质量管理提供可靠依据。3.2监控系统的结构设计
远程监控系统由现场数据采集设备(可以为多个设备)、本地Web服务器和远端监控主机三部分构成[3]。Web服务器通过现场总线与本地数据采集设备直接相连,并负责把本地传感器采集到的数据进行简单处理,通过网络发送到远端的监控主机上,从而为实现无人值守的管理方式创造条件。
远程监控系统在设计时需要解决的关键问题,就是将不同类型的现场总线或控制网络与以太网进行互联互通,从而实现监控信息的远程实时传输。目前,实施远程监控主要有如下几种方法:①基于PSTN的传统方法,即通过Modem连接异地的现场设备;②基于OPC技术。采用支持多种现场总线规范的OPC Server,通过OPC 接口实现现场总线到Internet或Intranet网络的无缝连接;③基于嵌入式平台实现远程监控。在嵌入式平台上完成对现场数据的实时采集,通过现场总线与数据网的互连,将Server端的数据通过TCP/IP协议提供给远端的监控主机(即Client端);④采用其它自定义方法实施远程监控。3.2.1基于OPC的监控系统
OPC 是以OLE/COM/DCOM机制作为应用程序级的通信标准,采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式向用户提供通用的接口,解决了软、硬件厂商之间的矛盾,提高了系统的开放性和互操作性[4]。基于OPC架构的监控系统结构如图1所示。其中,OPC DA Server为数据采集服务器,OPC AE Server为报警服务器。OPC Server 提供多种接口规范,应用程序和Web浏览器(即OPC Client)可以通过这些接口取得与OPC Server相连的硬件设备信息,从而实现OPC Client通过以太网对OPC Server的访问。同时OPC Server也可以将采集到的数据或报警信息通过网络发送到客户端或Web浏览器端。
在基于OPC的体系架构中,由于 COM/DCOM 已被视为网络功能的具体实现方法,使得Client对OPC Server的远程访问成为标准的网络访问方式。但是OPC技术的缺点也是非常明显的,由于LE/COM/DCOM机制是一个纯软件的架构,对系统资源配置的要求高。当系统规模较大或监控点数较多时,系统的实时性将会明显下降。
3.2.2基于嵌入式平台的监控系统
实时监控系统需要长时间不间断地工作,对系统的可靠性和实时性均有较高要求。为此必须从系统功能、体系架构、软硬件系统的稳定性、设备功耗等方面进行综合考虑(例如选用工控级的产品),设计小型化的智能型监控系统。而建立在RTOS之上的嵌入式系统为控制系统的网络化、小型化提供了有效途
径,嵌入式网络控制已成为监控系统未来发展的重点方向之一。
基于嵌入式平台的远程监控系统结构如图2所示。其中,嵌入式Web服务器既是远程监控系统的中心节点,也是控制网络与数据网络进行互联的网关,通过TCP/IP协议将其连接到以太网上,监控主机则通过以太网(或Internet)在远程实时地监视现场信号的动态变化,从而实现远程监控的目标。对于能够直接支持TCP/IP协议的现场检测设备,则可以将其直接连接到以太网上,图中的液体泄漏检测仪即是如此;对于采用其他总线标准的现场设备,则需要通过嵌入式Web服务器进行信号转换之后把现场总线连接到以太网上。
图2 远程监控系统结构图
⒋嵌入式Web服务器的设计
在基于嵌入式平台的远程监控系统中,监控系统的中心节点主要承担两方面的任务:一方面负责对现场数据的采集,即Web服务器以定时巡检的方式通过现场总线对传感器的信号进行采集;另一方面负责协议转换,把现场总线来的数据转换成TCP/IP协议的格式,通过以太网将其发送到远端的监控主机上。在本设计中实现了从RS232、RS485到TCP/IP协议之间的相互转换。4.1开发环境简介
考虑到系统开发的简便性,本方案选用uCLinux操作系统平台作为系统的OS环境,辅助开发工具选用MiceTek公司的HiTool。嵌入式Web服务器的硬件环境选用MiceTek公司的Samsung44B0X开发板,利用其丰富的接口功能,可实现嵌入式Web服务器与传感器的直接连接。4.2 嵌入式Web服务器的硬件设计
嵌入式Web服务器硬件环境的自定义,是根据监控系统的需要,重新制作嵌入式系统的主板。该主板的CPU仍选用Samsung的S3C44B0X,1M的BootFlash,8M的SDRAM,并提供10M/100M的以太网端口,2个RS232接口和6个RS485接口。如果待检测的参数较少,则选用一块嵌入式Web服务器主板即可;如果待检测的参数较多,则可选用多个同样的Web服务器主板,并对每个Web服务器进行参数配置(设置不同的IP地址),构成分布式的Web服务器。如果监控系统要求存储的数据量很大,则可以采取以下两种方法加以解决:一是嵌入式Web服务器外接硬盘;另一种方法是外加一台由工业控制级的服务器,对多台嵌入式Web服务器进行统一管理。4.3 嵌入式Web服务器的软件实现
嵌入式Web服务器的软件开发主要包括以下几项内容:首先,完成嵌入式操作系统的移植和TCP/IP协议的剪裁;第二,编写数据采集、数据处理应用子程序;第三,编写远程通信子程序;第四,报警处理子程序;第五,数据查询和报表生成子程序。这些功能应先在上述的开发环境中进行初步实现之后,再移植到自定义的环境中。
由于嵌入式系统的资源有限,因此对上述功能的实现应尽量简洁,例如对HTTP协议的移植,只需要保留基本的Get和Post方法即可,而Options、Head、Put、Delete和Trace方法在此可不考虑实现,因为对RAM(或EEPROM)中的数据存储可以采用循环覆盖的方式。
在此方案中,嵌入式Web服务器与Web浏览器及其他应用程序之间的交互,可以通过调用CGI(Common Gateway Interface)程序来实现。CGI规定了Web服务器与浏览器及其他可执行程序的接口协议标准。当Web浏览器将请求信息发送给Web服务器时,Web服务器触发一个可执行的CGI程序,该程序根据用户请求的内容做出相应的处理,并将处理结果以Web服务器可识别的方式输出,Web服务器再将该结果回送给Web浏览器[5]。
CGI程序中的信息传递是通过标准输入设备stdin和标准输出设备stdout来完成的。Web服务器在调用CGI程序之前,需要预先设置好所有的环境变量,以便把客户的请求转化为参数后存入环境变量,然后就可以调用CGI程序了。CGI程序根据不同的请求方法确定如何获取客户的请求内容,而Web服务器则通过标准输入设备stdin获得客户请求;对于CGI程序的输出结果,Web服务器则是通过标准输出设备stdout来获得,Web服务器对其进行语法分析之后,再传送给客户浏览器。至于CGI程序的实现,本方案选用C语言,以保证CGI程序的快速、高效和安全。
⒌结语
基于嵌入式平台的监控系统,以其体积小、可连续工作时间长、性能稳定等特点,得到人们的广泛认可,成为网络化远程监控系统的主流方向。在本设计中,借助于相对稳定和成熟的软硬件开发环境,设计了一套较为完整和实用化的远程监控方案并加以实现。经使用证明,该设计方案是成功的并取得了较为理想的效果。
参考文献
[1]关光富,计算机机房环境设备监控系统与设计分析,电工技术杂志,2004.2 [2]周祖德编著,基于网络环境的智能控制,国防工业出版社,2004.1,第1版 [3]宋广军,张敬,王睿,基于web的温湿度远程监控系统,微计算机信息,2004.1 [4]孙敏,顾德英,汪晋宽,基于OPC技术的监控组态程序的开发,仪器仪表学报(增刊),2003.8 [5]汤碧玉,曾楠,郑灵翔等,嵌入式系统中基于Web的远程监控设计与实现,厦门大学学报(自然科学版),vol.43(5),2004.9
第三篇:基于ARM嵌入式的远程监控系统设计
基于ARM嵌入式的远程监控系统设计
摘要:基于ARM 内核的嵌入式系统在远程监控报警系统中的设计实现与应用。核心部分主要包 括 ARM 嵌入式平台设计及 μC-OS 嵌入式实时操作系统移植;人机交互界面 μCGUI 的设计与实现;远程通讯及自动报警等;系统的设计还考虑到了扩展性和通用性以及与其他监控设备无缝连接等问题。
关键词: ARM;μC/OS-II;μCGUI;远程监控 引言
监控系统现已成为现代化生产、生活中不可缺少的重要组成部分。目前,监控系列产品 种类繁多,大部分广泛应用于交通、医院、银行、家居、学校等安防领域。
随着嵌入式系统的出现,尤其是基于 ARM 内核芯片的嵌入式系统的出现,使得监控系统的应用领域更为广泛。本文设计的远程监控报警系统除了作为安防功能外,还可以应用于以下领域:通讯领域:远程通讯、视频会议和视频点播、证券、远程教育等。医疗领域:病房监护、远程诊断等。工业领域:远程设备诊断、维护、维修,远程生产监控等。家用领域:家用电器远程维护;电、气、火等重大事故自动报警等。
系统设计
2.1系统组成
本文设计的远程监控系统主要由中心控制器、数据终端、传感器模块、通讯模块、接口模块等几部分组成。系统组成图(如图 1)。
2.2中心控制器 系统核心负责数据采集判断处理。为了提高系统工作效率,这里使用的是三星公司的 S3C2410芯片作为处理器。S3C2410 芯片是一款高性价比的 ARM 芯片,非常适合作手机、PDA 等手持设备。主要特性包括: ARM920T 内核,最高工作频率 203MHz,LCD 控制器:可直接驱动真彩液晶屏,最高支持 2048×1024 真彩液晶屏,2 个 USB Host端口,1 个USB Device端口,支持 Nand flash 启动模式,SD 卡接口,UART、IIC、SPI、IIS 等多种类 型串行接口,4 通道DMA。
本文的监控系统的 CPU 核心部分使用的是标准的 SO-DIMM200 金手指接口,便于后期维护和升级。如果该监控系统的使用环境较为苛刻,可以将 CPU替换为S3C2440芯片。S3C2440完全兼容S3C2410全部特性(注意:芯片引脚不完全兼容)。与S3C2410芯片相比,S3C2440的性能更为优越:最高工作频率可达500MHz,内部集成CMOS摄像头接口,但价格较昂贵。
图1 监控系统组成框图
2.3数据终端 数据终端的主要功能是对监控数据进行分析、处理,及时将数据汇报给监控人员。同时,监控人员可以根据现场情况,使用数据终端对监控的设备进行远程控制。数据终端最大优势 就是安全、可靠、便于携带。一般情况下为了节约成本,可以将手机、PDA 等移动通讯设备作为数据终端使用。但是如果作为对高危环境或精密仪器的监控系统,数据终端需要专业定制。这里使用的是中心控制器的作为数据终端,即中心控制器既作为数据采集发送中心,也可数据接收处理中心使用。
2.4通讯模块
通讯模块主要负责远程数据通讯。带有 RS232/485、GPRS、CDMA 等一种或多种通讯 方式。需要根据现场环境和用户需要进行定制。通讯模块与控制器通过接口总线连接,连接 方式为 TTL/RS232/RS485 等。
2.5传感器模块
传感器模块的主要功能是感知外部环境,对外部环境进行实时监测。由人体红外传感器、振动传感器、超声波传感器、可燃气体传感器、温度传感器、湿度传感器等一种或多种传感 器组成。可根据现场监测环境不同进行定制。
2.6接口模块
接口模块主要作为系统扩展功能使用,将控制器的 A/D 转换、I2C、SPI 等多种接口进行 外部扩展。接口模块没有特定的功能,但可以根据需要与其他设备连接,例如可以与工业仪 器仪表或设备连接,实时对仪器或设备进行监控。
接口模块虽然不是监控系统的主要部分,但是对于整个系统来说却是不可缺少。因为本文的监控系统主要考虑到了系统的可扩展性和与其它系统无缝连接。通过接口模块可以很方 便的对监控系统进行升级,并且可以实现与其他系统或设备的无缝连接。这也是本系统区优 于其他监控系统的主要功能。软件设计
3.1工作软件
系统的软件设计较为复杂,这里只给出了整个工作软件流程(如图 2)。
图2 软件流程图
3.2操作系统移植
S3C2410 芯片支持多种嵌入式操作系统,如 WINCE、uCLinux 等。但考虑到监控系统 的实时性要求,这里使用的是 μC/OS-II 嵌入式实时操作系统。μC/OS-II 是一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用 ANSI C 写的。整个嵌入式系统分为两大层:硬件层和软件层。这里主要研究软件层的架构。软件层主要分为四个部分:实时操作系统内核,与处理器相关部分,与应用程序相关部分,用户的应用程序。移植 μC/OS-II 系统需要修改的文件有:应用程序相关文件: OS_CFG.H INCLUDE.H; 处理器相关文件: OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。
3.2.1 与处理器相关的代码
这是移植中最关键的部分。内核将应用系统和底层硬件有机的结合成一个实时系统,要 使同一个内核能适用于不同的硬件体系,就需要在内核和硬件之间有一个中间层,这就是与 处理器相关的代码。处理器不同。这部分代码也不同。我们在移植时需要自己移植这部分代 码。
a)OS_CPU.H
包括了用#define 定义的与处理器相关的常量,宏和类型定义,有系统数据类型定义,栈 增长方向定义,关中断和开中断定义,系统软中断的定义等等。
b)OS_CPU_A.ASM
这部分需要对处理器的寄存器进行操作,所以必须用汇编语言来编写。包括四个子函数: OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任务系统启动函数 OSStart()中调用。完成的功能是:设置系统运行标志位 OSRunning = TRUE;将就绪表中最高优先级任务的栈指针 Load 到 SP 中,并强制中断返回。这样就绪的最高优先级任务就如同从中断里返回到运行态一样,使得整个系统得以运转。OSCtxSw()在任务级任 务切换函数中调用的。任务级切换是通过 SWI 或者 TRAP 人为制造的中断来实现的。ISR 的向 量地址必须指向 OSCtxSw()。这一中断完成的功能:保存任务的环境变量(主要是寄存器的值, 通过入栈来实现),将当前 SP 存入任务 TCB 中,载入就绪最高优先级任务的 SP,恢复就绪最高优先级任务的环境变量,中断返回。这样就完成了任务级的切换。OSIntCtxSw()在退出中断 服务函数 OSIntExit()中调用,实现中断级任务切换.由于是在中断里调用,所以处理器的寄存器入栈工作已经做完,就不用作这部分工作了。具体完成的任务;调整栈指针(因为调用函数会使任务栈结构与系统任务切换时堆栈标准结构不一致),保存当前任务 SP,载入就绪 最高优先级任务的 SP,恢复就绪最高优先级任务的环境变量,中断返回。这样就完成了中断级任务切换。OSTickISR()系统时钟节拍中断服务函数,这是一个周期性中断,为内核提供
时钟节拍。频率越高系统负荷越重。其周期的大小决定了内核所能给应用系统提供的最小时 间间隔服务。一般只限于 ms 级(跟 MCU 有关),对于要求更加苛刻的任务需要用户自己建立中断来解决.该函数具体内容:保存寄存器(如果硬件自动完成就可以省略),调 OSIntEnter(),调用 OSTimeTick(),调用 OSIntExit(),恢复寄存器,中断返回。
c)OS_CPU_C.C
该文件中共定义了 6 个函数,但是最重要的是 OSTaskStkInit().其他都是对系统内核的扩展 时用的.OSTaskStkInit()是在用户建立任务时系统内部自己调用的,对用户任务的堆栈进行初始化。使建立好的进入就绪态任务的堆栈与系统发生中断并且将环境变量保存完毕时 的栈结构一致。这样就可以用中断返回指令使就绪的任务运行起来。
3.2.2与应用相关的代码
这部分包括两个文件:OS_CFG.H, INCLUDES.H。用户根据自己的应用系统来定制合适 的内核服务功能。OS_CFG.H 来配置内核,用户根据需要对内核进行定制,留下需要的部分,去掉不需要的部分,设置系统的基本情况。比如系统可提供的最大任务数量,是否定制邮箱服务,是否需要系统提供任务挂起功能,是否提供任务优先级动态改变功能等等。INCLUDES.H 系统头文件,整个实时系统程序所需要的文件,包括了内核和用户的头文件。
3.3用户图形接口
虽然 μC/OS-II 操作系统具有很高的实时性,但不像 WINCE、uCLinux 等操作系统那样 有良好的图形界面支持。所以,在使用液晶和触摸屏的情况下需要移植用户图形接口程序。这里使用的是 μC/GUI。μC/GUI 是一个软件模块集合,通过该模块可以在我们的嵌入式产品 中加入用户图形接口(GUI)。μC/GUI 具有很高的执行效率,并且与处理器和 LCD 控制器相 独立。该模块可以工作在单任务或者多任务环境,可以支持不同大小的显示方式。
通过 μC/GUI 我们可以很方便的在液晶屏绘制图形和界面。如果需要多种字体支持,必 须自己将相应的字体字库加入到 μC/GUI 中。为了避免出现乱码,尽量使用 GB2312 国标字库。
3.4关于字库的兼容性问题
我们国内通常使用的汉字字库是 GB 码,但国际上使用的是 UNICODE 码,所以如果数据终端使用的是手机、PDA 等移动通信设备,那么在数据发送前必须进行字码转换,即 GB 码 转换为 UNICODE 码或者 UNICODE 码转换为 GB 码。由于 GB 码与 UNICODE 码在排列组合上没有任何规律,所以通常字码转换的方法就是 查表法。
4结束语
基于 ARM9 嵌入式系统的远程监控系统与以往的监控系统不同,高性能的处理器芯片大大提高了系统的性能。使监控系统能够工作在比较恶劣的环境中。并且在设计上充分考虑到了系统的可扩展性和兼容性问题,实现了本系统与其他系统的无缝连接。以满足不同工作环 境的需要。
作者创新观点:本文设计的远程监控系统应用范围更广,更灵活、方便。通过各个功能模块 的不同组合,可以十分方便快速的应用于各个领系域,真正实现智能化、自动化且具有较高 的性价比。
第四篇:基于嵌入式Linux远程图像监控系统的设计
本文由wangyong1179贡献
pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。2010年第 11期 文章编号: 1006 2475(2010)11 0031 04 计 算 机 与 现 代 化 JISUAN JI YU X IAN DA I UA H 总第 183期
基于嵌入式 L inux远程图像监控系统的设计
唐人财, 刘连浩
(中南大学信息科学与工程学院, 湖南 长沙 410083)摘要: 系统以嵌入式微处理器 S3C2440和 L inux为核心平台, 采用 U SB摄像头作为图像采集设 备, 利用 L inux 下视频设备 应用编程接口 V 4L2和 Q t/Em bedded实现图像的采集, 实时 显示和 JPEG 格式 图片保 存, 利 用 libjpeg 库来实 现视频 数据 的编解码以及通过以太网进行远程传输, 实现一种功耗低、可靠性高和低成 本的网络图像采集与传输系统设计方案。关键词: L inux 图像采集;Q t/Em bedded V 4L2;S3C2440;;中图分类号: T P391 41.文献标识码: A do: 10 3969 /.j issn.1006 2475.2010.11.009 i.D esign of R emote I age M on itoring System Based on Em bedded L inux m TANG R en ca, L IU L ian hao i(Institu te of Infor ation Science and Eng ineer ing, C entra l South U niversity Changsha 410083, China)m , Ab stract T he syste uses e : m mbedded m icroprocesso r S3C2440 and L inux as the core platfo r T he applica tion prog ramm ing in m.te rface V 4L2 and Q t /Embedded library are tw o key techno log ies to realize i age acqu isition, rea l ti e display and JPEG p icture m m sav ing by using U SB ca era T his design of i age acqu isition and trans ission is a low powe r consumption, h igh reliab ility and m.m m inexpensive syste m, wh ich ach ieves encod ing o r decod ing of i ages by lib jpeg library and remo te transm ission o f E therne t m.K ey w ords L inux;i age acquisition;Q t/Em bedded V4L 2;S3C2440 : m;0 引
言
友好图形操作界面, 实现现场图像在终端上的实时显 示和 JPEG图片的保存。利用 L inux 下 lib jp eg库编码 压缩图像, 通过以太网接口实时传输到视频监控中心 PC机上, 通过接收解码显示现场图像, 实现远程视频 图像监控功能。系统总体设计结构如图 1所示。
随着嵌入式技术、多媒体技 术及网络技术 的发 展, 基于嵌入式技术、视频压缩编码技术和网络传输 控制技术的综合应用, 已成为数字化网络视频采集监 控领域的核心 技术。系统是基于 ARM 9和 L inux平台的远程视频图像监控设计方案, 整个系统建立在嵌 入式结构上, 实现了高质量的视频图像采集和实时处 理功能。
系统总体设计
远程视频图像监控系统分为嵌入式视频监控终 端和监控中心 PC 机两部分。嵌入 式视频监控终端 基于嵌入式微处理器 S3C2440和 L inux 核心平台, 采 用通用 USB 摄像头捕捉现场图像, 通过 USB 接口将 数据传输到 ARM 开发板上, 由开发板上的图像采集 处理模块进行图像数据处理, 通过 LCD 触摸屏显示
图 1 系统总体设计框图 2 系统硬件设计
系统选取 m in i2440开发板作为系统设计的硬件
收稿日期: 2010 06 28 作者简介: 唐人财(1978), 男, 海南海口人, 中南大学信息科学与工程 学院硕 士研究 生, 研 究方向: 嵌入 式系统 及应用;刘连 浩(1959), 男, 湖南 澧县人, 教授, 博士, 研究方向: 单片机及嵌入式系统。32 计
算
机
与
现
代
化
2010年第 11期
平台, 监控终端硬件由主控模块和扩展模块两部分组 成。主控模块采用嵌入式微处理器 S3C2440 它是一 , 款基于 ARM 920T 核的 16/ 32位 RS I 结构的嵌入式微 C 处理器, 主频 400 z 最高可达 533 MH , MH z 片内外资源 , 丰富, 具有强大的处理能力, 从硬件上保证了系统快速 的响 应 速 度。系 统 存 储 扩 展 了 128 B 的 NAND M FLAS 64 B的 SDRAM。扩展模块包括通用 USB摄 H, M 像头、9000以太网控制器和带触摸屏的 NEC3 5英 DM.寸 TFT 真彩液晶屏。主控模块通过 USB 接口电路、LCD接口电路、以太网接口电路与扩展模块相连接构 成整个硬件系统。系统硬件结构如图 2所示。
配置内核编译选项时把 UVC 驱动编译进内核。UVC 不是摄像头的品牌或型号, 它是一种视频设备的技术 规范, 全称为 U SB V ideo C lass 这是一个为 USB 视频 , 设备提供驱动的开源项目。UVC 驱动支持 V 4L 2应 用编程接口, 系统设计中使用的 USB 摄像头为 T op Speed U SB 2 0 C a era UVC 驱动提供支持。.m , 3 3 V4L2图像采集程序的实现.V4L2 是 V id eo For L inux Two 的 简称, 是 V id eo Fo r L in ux AP I的第二版本, 是 L inux 下开发视频设备 程序的接口标准, 使用分层方法对所有视频设备的驱 动和应用编 程提 供一 套完备 的接 口规 范。基于 V4L 2标准, 视频图像采集处理流程如图 3所示。[ 3] 图 2 系统硬件结构框图 3 系统软件设计
1 系统软件平台.系统软件平台以嵌 入式 L inux 和 Q t/Em bedded 为基础, 具体构建步骤为: 在宿主机上建立交叉编译 环境, 完成引导加载程序 v ivi的编译移植, 编译移植 linux 2 6 29 内核, 包括 DM 9000 网卡、..通用 USB 摄 像头和 LCD 触摸 屏等驱动 的移植, 基于 busybox 1.13.3构建文件系统。基于系统设计的需求, 还要完 成 QTE 4 5 3图形库与 tslib 1 4触摸屏支持库以及...lib jp eg库向开发板的移植。lib jp eg 库主要用于实现 内存中图像数据的编解码, QTE 4 5 3是面向嵌入式..系统的 Q t版本, 采用了 fram ebuffer作为底层图形接 口, 采用 C ++ 封装, 具有丰富的控件资源和良好的可 移植性, 系 统中的应 用程序 以及环 境都是 基于 Q t / Em bedded来开发的。最终形成基于 ARM 的嵌入式 [ 1 2] L inux 操作系统平台 , 在系统软件平台上可进行嵌 入式应用程序的开发。限于篇幅, 系统软件平台的构 建在此只作简单介绍。3 2 嵌入式 L inux下 USB 摄像头驱动.为了使用 L in ux下 V4L2应用编程接口编写图像 采集应用程序, 在开发板上移植版本为 linux 2 6 29..的内核, 此内核版本支持 UVC 驱动 USB 摄像头, 在图 3 视频图像采集处理流程图
3 1 视频设备结构体初始化..程序中定义一个视频设备的数据结构 struct vde vice 结构体的成员变量是对视频设备和图像属性的 , 描述。
init_ vdata(struct vdevice * vdev , char * dev _na e un m , signed int w idth unsigned int he ight int fo r at);, , m 通过参数完成对视频设备结构体变量 vdev的赋 值初始化。视频设备名称 dev_na e 视频图像宽度 m , w idth 视频图像高度 heigh, 视频图像格式 for a, 以 , t m t 及申请分配两个内存缓冲区 fram ebuffer和 rgbbu ffer , 分别为采集到的一帧图像 数据缓冲区和 24位 RGB 图像数据缓冲区。3 3 2 视频设备初始化..函数 in it_vdev(struct vdev ice * vdev)根据参数
2010年第 11期
唐人财等: 基于嵌入式 L inux远程图像监控系统的 设计
vdev传递的值对视频设备进行初始化, 这是进行视频 图像采集前必须完成的工作。视频设备结构体 vdev 包含了要设置的设备信息, 初始化视频设备到适合的 图像采集工作方式。视频设备初始化具体实现如下:(1)打开摄像头设备文件。利用系统调用 函数 vdev > fd = open(vdev > dev_nam e O_RDWR)实现, 该函数的功能是打开参 , 数 vdev > dev_nam e指定的设备, 对于摄像头用设备 文件名 /dev /v ideo0 表示, vdev > fd 是设备打开后 返回的文件描述符, 在程序中可使用它来对设备文件 进行操作。(2)查询设备信息和设置采集属性。在 L inux 编程中, io ct l函数是设备驱动程序中对 设备的 I /O 进行管理的函数, 用户程序一般使用 ioctl 函数来对设备的一些特性进行控制。调用带 V ID I C _ O QUERYCAP命令参数的 io ct l函 数来取得设备文件的属性参数, 并存储于 struct v4l2_ capab ility 结构体变量 vdev > cap 中, 然后可 逐项验 证 vdev > cap的属性, 看设备是否符合采集的要求。
ioctl(vdev > fd V ID I _QU ERYCAP, & vdev > cap);, OC m em 间建立映射, 调用带 V I I C _QBUF 命令参数的 DO ioct l函数将所申请的设备缓存加入等待输入缓存队 列, 内存映射初始化完成。3 3 3 采集图像数据..函数 capture(struct vdevice * vdev)完成一帧视 频图像数据采集, 采集到的视频图像数据存放到设备 缓存 vdev > bu f中, 通过映射的程序内存空间可处理 视频图像, 函数调用成功返回视频设备采集的图像数 据大小。在设备缓存加入等待输入队列后, 调用带 VIDI C_ O STREAMON命令参数的 ioctl函数使能视频设备。
type= V 4L2_BU F _TYPE_V IDEO _CA PTURE;ioctl(vdev > fd V ID I _STREAM ON, & type);, OC 图像数据缓存采用 F IFO 的方式, 缓存队列将已 采集到视频图像数据的设备缓存出队列, 此时与之映 射的内存空间就存储了采集到的视频图像数据, 处理 完毕重新使设备缓存加入队列。这个过程需要调用 两次 io ctl函数。
ioctl(vdev > fd V ID I _DQBUF, & vdev > buf);, OC ioctl(vdev > fd V ID I _QBUF, & vdev > buf);, OC 接着设置视频图像采集格式, 可根据需求修改摄 像头缓冲区中图像参数如分辨率、格式等。具体方法 为先给 struct v4 l2 _for at结构体变量 vdev > f t分量 m m 赋新值, 再调用 带 V ID I C _S _FMT 命令参数 的 ioctl O 函数完成采集属性的设置。ioctl(vdev > fd V ID I _S_FM T, & vdev > fm t);, OC 调用带 VIDIOC_DQBUF 命令参数的 ioct l函数使 设备缓存出队列, 利用系统函数 m em cpy 将所采集的 一帧视频图像数据拷贝的所分配的内存空间 vdev > fram ebuffer以 方 便 后 续 图 像 处 理。然 后 调 用 带 V IDI C _ O QBUF 命令参数的 io ctl函数把设备缓存重新 加入输入缓存队列, 至此完成一帧视频图像数据采集。系统采用的摄像头初始化为 YUV422图像格式, 图像要在 LCD 上显示, 必须进行图像数据格式转换 处理, 将 YUV422格式转换为 RGB24格式。
yuv2 rgb24(vdev > fra ebuffer vdev > rgbbuffer vdev > m , , w idth vdev > he ight);,(3)实现内存映射。V4L2捕获的数据是存放在内核空间的, 用户不 能直接访问该 段内存, 必须通 过某些手段来 转换地 址。系统采用 mm ap内存映射方式, 把设备内存映射 到用户程序内存空间, 直接处理设备内存, 加速了 I/ O 访问。主要函数调用如下: ioctl(vdev > fd V ID I _REQBUF S & vdev > rbuf);, OC , ioctl(vdev > fd V ID I _QU ERYBUF, & vdev > buf);, OC vdev > m e [ i] = mm ap(0, vdev > bu.length, PROT _ m f READ, M AP _SHARED, vdev > fd vdev > bu.f m.offset);, ioctl(vdev > fd V ID I _QBUF, & vdev > buf);, OC 函数 yuv2rgb24 将 vdev > fram ebuffer指定 内存 中的 YUV 422图像格式转换为 RGB24格式, 并存放 到 vdev > rgbbuffer指定内存中, 函数实现在 此不作 详细阐述。3 4 图像数据的 JPEG 编解码.网络传输前对原始图像数据进行压缩处理, 利用 IJG(Independent JPEG G roup)提供的 lib jp eg 库进行 [ 4 6] 图像编解码。在开源的 libjpeg 库中, 函数必须从 文件或其他 设备流中读取数据, 再将压缩数 据存成 JPEG 文件, 增加了不必要的文件 I/O 操作, 不利于网 络实时传输图像。为解决 该问题, 改写 了 lib jp eg 库 内 jdatasrc c和 jd atads.c两个源代码文件, 设计自定.t 义的结构体 struct m y_dest_ gr和 struct m y_src_ g r m m , 增加自定义图像数据缓存地址变量、已处理图像数据
具体实现: 首先, 对 struct v4 l2 _ requestbuffers结 构体变 量 vdev > rbuf 分 量 赋 值, 调 用 带 V I I C _ DO REQBUFS命令参数的 io ctl函 数分配自定义 数量的 设备缓存;然后, 在循环程序结构中对申请分配的设 备缓存 进行映射, 调用带 V IDIOC _QUERYBUF 命令 参数的 ioct l函数获得设备缓存偏移量和缓存大小并 存于 struct v4l2_buffer结构体变量 vdev > bu f中, 调 用 mm ap在设备 缓存 和程序 内存 空间 变量 vdev > 34 计
算
机
与
现
代
化
2010年第 11期
的偏移量变量和图像大小变量, 并改写 lib jp eg库相关 操作函数, 封装相关的数据结构和成员函数为自定义 的图像编解码类 MY JPEG。实现输入数据和输出数据 的重定向到内存, 利用开源的 libjpeg 库在内存中实现 图像的压缩和解压缩。参照 lib jpeg 库中编解码过程, 实现了类 MYJPEG中压缩与解压缩成员函数。
w r ite e(unsigned cha r * m m char* m quality);/ /图像数据压缩处理 readm e(uns igned char indata int pSize unsigned char m * , , * outdata);/ /图像 数据解压缩处理 outdata int * pS ize unsigned , , indata unsigned int mw idth, unsigned int mhe ight int , , 压缩函数中参数可以灵活对压缩图像分辨率大 小和质量属性进行设置, 参数 pS ize 返回压缩后图像 的大小。而解压缩图像时, 压缩图像的大小则通过参 数 pSize传入。3 5 网络传输视频图像数据.UDP是非连接的、不可靠的、传递数据报的传输 协议, 提供了一种高效无连接的服务。由于 UDP 不 提供数据的可靠性保证, 使其具有较少的传输时延, 很适合实时性高而不要求数据绝对可靠的场合。视 频图像数据实时性强, 数据量大, 所以系统设计采用 此协议传输数据。通过 L inux 下的 socket套 接字编 [ 7] [ 8 11] 程 , 实现视频图像的网络传输。利用 C语言中 的多线程编程, 将网络通信置于一个工作线程, 避免 了 GU I应用程序因网络阻塞等待操作而使图形用户 界面冻结无法响应的问题。系统设计时结合使用互 [ 12] 斥锁和条件变量对各个工作线程进行同步。嵌入式视频监控终端上采集显示程序作为主线 程, 同时创建一个视频图像发送工作 线程 deal_send(), 用来处理与视频监控中心 PC间的网络通信。具 体过程描述如 下: 调用 socket()函数创建一个 UDP 数据报类型的套接字, 接着调用 bind()函数, 给套接 字绑定一个端口。视频图像发送工作线程调用 recv from()函数在指定的端口上阻塞等待客户端发送来 的 UDP数据报, 接收到服务请求, 处理该服务请求并 通过 sendto()函数将处理结果返回给 PC 端。在监控中心 PC 端创建解码显示视频图像工作 线程, 并创 建一个视 频图像接 收工 作线程 deal _re ce ive(), 用来处理与视频监控终端的网络通 信。具 体过程描述如 下: 调用 socket()函数创建一个 UDP 数据报类型的套接字, 接着调用 bind()函数, 给套接 字绑定一个端口。调用 sendto()函数向监控终端发 送服务请求报文, 调用 recv from()函数等待并接收服 务应答报文。继续定时发送服务请求直至通信终止。具体网络传输的通信过程如图 4所示。
图 4 网络传输通信流程 4 视频图像实时显示
系统是一个实时视频图像采集与传输系统, 采集 的现场视频图像在嵌入式视频监控终端和监控中心 PC上实时显示与保存。只要以较快速度显示变化的 图片就可以实时显示现场情况, 系统中利用定时器每 40m s采集一帧视频图像。该远程图像监控系统界面 是通过 QT 来实现的, 在强大的 QT 图形库的支持下, [ 13 14 ] 可快速开发出友好的图形用户界面。利用几个 相关 Q t图形类 Q I age QP ixm ap和 QL abe,l 实现视频 m、图像的显示和 JPEG格式图片保存。5 结束语
系统设计方案 是一种基于嵌入式 L inux 的图像 采集和传输系统, 本文详细介绍了 V4L 2应用编程接 口进行 USB 摄像头视频图像采集, 基于 QTE 图形库 实时显示视频图像, 利用开源的 lib jp eg 库实现图像 的 JPEG 编解码, 通过网络实时传输进行远程监控。整个系统数字化、网络化程度高, 实时性好、稳定可靠 且图像质量较好。经实验测试, 系统很好地实现对现 场视频图像的监控。在该系统的基础上, 可进一步进 行二次扩展开发, 以便应用在工业现场控制、远程指 挥监控系统、可视电话等诸多领域。
参考文献: [ 1] [ 2] [ 3] 赵敏, 杨恢先, 汤安平.基于 S3C2440的嵌入式 L inux 系统 移植的研究与实现 [ J].电子器件, 2008 31(6): 1947 1950 ,.郑灵翔.嵌入式 L inux 系统设计 [M ].北京: 北京 航空航 天大学出 版社, 2008.M ichae lH Schi ek V ideo for L inux Tw o AP I Specifica tion m.[ EB /OL ].http: / /v4l2spec bytesex org /v4l2spec / v4 l2...pd, 2008 03 04.f(下转第 38页)38 计
算
机
与
现
代
化 2010年第 11期
目标图像中变成 A!B!因为向前移动了, 所以物体显 , 得比原来要大些。放大的过程应 该是: 逐步 放大左 图, 并适当地截取放大图中跟原来一样大小的一块矩 形区域, 作为一张新的过渡图。至于放大的倍数, 作 [ 8] 如下考虑 : 假设 A!的长度是 AB的 L 倍, 两幅图像之间插入 B!n张过渡图, 则每一张过渡图之间的放大的倍数是(L 1)/(n+ 1)。
速度, 内存优化后系统占用资源更少, 由于不用频繁 申请内存和 释放内存, 减少 了漏洞和错误发 生的几 率;采用缩放的方法改进了行进间的浏览效果, 提高 了虚拟漫游的沉浸感, 具有一定的实用意义。
参考文献: [ 1] 石云飞, 王永平, 李龙 济, 等.基于 模板匹配 的柱面全景 图拼接优化算法 [ J].工程图学学报, 2005(1): 96 99.[ 2] [ 3] [ 4] 华顺刚, 曾令宜, 欧宗瑛.一种快速的柱面全景拼接算法 [ J].数据采集与处理, 2006, 21(4): 435 436.潘华伟, 邹北骥.一种圆 柱形全 景图生 成新算法 及其实 现 [ J].计算机工程与科学, 2003, 25(6): 13 16.吴宪祥, 郭宝龙, 王娟.基于相位相关的柱面全景图像自 动拼接算法 [ J].光学学报, 2009, 29(7): 1824 1829.[ 5] 钟力, 张茂 军, 孙立 峰, 等.360度柱 面全 景图 像生 成算 法及其实现 [ J].小型 微型 计算 机系 统, 1999 20(12): , 899 900.[ 6] [ 7] [ 8] [ 9] 赵 辉, 陈 辉, 于 泓.一 种 改 进 的 全 景 图 自 动拼 接 算 法 [ J].中国图象图形学报, 2007, 12(2): 336 342.阮 秋 琦.数 字 图 像 处 理 [ M ].北 京: 电 子 工 业 出 版 社, 2001.董 士 海.虚 拟 现 实 的 未 来应 用 [ N ].中 国 计 算 机 报, 2001 02 21.崔汉国, 曹茂春, 欧阳清.柱面全景图像拼合算法研究数 字图像处理 [ J].计算机工程, 2004, 30(6): 158 159.[ 10] 赵万金, 龚声蓉, 刘全, 等.一种用于 图像拼 接的 图像序 列自 动 排 序 算 法 [ J].中 国 图 象 图 形 学 报, 2007, 12(10): 1861 1864.[ 11] 张茂春.虚拟现实系统 [M ].北京: 科学出版社, 2001.[ 12] 明德烈, 柳健, 田金文.二维平面内的增强现实虚实配准 问题研究 [ J].红外与激光工程, 2001, 30(6): 410 413.[ 13] 蔡勇, 刘学惠, 吴恩华.基于图像绘制的虚拟现实系统环 境 [ J].软件学报, 1997.8(10): 721 728.[ 14] 喻罡.基于图像的虚 拟场景 构造 和漫 游系统 研究 [ D ].西安: 西安理工大学, 2002.图 6 放大前后的线段
在放大后的图像中央截取一块跟原图像大小相 同的区域, 然而由于拍摄的过程中, 一系列的过渡场 景不可能严格地在一条直线上, 也就是说相邻的中间 图像的中心位置并不重合。如果不加任何处理, 在过 渡的时候实际效果并不平滑, 在到达下一张中间图像 的时候仍然会有跳跃的感觉。解决的方法是, 预先计 算 AB的中点在经过放大和截取后, 在最终目标图中 的位置 p(x y), 对比 A!B!的中点 p!(x!y!), 得出 ,!, ? x = x!-x ? y = y!-y 每次 放大后截 取时, 补偿 , , ? x /(n+ 1)和 ? y /(n+ 1), 使图像中心逐步向目标 图像的中心靠拢。
结束语
本文首先研究了鱼眼图像的拼接算法, 在提出基 于亮度差的鱼眼图像重叠区域的确定方法和采用线性 补偿光强的方法进行图像的融合处理的基础上, 实现 了利用两幅鱼眼图像生成空战环境球面虚拟空间, 然 后探讨了基于球面虚拟图的多视点漫游问题。分析 可知: 利用反投影模板技术有效地提高全景图浏览的
(上接第 34页)[ 4] 汪庆年, 孙丽兵, 李桂 勇.一种基于 ARM 的视 频监控 系 统的设计 [ J].微计算机信息, 2009 25(11): 158 160., [ 5] [ 6] [ 7] [ 8] [ 9] 汪庆年, 张广栋.嵌入 式网络 视频 监控系 统的 设计与 实 现 [ J].电力电子, 2008(5): 47 49.赵文敏, 余文芳, 邢建国.一种嵌入式网 络视频监控 系统 的设计 [ J].计算机应用与软件, 2009 26(8): 67 68 81., , 郭 东升, 田秀 华.L inux 环境 下基 于 Socke t的网 络通 信 [ J].软件导刊, 2009, 18(1): 116 118.杨晖, 胡永健, 林志泉.基于 L inux和 S3C2410嵌入式图像传 输系统设计 [ J].微计算机信息, 2007 23(8): 20 24., 孟超, 张曦煌.基于嵌 入式系 统的 图像采 集与 传输设 计 [ J].计算机工程与设计, 2008 29(17): 4414 4416 ,.[ 10] 童 永 清.L inuxC 编 程 实 战 [ M ].北 京: 人 民 邮 电 出 版 社, 2008.[ 11] 王远洋, 周渊平, 郭 焕丽.L inux 下基 于 Socket多线 程并 发通信的实现 [ J].微计算机信息, 2009, 25(15): 70 72.[ 12] 杨水 清, 张 剑, 施云飞, 等.ARM 嵌 入式 L inux系 统开发 技术详解 [M ].北京: 电子工业出版社, 2008.[ 13] 蔡志明, 卢传富, 李立夏.精通 Q t4 编程 [ M ].北京: 电子 工业出版社, 2008.[ 14] 陈 鲲, 陈 云 秋, 刘 信 新.基 于 Q t/Embedded 的 嵌 入 式 L inux应用程序的 设计 [ J].计算机与 数字工程, 2009, 37(1): 156 161.1
第五篇:基于ARM的嵌入式智能家居远程监控系统设计.
摘要
科技改变生活,科技为人类带来了更舒适更方便的解决方案,智能家居是现代化科技的体现,智能家居也正是在应人们需求下而产生的。
本设计的内容是设计一个基于ARM的智能家居远程监控系统。整个硬件控制系统有以下模块:控制主机STM32F103VET6、无线短信收发模块GPRS(远程监控的主要模块)、用于显示的LCD1602液晶显示屏(显示测量出来的温湿度值)、测量外部环境温湿度的温湿度传感器DHT11,异步电机28BYJ-48(模拟控制窗帘收放用到的控制器)、蜂鸣器(报警用)、LED灯(模拟室内各种灯)、继电器(模拟室内各种电器的控制开关)。
温湿度传感器测量出来的温湿度数值通过LCD1602来显示,当超过设定的阈值将通过GPRS模块发送警报短信到指定的手机上,同时也可以由手机发送特定短信到GPRS上控制LED灯的亮灭、控制28BJY-48步进电机的正反转、读取当前室内的温湿度并发送回手机上,实现远程监控的。关键词 智能家居;远程监控;GPRS;ARM Abstract Technology has changed life, science and technology has brought to mankind more comfortable and more convenient solution, smart home is a manifestation of modern technology, smart home is also in demand should be generated by people.The content of this thesis is to design a remote monitoring system of smart home based on ARM.The entire hardware control system has the following modules: the host controller STM32F103VET6, wireless SMS transceiver module GPRS(the main module of the remote monitoring), LCD display(to display the temperature and humidity measured values), temperature and humidity sensor,DHT11, be used to measure the external environment temperature and humidity, asynchronous motor 28BYJ-48(analog controller curtain used), a buzzer(alarm), LED light(simulated indoor lamps), a relay(control switch simulation of indoor each kind of electric appliance).The temperature and humidity value measured by the temperature and humidity sensor and displayed by LCD1602, when more than a set threshold an alarm SMS will be sent by GPRS module to the designated mobile phone, but also can be caused by the mobile phone to send a specific message to the GPRS to control LED light, 28BJY-48 stepper motor reversible, read the current indoor temperature and humidity and sent back to the mobile phone.Keywords smart home;remote monitoring;GPRS;ARM II
目 录
摘要.......................................................................................................................I Abstract...............................................................................................................II 第1章 绪论........................................................................................................1 1.1 课题背景..................................................................................................1 1.2国外的发展动态.......................................................................................1 1.3 国内的发展动态......................................................................................2 1.4 本文各章主要安排..................................................................................2 第2章 各个硬件模块的说明............................................................................3 2.1 主控模块..................................................................................................3 2.1.1 STM32的系统架构............................................................................3 2.1.2 STM32F103VET6的内部资源..........................................................4 2.2短信收发模块GPRS................................................................................7 2.3温湿度测量模块.......................................................................................8 2.3.1 DHT11的引脚说明............................................................................8 2.3.2 DHT11的工作原理............................................................................9 2.4 温湿度液晶显示模块LCD1602............................................................11 2.4.1 LCD1602的管脚说明......................................................................12 2.4.2 LCD1602的特性..............................................................................12 2.4.3 LCD1602的基本指令......................................................................12 2.5 收放窗帘模块步进电机28BJY-48.......................................................14 2.5.1 步进电机的工作原理......................................................................14 2.5.2 步进电机的引脚接线......................................................................14 2.6 本章小结................................................................................................15 第3章 硬件系统的设计..................................................................................16 3.1 直流稳压电源的设计............................................................................16 3.2 STM32最小系统的设计........................................................................17 3.2.1电源的供电方案...............................................................................17 3.2.2 晶振电路..........................................................................................17 3.2.3 复位电路..........................................................................................18 III 3.2.4 串口驱动电路...................................................................................18 3.3 步进电机、继电器驱动电路设计.........................................................19 3.4 本章小结.................................................................................................20
第4章 软件程序的设计...................................................................................21 4.1 主函数及TIM2中断服务函数设计......................................................21 4.1.1 主函数及TIM2中断服务函数程序代码........................................21 4.1.2 主函数及TIM2中断服务函数程序流程图....................................23 4.2 GPRS来信中断处理函数设计...............................................................24 来信中断处理函数程序代码.................................................24 4.2.2 GPRS来信中断处理流程图.............................................................26 4.3 GPRS的AT指令....................................................................................27 4.3.1 本设计中用到的AT指令................................................................27 4.3.2 PDU编码...........................................................................................27 4.3.3 AT指令的使用程序设计..................................................................29 4.4本章小结..................................................................................................31 结论.....................................................................................................................32 参考文献.............................................................................................................33 致谢.....................................................................................................................35 附录一 整个硬件系统电路图...........................................................................36 附录二 开题报告说明.......................................................................................37 附录三 文献综述...............................................................................................38 附录四 中期报告...............................................................................................39 附录五 外文文献及其翻译...............................................................................40 附录六 完整的程序代码...................................................................................41 4.2.1 GPRS IV 第1章 绪论 第1章 绪论 1.1 课题背景
随着科技的提高,经济的发展,人们的物质生活水平的提高,对家居环境的要求也越来越高,作为家居智能化的核心部分——智能家居控制系统也越发显得重要。智能家居控制器可以为系统提供智能控制方案,使住户的控制更便捷,更高效,更能为家庭的日常活动节约不必要的能耗[1]。而且在现在这个注重绿色环保的世界里,智能的为住户控制好空气的湿度、温度等,检查分析空气成分,让住户安心入住。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势。在科学技术日新月异的今天,智能家居产品也在不断发展寻求突破,用智能的方式缓和、解决社会矛盾,这是本课题的目的及意义所在。1.2国外的发展动态
1984年,世界上第一座智能建筑在美国的康涅迪格州建成,这座意义不一般的智能建筑是对一座旧式大楼在一定程度上的改造而完成的。它只是采用计算机系统对大楼的照明、空调、电梯等设备进行监控,并提供情报资料、语音通信、电子邮件等方面的信息服务。2000年,新加坡大约有5000户家庭采用了这种家庭智能家居化系统,而与此同时,美国采用这种智能家居化系统的用户已高达4万户。目前,在国外的家庭智能化系统技术己经越来越成熟,预计今后,越来越多的新房将会安装具有一定的“智能家居化”功能的系统。于此同时,由于科学技术的发展日益标准化,这些新型智能家居系统将会比世界首富比尔.盖茨耗资六千万美元的高端智能家居别墅便宜得多。
在家居智能化系统研发方面,美国及一些西方国家一直处于领先地位。近年来,以摩托罗拉公司及美国微软公司等为首的一些国外知名企业,先后加入到智能家居系统的研发中。比如:摩托罗拉公司开发出来的“居所之门”、微软公司开发出来的“梦幻之家”、IBM公司开发出来的“家庭主任”等都以日趋成稳的技术霸占家居市场。此外,亚洲国家日本、韩国、新加坡等国 的领头大企业也纷纷致力于家居智能化的研发,对家居市场更是跃跃欲试。1.3 国内的发展动态
1990年后,我国的智能家居化住宅小区日益兴起。我国的智能家居化住宅建筑最早起于广州、深圳和上海等沿海发达城市,并慢慢地向内陆发展。在1997年香港回归时,上海的中皇广场在建设部“97跨世纪住宅小区案竞赛活动”中被建设部科技委员会评为全国首家“智能住宅示范工程”,从此揭开了我国智能家居住宅小区发展的序幕。1999年,建设部住宅产业化办公室、建设部勘察设计司联合组织实施了全国住宅小区智能化技术示范工程,这也标志着我国的智能家居进入了一个新阶段。随着信息化技术日益普,国家经贸委领头成立了家庭信息网络技术委员会,同时信息网络技术体系研究及产品开发已经被列为了国家技术创新的重点专项计划。根据建设部的要求,截止今年,大中城市中50%的住宅要实现智能化[2]。
我国的智能家居建设相对于国外起步比较晚,尚未形成一定的国家标准。国内各大硬、软件企业机构正在积极的研发更为符合市场的智能家居化产品,以解决我国当前智能化设备使用复杂、产品价格昂贵及实用性差等缺点,而技术创新能力也逐渐向国际先进水平靠拢,这样智能家居的未来值得我们期待[3-4]。1.4 本文各章主要安排
本文第二章主要介绍了智能家居控制系统中用到的各个硬件模块,有主控模块STM32F103VET6、GPRS短信收发模块GTM900-B、温湿度测量传感器DHT11、液晶显示屏LCD1602、步进电机28BYJ-48。
第三章主要介绍了硬件系统的设计,重点描述各个功能模块电路图的设计及其功能。
第四章主要介绍了控制系统软件程序的设计,主要有主函数及TIM2中断处理函数的程序设计,GPRS来信中断处理函数的设计以及GPRS的AT指令的PDU编码过程。其中给出了主要程序代码及其程序流程图。第2章 各个硬件模块的说明 第2章 各个硬件模块的说明 2.1 主控模块
本设计整个系统的主控芯片选择的具有ARM内核Cortex-M3的STM32F103VET6。该芯片属于增强型的32位高性能微控制器,具有100引脚和高达512K字节的闪存存储器。2.1.1 STM32的系统架构
STM32VET6的系统架构包含4个驱动单元:Cortex-M3内核Dcode总线、系统总线、通用DMA1和通用DMA2;4个被动单元:内部闪存存储器Flash、内部数据存储器SRAM、FSMC和AHB到APB的桥。这些单元都是通过一个多级的AHB总线构架相互连接的,如图2-1所示。
ICode: 该总线将闪存指令接口与ARM的Cortex-M3内核的指令总线相连接。指令预取在此总线上完成。
DCode: 该总线将闪存存储器的数据接口和Cortex-M3内核的数据总线相连接(常量加载和调试访问)。
系统总线: 此总线连接Cortex-M3内核的系统总线到总线矩阵,总线矩阵协调着DMA与内核之间的访问。
DMA总线: 此总线将DMA的AHB主控接口与总线矩阵相联,总线矩阵协调着CPU的DCode和DMA到 内部闪存存储器Flash、内部数据存储器SRAM和外设的访问。
总线矩阵: 该矩阵协调DMA主控总线与内核系统总线间的访问与仲裁,仲裁采用轮换算法。总线矩阵包含4个驱动部件和4个被动部件。AHB外设通过总线矩阵与系统总线相连,允许DMA访问。
AHB/APB桥(APB): 两个AHB/APB桥在AHB和2个APB总线间提供同步连接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。有关连接到每个桥的不同外设的地址映射。在每一次复位以后,所有除SRAM和FLITF以外的外设都被关闭,在使用一个外设之前,必须设置寄存器RCC_AHBENR来打开该外设的时钟 3
图2-1 STM32系统架构
2.1.2 STM32F103VET6的内部资源
STM32F103VET6的引脚图如图2-2所示。
(1)内核:ARM的32位Cortex-M3微处理器;最高达72MHZ频率,Cortex-M3内部的数据路径是32位的,寄存器是32位的,存储器接口也是32位的。Cortex-M3采用了哈佛结构,拥有独立的Dcode总线和Icode总线,可以让数据访问和取指并行不悖,这样数据访问就不再占用Icode总线,从而提升了工作性能。为实现这个特性,Cortex-M3内部含有好几条总线接口,每条都为自己的应用场合而优化过,并且它们可以并行工作。第2章 各个硬件模块的说明 图2-2 STM32F103VET6引脚图
(2)存储器:512KB的闪存程序存储器;64K字节的静态数据存储器 5
SRAM,它可以以字节、半字(16位)或全字(32位)访问。(3)时钟和电源管理:
(a)三种不同的时钟源可被用来驱动系统时钟(SYSCLK):1)HSI振荡器时钟;2)HSE振荡器时钟;3)PLL时钟。
(b)STM32的工作电压(VDD)为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源;
(c)独立的A/D转换器供电和参考电压;
(d)一个完整的上电复位(POR)和掉电复位(PDR)电路;(e)可有3种不同工作模式的电压调节器;(f)可编程电压监测器(PVD)。
(4)通用和复用功能I/O(GPIO和AFIO):5组多功能双向5V兼容的通用I/O端口;可使用复用功能重新映射到其他一些引脚上。
(5)DMA控制器:支持定时器、ADC、SPI、IIC和USART等外设。(6)嵌套向量中断控制器:
(a)有68个可屏蔽中断通道(不包含16个Cortex™-M3的中断线);(b)16个可编程的优先等级(使用了4位中断优先级);(c)低延迟的异常和中断处理;(d)电源管理控制;
(e)系统控制寄存器的实现。
(7)模拟/数字转换(ADC):12位的ADC是一种逐次逼近型模拟数字转换器,它有多达18个通道,可测量16个外部和2个内部信号源。
(8)定时器:2个高级控制定时器(TIM1、TIM8);(a)4个通用定时器(TIM2、TIM3、TIM4、TIM5);(b)2个基本定时器(TIM6、TIM7);
(c)一个实时时钟、两个看门狗定时器和一个系统滴答定时器(Systick)。
(9)通用异步收发器(USART):全双工的,异步通信RZ标准格式;发送和接收共用的可编程波特率,最高达4.5Mbits/s;智能卡模拟功能。6