基于ARM的视频采集系统设计.docx
- 文档编号:9031179
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:36
- 大小:1.42MB
基于ARM的视频采集系统设计.docx
《基于ARM的视频采集系统设计.docx》由会员分享,可在线阅读,更多相关《基于ARM的视频采集系统设计.docx(36页珍藏版)》请在冰点文库上搜索。
基于ARM的视频采集系统设计
湖南文理学院
课程设计报告
课程名称:
嵌入式系统课程设计
专业班级:
建智11101班学号(38位)
学生姓名:
张彤
指导教师:
王丽娟
完成时间:
2014年06月01日
报告成绩:
评阅意见:
评阅教师日期
湖南文理学院制
基于ARM的视频采集系统设计
1设计要求
1.1课题研究工作的背景
近年来,随着通信技术、微电子技术和计算机技术的飞速发展,网络带宽和存储容量得以大幅度的提高,而电子、通信、广播之间愈来愈紧密的相互交叉联系,世界进入了全数字化网络时代。
与此同时,数字多媒体技术也得到了迅速发展,已逐渐渗透至人们生活、工作和学习的各个方面,改变着人们传统的生活方式。
人们对视频会议、可视电话、数字电视广播等多媒体技术的需求越来越广泛。
然而,在多媒体技术中,尤其是数字视频领域,其信息数据量庞大,对处理能力和存储容量的要求极高,如不进行有效的压缩编码则会给通信和传输带来极大的困难,从而无法满足人们的需求。
1.2课题研究工作的现状与发展前景
根据图像处理技术发展的不同阶段,视频采集系统大致可分为三个阶段:
①模拟视频采集系统
模拟视频采集系统一般由图像摄像部分、系统控制部分(视频矩阵切换、云台和镜头控制等)和显示记录部分组成,模拟视频采集系统一般采用模拟方式传输,传输距离较短,主要应用于小范围内的视频图像采集。
②数字化本地视频采集系统20世纪80年代,随着数字化技术的发展,图像采集的方式出现了由模拟处理方式向数字处理方式的转变。
人们开始使用PC机来处理图像信号,借助计算机强大的数据处理能力与显示器的高清晰显示度,通过视频采集卡将视频信号采集到计算机中,并显示在显示器上,从而大大提高了图像的画质。
基于PC的采集系统一般在采集现场有若干个摄像机、各种检测、报警探头与数据设备,通过各自的传输线路,汇接到多媒体终端上,多媒体终端可以是一台PC机,也可以是专用的工业机箱组成的多媒体终端,除了处理各种信息和完成本地所需要的各种功能外,系统利用视频压缩卡和通信接口卡,通过通信网络,将这些信息传到一个或多个监控中心。
基于PC的多媒体采集系统功能较强,但功耗高,需要有专人值守。
③嵌入式网络视频采集系统
嵌入式网络视频采集系统以网络为依托,集中了多媒体技术、数字图像处理及远程网络传输等最新技术,受到了学术界和使用部门的高度重视。
嵌入式系统以其本身体积小,实时性高,稳定性好,支持以太网等优点,成为工控领域的新热点。
基于嵌入式技术的网络化视频监控系统有效地将嵌入式技术和视频技术结合在一起,可以很好地解决基于PC的视频监控系统中存在的问题。
目前,视频采集与压缩系统正朝着前端一体化、视频数字化、网络化和系统集成化的方向发展,而数字化是网络化的前提,网络化又是系统集成化的基础,所以,视频采集与压缩发展的最大两个特点就是数字化和网络化。
然而,国内视频采集与压缩系统的研究仍停留在基于PC的基础上,大多数系统利用国外芯片开发视频采集压缩卡,或在现有的视频采集压缩卡上开发采集软件系统,然后组成采集系统,即数字化本地视频采集系统。
虽然基于PC的视频采集系统终端功能较强,便于现场操作,但价格高昂,功耗较大,PC机端也需专人管理,对于特殊环境或空间狭小、功耗要求严格的地点,这种方式难以满足要求。
2设计的作用与目的
本课题研究对象为数字视频采集与压缩系统。
作为一种伴随着计算机技术、数字多媒体技术和网络技术飞速发展应运而生的实用处理手段,越来越受到人们的重视。
本文在详细分析国内外视频采集与压缩系统发展现状的基础上,针对基于PC平台的系统难于满足日益复杂和广泛的图像处理应用需求的现实,提出了一种基于ARM的嵌入式平台的视频处理解决方案。
该方案充分利用了嵌入式平台集成度高、功耗小、支持多任务操作系统等优点,并利用当前最先进的JPEG2000编码压缩算法,通过适当的软硬件设计,力图实现一种体积小、功耗低、一体化的视频图像采集和压缩系统,以满足我们对视频采集和压缩的需求。
本系统的研究对于促进视频采集与压缩系统的仪器化,推动相关产业的发展,具有重要的参考价值和指导意义。
3系统方案设计
3.1系统的解决方案
目前,嵌入式视频采集与压缩系统的解决方案,主要有以下三种:
①视频采集芯片+DSP处理器。
该方案中由视频采集芯片完成图像的预处理,由DSP完成图像的存储、基于MPEG-4、H.263或MJPEG标准的图像压缩、网络传输。
该方案是采用软件压缩,其灵活性高,可以根据需要修改压缩算法,有利于方案的升级,但缺点是控制不够灵活。
且DSP通常没有强大的操作系统,功能单一,不适合做系统控制。
②ARM嵌入式处理器+DSP处理器。
该方案同样采用软件压缩,具有软件压缩的优点,同时由于采用了ARM处理器,控制比较灵活,可以用做操作系统,做系统控制。
但其缺点是:
要使用ARM芯片对DSP的寄存器进行操作,设计、调试,使用较困难。
而且开发周期较长,开发难度大。
③视频采集芯片+图像压缩芯片+ARM嵌入式处理器。
该方案与前两个方案最大的区别是用图像压缩芯片来代替DSP处理器,采用硬件压缩方法。
该方案弥补了方案一和方案二的不足,既采用ARM处理器做系统控制,又可以缩短开发周期,降低开发难度。
而且硬件压缩所需编程量小,压缩速度快,压缩芯片同时提供标准视频信号接口,外围电路设计简单。
根据课题需要和综合以上三个方案的优缺点,本课题采用第三个方案,即视频采集芯片+图像压缩芯片+ARM嵌入式处理器。
3.2视频采集
模拟视频摄像头采集的信号是模拟信号,视频信号中不仅包含图像信号,还包括了行同步信号、行消隐信号、场同步信号、场消隐信号等。
因此,视频采集中的视频输入处理就显得非常重要。
传统的视频输入处理模块采用分离元件,电路非常复杂,而且可靠性差,不易调试。
现今,许多著名的半导体生产厂家将这些复杂的视频A/D转换电路集成在一块芯片内,生产出视频采集芯片,为后继的图像处理提供了极大的方便。
现在市面的视频采集芯片有PHILIPS公司的SAA711X系统产品、台湾禾瑞亚(EMPIA)公司的EM2820、美国TECHWELL公司的TW6802等。
通过调研,发现PHILIPS公司的产品综合性能最佳,性价比最高,故选择其视频采集芯片SAA7113H设计视频采集部分。
SAA7113H是飞利浦公司视频解码系列芯片的一种,非常具有代表性,在很多视频产品如电视卡、MPEG2、MPEG4中都有应用,该芯片采用CMOS工艺,通过I2C总线与PC机或有I2C总线接口的控制芯片相连构成应用系统。
其内部包含两路模拟处理通道,能实现视频信号源选择、抗混叠滤波、模数转换(A/D)、自动钳位、自动增益控制(AGC)、时钟发生(CGC)、多制式解码、亮度/对比度/饱和度控制(BCS)和多标准VBI数据解码。
SAA7113H的主要作用是把输入的模拟视频信号解码成标准的“VPO”数字信号,相当于一种“A/D”器件。
7113兼容全球各种视频标准,在我国应用时必须根据我国的视频标准来配置内部的寄存器,即初始化,否则7113就不能按要求输出。
3.3视频压缩
通常情况下,压缩可描述为通过消除存在于视频信号里的冗余成分,来减少图像或图像组的内容信息。
概括地说,压缩技术就是试图识别冗余内容,再从比特流中除去大量的此类成分。
视频压缩的目标是在尽可能保证视觉效果的前提下减少视频数据率。
视频压缩比一般指压缩后的数据量与压缩前的数据量之比,由于视频是连续的静态图像,因此其压缩编码算法与静态图像的压缩编码算法有某些共同之处,但是运动的视频还有其自身的特性,因此在压缩时还应考虑其运动特性才能达到高压缩的目标。
3.4基于ARM的嵌入式系统开发平台
要建立一个嵌入式系统开发平台,首先要根据系统的设计目标和性能指标来选择芯片,而选择芯片主要考虑其性能,功耗,专业化水平以及其成本。
综合各方面的因素,本系统选择了基于ARM7TDMI核的嵌入式微处理器。
ARM7TDMI是ARM7处理系列成员之一,是目前应用比较广泛的32位高性能嵌入式RISC处理器之一。
主要性能或特性有以下四个方面:
①指令流水线。
ARM7TDMI使用流水线以提高处理器指令的流动速度。
流水线允许几个操作同时进行,以及处理和存储系统连续操作。
ARM7TDMI使用3级流水线,因此,指令的执行分为3个阶段:
取指、译码和执行。
当正常操作时,在执行一条指令期间,其后续的一个指令进行译码、且第3条指令从存储器中取指令。
②存储器访问。
ARM7TDMI核是冯·诺依曼体系结构,使用单一32位数据总线指令和数据。
只有加载、存储和交换指令可以访问存储器中的数据。
数据可以是:
8位、16位和32位。
字必须是4字节边界对准,半字必须是2字节边界对准。
③嵌入式ICE-RT逻辑。
嵌入式ICE-RT逻辑为ARM7TDMI核提供了集成的在片调试支持。
可以使用嵌入式ICE-RT逻辑来编写断点或观察断点出现的条件。
它包含调试通信通道(DCC,DebugConmmunicationChannel),Dcc用于在目标和宿主调试器之间传送信息,嵌入式ICE-RT逻辑通过JTAG(JointTestActionGroup)测试访问口进行控制。
④指令集。
ARM7TDMI有2个指令集:
32位ARM指令集和16位THUMB指令集。
ARM7TDMI核以其自身的独特设计,如基于RISC结构、没有MMU等,使其在成本上具有先天性的成本优势,比较适合作消费类产品,且功耗很低,是手机、PDA和网络控制器的首选芯片。
ARM7TDMI系列微处理器的典型处理速度是0.9MIPS/MHz,常见的ARM7TDMI芯片系统主时钟为20MHz~133MHz,在性能上也能保证应用的稳定运行。
而在众多的ARM7TDMI核心的嵌入式微处理器中。
本文选择了SAMSUNG的S3C44B0X,此款芯片能稳定工作在70MHz的系统频率上。
选择此款芯片的主要原因是该芯片集成了许多外围设备,这对于快速开发是很有帮助的。
当然SAMSUNG的IC设计水平和芯片生产能力和市场推广能力以及它的知名度也是考虑的一个重要方面。
3.5系统总体设计结构图
图3.5视频采集与压缩系统总体设计结构
嵌入式视频采集与压缩系统,主要由视频采集与压缩模块及控制与传输模块组成。
采用ARM处理器S3C44B0X作为控制与传输模块的核心芯片,实现对系统数据的控制、外围模块的控制和管理以及数据的传输。
视频采集部分主要是接收模拟视频摄像头输入的模拟信号,并将它转换成符合一定标准的数字信号,输送到后端。
这里采用飞利浦公司生产的单片、可编程视频输入采样芯片SAA7113H,完成模拟电视信号亮度、色度信号的分离,并将模拟电视信号转换成CCIR656标准的8位YUV4:
2:
2数字信号。
S3C44B0X通过I2C总线完成对SAA7113H的控制,控制方便,接线简单。
视频压缩部分采用ADI公司的单片JPEG2000编解码芯片ADV202,编解码芯片接收8位YUV数字信号,并完成数字信号的JPEG2000压缩编码,压缩后的码流在S3C44B0X控制下缓存在SDRAM中。
视频传输部分则是通过系统中的USB设备与上位机相连,完成将SDRAM中的数据实时地传送到上位机进行保存,其接发送过程由S3C44B0X芯片控制完成。
4系统硬件设计
4.1系统硬件结构
根据一般视频系统的功能结构的划分,视频采集与压缩系统的硬件可以分为以下五个模块:
1、采集模块;2、压缩模块;3、控制模块;4、传输模块;5、其它模块。
视频采集模块采用视频解码芯片SAA7113H,在视频采集主控制器S3C44B0X和ADV202的控制下,将外部CCD采集到的模拟信号转换为数字信号。
视频压缩模块采用ADV202进行视频编码和处理,对采集的图像进行图像数据格式转换和压缩等处理。
采用S3C44B0X芯片与ADV202进行通信,同时控制SAA7113H工作。
USB接口与上位机连接,将图像数据送往上位机,进行下一步的处理分析。
系统框图,如图4.1所示。
图4.1系统框图
4.2系统硬件各模块设计
①视频采集模块设计需要考虑的因素
设计视频采集模块,首先需要考虑的是信号的A/D转换,因为采用了集成处理芯片SAA7113H,通过设置芯片的内部寄存器,可以很方便的实现视频信号的A/D转换。
SAA7113H在上电后,芯片不是立即采集模拟视频信号进行A/D转换处理和输出数字信号的,它必须由主控制器通过I2C串行总线对其内部寄存部进行初始化设置后,才能正常工作。
1)I2C串行总线。
由于主控制器S3C44B0X提供I2C总线接口,所以SAA7113H可以通过SCL、SDA信号线直接与S3C44B0X的相应管脚相连。
2)输出数据格式。
SAA7113H的VPO总线宽度为8位,输出格式为标准ITU-RBT656YUV4:
2:
2的视频数据。
SAA7113H每个有效扫描行有720个像素,在每个LLC的上升沿输出一个Byte的解码数据,每个像素需要两个LLC周期,每个像素都有自己的亮度数据Y,但是输出的数据中每两个相邻的像素共用一组色差数据CB、CR,在存储图像数据时我们可以认为每一个像素的数据由两个连续的Byte表示,但是当需要转换为RGB格式或进行其他处理时,是第2n个和第2n+1个像素共用一组色差数据CB2n、CR2n(n=0,1,2…),相应地进行正确的处理。
②视频采集模块的硬件电路设计
在使用SAA7113H进行图像采集模块设计时,只需对SAA7113H的内部结构做大致了解,重点在于如何通过I2C总线对芯片内部的寄存器进行初始化控制,使其输出所需的数字视频信号,同时还要掌握芯片的相关信号输出时序。
芯片输出的信号除了8位VPO(总线数字视频输出)外,还包括VS(场同步)、VREF(场消隐)、HS(行同步)、HREF(行消隐)、ODD(奇偶场指示)。
这些信号通过I2C总线控制SAA7113H内部子地址为12H寄存器的值,在芯片RTS0和RTS1两个引脚选择输出。
图4.2和图4.3分别为行时序图和场时序图。
在图中,HREF的上升沿表示新的有效行采样的开始,在场消隐期间该信号同样存在,HREF为低电平时指示行消隐期。
VREF是消隐信号,采用VRLN=0的工作方式,其低电平表示消隐期,场消陷期间对数据不做任何处理。
ODD是奇偶指示信号,高电平表示为奇场,低电平表示为偶场。
图4.2行时序图
图4.3场时序图
通过I2C总线对7113H内部寄存器进行初始化之后,启动A/D转换,根据行、时序图对VPO总线数据进行采样,便可以得到符合ITU-RBT.656标准的YUV4:
2:
2数据视频信号。
数据输出时序如下图4.4所示:
图4.4数据输出时序
从摄像头输出的模拟视频信号通过RCA-JACK插座连接到SAA7113H的AI22端口,其余输入端口接地,8位VPO输出接ADV202的8位数据端口,RTS0,RTS1分别接ADV202的HSYNC和VSYNC,进行硬件帧同步。
SAA7113H的硬件电路图如图4.5所示。
在设计过程中,应注意以下几点:
1)模拟视频信号通过AI22端口输入,其余的三个端口应接地,避免不必要噪声影响SAA7113H的正常工作。
2)I2C总线上要有上拉电路。
3)由于此模块同时存在模拟电路和数字电路,所以在电源设计时,要把模拟电源和地与数字电路和地隔离开,防止数字部分产生的噪声干扰模拟输入信号。
同时,要在芯片的电源部分和模拟输入端口接上耦合电容和匹配电阻,减小电磁干扰的影响。
图4.5SAA7113H的硬件电路图
4.3PCB设计
本系统主要分为三大模块:
视频采集模块、压缩模块和传输与控制模块。
其中视频采集模块主要由视频采集芯片SAA7113H组成,该模块既有模拟电路部分,也有数字电路部分;传输与控制模块主要由控制器S3C44B0X及其外围器件组成,其中S3C44B0X和SDRAM都是高速器件,尤其S3C44B0X的最高频率可达75MHz。
这些都给系统的稳定性设计带来了很大的困难,如果设计的不好,系统的抗干扰性将很差,导致整个系统的性能下降,甚至无法正常工作。
因此,抗干扰性设计就成了PCB设计中的主要解决难题。
5.3.1PCB布局
在PCB设计中,布局是第一个环节,也是一个重要的环节。
布局结果的好坏将直接影响布线的效果,因此可以这样认为,合理的布局是PCB设计成功的第一步。
首先,根据电路中元器件的大小及多少来确定PCB板的大小。
然后根据电路模块的功能,合理的进行模拟电路部分、数字电路部分和高频电路部分的布局,最后,再对每个部分的元件进行布局。
在这里要注意的是,元件在PCB板中的摆放位置应该充分考虑抗电磁干扰的问题,同一功能模块中的器件应该尽可能的集中,并且连接线要短、电路的回路应尽可能的小。
要使整个系统PCB板的布局合理,应该按以下原则进行:
①按功能和电气性能将电路分成高频/低频电路、数字/模拟电路。
②在进行某一功能模块的电路布局时,应以该模块的核心器件为中心,围线它进行布局,器件就尽量靠近放置,并调整各元器件以保证连线最为简洁;同时,调整各功能块间的相对位置使功能块间的连线最简洁。
③时钟产生器(如:
晶振或钟振)要尽量靠近用到该时钟的器件。
④布局要求要均衡,疏密有序,不能头重脚轻或一头沉。
在放置元器件时,一定要考虑元器件的实际尺寸大小(所占面积和高度)、元器件之间的相对位置,以保证电路板的电气性能和生产安装的可行性和便利性。
同时,应该在保证上面原则能够体现的前提下,适当修改器件的摆放,使之整齐美观,如同样的器件要摆放整齐、方向一致。
5.3.2PCB布线
布线是整个PCB设计中最重要的工序。
这将直接影响着PCB板的性能好坏。
在整个PCB中,以布线的设计过程限定最高,技巧最细、工作量最大。
PCB布线有单面布线、双面布线及多层布线。
布线的方式也有两种:
自动布线及交互式布线,在自动布线之前,可以用交互式预先对要求比较严格的线进行布线,输入端与输出端的边线应避免相邻平行,以免产生反射干扰。
必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。
在进行PCB布线之前,应先确定所需要的信号布线层数。
布线层数的多少直接决定系统的性能和费用,因此选择合适的布线层数至关重要。
本设计中,采用四层板设计:
中间两层为电源层和地层,正反两层为信号层。
布线时主要按以下原则进行:
①电路的走向合理。
即电路的输入/输出、高频/低频等同类型线路的走向应该是线形的(或分离),不得相互交融,交叉,防止相互干扰。
最好的走向是直线,但一般不易实现,最不利的走向是环形。
上下层之间走线的方向基本垂直,减少层间信号的电磁干扰。
②一般情况下,首先应对电源线和地线进行布线,以保证电路板的电气性能。
在条件允许的范围内,尽量加宽电源、地线宽度,最好是地线比电源线宽,它们的关系是:
地线>电源线>信号线,通常信号线宽为:
0.2~0.3mm,最细宽度可达0.05~0.07mm,电源线一般为1.2~2.5mm。
对数字电路的PCB可用宽的地导线组成一个回路,即构成一个地网来使用(模拟电路的地则不能这样使用)。
③任何信号线都不要形成环路,如不可避免,环路应尽量小,这样环面积就越小,对外的辐射就越少,接收外界的干扰也越小。
④布线时应避免产生锐角和直角,因为直角和锐角拐角处的线宽会发生变化。
同时,信号线的过孔要尽量少,过多的过孔同样会使线宽发生变化,线宽的变化会造成线路特性阻抗的不均匀,传输速度较高时会产生反射,产生不必要的辐射,同时工艺性能也不好。
5系统软件设计
5.1系统初始化程序设计
5.1.1ARM初始化过程
一个嵌入式系统要能正常工作,首先必须对系统进行初始化,即设置系统的中断、I/O口、存储方式、地址映射等等。
这段初始化程序是系统加电后运行的第一段软件代码。
它们就如同PC机BIOS中的引导加载程序,完成硬件检测和资源分配。
但在嵌入式系统中,通常没有BIOS中的引导加载程序,而是由嵌入式系统的Bootloader来完成资源分配。
简单地说,BootLoader就是在操作系统内核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
①U-Boot的初始化过程
虽然各种嵌入式系统的结构和功能差别很大,但其系统的初始化大部分都是相似的。
本设计采用的Bootloader为U-Boot1.1.1,初始化过程一般分为两个阶段:
第一阶段,通常由汇编语言编写,用于对CPU、内存等硬件设备进行初始化;第二阶段,由C语言实现,主要完成本阶段的硬件初始化,为加载操作系统做准备。
第一阶段主要代码部分如下:
1)定义入口地址。
U-Boot必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址。
2)设置异常中断向量。
中断向量表位于从0x0地址开始、连续8×4字节的空间内。
当中断发生后,ARM处理器便强制把程序计数器(PC)指针置为向量表中对应中断类型的地址值,使程序跳转到相应的异常中断处理程序执行。
3)设置CPU的速度、时钟频率及终端控制寄存器。
根据CPU体系结构和具体的硬件配置来设置合适的CPU的速度、时钟频率及终端控制寄存器。
4)初始化内存控制器。
将标号为SMRDATA处的值通过13个寄存器r1-r13赋予从0x01c80000开始的寄存器中,用于设置总线宽度与等待控制寄存器、BANCONn控制寄存器。
5)将ROM中的程序复制到RAM中。
6)初始化堆栈。
由于ARM处理器有7种执行状态,因此对程序中需要用到的每一种模式都要定义一个堆栈地址。
方法是改变状态寄存器(CPSR)内的状态位,使处理器切换到不同的状态,然后给SP赋值。
7)转到RAM中执行,该工作可使用指令ldrpc来完成。
第二阶段主要代码部分如下:
1)调用一系列的初始化函数。
这些初始化函数主要是进行CPU相关设置、电路板相关设置、中断设置、初始化环境变量、初始化串口等等。
2)初始化Flash设备。
3)初始化系统内存分配函数。
4)进去命令循环(即整个boot的工作循环),接受用户从串口输入的命令,然后进行相应的工作。
②U-Boot的移植
移植U-Boot的首要条件是熟悉系统的硬件资料,根据系统的硬件情况来修改相关的参数。
首先在U-Boot的board目录中选择一款与本设计最相似的硬件系统,以它为模板进行相关参数的修改。
③S3C44B0X的启动流程图
S3C44B0X的启动流程图如图5.1所示。
图5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 视频 采集 系统 设计