基于Xscale和Linux的摄像系统研究和实现_第1页
基于Xscale和Linux的摄像系统研究和实现_第2页
基于Xscale和Linux的摄像系统研究和实现_第3页
基于Xscale和Linux的摄像系统研究和实现_第4页
基于Xscale和Linux的摄像系统研究和实现_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、通信工程嵌入式系统结课论文基于xscale和linux的摄像系统研究和实现 学生姓名学 号1 绪论1.1视频监控系统的综述1.1.1视频监控系统的出现随着多媒体应用技术的飞速发展,人们越来越倾向于在日常生活、工作和学习中使用多媒体手段来享受其带来的便利性,在银行、商场监控、城市交通管理、酒店等安全保卫方面,视频监控系统的市场需求量大幅度的上升,市场上已经出现了多种图像采集和传输的产品。这些产品有的是基于传统的模拟视频监控系统,有的是以pc机为平台,配合图像采集卡实现图像压缩的数字视频监控系统。采用这两种方法构成的视频监控系统,一台摄像机要使用一根同轴电缆将视频信号送给图像采集卡或录像机,所以网

2、络规模不能过大,否则会造成线路非常复杂,甚至带来施工的困难。目前,网络数字视频监控系统的具体实现为:先对图像信号数字化,并进行数据压缩,再将压缩后的数据传送给主控机,然后把数据按tcpip协议在以太网上传送,pc机可以向主控机发送传送请求并进行图像的再现。这样就构成了一个能满足大部分视频监控需要的价格适当的完全数字化的网络视频监控系统。为了实现这个目标,可以使用dsp芯片来做图像的压缩处理,选择arm芯片实现网络传输,但是两个芯片实现的系统毕竟显得臃肿,鉴于目前芯片技术的快速发展,采用主频达400mhz的pxa255处理器来进行图像的压缩编码以及实现网络传输的工作是可能的。112网络数字视频监

3、控系统的构成整个网络视频监控系统可以分为图像采集模块、图像数据压缩和网络传输模块、图像再现模块。其中图像压缩模块负责对采集的数据作压缩处理,pxa255台,则运行嵌入式操作系统,作为系统控制的一个中间控制单元,并将压后的图像数据通过互联网络进行传输。另外在客户端需要运行解码程序,做图像的再现。图1为整个系统实际应用的示意图。图1网络数字视频监控系统构成框图1.2个人互联网用户架构1.2.1视频监控系统的出现pca应用子系统是基于strongarm或xscale处理器的可编程的计算环境。它在嵌入式操作系统支持下,能够管理用户输入输出设备,扩充设备内存管理与接口、电源管理以及与通信子系统的交互通信

4、资源。pca通信子系统由一个或多个处理器构成,主要完成通信协议的处理任务。为了提高实时通信性能,可以添加数字信号处理器dsp(intel的新型msa),以加速协议的逻辑运算与密集的信号处理能力,提供必需的基带处理能力。1.2.2 xscale微架构处理器xscale架构处理器是新一代为无线手持式应用产品开发的嵌入式处理器,是pca开发式平台架构中的应用子系统与通信子系统中的嵌入式处理器。xscale核与strongarm-f4,仍采用arm v5te架构,是intel公司的strongarm的升级换代产品。它具有高性能、低功耗等特点.xscale架构处理器采用78级超级流水线。支持动态跳转预测

5、和分支目标缓冲器btb(branch target barfer)。同时,它还拥有杰出的多媒体处理技术,新增加了dsp功能的40位乘累加器,和特定dsp型协处理器cp0。存储器管理部件mmu是xscale架构处理器的又一特出功能,可以识别可快存和不可快存(cacheable or noncacheable)编码,允许写回和写直通、允许数据写分配策略,支持xscale扩展的页面属性操作。同时。它还拥有32k字节的指令cache$口数据cache容量,并新增了2k字节小型数据cache和小型指令cache,是一款性能优越的处理器。1.3嵌入式操作系统的介绍嵌入式系统是把计算机直接嵌入到应用系统之中

