ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:685.42KB ,
资源ID:26034838      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26034838.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(高级嵌入式论文.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

高级嵌入式论文.docx

1、高级嵌入式论文华东理工大学20162017学年第1学期 高级嵌入式系统 课程论文 开课学院: 信息学院 任课教师: 成绩_成员:姓名 学号 姓名 学号论文题目:基于ARM的视频采集系统设计论文摘要:21世纪以来,科学技术的迅速发展,尤其是在计算机技术方面的进步更是突飞猛进,同时伴随着嵌入式系统和ARM技术的出现。嵌入式系统的应用可谓是无处不在,它所涉及的领域包括工业控制、消费电子、网络通信、科学研究、军事国防、医疗卫生、航空航天等方方面面。教师评语:教师签字: 年 月 日摘要21世纪以来,科学技术的迅速发展,尤其是在计算机技术方面的进步更是突飞猛进,同时伴随着嵌入式系统和ARM技术的出现。嵌入

2、式系统的应用可谓是无处不在,它所涉及的领域包括工业控制、消费电子、网络通信、科学研究、军事国防、医疗卫生、航空航天等方方面面。另外,基于嵌入式技术的飞速发展,各种嵌入式芯片如DSP、ARM、SOC等也相继出现,优劣互补,把嵌入式技术方便人类推向了一个新的高度。本文将采用理论与实践相结合的方式,通过对ARM系统的设计与调试,从而掌握了对嵌入式系统的设计与开发。本文作者成功利用了USB 摄像头作为视频监控系统的终端,USB 摄像头和嵌入式开发板的组合更加可以方便的实现中间数据的处理、保存和查询等功能。同时将动态Web技术应用到嵌入式网络监控系统中,利用Web 浏览器实现了用户和嵌入式系统的交互。本

3、系统经测试在实验室条件下比较稳定,图像清晰流畅。达到了预期的设计要求。关键字:嵌入式系统,ARM,视频服务器,视频采集第1章 绪论1.1课题背景随着嵌入式系统不断地发展,它所涉及的领域包括生活中的方方面面,从医疗卫生、消费电子、网络通信,到工业控制、科学研究、军事国防、航空航天。而我们所熟悉的电子产品几乎都可以找到嵌入式系统的影子。随着ARM(Advance RISC Machines)技术的推广,嵌入式芯片从原来的8位、16位等升级到了32位,可见嵌入式的发展前景一片光明。而Linux操作系统以其源代码的开放性、可裁减性,对多处理器的支持,尤其是ARM体系结构的广泛支持,以及对多任务多文件系

4、统的支持,解决了限制嵌入式系统发展的软件瓶颈问题。同时,嵌入式系统设计是一门综合性的课程,涉及电子、计算机、自动控制等诸多专业知识,综合性强,可包括微机原理、单片机设计、操作系统等课程内容。嵌入式系统设计需要软件和硬件紧密配合,协调工作,共同完成系统的预定功能。而在目前计算机技术和网络技术逐渐普及的情况下,现在监控技术已经达到了网络多媒体监控阶段。从第一代的全模拟监控到准数字监控系统,再到全数字监控系统。计算机技术和网络技术目前都在高速的发展,现在监控系统已经发展到网络视频监控系统,网络视频监控具有数字视频监控和网络传输技术的优点,不被地理位置的约束,扩展方便简单,信息处理比较容易,可以使远程

5、的管理和维护变成现实,只要网络覆盖的地方,就能实现网络监控。1.2论文总体思路首先通过简介视频开发的相关技术,网络通信技术,图像压缩技术,然后介绍嵌入式WEB服务器的原理,Video4Linux的编程原理,最后引出嵌入式视频服务器的总体结构。总体的设计结构包括:系统硬件电路设计(主要包括核心电路板的介绍和扩展板部分电路设计)、建立ARMLinux系统软件开发平台、嵌入式WEB服务器的设计等等。当然,该设计存在优点与不足,最后会从未来的研究与发展方向对该设计进行分析与拓展。第2章 相关技术及原理介绍2.1 视频监控框架介绍本系统有监控现场摄像头、嵌入式视频服务器、客户端三部分组成。具体的结构示意

6、图如图2-1。图2-1 嵌入式视频监控系统总体结构图而对于本系统的设计流程,则如下图2-2所示。图2-2 嵌入式视频监控系统流程图2.2 网络通信技术众所周知,Web网页传输是建立在HTTP协议的基础之上的,但是,HTTP有着自己的局限性。首先,HTTP是无连接的协议,每次连接只能处理一个客户请求,服务器把客户的请求处理完,收到应答后,就会把连接断开,虽然这种方式可以节约时间,但却不能使用广播功能。其次,HTTP是无状态的协议,无状态的协议意味着对数据没有记忆功能,也就是说,如果后面对前面的数据有需求,则必须进行重新传输,极大的造成了资源浪费,特别是带宽浪费。因此,对于实时性要求较高的视频传输

7、,传统的HTTP似乎不再适用,那么,针对本文,将采取用RTP/RTCP代替HTTP进行通信的方法来解决这一问题。实时传输协议RTP(Real-time Transport Protocol)是一个网络传输协议,RTP为数据提供了具有实时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据。在实时传输协议RTP协议会话期间,各参加者一遍一遍地传送RTCP包,RTCP包中含有已发送包的数量和流失包的数量,因此服务器可利用这些信息动态地改变传输速率。2.3 图像压缩技术数字化视频采集是嵌入式系统的典型应用,由于数字信号的数据量很大,标准的PAL信号的速率为 216Mb/S,如果不

8、压缩,基本上不可能传输,即使压缩到2Mb/s时,也只能在通信干线上传输,不能扩展到终端用户,因此需要提高压缩效率,一方面通过图像降级实现,但主要还是提高编码效率5。JPEG 是目前网络最流行的压缩格式,可以把图像压缩到最小的图像格式,经常用potoshop 的人会知道,在存图像格式时有个分级压缩,共分为11 级压缩,就是最小压缩比的10 级压缩,压缩比例也可以到5:1,在压缩比例最大的0 级压缩可以达到0:1。通常我们选用的8 级压缩压缩比达到24:1,这个比例压缩出来的图片我们肉眼几乎分辨不出和原图的差距,虽然数据量大大的减少,但是图像我们看不出有任何的变化。JPEG格式的应用非常广泛,特别

9、是在网络和光盘读物上,都能找到它的身影。目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,下载速度快。2.4 嵌入式WEB服务器的原理嵌入式WEB服务器一般由五个主要模块组成:嵌入式HTTP引擎,安全模块,应用程序接口,文件系统和配置模块26。由于本嵌入式视频监控系统的操作系统选用ARMlinux嵌入式操作系统,它的文件系统比较成熟,提供了可以使文件访问的接口,可以直接使用文件系统提供的读写接口访问嵌入式WEB资源文件,解决了专门设计文件系统的麻烦。本系统中嵌入式服务器选用适合嵌入式系统的Boa服务器,它是单任务的嵌入式HTTP服务器,它占用内存小,另外支持动态CGI技

10、术,源代码开放,功能强大。2.5 Video4Linux的编程原理Video4linux的简称是V4L,是Linux系统中的影像串流系统与嵌入式影像系统的基础,它是Linux 内核里免支持影像设备的一组应用程序的接口,配合恰当的视频采集工具与视频采集工具的驱动程序, V4L可以实现视频图像的采集的功能23。V4L为二层式结构,上层为V4L的驱动程序,下层构成则是影音设备的驱动程序。这里我们用到的是V4L的上层驱动程序,即V4L本身所提供给程序开发人员的一组应用程序开发接口。Video4Linux视频图像采集流程图如图2-3。图2-3 Video4Linux视频图像采集流程图第3章 系统硬件电路

11、设计嵌入式系统的开发中分为硬件开发和软件开发两部分,且两者是可以裁剪的,功能专一,其中硬件是软件的载体,没有硬件的支持软件没办法运行,只有搭建好了硬件平台,才能进行软件的开发。3.1 硬件的选择嵌入式系统的硬件主要包括处理器和外围设备接口,不同的项目所需要的外围设备不一样,这样使得嵌入式系统的灵活性和专业性大大提高,不同的嵌入式系统需要的操作系统不完全一致,系统内核要根据具体的设备进行裁剪,这样可以保证系统高效稳定的运行。本系统中将采用S3C2410处理器。之所以选择这款由韩国三星公司推出的S3C2410处理器,首先是它的市场认可度较高,其次,S3C2410采用的是ARM920内核,属于ARM

12、9 系列的处理器,2410 的主频可以达到206MHz,通过提供一系列完整的系统外围设备,S3C2410 大大减少了系统的设计成本,消除了为系统配置额外设备的需要,其结构框图如图3-1。图3-1 S3C2410结构框图3.2 硬件框架设计为了降低开发的成本,降低开发的难度,本系统采用核心板和扩展板的模式,核心板包括主要包括微处理器S3C2410A,随机存储器SDRAM 和FLASH。256M 的SDRAM用作操作系统和程序运行的空间,FLASH 保存系统所需要的根文件系统和用户开发的应用软件程序。扩展板包括系统电源、USB 模块、以太网模块、JTAG 模块和串口。电源模块用于5V 输入,提供3

13、.3V 和1.8V 输出的直流供电。USB 模块负责接收USB 摄像头采集到的数字图像信息,通过内部总线传送给处理设备,以太网模块将硬件系统与互联网相连接,将采集到的图像通过网络传送给客户端。JTAG 和串口主要用于对嵌入式系统硬件电路的开发、调试和后期维护。整个嵌入式视频服务器的系统硬件结构如图 3-2 所示。图 3-2 硬件系统框架图(1)电源模块电源的输入端采用的是5V 的直流电源供电,考虑到处理器中需要的电源包括3.3V 和1.8V 电压,分别采用LM1085-33 和AS1117-1.8V 电源芯片进行电压的转换,USB 部分需要5V 电源供电,引出5V 的电压,在本硬件系统中一共包

14、括5V,3.3V和1.8V 三种电压模式。(2)存储模块Nand-flash 内存是flash 内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。本系统系统采用三星公司64MB 容量的NandFlash K9F1208。(3)网络模块本文选用 DM9000A 芯片作为S3C2410 的外扩网络芯片,DM9000A 提供10M/100M自适应的以太网功能,内建有PHY 和8K16 位的SRAM。DM9000A 支持 8 位和16 位的数据接口,DM900A 提供了介质无关接口用于支持一些提供介质无关接口的设备。这是完支持802.3u 规格协议,它的自动调节功

15、能可以动态的适应带宽的要求。(4)其他外围接口嵌入式系统的开发调试一般采用宿主机和目标板的交叉编译的方式进行。这种方式的特点就是软件程序的开发全部在宿主机上进行,这样使得开发的难度降低,开发程序所需的一些系统资源可以得到很好的解决。(5)复位电路采用专门的复位芯片IMP811 为系统提供可靠的复位信号nRESET,通过反相器74HC04 将nRESET 反相,提供另外一种电平的复位信号RESET。RESET在系统中供网络控制器DM9000A 使用。第4章 操作系统的建立只有建立起了操作系统,嵌入式视频服务器的应用软件才可以在嵌入式系统中运行,本章内容是建立在硬件设计的基础上,为应用软件的开发搭

16、建的桥梁。4.1 交叉编译环境的建立由于嵌入式系统的资源有限,无法运行一些大型的开发程序,通常嵌入式程序的开发都是在宿主机PC机上开发,在PC机上安装交叉编译器,写好程序之后,经过交叉编译器编译成嵌入式系统可以运行的软件,然后通过串口或者网络接口下载到嵌入式系统目标板。图4-1 是编译调试的开发方法示意图。图4-1 交叉开发模式图具体的步骤如下:(1)从Handhelds.org 的FTP 上下载交叉编译工具的源代码包arm-linux-gcc-3.3.1.tar.bz2。(2)把开发包放到虚拟光驱上,执行命令:mount /dev/cdrom /mnt,成功后会生成install.sh文件。

17、(3)安装,执行命令:./install.sh。(4)在 PC 机系统linux 系统终端上输入armv , 按一下Tab 键,会自动显示armv4l-unknown-linux 这时表明交叉编译环境已经建立,交叉编译器已经安装完毕。4.2 BootLoader 移植BootLoader 的作用是引导系统程序的运行,此程序的功能是建立系统的映射表,初始化系统的硬件资源,为运行内核资源做好准备。BootLoader在Nand Flash中的分布如下图4-2所示。图4-2 Nand Flash空间分配结构图具体的一直过程如下:(1) 移植可以从Nor flash 启动的uboot,这个阶段是移植一

18、个最简单的uboot,可以烧在Nor flash 内运行.(2)移植支持Nand flash 驱动的uboot,加入Nand flash 驱动的支持,可以在uboot命令行下操作Nand flash.但还未能从Nand flash 启动,只能在Nor flash 内运行.(3)移植可以从Nor flash 启动的uboot,可以烧录在Nand flash,并设置从Nand flash启动运行uboot.4.3 Linux2.6.12 内核的移植Linux 内核版目前比较常用的有2.2,2.4 和2.6 三种内核版本,Linux 版本分为主版本号和次版本号,次版本号尾数为偶数的版本比较稳定,为基

19、数的是测试版本,ARM9处理器常用的版本是2.4 内核和2.6 版本的内核,其中2.6 内核是新版本的内核,比2.4版本的功能要强大,其中2.6 版本的内核在系统稳定行和功能上都要比之前的版本强大很多,目前也是比较流行的版本,应用越来越广泛。本着加快运行速度、合理、节省内存等因素的原则,可按如下配置配置内核:(1)下载内核软件包下载内核软件包 linux-2.6.12.tar.gz,下载完成后进行解压,解压后保存在src 目录下面。(2)修改Makefile文件找到 ARCH 和CROSS_COMPILE,修改为:ARCH ?=armCROSS_COMPILE ?=/opt/eldk/usr/

20、bin/arm-linux-(3)设置Flash分区修改 arch/arm/mach-s3c2410/devs.c 文件,添加如下内容:#include #include #include /*NAND Controller*/*建立flash 分区表*/static struct mtd_partition partition_info=/*128k*/name:vivi,size:0x00020000,offset:0x00000000,/*64k*/name:param,size:0x00010000,offset:0x00020000,/*2m+832k*/name:kernel,si

21、ze:0x002d0000,offset:0x00030000,/*3m*/name:root,size:0x0030000,offset:0x00300000,/*48*/name:user,size:0x03000000,offset:0x00600000;/*加入NAND FLASH 分区*/static struct s3c2410_nand_set nandset = nr_partitions:5, /*the number of partition*/partitions:partition_info,;(4)配置内核修改 fs/Kconfig,支持启动时挂载devfs$vim

22、fs/ Kconfig找到menu “Pseudo filesystem”在其中添加:config DEVFS_FSbool “/dev file system support (OBSOLETE)”default yconfig DEVFS_MOUNTbool “Automatically mount at boot”default ydepends on DEVFS_FS(5)执行内核配置命令rootlocalhost linux_2.6.12# make menuconfig编译完成时,linux2.6 内核压缩镜像zImage 已经生成在/usr/src/linux_2.6.12/ar

23、ch/arm/boot 文件夹下。4.4 移植cramfs 根文件系统根文件系统是构成Linux 嵌入式系统的重要组成部分,目前嵌入式系统可以应用的根文件系统有:Romfs、Cramfs、Ramfs、Jffs2、Ext2 等。Cramfs系统一般是只读的系统,在系统操作过程中如果对文件系统进行写操作,将会产生系统错误,本文提出的配置根文件系统的方法经多次试验验证可以进行写操作,系统比较稳定,可以节省系统的内存空间。具体的构造根文件系统的具体过程如下:(1)建立相应文件夹创建 rootfs 文件夹并在下面建立如下文件夹rootlocalhost rootfs# mkdir bin sbin et

24、c lib dev usr mnt proc ramdisk var(2)创建busybox 工具本文所应用busybox-1.00 来作为Linux 内核的命令工具集。Busybox 的配置如下:rootlocalhost busybox-1.00-pre10# make menuconfig打开配置界面,如图4-3所示。图4-3 busybox 配置界面在编辑选项中选择静态编译器和交叉编译器arm-linux,在在安装选项(Installation Options)中选择Dont use /usr,然后进行编译安装:rootlocalhost busybox-1.00-pre10# mak

25、e deprootlocalhost busybox-1.00-pre10# make 编译rootlocalhost busybox-1.00-pre10# make install 安装安装完成后,在 busybox-1.00-pre10 目录下生成_install 文件夹,所选工具全部在此文件夹下。(3)利用mkcramfs 工具生成cramfs 压缩文件系统mkcramfs 能把相应的Cramfs 目录树压缩成为单一的映象文件,这样就能生成我们需要的镜像文件。第5章 系统软件设计本嵌入式远程视频监控系统软件由摄像头驱动模块,图像采集模块,JPEG 图像压缩模块,网络传输模块,嵌入式WE

26、B 服务器组成。摄像头驱动模块的作用是使得摄像头在Linux 操作系统下可以正常工作,为应用程序的编写提供底层系统的编程接口。图像采集程序使用驱动程序提供的编程接口获取摄像头采集来的图像信息并进行暂时存储。JPEG 压缩模块的功能是完成对采集到的原始图像信息进行编码处理,使得图像达到最小化,清晰化,为网络传输解决带宽不足的问题。WEB 服务器通过HTTP 协议与远程监控计算机端的浏览器进行信息交流,它提供了应用程序模块的编程接口以及视频监控的界面。该系统的总体软件框架如图5-1 所示。图5-1 嵌入式视频采集系统软件框架图5.1摄像头驱动程序模块图像的采集是利用 OV511 数字摄像头实现的,

27、OV511 通过USB 串行总线和S3C2410相连,因此驱动程序的开发主要是对Linux 系统下USB 驱动程序的开发,OV511 的驱动独立开发难度比较大,主要是既要涉及图像采集芯片的驱动开发,还要涉及USB 的驱动的开发。在Linux2.6 内核中有OV511 的驱动程序的开源代码,根据自己的系统的开发平台进行相应,移植,重新配置编译内核等操作可以实现OV511 的驱动程序集成到Linux内核之中。5.2 图像采集模块设计图像采集模块设计的具体的流程在第2章已经介绍过,这里将根据流程图进行相应的代码实现。(1)视频设备打开struct vdIn*vf;if(vF-fd=open(vf-v

28、ideodevice,O_RDWR)=-1)exit_fatal(ERROR open v4l);(2)获取图像信息和视频信息struct vdIn*vf;/获取设备相关信息if(ioctl(vf-fd,VIDIOCGCAP,&(vf-videocap)=-1)exit_fatal(Couldnt get videodevice capability);/获取图像相关信息if(ioctl(vf-fd,VIDIOCGPICT,&vf-videopict)hdrwidthl=320;vf-hdrheightl=240;vf-formatInl=format;/设置图像格式位为JPEG 格式,大小为

29、320240。(4)捕捉视频帧数据read(videoIn.fd,videoIn.pFramebuffer,size);(5) 关闭视频设备close(vf-fd);5.3 JPEG 图像压缩模块设计JPEG 是目前网络最流行的压缩格式,可以把图像压缩到最小的图像格式,接收到图像数据后进行JPEG压缩,其主要处理过程包括:色彩模型转换、离散余弦DCT变换、重排DCT结果、量化、编码等25。编码流程如5-2 所示。图5-2 JPEG编码流程(1)色彩模型转换由于JPEG 只支持YUV 格式的数据,不支持GDB 格式,所以在进行数据处理之前,要先进行数据格式的转化,具体的转化方法如下:Y=0.29

30、9R+0.587G+0.114BU=-0.169R-0.3313G+0.5BV=0.5R-0.4187G-0.0813B其中,Y 表示亮度,U 和V 表示颜色。转换完数据要进行采样,一般进行采样的比例是2:1:1 或者是4:2:2,由于是采用隔行采样的方式,所以采样后的数据比原来减少1 倍,图像的大小自然也要比原来少一半。(2)DCT 变换DCT变换是使得图像信号在频率域上进行相应的变化,从而可以分离出高频和低频信息。然后再对图像的高频部分所谓的高频部分就是图像的细节部分进行压缩,从而可以使得图像的数据信息得到压缩26。首先将获取的图像划分为多个8*8 的矩阵。然后再对每1 个矩阵作DCT变换

31、。变换后可以得到一个频率系数矩阵,其中的频率系数都是浮点数。(3)量化量化的目的是为了把频率系数转化为整数,这是因为在变换的过程中,产生的码数都是浮点数,只有进行量化才能进行后续的操作。 在进行量化后,由于量化使得矩阵中的数值和原数据有差异,所以就造成了图片的失真,这是图片失真的最主要原因。在这一过程中,质量因子的选取至为重要。质量因子的值越大可以大幅提高压缩的比率,但是图像质量就比较差;反之,质量因子越小,图像重建质量越好,但是压缩率比越低。(4)编码色彩模型转化,DCT变换和量化都是为了编码做准备,在上述的过程中图像的压缩率并没有多少改变,编码才是真正的实现压缩率的改变。编码采用两种机制:一是0 值的行程长度编码;二是熵编码26。在JPEG 编码中,采用的方法

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1