基于ARM的远程控制系统.docx
- 文档编号:6266423
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:59
- 大小:4.16MB
基于ARM的远程控制系统.docx
《基于ARM的远程控制系统.docx》由会员分享,可在线阅读,更多相关《基于ARM的远程控制系统.docx(59页珍藏版)》请在冰豆网上搜索。
基于ARM的远程控制系统
目录
摘要I
ABSTRACTII
1绪论1
1.1研究背景及意义1
1.2国内外发展现状1
1.3系统功能及方案选择2
1.3.1系统功能需求分析2
1.3.2系统实现的功能3
1.3.3系统方案选择3
2远程控制系统的总体设计及介绍5
2.1系统的总体设计5
2.1.1系统硬件总体设计5
2.1.2系统软件总体设计6
2.1.3系统整体运行流程7
2.2系统主要硬件介绍8
2.2.1开发平台8
2.2.2继电器10
2.2.3步进电机11
2.2.4温湿度传感器11
2.2.5USB摄像头12
2.3系统主要软件介绍13
2.3.1嵌入式Linux系统13
2.3.2Web服务器13
2.3.3视频采集服务14
2.3.4CGI应用程序14
3开发环境搭建和嵌入式系统移植15
3.1搭建开发环境15
3.1.1Windows系统环境搭建15
3.1.2Linux系统环境搭建15
3.2移植嵌入式系统17
3.2.1软件烧写方法17
3.2.2Bootloader移植18
3.2.3Linux内核移植18
3.2.4文件系统的制作20
3.2.5NFS文件系统搭建21
3.3嵌入式Web服务器移植22
4远程控制系统硬件和设备驱动实现23
4.1灯、直流电机、蜂鸣器模块实现23
4.1.1硬件电路24
4.1.2设备驱动24
4.2步进电机模块实现26
4.2.1硬件电路26
4.2.2设备驱动27
4.3温湿度测量模块实现28
4.3.1硬件电路28
4.3.2设备驱动29
4.4Web摄像头模块实现31
4.4.1驱动配置31
4.4.2FFMpeg库编译31
4.4.3Motion移植32
5远程控制系统界面和软件实现33
5.1登陆页面实现33
5.1.1Html界面33
5.1.2CGI程序34
5.2主页实现35
5.2.1Html界面35
5.2.2CGI程序36
5.3Web摄像头页面实现36
5.3.1Html界面36
5.3.2CGI程序37
5.4图片浏览页面实现38
5.4.1Html界面38
5.4.2CGI程序38
5.5设备控制页面实现39
5.5.1Html界面39
5.5.2CGI程序40
5.6温湿度监测页面实现41
5.6.1Html界面41
5.6.2CGI程序41
6远程控制系统整体调试44
6.1驱动程序编译及安装44
6.2应用程序编译及安装45
6.3整体调试45
6.3.1PC机上调试46
6.3.2手机上测试49
结论52
致谢53
参考文献54
附录56
1PCB原理图及实物图56
2核心程序源码58
基于ARM的远程控制系统的设计与实现
摘要
随着现代网络技术及嵌入式技术的快速发展,远程控制技术在工业、家居以及智机器设备等领域的应用越来越多。
基于嵌入式系统的远程控制系统在很多方面优势明显,如成本、安全性、灵活性等方面,而基于ARM的远程控制系统具有控制精确度高、传输距离远、组网成本低等特点。
因此,基于ARM的远程控制系统具有丰富的应用拓展空间及强大市场生命力。
本文首先介绍远程控制系统的研究背景及国内外发展现状,再根据远程控制系统的基本要求,设计了一个基于B/S架构思想的远程控制系统方案。
该方案可实现通过浏览器对远端设备进行控制或监测,如IO设备、视频设备、温湿度设备等。
本设计以三星公司的SP5V210处理器和嵌入式Linux操作系统为基本平台,编写设备驱动、搭建Web服务器、编写CGI程序,通过Web服务器调用CGI程序与浏览器端用户实现交互。
用户可以通过浏览器网页控制或查看摄像头画面,可以通过网页查看温湿度数据,可以通过网页控制灯、直流电机、步进电机、蜂鸣器等GPIO设备的打开或关闭。
关键词嵌入式系统;设备驱动;远程控制
THEDESIGNANDIMPLEMENTATIONOF
REMOTECONTROLSYSTEMBASEDONARM
ABSTRACT
Withtherapiddevelopmentofmodernnetworktechnologyandembeddedtechnology,theremotecontroltechnologyinthefieldofindustrial,householdandmachineryequipmentisappliedmoreandmore.Theremotecontrolsystembasedonembeddedsystemisobviousadvantagesinmanyaspects,suchascost,safety,flexibility,etc.AndtheremotecontrolsystembasedonARMhashighcontrolaccuracy,longtransmissiondistance,networklowcostetc.Therefore,theapplicationofremotecontrolsystembasedonARMhasrichdevelopingspaceandstrongmarketvitality.
Thispaperfirstintroducestheremotecontrolsystemoftheresearchbackgroundanddevelopmentsituationathomeandabroad,accordingtothebasicrequirementofremotecontrolsystem,designedaremotecontrolsystembasedonB/Sarchitecture.Theschemecanberealizedthroughthebrowsertocontrolormonitoring,remotedevicessuchasIOequipment,videoequipment,temperatureandhumidityequipmentsetc.ThisdesignwithSamSungSP5V210processorandembeddedLinuxoperatingsystemasthebasicplatform,tobuildaWebserver,writeaCGIprogram,throughtheWebservercallCGIprograminteractswiththebrowserusers.Userscancontrolthroughawebbrowserorviewcameraimages,canthroughthewebpagetocheckthetemperatureandhumiditydata,canthroughthewebcontrolonoroffoflights,dcmotor,steppingmotorandbuzzerGPIOdevice.
KEYWORDSembeddedsystem;devicedrivers;remotecontrol
1绪论
1.1研究背景及意义
随着现代网络技术及嵌入式技术的快速发展,人们在生活、学习、工作等方面变得更加方便。
比如我们想亲朋好友时,可以使用手机、PAD、电脑等设备与他们远程视频通话;学习工作时,借助网络设备可以快速查询所需要的资料信息等;当闲暇休息时,可以看电视、玩电子游戏等;开车时,有智能导航设备,不需要担心迷路的问题。
这些都与嵌入式系统息息相关,嵌入式系统的产品早已经融入了人们的生活当中。
嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可剪裁,具有稳定性高、成本低廉、速度快、功耗低、实时性能好的专用系统[1]。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式系统的核心是各种类型的嵌入式处理器,而用于嵌入式系统的ARM微处理器具有能耗低、性能高、体积小、成本低等特点[2],成为了嵌入式系统主流处理器之一。
基于ARM的远程控制系统能够有效的提高工作效率,降低生产成本,同时ARM支持多种操作系统,外围设备也十分丰富。
远程控制系统应用于智能家居领域,可以改善人们的生活环境,可以使日常生活更加方便。
想象下,对于各个房间的灯,借助远程控制系统,可以进行集中控制,只需要一台电脑、一部手机或PAD设备,打开设备上的客户端或浏览器,通过网络就可以在任何地方进行控制,而不必跑到各个房间开灯或关灯,这将是多么的简单和方便;利用一些传感器如温度、湿度、光照度传感器等,通过远程控制系统自动控制调节,给我们创造一个舒适的环境;利用视频设备,可以实时查看家中情况等等都将极大方便人们的生活。
远程控制系统应用于工业控制领域,可以补充工业现场控制的不足,比如在一些环境条件比较恶劣的场合,现场控制就显得不安全了,这时通过远程控制系统就可以实现安全的控制。
除此之外,远程控制系统在其他很多领域都有应用,如交通网络、智能机器等。
因此,研究基于ARM的远程控制系统具有很大的现实意义。
1.2国内外发展现状
对于远程控制系统,国内外有很多研究,主要应用于数字控制系统,如智能机器、智能仪器等设备。
在国内,许多高校都进行了对远程控制系统的研究。
比如哈尔滨工业大学研究的Teleroboot,通过浏览器可以对一台机器发送命令,机器设备接收命令后,可以根据命令指示做相应的操作如抓取、搬运、堆放;同济大学研究了自主移动机器人的远程控制系统;其他如浙江大学、南京航空航天大学和东南大学等高校也都有对各种设备的远程控制系统的研究[3]。
在国外,远程控制系统在机器人领域的研究比较多。
比如西澳大利亚大学的远程机器人,通过浏览器可以控制机器人搬运东西或查看现场图像等;美国加州大学设计的机器人,可以通过网络控制来播种和浇水应用于智能花园中;美国航空航天局设计的火星探测器,也是一个远程控制的自主移动机器人[3]。
远程控制系统可以运用在很多方面,国内外很多领域都能见到远程控制系统的身影,而大多远程控制系统都是基于嵌入式和网络的。
经查找相关设计文献分析,现有的远程控制系统,在架构方面,主要有B/S架构和C/S架构;在处理器上,有8位、16位、32位等处理器,而32位处理器中ARM处理器是比较常见的;在操作系统上,有无内存管理的小型嵌入式操作系统如UC/OS、UCLinux等,有功能相对齐全的如Linux、Wince、Andriod等嵌入式操作系统;在网络传输方式上,有基于无线的,也有基于有线的。
之后小节将结合以上分类总结进行方案的选择,最终确定一个满足设计基本要求的最佳方案。
1.3系统功能及方案选择
1.3.1系统功能需求分析
远程控制控制系统在多个方面都有应用,比如工业控制、智能家居系统、智能机器设备等领域,在这些领域内运用远程控制实现的原理大致相同。
下面以远程控制系统在智能家居方面的应用为例分析本远程控制系统需要实现哪些功能。
在家居生活中,我们常用的可控制设备有电灯、空调、电扇等,可以在远程控制系统中实现类似设备的控制功能,如灯、电机、蜂鸣器、步进电机等的控制。
控制电机转动可以实现控制空调或风扇的打开或关闭功能,控制步进电机可以实现窗帘的打开或关闭功能等等。
对于环境监测类的设备有温度监测、湿度监测等,可以在远程控制系统添加温湿度监测的功能,实现对温湿度的监测。
对于安全类设备常用的有视频设备,可以在远程控制系统中实现视频实时监控功能。
本远程控制系统在其他领域内的应用与智能家居方面应用原理相同,不再一一说明。
之后将根据上述需要的功能确定本设计中远程控制系统要实现的具体功能。
1.3.2系统实现的功能
本设计中远程控制系统整体上实现的功能是通过网络远程控制或访问基于ARM处理器的外围设备。
实现的功能包括灯、电机、蜂鸣器、步进电机的控制,采集温湿度数据,视频监控功能等。
具体功能如下:
1、远程控制灯、电机、蜂鸣器、步进电机等设备,实现通过网络远程控制这些设备。
要实现对灯的亮灭控制,实现对直流电机或步进电机转动或停转的控制,实现蜂鸣器的报警功能的控制。
2、采集温湿度数据。
实现温湿度数据的采集,将采集的数据通过网络传输到控制端显示出来,并实现温度监测警告。
3、视频监控功能。
实现视频实时监控功能,并将摄像头视频通过网络传输到控制端显示出来。
1.3.3系统方案选择
在有关远程控制的公开发表的文献中,有多种方案,各种方案都有其优缺点,本设计将从架构、系统、硬件三方面进行分析选择,最终确定一个具有使用价值的而且符合设计要求的最佳方案。
在架构方面可分为:
B/S(Browser/Server)架构和C/S(Client/Server)架构[4]。
B/S架构是基于浏览器和服务器的架构,此架构的客户端简单,即浏览器,不需要再另行设计客户端。
只需在服务器端编写程序实现控制功能即可。
但是通过浏览器控制,信息的传递不是特别安全,而且实时性也稍差。
C/S架构是基于客户端和服务器的架构,该架构需要另行编写一个客户端服务程序,以配合服务器进行控制,其实时性和安全性较好,但是其客户端程序编写实现麻烦,比较适合专用的控制系统。
由此可知B/S架构实现比较容易,用户可通过使用浏览器,如IE、搜狗、谷歌等网页浏览器,以浏览网页的方式对设备进行访问以及控制。
这种方式比较具有通用性,适合多种平台操作而不必局限于Windows操作系统。
借助网页设计界面容易实现,而且具有较好的可观性以及多样性。
由以上分析,本远程控制系统选择B/S架构。
在系统方面有两种选择:
微型嵌入式操作系统和功能完善的嵌入式操作系统。
微型操作系统有uC/OS、uCLinux等,其优点是内核源码较简单,便于分析设计,相对的其功能不是很全面,造成有很多功能都要编写,这需要有很高的编程能力才可完成。
功能完善的嵌入式操作系统有Linux、Wince、Andriod等,这些操作系统都具有十分完善的功能,由于大多数功能都具有,所以开发周期相对较短,而且这些系统实时性较好。
其中Linux操作系统是一种开源的操作系统,具有可定制、灵活性强、服务齐全等特点,比较适合作为嵌入式系统开发。
所以,选用Linux作为嵌入式操作系统。
在硬件方面,课题确定基于ARM(AdvancedRISCMachines)处理器。
关于ARM处理器有ARM7、ARM9、ARM10、ARM11以及更高系列的Cortex-等,由于要用Linux操作系统,所以要求处理器的速度要尽量高,以保证系统的实时性,所以选择的处理器尽可能的高端。
选择高端的处理器可方便以后的升级扩展需求,避免由于硬件落后而无法进行后续的改进升级,鉴于此本设计选择Cortex-A8。
经以上分析选择确定方案为:
以B/S架构为基本设计思想,在带有Cortex-A8(本设计选用友善之臂公司的Smart210开发板作为硬件平台,开发板上搭载三星公司的SP5V210处理器,该处理器的内核是Cortex-A8,相对比较高端,适合今后扩展升级需求)的开发板上移植Linux嵌入式系统搭建基本系统平台,在此基础上实现其他功能的设计。
2远程控制系统的总体设计及介绍
设计远程控制系统旨在为人们的生活、工作等提供方便,其硬件应具有先进性及可扩展性,以适应后期的升级需求;软件应具有较好的界面以及通用性,方便在多终端使用,并且要易于升级维护;系统整体应操作方便,同时要具有很好的稳定性和安全性。
所以远程控制系统的总体设计要以上述为参考,再根据所实现的功能完成总体设计。
2.1系统的总体设计
远程控制系统的设计总体上分为两个部分:
客户端和服务器端。
客户端也可称为控制端,由于本设计采用的B/S架构,也就确定了客户端为浏览器,所以可以将装有通用浏览器(如IE、谷歌、搜狗等浏览器)的设备作为客户端,客户端设备可以是通用PC、PAD便携设备、带浏览器功能的手机等。
客户端的主要功能是接收来自服务器端的数据并将数据显示出来和向服务器端提交命令。
服务器端就是ARM处理器及其外部设备模块和Linux系统及服务软件共同组成的服务系统,其主要功能就是实现设备数据采集并通过网络发送到客户端和接收客户端提交的命令并控制相应设备执行操作。
所以,本设计的大部分工作将集中在服务器端的设计上。
以下将通过硬件总体设计和软件总体设计完成服务器端的整体设计。
2.1.1系统硬件总体设计
本设计以Smart210开发板为系统硬件平台,在开发板基础上设计外扩展板电路模块。
扩展板电路模块包括灯模块、直流电机模块、蜂鸣器模块、步进电机模块、温湿度测量模块、Web摄像头模块和开发平台(Smart210)的接口模块。
各模块通过接口模块与开发板的GPIO连接,实现硬件连接。
系统硬件总体设计框图如图2.1。
灯、直流电机、蜂鸣器模块:
实现的主要是开关功能,只需要设置ARM处理器相应GPIO口输出高低电平就可实现对设备的开关控制,通过GPIO控制继电器可以实现对电灯、电机等高电压或大电流设备进行控制。
步进电机模块:
实现控制步进电机按规定转数正转或反转,如控制摄像头旋转、窗帘打开或关闭等。
温湿度测量模块:
温湿度的测量均使用数字温度传感器,此模块将采集温湿度数据,通过Web服务器发送到浏览器,即可在网页上显示出温湿度数据。
图2.1系统硬件总体设计框图
USB摄像头模块:
此模块使用通用的USB摄像头进行视频采集,实现将采集到的视频通过Web服务器传输到网页,可在网页实时查看现场状况,并将采集到的动作图片和视频实时保存,实现监控功能。
2.1.2系统软件总体设计
系统软件总体设计框图如图2.2。
系统软件总体设计包括嵌入式Linux系统的移植、设备驱动的移植、Web服务器的搭建、视频采集服务移植、Html网页界面、CGI程序编程和其他相关服务的搭建移植。
嵌入式Linux系统:
移植嵌入式Linux系统,包括Boot、内核、文件系统以及运行系统的基本设备驱动的移植,如NandFlash、DM9000A网卡驱动等。
在此基础上移植必要的函数库,并搭建用到的的基本服务等。
所有其他的软件功能都是在移植的嵌入式Linux系统之上工作。
设备驱动:
编写移植与硬件设计接口相对应的设备驱动,如继电器驱动、温湿度传
图2.2系统软件总体设计框图
感器驱动、步进电机驱动等,驱动程序作用是控制或访问设备,所有其他应用程序都是
通过向设备驱动发送命令或读取数据实现对最终硬件的控制或访问的功能。
视频采集:
移植一种开源的视频采集软件,实现视频采集及保存传输等功能,如Motion、Mjpg.streamer等。
通过使用CGI程序处理将视频数据通过Web服务器传输到网页显示。
Html网页界面:
Html网页界面是用户最终看到的网页界面,使用网页设计软件设计网页界面,将网页源码转换成CGI源码程序实现网页重定向到浏览器。
CGI程序:
CGI程序实现对设备的访问与控制,将访问设备所得数据嵌入到网页并将网页源码通过Web服务器重定向到浏览器显示出来,也可从用户提交的网页源码中提取控制命令数据,并传输给对应的设备驱动执行操作。
Web服务器:
主要是移植搭建Web服务器,其主要功能是提供网页服务以及解释调用CGI应用程序实现与用户的远程交互控制,所使用的网络协议是TCP/IP。
2.1.3系统整体运行流程
远程控制系统是硬件和软件相互结合工作完成整个系统所实现的功能。
通过使用无线路由器搭建一个有线和无线结合的局域网,路由器提供WIFI信号。
通用电脑可以使用网线连接到路由器,利用支持WIFI的无线设备(带上网功能的设备)如手机、PAD等与路由器建立无线连接。
将远程控制系统网络接口与路由器连接,就能实现各个模块间的网络的硬件连接。
结合软件,利用TCP/IP协议实现网络通信,要给系统设置一个固定IP,以方便其他网络设备能够顺利访问远程控制系统,本次设计中暂时设定一个IP为192.168.0.20,以后测试系统将使用该IP地址。
系统整体运行流程分为两个过程:
发送过程和接收过程。
系统整体运行流程如图2.3。
图2.3系统整体运行流程
发送过程是指将采集的设备数据如图片、温度、湿度等由Web服务器通过网络发送到网页显示;比如由摄像头采集JPEG格式的图片保存至某个目录,CGI程序从图片目录读取图片并结合Html网页,通过Web服务器发送到浏览器,浏览器解释后显示出网页,就可以查看到网页上的图片。
接收过程是指由Web服务器接收用户在网页点击的按钮或输入的命令,并调用相应的CGI程序解释传递命令给驱动程序,最终实现对设备的控制。
比如用户在网页点击了打开灯这个设备的按钮,Web服务器接收按钮的参数解释后调用灯“打开”对应的CGI程序,CGI程序向灯的驱动传递“打开”的命令,驱动就会控制灯打开。
2.2系统主要硬件介绍
2.2.1开发平台
ARM是AdvancedRISCMachine的缩写,即先进精简指令集计算机。
ARM代表一个公司的名字,该公司设计了大量高性能、廉价、耗能低的RISC处理器、相关技术和软件[5]。
但是ARM公司并不生产芯片,而是把技术授权给各个知名芯片生产公司。
因此就出现了各式各样的ARM处理器。
一般为了区分将公司的名字用“ARMS”代表,而用“ARM”代表这类处理器的名字。
ARM的设计简单而性能高,内核小而功耗低,正是这些优点促进ARM的不断改进和发展。
从最初的版本ARMv1到现在的ARMv7(这里指架构版本,而通常所说ARM7、ARM9等指的是内核版本),其处理速度逐步加快,可以达到GHZ,支持的内存和存储容量逐步扩大,支持的功能更加全面。
现在比较流行的ARM处理器有ARM7、ARM9、ARM11以及更高的Cortex系列等。
本次设计中使用的是Cortex-A8内核的SP5V210处理器,该处理器是三星公司设计一款应用型的ARM处理器。
SP5V210处理器主频可达1GHZ,使处理器具有很高的处理速度;支持DDR内存,DDR内存比SDRAM内存具有更高的速度,可以提升系统的整体运行速度;支持NorFlash、NandFlash等存储设备,给外扩存储提供方便;内置高性能图形视频处理核心,使有关图片或视频的处理更加快速;具有丰富的外部接口,如网卡、声卡、GPIO等等,使系统的可剪裁性更高;支持SD卡或USB下载烧写软件,使开发更加方便。
以上性能都比相对低端的处理器如ARM7、ARM9、ARM11等更好,这使基于SP5V210处理器设计的系统具有更好的性能和升级空间。
由于ARM处理器芯片都具有高集成度,一般条件都无法完成整个硬件系统的制作,所以本设计中选用一款开发板作为基础平台。
本设计使用友善之臂公司的Smart210开发板作为开发测试平台。
该开发板载有三星公司出品的S5PV210处理器,处理器内核为Corte
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 远程 控制系统