6、,它融合了计算机软、硬件技术、通信技术和半导体微电子技术,是信息技术it(information tehnology)的最终产品。1.3.1嵌入式操作系统的特点嵌入式系统早期主要应用予军事及航空航天等领域,以后逐步广泛地应用于工业控制、仪器仪表、汽车电子、通信和家用消费类等领域。随着internet的发展,新型的嵌入式系统正朝着信息家电ia(information appliance)和3c(computer、communicationconsumer)产品方向发展。面向嵌入式系统的操作系统有以下的特点:编码体积小: 适合在嵌入式系统的有限存储空间中运行。面向应用,可裁剪和移植、可进一步缩小编

7、码体积、有效地运行,故此类os也可称为特定应用操作系统asos(application specific operating system)。实时性强:这也是嵌入式系统的特征之一。因此,嵌入式操作系统有时也称为实时多任务操作系统rtos(real time operating system)。可靠性高:嵌入式系统可无需人工干预独立运行,处理各类事件和故障。1.3.2嵌入式linux操作系统随着集成电路规模的不断提高,涌现出大量价格低廉、结构小巧、功能强大的cpu,给嵌入式系统提供了丰富的硬件平台。目前限制嵌入式系统发展的瓶颈突出地表现在软件方面。比较著名的嵌入式操作系统有vxwork、psos

8、、linux、neculeus和windows ce等,但这些商业产品都价格昂贵,并不适合中低端的嵌入式系统和规模较小的公司使用,嵌入式linux正是在这样一种市场环境下诞生的。linux应用于嵌入式系统另外一个显著的优势是可以使用主机模拟的环境进行开发。因为在嵌入设备上运行的linux系统和普通的桌面linux系统几乎完全相同,这对应用程序的开发提供了很大的便利1。linux内核提供对多种处理器的支持,目前的内核支持intel x86、arm、mips、m68k、powerpc、alpha、ia 64、s390、superh等处理器体系结构,很多处理器都可以应用在嵌入式领域。linux可以支

9、持实时扩展,目前有数个版本的实时linux系统。linux还具有的网络功能,满足嵌入式系统对网络越来越多的需求。同时,嵌入式linux也可以使用在桌面系统广泛应用的图形界面,具有更好的交互性。2嵌入式linux系统的集成开发环境2.1 linux系统下的集成开发环境2.1.1嵌入式linux操作系统sitsang平台有一套完整的嵌入式linux环境,包括引导程序redboot、linux内核和文件系统的源代码和二进制映像,以及开发工具链。通常,arm linux主要有图2中的三个部分构成。图2 arm linux软件的组成部分引导程序负责初始化硬件平台,加载内核,并启动linux。这部分的功能

10、相当于bios。linux内核是一体结构,除了微内核外还包括各种服务和驱动程序。文件系统包含应用程序,模块,配置文件,图形界面,库等。文件系统的内容与一般linux系统没有根本区别。arm体系嵌入式linux的开发工具主要包括2:arm体系的gcc编译器、g1ibc库和binutiis工具集;arm体系的gnupro编译工具集;linux源代码;引导程序、应用程序等源代码。2.1.2嵌入式系统的软件开发过程嵌入式系统的软件开发过程中,每一个源文件首先都必须被编译或汇编成一个目标文件,然后将所有产生的目标文件链接成一个目标文件,即为可重定位程序;最后,进行重定址把物理存储器地址指定给可重定位程序

11、,产生一个可以在嵌入式系统上的包含可执行二进制映象文件。交叉编译或交叉汇编输出目标文件,这个文件的结构通常是按照标准格式定义的,如“通用对象文件格式”(coff)和“扩展的链接器格式”(elf)。大多数目标文件以一个描述后续段的头部开始,每一段包含一块或几块源于源文件的代码或数据,这些被编译后重新组合至相关的段中,如所有代码块被收集至text段中已初始化的全局数据被收集至data段中,而未初始化的全局变量则收集至bass段中。此外,目标文件中还有一个符号表,记录了源文件引用的所有变量、函数名以及位置。定址器把可重定位程序转换到可执行的二进制映象文件。在gnu工具中,定址器的功能是在链接器中实现

