《毕业论文(设计)-基于vxworks 的视频采集系统的设计与实现14857》由会员分享,可在线阅读,更多相关《毕业论文(设计)-基于vxworks 的视频采集系统的设计与实现14857(8页珍藏版)》请在金锄头文库上搜索。
1、专业可行性报告欢迎光临中国最大的电子工程师应用网站欢迎光临中国最大的电子工程师应用网站 网址:网址:基于 VxWorks 的视频采集系统的设计与实现上海交通大学图像通信与信息处理研究所()芮雨 余松煜摘要 利用 Bt848 在 Intel x86 平台和实时操作系统 VxWorks 上实现了视频采集系统。Bt848 高度集成的特性使其外围电路极其简单,在保证性能的前提下便于硬件的设计和附加功能的 集成。VxWorks 优异的性能和方便的接口便于编写设备驱动程序和应用软件。关键词 视频采集 Bt848 VxWorks PCI 设备驱动程序-1 引言多媒体通信技术的发展为信息的获取和传输提供了丰富
2、的手段,视频数据是其中不可缺 少的重要组成部分,而视频数据的获取离不开视频采集系统。目前,视频采集系统的应用极 为广泛,许多产品和设施,例如远程监控、可视电话、会议电视等等,都需要采集视频信息。 而且,随着 PC 机的普及,人们可以直接利用 PC 机进行视频采集,采集到的视频数据经过 处理后保存在本地或者发送到远方。由于视频的采集、处理和传输都在一台 PC 机上完成, 因此可以大大降低系统的复杂度和价格。我们设计的视频采集系统是基于 Intel x86 平台和实时操作系统 VxWorks,由视频采集 卡和驱动程序两部分组成,如图 1 所示。视频采集卡完成视频数据采集和格式转换,驱动程 序在系统
3、启动时对硬件进行初始化,在系统启动之后实现硬件和应用软件之间的数据交互。 考虑到视频的数据量极大,视频采集卡通过 PCI 高速总线与计算机相连。 2 视频采集卡的设计图 1 桌面视频采集系统结构框图为了将由摄像头输入的模拟视频转换为计算机能够接受和处理的数字视频,需要经过模 数转换、同步提取、亮色分离等多个步骤。而为了将数字视频传送到 PC 机的内存中,还需 要一定数量的 FIFO、总线接口和相应的控制逻辑。这原本是一个比较复杂的过程,但是随 着半导体技术的发展,各半导体生产厂家通过不断创新和改进,目前已经能够在单个芯片上 实现所有这些功能。Conexant 公司的 Bt848 就是这样的一种
4、芯片,图 2 给出了其功能框图。专业好文档欢迎光临中国最大的电子工程师应用网站欢迎光临中国最大的电子工程师应用网站 网址:网址:图 2Bt848 功能框图对于在 PCI 总线上进行 NTSC/PAL/SECAM 视频捕获的应用来说,Bt848 是一种完整的 低价格解决方案。作为一种总线主控设备,Bt848 不需要任何本地缓存来存储视频像素数据, 这样就极大地降低了硬件价格。Bt848 能够充分利用基于 PCI 总线的系统的高带宽和固有的 多媒体功能,并且能够与其他多媒体设备实现互操作,这样就能够以模块的方式在系统中添 加视频采集和叠加功能,而花费甚少。Bt848 的使用与 PCI 系统总线的拓
5、扑结构无关,可以 用于各种系统总线的组织结构,既可以直接集成在主板上,也可以作成插卡插在 PCI 总线插 槽内。Bt848 的主要特点是:与 PCI2.1 规范全兼容,拥有辅助的 GPIO 数据端口和视频数据端 口,支持的图像分辨率高达 768576,支持复杂的裁剪功能,零等待状态的 PCI 突发写操 作,支持场/帧屏蔽以减少带宽,在输出方面支持多种 YCbCr 和 RGB 像素格式,支持 NTSC/SECAM/PAL 模拟输入,可以使用垂直/水平方面的插值滤波将图像尺寸缩小到图标大 小,具有多个复合和 S 视频输入,支持奇偶场不同的目的地址,支持奇偶场不同的颜色空间 /缩放因子,支持 225
6、 个颜色调色板的视频映射,具有用于图文电视的 VBI 视频捕获功能。 这些特点使 Bt848 适用于 PC 电视、桌面可视电话、运动视频捕获、静止图像采集和 VBI 数 据服务等应用领域。Bt848 高度集成的结构使其外围电路极其简单,也便于在同一块插卡上增加更多的功能, 例如视频数据加密。视频采集卡的结构如图 3 所示。一块 Bt848 最多支持 4 路模拟视频输入, 其中 3 路是复合视频信号,1 路是 S 视频信号。4 路视频输入在 Bt848 内部完成复用。Bt848 通过内部的 PCI 接口直接与 PCI 总线相连。单片机通过 FIFO 与 Bt848 的 GPIO 端口相连, 单片
7、机软件与主机上的软件一起实现视频采集系统的加密。控制逻辑控制 Bt848 和 FIFO 的 时序,同步 PCI 总线、Bt848 与单片机的操作。 图 3 视频采集卡结构框图专业好文档欢迎光临中国最大的电子工程师应用网站欢迎光临中国最大的电子工程师应用网站 网址:网址:3 驱动程序的编写应用程序必须通过驱动程序才能与硬件进行数据通信,而驱动程序的编写又是与操作系 统密切相关的。本系统所使用的操作系统是实时操作系统 VxWorks。VxWorks 是由 WRS(Wind River Systems)公司开发的一套具有微内核高性能可伸缩的 实时操作系统,支持广泛的网络通信协议,并能够根据用户的需求
8、进行组合,其开放式的结 构和对工业标准的支持使开发者只需做最少的工作即可设计有效的适合于不同用户要求的实 时操作系统。VxWorks 的特点主要有:微内核结构(最小结构8KB) ,高效的任务管理,灵 活的任务间通信,微秒级中断处理,符合 POSIX1003.1b 实时扩展标准,满足 TCP/IP 网络标 准,灵活的从 ROM、磁盘或网络的引导能力,多处理器支持,快速、灵活的 I/O 系统,MS- DOS 和 RT-11 文件系统,完全符合 ANSIC 标准,多于 1100 种功能例程。除了性能出众的 操作系统之外,WRS 公司还提供了优秀的实时操作系统开发工具 Tornado。Tornado
9、由三个 高度集成的部分组成:Tornado 工具,是一整套强有力的交叉开发工具;VxWorks 运行时系 统,是运行在目标机上的高性能、可裁剪的实时操作系统;连接目标机和宿主机的通信选项, 如以太网、串行线路、在线仿真或 ROM 仿真等。Tornado 能够支持几乎所有的工作平台和 目标处理器,所提供的工具可用于所有目标机,并具有两种调试模式(系统和任务模式) 。 除了基本的功能和开发工具,Tornado 还具有先进的系列网络产品,极大地扩展了 Tornado 的网络特性并增强了嵌入式微处理器的网络特性。VxWorks 的所有机制和功能都是基于“C 子程序”这种简单机构,即:VxWorks 的
10、所有 功能都是由 C 程序库提供的,任何 C 程序都能够从 Tornado 的命令和调试环境中交互式地 调用,任何 C 程序都能够作为 VxWorks 的一个任务从 Tornado 主机工具或者应用程序中产 生,C 程序能够与中断、看门狗定时器或辅助定时器相连。VxWorks 的这种统一性使 Tornado 成为一种有效的开发系统,因为用户不必再编写特殊的代码来与系统陷阱接口,也 不需要进行特殊的处理来建立一个任务,更不需要编写特殊的用户接口程序或交互式的测试 程序来测试新代码,用户只要编写子程序就能够完成所有这些工作。VxWorks 的这些特性为编写应用程序和设备驱动程序提供了极大的便利。在
11、 VxWorks 下, 设备驱动程序既可以嵌入内核随系统一起启动,也可以作为可加载模块在系统启动之后运行。 前一种方式需要修改并重新编译内核,这需要熟悉内核的结构,实现起来比较困难。而后一 种方式则比较简单,与编写一般的应用程序类似。但是,无论采用哪种方式编写驱动程序, 其基本结构是相同的,如图 4 所示。专业好文档欢迎光临中国最大的电子工程师应用网站欢迎光临中国最大的电子工程师应用网站 网址:网址:PCI 总线是一种即插即用的总线,在 BIOS 和操作系统的支持下,能够自动地为设备分配 合适的内存映射地址、I/O 端口和系统中断控制器的输入(IRQ) 。Bt848 支持两类地址空间: 配置地
12、址空间和内存地址空间。配置地址空间包括预定义的 PCI 配置寄存器,而内存地址空 间包括 Bt848 使用的所有局部寄存器。初始化 PCI 总线就是设置 PCI 配置空间所定义的寄存 器,实现主机与 PCI 局部总线之间的接口,其过程是:首先在系统中根据设备标识 (Bt848)和供应商标识(Brooktree)找到设备的位置,确定其总线号、设备号和功能号; 然后根据总线号、设备号和功能号确定设备的基地址和 IRQ,这个基地址就是 Bt848 局部寄 存器的起始地址,而 IRQ 在连接中断服务程序时使用;接着将设备的局部寄存器映射到系 统内存中,供以后设置局部寄存器使用;最后设置命令寄存器以控制
13、 Bt848 产生和响应 PCI 周期的能力,例如使系统能够响应对内存空间的访问,使 Bt848 成为总线操作发起的一方, 使系统报告校验错等等。 Bt848 的中断屏蔽寄存器 INT_MASK 中的设置决定了系统能够响应哪些中断,中断服务 程序为不同的中断源提供相应的处理代码。中断服务程序的编写必须遵循一定的规则,最主 要的一点就是不能造成系统阻塞而影响系统性能。中断服务程序应该尽量简洁短小,使其能 够尽可能快速地返回。在中断服务程序中不能有运行时间过长的代码,也不能出现对某些共 享资源进行某种访问(例如试图获取信号量)的代码。编写完中断服务程序之后,利用初始 化 PCI 总线时获得的 IR
14、Q 和操作系统提供的函数将中断服务程序与中断矢量连接起来。 图 4 设备驱动程序流程图Bt848 的局部寄存器驻留在 4KB 的内存寻址空间中,必须通过 PCI 总线才能访问。通过 设置相应的寄存器,就能够控制 Bt848 的行为。通常,需要设置的内容包括:输入电视信号 制式(PAL 或 NTSC) ,输入信号源(MUX0、MUX1 或 MUX2) ,行同步,场同步,输出格 式(CCIR601、CIF 或 QCIF) ,图像放大或缩小参数,图像滤波参数,亮度、色度和对比度 调节等等。t848 中集成的 DMA 控制器非常独特,它实际上是一个小 RISC 处理器,其运行的指令 (即 RISC 程
15、序)位于主机内存中并由 Bt848 的设备驱动程序提供。由于这种结构能够将采 集到的视频数据传输到内存中,从而大大地方便了视频采集系统的实现。在这种结构中, DMA 能够动态地逐行改变目标内存地址,这就使用户能够将每一帧视频数据分成不同的部 分放在多个内存区域中。RISC 程序的起始地址放在 Bt848 的 RISC 程序起始地址寄存器 RISC_STRT_ADD 中。Bt848 提供的 RISC 指令包括:写入 WRITE、略过 SKIP、同步 SYNC 和跳转 JUMP,利用这些指令就能够控制数据流,得到所需要的数据。RISC 程序的 基本流程是:帧同步写入奇场偶场同步写入偶场奇场同步跳转
16、至写入奇场。专业好文档欢迎光临中国最大的电子工程师应用网站欢迎光临中国最大的电子工程师应用网站 网址:网址:系统启动是通过设置 GPIO 和 DMA 控制寄存器中的 RISC 使能位和 FIFO 使能位来实现。 将 RISC 使能位置为 1 使 DMA 控制器能够处理 RISC 指令,将 FIFO 使能位置为 1 使数据 FIFO 有效。在将这两位置为 1 后,视频采集开始进行。在整个系统中,由于视频采集的速度通常高于应用软件取得数据并处理的速度,为了保 证视频数据的连续性,采用了三缓存结构。缓存 A 是 Bt848 视频采集的目标地址,在 RISC 指令的直接控制下,采集的数据都先存放在这个缓存中。缓存 B 和 C 组成“乒乓”式结构, 循环往复使用:当某一帧数据采集完毕后产生中断,