基于GPRS的远程安防监控系统.doc_第1页
基于GPRS的远程安防监控系统.doc_第2页
基于GPRS的远程安防监控系统.doc_第3页
基于GPRS的远程安防监控系统.doc_第4页
基于GPRS的远程安防监控系统.doc_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

2013届毕业设计(论文) 基于gprs的远程安防监控系统的研究院 、 部:电气与信息工程学院 学生姓名: 曾 雪 峰 指导教师: 吴 乐 职 称: 讲 师 专 业: 电子信息工程 班 级: 电 子 0903 学 号: 09401140323 2013 年 6 月摘 要 随着社会经济的高速发展,人们对防火、防盗、防湿等安全意识的不断提高,对远程现场状况的了解提出了更高的要求。因此如何解决探测远距离监控点的温度湿度以及光线和是否有非法人员闯入,将信息及时告知户主或智能报警成为远程监控系统设计的核心。现有的安防监控系统都侧重于防盗功能,缺乏对温度湿度以及光照的防范;无法形成全面的报警系统,通过对我国现状以及对国外安防监控系统的了解,本文提出了基于gprs的远程安防监控系统。该系统使用arm linux作为系统平台,gprs模块发送信息,摄像头作为采集视频,以温湿度传感器和光照传感器采集环境数据,通过访问html网页,对所监控的远程对象进行拍照、报警并发送相关消息给用户,从而达到远程监控的目的。本系统硬件主要采用了s5pc100芯片作为系统处理器,通过温度和湿度,光线传感器对家居现场信号进行有效监测,并与最近采集的数据进行比较、判断,发出图像采集,报警等命令,最后通过gprs向用户手机发送警告信息,实现对家居,办公等场所的智能控制。本系统实现了远程监控的基本功能,达到了预期想要的效果,能用于家居,办公等各领域,具有较好的应用前景。关键词 : gprs通信 ; linux嵌入式系统 ; 温湿度监控 ; 远程安防 abstract with the rapid development of social economy,peoples security awareness on fire, theft, moisture has also improved a lot and they are making higher demands on remote site conditions.thus how to solve temperature, humidity and light of remote monitoring point probe and whether there exists intrusion of illegal works, how to deliver the site information of home,office to the user has become the core part of remote monitoring system designing.as for the current security monitoring system,they focus more on anti-theft rather than fire alarm,moisture,light.and they have shortcomings like they are unable to form an effective alarm linkage.based on the analysis of current situation and development of the domestic and aboard smart home and remote monitoring technology ,this paper proposed gprs-based remote security monitoring system. the system uses the arm linux as a system platform. as a communication module,gprs module achieve the purpose of remote monitoring by accessing the html page ,photographing the monitored remote object, alarming and sending relevant information to the user. the system hardware mainly adopts s5pc100, s3c2410 chip as the system processor, conduct effective monitoring on site singnal of home through temperature, humidity and light sensor, moreover, it compared and judged with the latest collected data, sent commands like image collection and alarming. at last,through the gprs, the system can send warning messages to mobile phone users, achive intelligent control of home, office and other places.the system implements all the basic functions of remote monitoring and has achived the expected effect, it can be used in home, office and other fields. therefore this system has promesing application prospects.key words : gprs communication ; linux embedded system ; temperature and humidity control ; remote security目 录1 绪论1 1.1 课题的研究背景1 1.2 国内外发展概况1 1.3 本文主要研究内容22 需求分析3 2.1 设计要求3 2.2 设计目标3 2.2.1 系统设计目标3 2.2.2 操作系统设计目标3 2.3 系统性能需求43 总体方案设计5 3.1 系统的大致描述5 3.2 功能模块及接口设计6 3.2.1 m0端主程序6 3.2.2 beep报警系统6 3.2.3 led报警系统6 3.2.4 摄像头线程6 3.2.5 gprs模块设计7 3.2.6 html网页设计7 3.2.7 cgi线程模块设计74 硬件设计8 4.1 摄像头工作原理8 4.1.1 工作原理8 4.1.2 驱动开发思路8 4.1.3 摄像头工作原理图8 4.1.4 硬件接口9 4.2 蜂鸣器工作原理9 4.3 温湿度传感器原理10 4.3.1 工作原理10 4.3.2 m0板读取数据的步骤11 4.5 光敏传感器11 4.5.1 isl工作原理11 4.5.2 光敏传感器接口电路图11 4.6 a8开发板介绍125 软件设计13 5.1 linux操作系统简介13 5.2 交叉编译环境的建立13 5.3 u-boot 的烧写14 5.4 内核的配置和编译14 5.5 boa服务器的搭建15 5.5.1 boa的移植15 5.5.2 boa服务器配置17 5.5.3 boa器测试17 5.6 sqlite的移植及程序设计18 5.6.1 数据库的移植18 5.6.2 数据库的程序设计18 5.7 摄像头移植及代码设计19 5.7.1 摄像头的移植19 5.7.2 摄像头测试23 5.7.3 程序流程图23 5.8 cgi程序设计24 5.8.1 cgi工作原理24 5.8.2 cgi程序设计24 5.9 html网页设计25 5.10 gprs模块设计26 5.10.1 gprs简介26 5.10.2 at指令27 5.10.3 gprs发送短信27 5.10.4 程序设计27 5.11 m0端代码设计28 5.11.1 mo端程序流程图28 5.11.2 温湿度传感器程序设计29 5.11.3 光敏传感器程序设计296 使用说明书30 6.1 电路的连接30 6.2 功能的测试32结束语36参考文献37致谢39附录a s5pc100芯片电路原理图40附录b 程序设计清单41附录c mo模块电路图63附录d gprs电路原理图641 绪论1.1 课题的研究背景随着计算机的普及和信息技术和社会电子信息化的不断发展,人们已经不满足于传统的居住,对家庭及住宅小区,办公室以及仓库存储室提出了更高的要求,智能化已被引入到生活的每一个角落并迅速在世界各地发展起来,越来越多的电子产品出现在人们的生活中,越来越多的工作由纯粹的人工化转变为智能化和自动化。经济的高速发展,流动人口的迅速增加,抢劫、盗窃等非法行为的恶化,给社会带来了较大的影响。家庭,办公室以及厂房等大量使用电器所带来的安全隐患,让我们感觉现在需要一个更加安全的防范系统来保护我们的财产安全。因此,安全监控设备便是在自动化的大潮下产生的一种实用性强的实时监控设备,并在保护财产安全方面发挥了重大的作用。所以,远程安防监控系统的作用以及市场前景是非常巨大的。对于传统的监控系统,虽然能够与现场同步监控,可是那仅针对现场的一个视频监控,而对与自动报警和抓拍特有的图片存在一定的缺陷,更不说对现场环境的温湿度和光照的监控了。而现在很多产品对于温度,湿度,光线都有一定的要求或者是很高的要求,温度湿度光照也能控制一些设备,器材的开与关,也对一些产品或者食品等物质的质量也有很大的影响。于是提出了对某一空间同时进行视频,温湿度和光照的监控的方案。视频监控业务具有悠久的历史,在传统上广泛应用于安防领域,是协助公共安全部门打击犯罪、维持社会秩序的重要手段。1.2 国内外发展概况智能家居在20世纪90年代末兴起。1999年,建设部勘察设计司、建设部住宅产业化办公室联随着人们生活水平的提高,对居住智能化提出了更高的要求,如今在新建的住宅小区中,安防系统已被人们越来越重视,已经建立起防盗、防火、防湿防潮,防光照强度等系统,如果遇到异常情况马上自动报警,防患于未然。安防监控已成为现在生活与存储的保障之一。1984年在美国出现世界上第一幢智能建筑于1984年于美国出,随后相继很多经济比较发达的国家也先后提出了各种不同的安防系统。我国的智合组织实施全国住宅小区智能化技术示范工程。九五期间,我国住宅行业异军突起,极大地促进了安防行业的发展规模。2007年起,我国很多的大型安防监控集团不断涌现,其公司的年产值均达10亿之多。近年来,中国的中国视频监控在很多国家项目的拉动下取得了快速的发展,整体市场规模迅速扩大。在目前形势下,积极探讨智能家居安防的发展问题,对于维护社会治安稳定,促进经济的繁荣,保障人民生活的幸福,具有非常重要而深远的意义。1.3 本文主要研究内容 本文研究了如何实现对远程环境的视频监控以及对其温度、湿度、光照的监控,在linux操作系统上,使用cortex a8开发板为处理器、gprs模块作为通信模块、摄像头作为图像采集以及cortex m0作为温湿度和光照采集的硬件平台,通过c语言和网页语言的完美结合成功的实现了对远程的安防监控。主要研究的内容有以下几个方面:(1)硬件设计:硬件设计主要有对摄像头的,温湿度传感器,光敏传感器和蜂鸣器、led灯的硬件接口设计,通过对现在视频监控技术和智能安防技术的了解,以及现在普遍所采用的设计方案,提出了本课题的硬件设计方案,对各种传感器选择了合理的接口电路。(2)系统的移植:搭建交叉编译环境,根据系统需要进行了uboot的移植,内核的配置以及根文件系统的制作等内容。(3)系统软件设计:通过流程图的方式详细介绍了光敏传感器,温湿度传感器和摄像头、cgi、gprs、html网页、数据库等几个关键模块的应用软件实现。(4)系统的调试:主要是gprs发送短信,摄像头的视频监控和图片采集,led灯和蜂鸣器的开与关。(5)结束语:对课题做了综述性的总结。2 需求分析2.1 设计要求本系统主要适用于防盗、火灾,潮湿,光照等异常的监控,用户能够及时的得到报警并通过网络进行相应操作来降低损失成本。对本系统进行相应的处理,就可以实现对环境的远程控制。2.2 设计目标2.2.1 系统设计目标结合嵌入式boa服务器,嵌入式相关技术,设计出一个安全、实用、稳定的智能的数据交互与处理的物联网设备,要实现的主要功能有:对设备现场数据的实时采集,例如温湿度、光照等,用摄像头采集图片。将采集的信息与前端数据中心进行通信,前端数据中心对采集数据进行处理,做出反应。在html页面上设置控制按钮,监控设备识别指令并进行相应动作。(1)监视器:监视机可以通过传感器采集现场火警等数据。系统可以通过传感器采集相应得数据,并通过所得的数据判断是否有异常情况的发生。监视机可以通过摄像头采集现场图像。监控机可以储存特殊情况下的数据和照片。(2)嵌入式监控主页:用户可以在主页上观察到监控机通过火警传感器采集到的现场数据。用户可以在主页上观察到监控机通过摄像头采集到的现场图像。用户可以在主页上远程控制现场的自动化设备。用户可以在主页上看到现场的温度湿度和光照。2.2.2 操作系统设计目标(1)工作模式:新的系统采用触发式监控模式,这种模式改变了以往不间断监控模式的方法,能够智能感知异常,并在异常发生的时候纪录现场状况。(2)扩充性:分布式动态管理,可灵活扩充系统物理资源来扩大用户的业务。(3)用户监控便捷:用户可以在工作或者其他场所进行远程监控操作,用户只需要一台普通接入internet的pc机,便可以实现操作。(4)操作性:用户接口采用通用浏览器,不限制特定的硬件设备和软件,真正实现随时随地监控。界面简洁,美观,直观易操作,友好,富于人性化。2.3 系统性能需求(1)监控系统安全性要求:为防止非法人员登陆监控系统,用户需要通过身份验证才能登陆自己的监控系统,需要对用户名和密码进行比对,如有任何一个不完全相同都将会无法登陆自己的监控系统。(2)灵活性:本系统可以随意增加监控节点的数量,对每个环境的监控都可以通过模块的设计进行通信。(3)数据保存需求:视频实时监控的过程中需要对温湿度,光照以及图片信息的采集,这些书序都需要存储空间来储存,而设备上的存储空间是有限的,所以系统需要将采集的图片信息转存到有更大容量的的存储设备上,比如电脑磁盘,这样用户既可以不要考虑存储空间不够而担心所采集的信息不能很好的保存和提取,也可以很方便查看以前的记录。3 总体方案设计3.1 系统的大致描述(1)课题用到linux和windows两大主要操作系统,还有boa服务器。 linux 是运行在cortex- a8 上面(裁剪过的)的前端数据处理中心,主要是对来自远程pc机的请求、采集的信息以及本地pc数据请求的处理中心。boa服务器是用于主部的html语言的处理分析,是移植在cortex-a8上的小型服务器,主要用来与本地pc的html语言进行沟通。a8 从本地pc机 、远程 pc 机及 m0 获取数据信息, 分类有序的处理。与a8 相连的m0模块通过接受其它m0数据信息,处理后再能过uart传给a8本地pc 和远程 pc通过网线 和a8 进行数据的交互,数据主要从用户浏览网页点击产生及a8 上传数据。(2)a8端是数据处理中心,起到承上启下的作用,既接受网页和用户的控制对a8板级进行控制并给用户进行回显,又负责与m0板进行通讯,从m0端获得数据以及给m0发命令,对m0进行控制,所以说这一块是本课题的核心部分,a8端的架构图如图1所示,主要分为三个部分,一部分为主程序部分,负责对m0和上层提示控制服务,另一部分网页和网页控制部分,用户通过a8端架起的web服务器来访问a8板,并给主程序发命令来进行控制。(3)为提高程序的实时性,整个程序采用多个中断,主程序中判断标志位的程序设计思想。当中断发生时设置相应的标志位,主程序根据相应的标志位执行相应的程序。(4)系统时钟中断实现5秒钟发送一次环境信息数据,lcd显示环境信息。(5)pc端可通过网页对现场进行控制,主要通过boa网页服务器对a8端进行控制,boa服务器自带cgi程序处理功能,可实现通过网页,来运行a8端的cgi程序,cgi程序负责给a8主程序发消息来控制a8,并通过a8中的m0线程来得到m0的动态数据的显示,pc工作架构图如图1所示。图1 pc工作架构图3.2 功能模块及接口设计3.2.1 m0端主程序功能描述检测温度湿度传感器和光照传感器的值。处理说明每隔30秒通过串口得到当前温湿度和光照,当温度值超过设定值时,前端数据中心传递采集值并封装传给a8,a8存入数据库,再打开蜂鸣器,led灯。3.2.2 beep报警系统功能描述通过s5pc100或mo开发板蜂鸣器来模拟报警系统,完成相应的报警功能。3.2.3 led报警系统功能描述通过led灯来模拟灯具,完成控制灯具开闭的功能。处理说明(1)编写led控制线程将led控制线程以消息队列的形式来接受命令,来控制制定的led灯亮灭。3.2.4 摄像头线程功能描述如果有异常现象,抓拍现场照片,并把图片保存在相应的目录中,图片格式为jpg。网络视频功能。处理说明(1)获取驱动程序。(2)配置linux内核。(3)通过make menuconfig配置linux内核,让内核支持摄像头。(4)编译内核 通过make zimage,编译内核,并下载到开发板上运行。(5)将usb摄像头接到开发板上。(6)如果有火灾发生,或者有不法分子闯入,那么系统程序通过system函数调用摄像头应用程序来进行捕捉照片。3.2.5 gprs模块设计功能描述(1)接到发送短信指令后,能给指定的手机发短信。3.2.6 html网页设计功能描述(1)在嵌入式系统中移植boa服务器,提供web页服务。(2)能够在控制页面对现场进行控制。(3)主要包括库存管理,进出货记录管理,异常环境管理,异常图片管理,gprs模块管理,在线监控管理,系统管理。处理说明(1)从下载boa源码,解压并进入源码目录的src子目录。进行编译。(2)交叉编译boa。(3)配置boa:修改boa.conf文件。(4)编写静态网页(5)编写每个静态网页对应的cgi表单处理程序3.2.7 cgi线程模块设计功能描述(1)修改键盘关警报密码。(2)修改温度,湿度,光度上下限。处理说明(1)建立一个线程,通过a8主程序将此线程开启,然后循环接受消息队列消息,没有消息就阻塞。(2)通过消息队列接受消息,并判断消息类型,来执行以上列出的功能。4 硬件设计4.1 摄像头工作原理4.1.1 工作原理ov9650/9655是cmos接口的图像传感器芯片,可以感知外部的视觉信号并将其转换为数字信号并输出。通过上面的框图可以清晰的看到它的工作原理,通过xvcl给摄像头提供时钟,reset是复位线,pwdn在摄像头工作时始终为低。href是行参考信号,pclk是像素时钟,vsync是场同步信号。当fimc给摄像头提供时钟时,复位摄像头就就能使它开始工作,通过href,pclk和vsync同步传输数字图像信号,而数据是通过d0 - d7这八根数据线并行送出的。ov9650向外传输的图像格式是yuv的格式,yuv是一种压缩后的图像数据格式,ov9650有很多寄存器需要配置,通过芯片里面的sccb总线可以对这些寄存器进行配置。sccb其实是一种弱化的i2c总线,可以直接把摄像头接在s5pc100的i2c控制器上,利用i2c总线去读写寄存器。4.1.2 驱动开发思路驱动程序是承接硬件和软件的桥梁,开发摄像头驱动有两方面的内容:第一是摄像头的硬件接口,也就是它是怎么和芯片连接的,如何控制它,如何给摄像头复位以及传送数据的格式等等;第二是摄像头的软件接口,linux内核里面摄像头属于标准的v4l2设备,但是这个摄像头只是一个传感器,具体的操作都需要通过fimc来控制。4.1.3 摄像头工作原理图摄像头工作原理图如图2图2 摄像头工作原理图4.1.4 硬件接口摄像头的硬件接口电路如图3图3 摄像头硬件接口图4.2 蜂鸣器工作原理蜂鸣器是一种一体化结构的电子讯响器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,所以需要增加一个三极管放大的电路来增大电流从而驱动蜂鸣器。如图4所示,当由pwmtout 1引脚输出高电平时,三极管处于截止状态,没有电流流过线圈,蜂鸣器不发声;当pwmtout 1输出低电平时三极管导通,蜂鸣器的电流就会形成回路而发出声音。蜂鸣器接口电路如图4图4 蜂鸣器接口电路图4.3 温湿度传感器原理4.3.1 工作原理(1)dht10数字温湿度传感器是是一款含有已校准数字信号输出的温湿度传感器,它具有低成本,稳定性能好,抗干扰能力强等优点。(2)温湿度传感器采用简化的单总线通信,主机通过特定的时序对其进行访问,它一次传送给主机40位数据,高位先出,其数据格式如下:8bit温度整数数据 + 8bit温度小数数据 + 8bit湿度整数数据 + 8bit湿度小数数据 + 8bit校验位,其中8bit的校验位为前面4byte数据之和。(3)它与m0的连接如图5所示,其中上拉电阻r30是为了保证在总线空闲时,其状态为高电平。图5 温湿度传感器电路接口图4.3.2 m0板读取数据的步骤(1)dht11上电后需要1s的等待时间越过不稳定的状态,在此期间dht11不需要任何的操作。然后对环境温湿度测试进行测试,并记录数据,此时dht11的data数据线由上拉电阻拉高,它的引脚处于输入状态,时刻检测外部起始信号。(2) 将m0设置为输出,并输出低电平,保持18ms以上,然后m0设置为输入,此时data数据线被拉高,等待dht11的响应信号。(3) dht11接收到m0的低电平起始信号后,延时一段时间,向m0发送80us的低电平响应信号,接下来继续发送80us的高电平信号,通知m0准备接收数据。m0接受到低电平响应信号后,延时80us后接受数据。(4)dht11的data引脚输出40位的数据,mo根据电平的变化来获得数据。位数据0的格式为50us的低电平加26-28us的高电平。位数据1的格式为50us的低电平加70us的高电平。(5)dht11输出40位数据后,继续输出50us的低电平后转为输入状态。4.5 光敏传感器4.5.1 isl工作原理isl29003是一种集成光传感器,具有背光控制,温度控制系统,对比控制,相机曝光计量,照明控制装置等功能模块。内置的整合型adc和标准iic接口,该设备能够采集周围光照强度lux转化为数字量通过iic输出采集信息,传感器光照强度可从1lux调节到100,000lux的光照强度,adc具有高达15-bit有效分解.该传感器被金属覆盖,以增强光电二极管在光照较弱的环境下输出读数的效果,可显示低光度lux的功能。4.5.2 光敏传感器接口电路图isl29003和m0链接的原理图如图6图6 光敏传感器电路接口图4.6 开发板介绍ut-s5pc100开发板是性能稳定、功能强大、高性价比的arm cortex-a8处理器开发板;专为消费类电子、工业控制、车载导航、行业pda等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用,其凭借极高的性价比成为高校、培训机构、嵌入式爱好者学习研究的最佳工具。s5pc100处理器采用64位内部总线构架,包括强大的硬件加速器,如:动态视频处理,显示控制和缩放。支持多种格式的硬件编解码mpef-1/2/4h263/h264、cv-1、divx。其硬件加速功能支持实时的视频会议和模拟电视输出,支持ntsc和pal模式的hdmi。提供了24bit lcd接口、tvout接口、camera输入接口、4路串口、sd卡接口、spi、100m网口、usb2.0-otg接口,usb host接口、音频输入输出接口、按键接口、i2c接口等硬件资源,具有更高的主频和更丰富外设,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合。在本课题中,a8开发板起到了核心的作用,通过主芯片s5pc100对摄像头,蜂鸣器,led灯,gprs,各种传感器的控制实现对现场的实时监控和信息的发送,通过网线和串口线实现了和电脑网页上数据的传输。s5pc100芯片原理图见附录a。mo模块电路图见附录c,gprs模块电路图见附录d。5 软件设计5.1 linux操作系统简介linux是继space war、ewacs之后风靡全球的成功软件之一,它已迅速发展成为商业、教育及个人产品的操作系统。linux的源代码是完全公开的,每个人都可以得到它的源代码,也可以改写增加代码,这样使得linux的代码越来越丰富,而且linux的许多应用程序也可以免费从internet上获得,这就使得越来越多的爱好者加入了linux的开发行列,施展着各自的才华。linux与unix一样是一个多用户、多任务的操作系统。它除了具备unix的优点外,还具有许多自身的特点:(1) linux是一个多任务系统。(2) linux 有很丰富的应用软件。(3) 可以实现多种语言的编译和编辑。(4) 拥有多种图形界面。(5) 支持多种类型的文件系统。(6) 支持的硬件很广泛,很多的驱动程序都可以在linux中找到。除了上述特性之外,linux还有许多其它特性,如:对应用程序使用的内存进行保护,共享内存页面,使用分页技术的虚拟内存,优秀的磁盘缓冲调度功能,动态链接共享库,支持伪终端设备,支持多个虚拟控制台,具有强大的网络和通信功能,良好的软件移植性等。5.2 交叉编译环境的建立对于嵌入式开发来说,大部分工作特别是软件编程和调试都是在本地pc机上完成的。本地pc上的linux系统基本上具有了足够的编译器,a8开发班上能运行的程序必须基于arm的,所以所有的程序必须经过交叉编译生成基于arm的文件才可以加载到板子上运行。交叉编译能使程序能在不同的cpu中编译,由此可见检查编译环境的搭建的重要性。具体编译环境建立如下:(1)从网上下载源码。(2)工具的安装,下载相关安装包就可以直接进行本地安装。$ sudo dpkg -i tools/*.deb(3)解压工具链缩包。$ tar xvf arm-cortex-gnueabi.tar.bz2$ mv arm-cortex_a8 toolchain(4)环境变量的添加。修改文件/etc/bash.bashrc ,添加如下内容pxport path=$path:/home/linux/toolchain/bin(5)重启配置文件。$ source/etc/bash.bashrc(6)工具链的测试。$ arm-cortex_a8-linux-gcc -v5.3 u-boot 的烧写(1)运行串口通信程序(putty)。关闭开发板电源,讲拨码开关sw1调至0001(usb启动模式)后打开电源(2)加载运行。usb port-transmit-transmit 选择image目录下的 usb installer_ddr2.bin(3)加载运行。usb port-transmit-transmit 选择image目录下的u-boot.bin(4)删除原先的/source/rootfs。$ sudo rm -rf /source/rootfs(5)新建根文件系统。$ sudo mkdir /source/rootfs(6)讲我们新建的跟文件系统拷贝到/source/rootfs目录下。$ sudo cp _install/* /source/rootfs -a(7)设置uboot 环境变量。# set bootcmd tftp 20008000 zimage; go 20008000# set bootargs root=nfs nfsroot=7:/source/rootfs init=linuxrc console=ttysac0,115200 ip=00# save (8)重启开发板,查看能否正常运行,查看功能是否正常。5.4 内核的配置和编译(1)将linux-2.6.35拷贝到/home/linux下并解压。$ tar xvf linux-2.6.35.tar.bz$cd linux-2.6.35(2)修改顶层目录下的makefile。$ vim makefile修改:arch ?=$(subarac)cross_compile?=corss_compile?=$(config_cross_compile:“%”=%)为:arch ?=armcross_compil ?=arm-cortex_a8-linux-gnueabi-(3)拷贝标准版配置文件。$ cp arch/arm/configs/s5pc100_defconfig .config(4)配置内核。$ make menuconfig(5)编译内核。$ make zimage通过以上5个操作,我们能够在arch/arm/boot目录下生成一个zimage文件。5.5 boa服务器的搭建为了能够更好的给远程用户控制a8现场和得到现场仓库的设计,才采了b/s模型,来给用户提供一个远程访问的接口,在a8端架起一个boa网页服务器来提供此接口,采用boa服务器的原因是他能够很好的支持cgi编程,及能通过网页来执行a8端提供的cgi程序,来实现通网页利用cgi程序来控制a8的各种资源。5.5.1 boa的移植(1)解压源码。$ tar xvf boa-0.94.13.tar.tar$ cd boa-0.94.13(2)进入src/。$ ./configure 生成makefile修改makefile 修改cc gcc 为 cc arm-cortex_a8-linux-gnueabi-gcc修改cpp gcc -e 为 cpp arm-cortex_a8-linux-gnueabi-gcc -e(3)修改 src/log.c。注释掉if (dup2(error_log, stderr_fileno) = -1) die(unable to dup2 the error log); 为:/*if (dup2(error_log, stderr_fileno) = -1) die(unable to dup2 the error log); */(3)修改src/boa.c。注释掉下面内容:if (passwdbuf = null) die(”getpwuid”);if (initgroups(passwdbuf-pw_name, passwdbuf-pw_gid) = -1) die(”initgroups”);为#if 0if (passwdbuf = null) die(”getpwuid”);if (initgroups(passwdbuf-pw_name, passwdbuf-pw_gid) = -1) die(”initgroups”); #endif(5)修改src/boa.c。 if (setuid(0) != -1) die(”icky linux kernel bug!”); 为#if 0 if (setuid(0) != -1) die(”icky linux kernel bug!”);#endif(6)执行make。5.5.2 boa服务器配置(1)创建目录。mkdir /source/rootfs/etc/boa(2)将boa源码目录下的boa.conf拷贝到/source/rootfs/etc/boa目录下。cp boa.conf /source/rootfs/etc/boa(3)修改配置文件boa.conf。vim /source/rootfs/etc/boa修改 user nobody为 user 0修改 group nogroup 为 group 0修改documentroot /var/www 为documentroot /www修改#servername .here 为 servername .here修改scriptalias /cgi-bin/ /usr/lib/cgi-bin/ 为scriptalias/cgi-bin/ /www/cgi-bin/修改 accesslog/var/log/boa/access_lo为#accesslog/var/log/boa/access_log。(4)创建html文档的主目录/www mkdir /www。(5)创建cgi脚本所在录 /www/cgi-binmkdir /www/cgi-bin。5.5.3 boa器测试(1)将boa拷贝到开发板根文件系统的/etc/boa下。#cp src/boa /source/rootfs/etc/boa(2)将ubuntu下/etc/mime.types拷贝到开发板根文件系统的/etc下。#cp /etc/mime.types /source/rootfs/etc(3)将主页index.html拷贝到www目录下。(4)运行boa,然后在主机游览器输入开发板网址。rootfarsight boa# ./boa5.6 sqlite的移植及程序设计5.6.1 数据库的移植 (1)下载sqlite-amalgamation-3.7.3.tar.gz源码包并解压sqlite-3.7.3。 (2)生成makefile。 在生成的sqlite-3.7.3目录下执行:./configure-host=arm-none-linux-gnueabi-prefix=/home/lngwu/workdir/sqlite-arm(3)编译和安装 make install。在sqlite-arm目录下会生成bin、include、share和lib四个目录(4)编译sqlite3。执行# arm-corten_a8-linux-gnueabi-strip sqlite3后将sqlite3拷贝到/source/rootfs/usr/bin目录下,然后在sqlite-arm/lib中找到libsqlite3.so.0.8.6库文件执行#arm-corten_a8-linux-gnueabi-strip libsqlite3.so.0.8.6拷贝该文件到/source/rootfs/usr/bin目录下在/source/rootfs/usr/lib目录下创建一个符号链接#ln -s libsqlite3.so.0.8.6 libsqlite3.so.0通过以上步骤数据库的移植基本完成5.6.2 数据库的程序设计(1)主体功能 :数据库的作用主要是对图片和温湿度的存储,方便以后对历史记录的查询。(2)数据库程序流程图如7,相关代码设计见附录 a 。图7 数据库程序流程图5.7 摄像头移植及代码设计5.7.1 摄像头的移植(1)修改、配置内核。$ vi drivers/i2c/busses/kconfig修改config i2c_s3c2410tristate s3c2410 i2c driverdepends on arch_s3c2410 | arch_s3c64xxhelp say y here to include support for i2c controller in the samsung s3c2410 based system-on-chip devices.为:config i2c_s3c2410tristate s3c2410 i2c driverdepends on arch_s3c2410 | arch_s3c64xx | arch_s5pc100help say y here to include support for i2c controller in the samsung s3c2410 based system-on-chip devices.(2)配置内核驱动。$ make menuconfigdevice drivers - i2c support - i2c device interfacei2c hardware bus support - s3c2410 i2c driver(3)修改arch/arm/mach-s5pc100/mach-smdkc100.c。查看原理图可以知道我们的摄像头是接在i2c-1上所以修改i2c_devs1添加ov9650的内容,主要是ov9650的地址,这个在芯片手册上可以查到是0x30修改:static struct i2c_board_info i2c_devs1 _initdata = ;为:static struct i2c_board_info i2c_devs1 _initdata = i2c_board_info(ov9650, 0x30),;(4)添加s5pc100 摄像头控制器平台设备相关内容,这些内容我们可以通过查看s5pc100的芯片手册查到。static struct resource s3c_camif_resource = 0 = .start = 0xee200000,.end = 0xee200000 + sz_1m - 1,.flags = ioresource_mem,1 = .start = irq_fimc0,.end = irq_fimc0,.flags = ioresource_irq,;static u64 s3c_device_camif_dmamask = 0xfffffffful;struct platform_device s3c_device_camif = .name = s5pc100-camif,.id = 0,.num_resources = array_size(s3c_camif_resource),.resource = s3c_camif_resource,.dev = .dma_mask = &s3c_device_camif_dmamask,.coherent_dma_mask = 0xfffffffful;export_symbol(s3c_device_camif);(5)注册摄像头控制平台设备。在smdkc100_devices中添加s3c_device_camif. ,添加内容如下:static struct platform_device *smdkc100_devices _initdata = &s3c_device_camif, ;(6)添加摄像头驱动(video):make menuconfigdevice drivers - multimedia support - video for lin

温馨提示

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

评论

0/150

提交评论