12、的。嵌入式系统的软件开发过程如图3所示。图3 嵌入式系统的软件开发过程最后,还有一个非常有用的命令man。有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得着函数在哪个头文件中进行了说明,这个时候我们就可以使用man求助系统。2.1.3 应用程序testcase和testwizardsitsang软件资源中提供的裸机应用程序是testcase和testwizard,它们是用来测试sitsang的硬件的工具。在硬件开发调试阶段对硬件进行测试,需要测试程序尽量简单,避免受到其他设备或程序的影响,所以测试程序都只是用了最少的系统资源,一般具有完整的功能性,而在性能上却不是最优的。t

13、estcase和testwizard都是硬件测试程序。testcase是一组程序,每一个程根据arm体系结构,cpu会在重起时从0地址开始执行程序,裸机应用程序的起始位置就是0地址。裸机应用程序需要首先初始化硬件平台,然后才能运行自己的应用逻辑。初始化代码都是从汇编代码开始,初始化程序的主要工作流程如图4。就testcase和testwizard而言,需要跳转到c代码main函数的初始化汇编程序mains,进入c代码以后,程序便可以执行自己的应用程序了。例如startup testcase的c代码主程序就是反复调用util_testcpldled ,将cpld控制的led进行有规律的闪烁。图4

14、初始化程序工作流程图3嵌入式linux系统的移植31 sitsang平台的发布资源对于sitsang开发评估平台的开发,intel公司在其发布的cd中提供用于移植的源代码和可执行文件,以及开发工具链。由于在sitsang平台上可以实现多种配置方案,针对不同的配置方案需要不同的引导程序,linux内核和文件系统。由于我们最常用的是嵌入式linux双区块移植方案,对于单区块移植方案是用较少可执行镜像文件可以直接下载至sitsang平台中,但是如果希望定制引导程序,linux内核和文件系统,那么就必须重新编译相应文件的源代码。所在发布的cd中还包含了引导程序,linux内核和文件系统的源代码、补丁以

15、及所需的开发工具链。32 sitsang平台上嵌入式linux操作系统的移植321安装开发工具链在linux操作系统下安装交叉编译环境的开发工具链,所需要的软件包文件是xscalearmlinuxtoolchaintgz和gnuprobinglibc224tgz,这两个文件也可以从intel发布的cd中获得,关于开发工具链的具体安装步骤如下所示。步骤l:解压并安装工具包xscalearm一1inuxtoolchain:步骤2:在路径设置中加入相关的用户路径322嵌入式linux操作系统的移植顺序由于在sitsang平台上linux操作系统既可以安装在单区块上,也可以安装在双区块上,所以在安装时

16、对于不同的方案flash地址的划分是不同的,下面简单介绍双区块方案的flash地址分配。在flash bankl最开始的1m空间分配用于启动引导程序,目前使用的空间只有256k,其它的部分暂没有使用。接着的1m空间用于压缩内核的存放,文件系统则分配在其它的空间,包括flash bankl剩余的空间flash bankl空间(不包括最后的512k空间)。如果使用单区块的方案,flash bankl则不使用,只使用flash bankl中剩下的部分。下面介绍嵌入式linux操作系统的移植顺序。首先,需要安装开发工具链,这是所有程序开发的基础。然后,根据源代码编译相应的可执行代码镜像文件。最后,将这

17、些文件下载到目标机上。在宿主机上定制目标机的linux系统,编译制作二进制映像的步骤如图5所示。图5 生成1inux系统程序的步骤323嵌入式linux操作系统的移植在sitsang平台上安装嵌入式linux操作系统,首先要求在主机上已经安装了redhat或者mandrake之类的操作系统。在移植嵌入式linux操作系统之前先要求连接好主机和sitsang平台间的jtag线和网线,当主机系统启动后以管理员(root)权限的身份登录后便可以进行嵌入式linux操作系统在sitsang平台上的移植了。关于可执行文件的镜像,可以直接利用intel发布cd上的资源,也可以自己从源代码定制。33嵌入式w

