基于ARM的远程监控系统设计基于ARM的远程监控系统设计 毕业论文设计.docx
- 文档编号:9731172
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:14
- 大小:47.88KB
基于ARM的远程监控系统设计基于ARM的远程监控系统设计 毕业论文设计.docx
《基于ARM的远程监控系统设计基于ARM的远程监控系统设计 毕业论文设计.docx》由会员分享,可在线阅读,更多相关《基于ARM的远程监控系统设计基于ARM的远程监控系统设计 毕业论文设计.docx(14页珍藏版)》请在冰点文库上搜索。
基于ARM的远程监控系统设计基于ARM的远程监控系统设计毕业论文设计
目录
1.引言
1.1远程视频监控系统的发展
2.系统整体结构
2.1视屏监控系统的结构设计
2.2ARM处理器简介
2.3S3C6410体系结构
3.嵌入式系统软件平台
3.1Linux操作系统简介
3.2交叉编译环境的建立
3.3嵌入式Linux移植
3.4Linux平台下mjpg-streamer移植
3.5交叉编译mjpeg-stream
参考文献
1.引言
当今社会是一个高速发展的社会,信息获取的方便快捷可以使我们领先一步并创造出巨大的利益,而我们或许信息的一个重要途径就是眼睛。
在人的感官中有80%是来自是觉。
图像时客观事物的形象、生动的描绘,是直观而具体的信息表达方式,是人类重要的信息载体。
随着科学技术的快速发展和人民物质生活水平的提高,视频监控系统以其直观、方便和信息内容丰富的特点,日益受到人们的青睐,并在各行各业得到了广泛的应用。
生活中有电梯监控,门禁,车库监控等等。
电讯行业有基站监控,银行系统又柜员机监控,林业部门有火情监控,交通方面有违章监控和流量监控等。
1.1远程视频监控系统的发展
自从摄像机和电视出现后,最初的模拟监控系统出现了。
经过较长时间的发展和应用,已经非常成熟,性能也十分稳定,但由于系统中模拟图像信息为主,对图像的处理和传送都才采用模拟技术,不紧图像质量差,而且系统资源浪费严重,不易组成复杂的网络结构,主要是一种单功能、单向、集总方式的信息采集网络,监控功能可扩展性差。
因此系统尽管已发展到很高的水平,已无潜力可以发掘,局限性大。
随着计算机应用的普及,网络通信技术及图像压缩技术的快速发展,在视屏监控领域中,数字化和网络化成为一种趋势。
上世纪末,基于pc的数字化网络视频监控技术迅速发展,部分取代了视频矩阵图像分割器、录像机为核心,辅助以其他设备的模拟视频监控系统。
数字化的的视频通信在图像质量、传送距离、抗干扰能力等方面都要优越于传统的模拟通信系统,并且图像处理更加方便。
因此,数字化网络视频监控系统将不然取代传统的模拟监控系统。
但随着基于PC的视频监控系统的发展,在实际工程应用中也暴露出一些不足之处,主要是系统工作的实时性不高、稳定性差,而且成本较高;PC需要专门人管理,操作较为繁琐;兼容性差,采用的视频压缩对数据进行处理,因此系统一般只支持一种编码格式,无法提供其他编码方式的支持。
进入21实际,嵌入式技术、多媒体图像处理技术的进一步发展,为嵌入式网络视频监控系统的繁重提供了技术条件。
嵌入式系统是以应用为中心,软硬件可以裁减的,具有高可靠性,低成本、严要求、综合性强的专用计算机系统,它主要有嵌入式微处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,集软硬件于一体,能够独立工作。
嵌入式系统具有实时性好、稳定性高等特点,在网络视频监控中的刀快速发展。
嵌入式网络视屏监控与其他监控系统又的比较有如下特点;
布控区域广阔。
嵌入式视频监控也可以直接接入网络,没有线缆产度和信号衰减的闲置,同时网络是没有距离概念的,彻底抛弃了地域的限制,扩展了布控区域。
系统具有无限的无缝扩展能力。
所有设备都可以用IP地址进行标示,增加设备只是意味着IP地址的扩充。
可组成非常复杂的监控网络。
采用局域嵌入式视频监控设备为核心的监控系统,在组网方式上与传统的模拟监控和基于PC平台的监控方式有极大不同,犹豫嵌入式视频监控设备的输出以往车了模拟到数字的转换并压缩,采用同意的协议在网络上传输。
性能更稳定,无需专人管理。
嵌入式视频监控设备实际上基于嵌入式计算机技术,采用嵌入式多任务操作系统,又由于视频采集和数据处理功能都集中到一个体积很小的设备内,直接连入局域网或广域网,即插即看,系统的实时性、稳定性、可靠性大大提高,也无需专人管理,非常适合于无人值守的环境。
因此加强对嵌入式网络视频监控系统的研究,对我国监控行业今后的发展有着重要的意义。
2.系统整体结构
2.1视屏监控系统的结构设计
基于嵌入式技术的监控系统前端采用摄像头采集视频流,然后通过网络传输到接受者。
整体结构如图2.1.1所示。
该系统采用基于ARM7的S3C6410X微处理器,通过在处理器上运行Linux操作系统,构建嵌入式服务器,接受来自摄像头的视频流,再进行压缩编码,再传送实现监控。
1)LCD液晶显示器是LiquidCrystalDisplay的简称,LCD的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。
现在LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分的普及。
从液晶显示器的结构来看,无论是笔记本电脑还是桌面系统,采用的LCD显示屏都是由不同部分组成的分层结构。
LCD由两块玻璃板构成,厚约1mm,其间由包含有液晶材料的5μm均匀间隔隔开。
因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。
液晶面板的质量并不能完全代表液晶显示器的品质,没有出色的显示电路配合,再好的面板也不能做出性能优异的液晶显示器。
随着LCD产品产量的增加、成本的下降,液晶显示器会大量普及。
2)JTAC是联合测试工作组(JointTestActionGroup)的简称,是在名为标准测试访问端口和边界扫描结构的IEEE的标准1149.1的常用名称。
此标准用于测试访问端口,使用边界扫描的方法来测试印刷电路板。
在设计印刷电路版时,目前最主要用在测试集成电路的副区块,而且也提供一个在嵌入式系统很有用的调试机制,提供一个在系统中方便的"后门"。
当使用一些调试工具像电路内模拟器用JTAG当做信号传输的机制,使得程序员可以经由JTAG去读取集成在CPU上的调试模块。
调试模块可以让程序员调试嵌入式系统中的软件
JTAG的接口是一种特殊的4/5个接脚接口连到芯片上,所以在电路版上的很多芯片可以将他们的JTAG接脚通过Daisy-chain的方式连在一起,并且Probe只需连接到一个“JTAG端口”就可以访问一块电路板上的所有IC。
这些连接引脚是:
TDI(测试数据输入)TDO(测试数据输出)TCK(测试时钟)TMS(测试模式选择)TRST(测试复位)可选。
因为只有一条数据线,通信协议有必要像其他串行设备接口,如SPI一样为串行传输。
时钟由TCK引脚输入。
配置是通过TMS引脚采用状态机的形式一次操作一位来实现的。
每一位数据在每个TCK时钟脉冲下分别由TDI和TDO引脚传入或传出。
可以通过加载不同的命令模式来读取芯片的标识,对输入引脚采样,驱动(或悬空)输出引脚,操控芯片功能,或者旁路(将TDI与TDO连通以在逻辑上短接多个芯片的链路)。
TCK的工作频率依芯片的不同而不同,但其通常工作在10-100MHz(每位10-100ns)。
当在集成电路中进行边界扫描时,被处理的信号是在同一块IC的不同功能模块间的,而不是不同IC之间的。
TRST引脚是一个可选的相对待测逻辑低电平有效的复位开关——通常是异步的,但有时也是同步的,依芯片而定。
如果该引脚没有定义,则待测逻辑可由同步时钟输入复位指令而复位。
尽管如此,极少消费类产品提供外部的JTAG端口接口,但作为开发样品的残留,这些接口在印刷电路板上十分常见。
在研发后,这些接口常常为反向工程提供了非常良好的途径
3)同步动态随机存取内存(synchronousdynamicrandomaccessmemory,简称SDRAM)是有一个同步接口的动态随机存取内存(dynamicrandomaccessmemory,简称DRAM)。
通常动态随机存取内存(DRAM)是有一个异步接口的,这样它可以随时响应控制输入的变化。
而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。
时钟被用来驱动一个有限状态机,对进入的指令进行流水线操作。
这使得SDRAM与没有同步接口的异步DRAM(asynchronousDRAM)相比,可以有一个更复杂的操作模式。
流水线意味着芯片可以在处理完之前的指令前,接受一个新的指令。
在一个写的流水线中,写命令在另一个指令执行完之后可以立刻执行,而不需要等待数据写入存储队列的时间。
在一个读的流水线中,需要的数据在读指令发出之后固定数量的时钟频率后到达,而这个等待的过程可以发出其它附加指令。
这种延迟被称为等待时间,在为计算机购买存储时是一个很重要的参数。
4)NOR和NAND是现在市场上两种主要的非易失闪存技术。
Intel于1988年首先开发出NORflash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。
紧接着,1989年,东芝公司发表了NANDflash结构,强调降低每比特的成本,更高的性能,并且像磁盘一样可以通过接口轻松升级。
但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
“NAND存储器”经常可以与相“NOR存储器”互换使用。
许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码并且需要多次擦写,这时NOR闪存更适合一些。
而NAND则是高数据存储密度的理想解决方案。
NOR的特点是芯片内执行(XIP,eXecuteInPlace),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。
应用NAND的困难在于flash的管理需要特殊的系统接口。
NANDflash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格。
NORflash占据了容量为1~16MB闪存市场的大部分,而NANDflash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、SecureDigital、PCCards和MMC存储卡市场上所占份额最大。
NANDFlash的数据是以bit的方式保存在memorycell,一般来说,一个cell中只能存储一个bit。
这些cell以8个或者16个为单位,连成bitline,形成所谓的byte(x8)/word(x16),这就是NANDDevice的位宽。
这些Line会再组成Page,(NANDFlash有多种结构,我使用的NANDFlash是K9F1208,下面内容针对三星的K9F1208U0M),每页528Bytes(512byte(MainArea)16byte(SpareArea)),每32个page形成一个Block(32*528B)。
具体一片flash上有多少个Block视需要所定。
我所使用的三星k9f1208U0M具有4096个block,故总容量为4096*(32*528B)=66MB,但是其中的2MB是用来保存ECC校验码等额外数据的,故实际中可使用的为64MB。
5)CS8900芯片是CirrusLogic公司生产的一种局域网处理芯片,在嵌入式领域中使用非常常见。
它的封装是100-pinTQFP,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口,一般在单片机中,使用了CS8900的8位接口模式。
可选择1:
1.414YL18-1064S或1:
2.5YL18-1080S变压比例的变压器
CS8900网卡工作原理:
CS8900与ARM芯片按照16位方式连接,网卡芯片复位后默认工作方式为I/O连接,基址是300H,下面对它的几个主要工作寄存器进行介绍(寄存器后括号内的数字为寄存器地址相对基址300H的偏移量)。
LINECTL决定CS8900的基本配置和物理接口。
在本系统中,设置初始值为00d3H,选择物理接口为10BASE-T,并使能设备的发送和接收控制位。
2.2ARM处理器简介
ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对微处理器的通称,还可以认为是一种技术的名字。
ARM处理器是一个32位元精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
ARM处理器具有以下特点:
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)双指令集,兼容性好。
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式灵活简单,执行效率高;
2.3S3C6410体系结构
S3C64xx系列的应用处理器芯片是三星主推的,三星目前推出了S3C6400和S3C6410,都是基于ARM11架构的,而且硬件管脚兼容,应该说大致的功能基本相同,比较明显的区别就是S3C6410带有2D/3D硬件加速。
S3C6410是一个强大的应用处理器。
6410是基于SAMSUNG的16/32位RSIC微处理器S3C6410X的一款开发平台,S3C6410X是基于ARM1176JZF-S核的用于手持、移动等终端设备的通用处理器。
S3C6410是一款低功率、高性价比、高性能的用于移动电话和通用处理RSIC处理器。
为2.5G和3G通信服务提供了优化的硬件性能,采用64/32bit的内部总线架构,融合了AXI、AHB、APB总线。
还有很多强大的硬件加速器,包括运动视频处理、音频处理、2D加速、显示处理和缩放。
一个集成的MFC(Multi-FormatvideoCodec)支持MPEG4/H.263/H.264编解码和VC1的解码,这个硬件编解码器支持实时的视频会议以及NRSC和PAL制式的TV输出。
内置一个采用最先进技术的3D加速器,支持OpenGLES1.1/2.0和D3DMAPI能实现4Mtriangles/s的3D加速。
S3C6410包括优化的外部存储器接口,该接口能满足在高端通信服务中的数据带宽要求。
接口分为两路,DRAM和Flash/ROM/DRAM端口。
DRAM端口可以通过配置来支持MobileDDR、DDR、MobileSDRAM、SDRAM。
Flash/ROM/DRAM端口支持NOR-Flash,NAND-Flash,OneNAND,CF,ROM等类型的外部存储器任意的MobileDDR、DDR、MobileSDRAM、SDRAM存储器。
为了降低整个系统的成本和提升总体功能,S3C6410包括很多硬件功能外设:
Camera接口,TFT24bit真彩色LCD控制器,系统管理单元(电源时钟等),4通道的UART,32通道的DMA,4通道定时器,通用I/O口,I2S总线,I2C总线,USBHost,高速USBOTG,SDHost和高速MMC卡接口以及内部的PLL时钟发生器。
3.嵌入式系统软件平台
3.1Linux操作系统简介
Linux是一种自由和开放源码的类Unix操作系统。
目前存在着许多不同的Linux,但它们都使用了Linux内核。
Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。
Linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是Linux操作系统。
严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。
Linux得名于计算机业余爱好者LinusTorvalds。
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。
此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。
2001年1月份发布的Linux2.4版内核已经能够完全支持Intel64位芯片架构。
同时Linux也支持多处理器技术。
多个处理器同时工作,使系统性能大大提高。
ARM技术和Linux成功的结合充分满足了各类应用对嵌入式平台高性能、低功耗和低价格的要求,通过开发环境、开源社区和ARM的商业伙伴的有时为嵌入式开发停工了灵活的选择。
3.2交叉编译环境的建立
通常嵌入式系统的软件编译和执行是两个不同平台上进行的。
编译时在宿主机上进行的,执行是在目标机,及嵌入式系统的硬件平台。
一般是在宿主机通过跨平台交叉编译器把源文件编译成目标平台可执行的文件在通过串口、并口或者网络下载至目标凭条的FLASH或者其他存储介质,然后由目标机来运行这些软件。
本系统采用基于ARM9的S3C6410,可以使用常用的ARM交叉编译器,要成功构建完整的交叉编译环境,余姚在宿主机上创建一系列的工具,包括C/C++编译器、汇编器、连接器、嵌入式系统的标准C库和GDB代码调试器,成功建立好后便可以用这些工具进行嵌入式系统开发了。
3.3嵌入式Linux移植
BootLoader是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
在嵌入式系统中,通常并没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由BootLoader来完成。
比如在一个基于ARM7TDMIcore的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
专用的嵌入式板子运行GNU/Linux系统已经变得越来越流行。
一个嵌入式Linux系统从软件的角度看通常可以分为四个层次[12]:
引导加载程序。
包括固化在固件(firmware)中的boot代码(可选),和BootLoader两大部分。
Lniuxn内核。
特定于嵌入式板子的定制内核以及内核的启动参数。
文件系统。
包括根文件系统和建立于Flash内存设备之上文件系统。
通常用ramdisk来作为rootfs。
用户应用程序。
特定于用户的应用程序。
有时在用户应用程序和内核层之间可能还会包括一个嵌入式应用程序。
常用的嵌入式GUI有:
MicroWindows和MiniGUI等。
引导加载程序是系统加电后运行的第一段软件代码。
PC机中的引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OSBootLoader(比如,LILO和GRUB等)一起组成。
BIOS在完成硬件检测和资源分配后,将硬盘MBR中的BootLoader读到系统的RAM中,然后将控制权交给OSBootLoader。
BootLoader的主要运行任务就是将内核映象从硬盘上读到RAM中,然后跳转到内核的入口点去运行,也即开始启动操作系统。
通常,BootLoader是严重地依赖于硬件而实现的,特别是在嵌入式世界。
因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。
尽管如此,我们仍然可以对BootLoader归纳出一些通用的概念来,以指导用户特定的BootLoader设计与实现。
Boorloader的实现以来与CPU的体系结构,一般来说启动过程分为两个阶段:
第一阶段以来于CPU的体系结构大代码,比如设备初始化代码等。
这个阶段完成的任务如下:
硬件设备初始化
(2)为第二阶段准备RAM空间
复制Bootloader的第二阶段代码到RAM空间中
(4)设置好堆栈并跳转到第二阶段的C程序入口点
第二阶段则通常用C语言来实现,这样可以实现复杂的功能,而且代码会具有更好的可持续性和移植性。
这个阶段的主要任务有:
(1)初始化本阶段要使用的硬件设备
检测系统内存映射
(3)将内核映像和根文件系统从FLASH读到RAM中
(4)为内核设置启动参数
3.4Linux平台下mjpg-streamer移植
本系统选用嵌入式Linux作为目标机操作系统,一方面由于Linux是一款免费的操作系统,能很好的见底成本,同时Linux的开发应用现在应经成为热门,有大量的资源可供学习与使用,并且Linux系统具有良好的可移植性和可裁剪性,能自动支持多任务管理。
本系统采用ARM开发平台,所以依赖ARM硬件平台的代码都在arch/arm下面。
根目录下面只需要修改Makefile文件,该文件主要任务是产生vmLinux文件盒内核模块,对该文件的修改主要是设置目标平台和制定交叉编译器.
在/opt/mini6410目录下创建目录webcamera来作为我们本次移植工作的工作目录,输入以下命令创
建:
#mkdir–p/opt/mini6410/webcamera
进入webcamera目录下,通过SVN下载最新的mjpg-streamer-mini2440项目源代码:
#cd/opt/mini6410/webcamera/
#svncheckouthttp:
//mjpg-streamer-mjpg-streamer-mini2440-read-only
输入以下命令进行mjpg-streamer-mini2440-read-only目录:
#cdmjpg-streamer-mini2440-read-only
根据以下指示修改:
1)用vi编辑start_uvc_yuv.sh,将内容:
./mjpg_streamer-o"output_http.so-w./www"-i"input_uvc.so-y"
修改成
./mjpg_streamer-o"output_http.so-w./www"-i"input_uvc.so-y-d/dev/video2"
2)用vi编辑Makefile
a)在clean:
处删除make-Cplugins/input_s3c2410$@
b)再删除以下内容:
input_s3c2410.so:
mjpg_streamer.hutils.h
make-Cplugins/input_s3c2410allCC=$(CC)
cpplugins/input_s3c2410/input_s3c2410.so.
c)再到package:
处删除以下两行:
input_s3c2410.so\
start_s3c2410.sh\
3.5交叉编译mjpeg-stream
执行以下命令进行编译并打包:
#cd/opt/mini6410/webcamera/mjpg-streamer-mini2440-read-only/
#exportCC=arm-linux-gcc
#make
#makepackage
在当前目录下会生成mjpg-streamer-mini2440-bin.tar.gz,将它拷入SD卡备用。
Mini6410上的摄像头\Bin”目录下找到我们编译好的可执行文件,文件名为
mjpg-streamer-mini6410-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于ARM的远程监控系统设计基于ARM的远程监控系统设计 毕业论文设计 基于 ARM 远程 监控 系统 设计 毕业论文