18、indows ce操作系统的移植331嵌入式windows ce系统简介microsoft windows ce是一个多平台的可裁剪的32位嵌入式操作系统。它既适用于工业设备的嵌入控制模块。也适用于消费类电子产品,如电话、机顶盒和掌上电脑等。windows ce的进程间通信支持com和msmq,它们都与windows nt和windows 98中相应的服务或功能兼容。windows ce的安全服务有security support provider interface(sspi),密码,智能卡等。另外,windows ce的互联网服务主要包括一些实现microsoft iis特性的嵌入式web

19、服务器。windows ce有限地支持关于用户界面的win32 api,这主要是为了适应使用windows ce系统的显示设备。332定制windows ce从系统的角度开发windows ce,首先需要创建一个定制的windows ce操作系统。创建一个windows ce的流程包括:对操作系统进行裁剪,配置组件中,并修改相关的配置文件。除kernel外,其余各个组件都是可选的。建立windows ce操作系统的image文件。如果目标系统本身也是定制的,此时需要开发oal层(oem adaptationlayer)和该系统的windows ce力日载程序。将建立的image文件下载到目标设

20、备上,进行调试,从而得到了一个定制的稳定的windows ce操作系统。为了方便应用程序开发,在定制的windows ce操作系统基础上可以发布相应的embedded visual c十+和embedded visual basic的软件开发包(sdk)供软件开发者使用。333 windows cenet系统的移植为了成功的在sitsang平台上安装windows cenet镜像,硬件设施需要一根连接sitsang平台和主机的jtag线缆,以及一根以太网双绞线在下载之前,需要在主机和sitsang平台之间连接jtag线缆和双绞线,并以管理员的身份登录主机系统。具体的实现步骤如下。步骤1:通过j

21、flash,在flash的0地址下载ebootnbo。步骤2:在主机上运行超级终端设置超级终端,并且重新启动sitsang平台。具体的超级终端的设置规格与linux操作系统下相同,步骤3:在超级终端中选择d下载镜像文件,然后在主机上运行eshell。步骤4:在eshell中从设备里面选中xscibdi,并且按下ok对话框,并遵从eshell的提示指令即可完成下载任务。下载结束后,windows cenet在sitsang平台上就可以顺畅的运行了。4摄像系统的硬件设计和介绍41网眼v2000摄像头介绍本论文实验中使用的摄像头是网眼系列的摄像头v2000,该产品是基于usblo接口的摄像头,产品的

22、性能比较优越,图像的传感器为35万像素cmos,可以提供640x480格式高清晰静止图像捕获模式,而我们的pxa255平台也是使用的640x480像素的液晶显示屏。此外,该产品的cif(352x288)格式帧率可达30fps,真正的实时视频捕获。而vga(640x480)格式帧率也可达到10-15fps。42 pxa255系统结构概述421 pxa255总体结构sitsangpx255开发评估平台以pxa255处理器为核心,采用256脚17x17mbga封装,具有32位总线,内核工作频率最高达400mhz,配备了大量实用的外设资源,端口ffuart,blue tooth uart,irda,s

23、si,lcd,usb client,compact flashii,ac97 audio,mmcsd等,能够充分发挥出pxa255 xscale微架构处理器的优势,形成一个良好的pxa255开发环境。pxa255性能高,功耗低,主要应用于upda,通讯、无线pc等领域的开发。用户可以在sitsang平台开发各种实用功能3。422 sitsang平台上摄像系统的最小硬件构成由于sitsang平台配备了大量实用的外设资源,因此在实现摄像系统时只需要使用到其中的部分资源,下面将介绍本论文摄像系统的最小硬件构成4。(一)、存储器sitsang开发板配置了较大的存储器,有64m字节sdram和64m的闪

24、存flash。sdram由两片samsung的k4s561632ctc75芯片组成,共64m;闪存flash由四片intel e28f128j3a-150 strata flash存储芯片组成,也是64m。(二)、sitsang开发板寄存器sitsang平台上安装了这么多设备,处理器pxa255如何得到这些设备的数据,以及如何控制这些设备呢?其实,这主要通过一些寄存器来实现,这些寄存器和sitsang平台上的设备直接相关,被称为板级寄存器(board level registers)。(三)、中断控制器pxa255有22个中断源。中断控制器只支持单优先级中断,但各中断可设置irq或fiq,而f

25、iq优先级高于iro。中断控制器可分为两部分;第一部部分包含中断层蔽寄存器(icmr)和中断状态寄存器(icpr)。已发生中断可由优先级寄存器(iclr)设置为irq或fiq分别放于已发生iro(icip)和已发生fio寄存器(icfp)。(四)、lcd控制器应用处理机的lcd控制器支持单屏或者双屏显示。编码的象点数据存放于外部存储器的帧缓冲器中,lcd控制器的专用双通道dma控制器把数据从外部存储器取出,装入先进先出(fifo)缓冲器中。此外,lcd控制器使用25616位数据位的编码像点调色板,在每个帧缓冲器单元为16位时,不使用调色板ram(五)、usb接口usbhost口(有时称为usb

26、ad)则是sitsang平台作为usb的主设备,用于连接usb外设,如键盘,鼠标,摄像头,数码相机等。两个usb-host口,可以支持树状连接,大大扩展了sitsang平台的连接外设的能力,为进步拓展应用打下良好基础。本项目中充分使用了这两个usbhost口,一个用于usb鼠标的使用,另一个用于网眼usb摄像头的使用。(六)、dma控制器pxa255的dma控制器(dmac)有16通道dma,每个由四个32位寄存器所控制。每个通道可设置为任一个内部或外部设备执行流过(flowthrough)传送。dmaci作于两种方式:描述器取入方式和非描述器取入方式。不同通道可同时使用两种方式。在从一种方式

27、切换为另一种方式时必须停止该通道。对于数据传送,内部外围器件通过外围总线连接至dmac,使用流过数据传送。dmac也能执行存贮器至存贮器的流过数据传送。直接连至外部数据脚上的外部器件,如辅助扩展芯片,必须使用流过数据传送。对流过传送方式,数据通过dmac,然后锁存至目的缓冲器存贮器。此外,dmac可读出任何存贮器,但不能写fiash。5设备驱动程序的设计和实现51 linux设备驱动程序介绍linux设备驱动程序在linux的内核源代码中占有很大的比例,源代码的长度日益增加主要是驱动程序的增加。linux的网络系统主要是基于bsd unix的socket机制。在系统和驱动程序之间定义有专门的数

28、据结构进行数据的传递。系统里支持对发送数据和接收数据的缓存,提供流量控制机制和对多协议的支持。52基本驱动程序的实现521 sitsang平台的定义文件sitsang平台的第三个补丁diff-2419-rmk4-pxa2-alvinl的功能,就是添加了对sitsang的支持,包括板级资源、初始化、驱动程序等,下面将简单介绍几个重要的文件5。板极寄存器定义在文件includeasm-armarehpxasitsangh中,主要定义了sitsang平台上各种板极寄存器对应的地址及其寄存器的对应位。板极中断定义在文件includeasmamarch pxairqsh中,主要介绍了各种中断的使用方法。

29、平台特殊文件:archarmmach-pcasitsangc和1edssitsangc。在编写sitsang程序的时候,这些文件对驱动程序的编写是非常重要的甚至是必不可少的,另外,在编写驱动程序时,还有一个非常重要的资源,就是裸机下的测试程序。522设备驱动程序的实现设备驱动程序通常被分成分别叫作下半部和上半部的两层。上半部完成与内核的通信工作,而下半部在需要实际被访问硬件时调用。通过把设各驱动程序分成不同的层次,很容易把实时性要求不高的部分问要求高实时性的部分隔开。当系统调用发出时,当前的任务继续执行,但它的状态被改为特权的内核模式进行操作,如果内核代码决定该调用应当由我们编写的设备驱动程序来处理,它就调用我们预先注册的设备驱动程序的相应函数。这些函数合起来就是设

温馨提示

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

评论

0/150

提交评论