基于嵌入式计算机系统的数字视频监控系统的开发研究.pdf
《基于嵌入式计算机系统的数字视频监控系统的开发研究.pdf》由会员分享,可在线阅读,更多相关《基于嵌入式计算机系统的数字视频监控系统的开发研究.pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、http:/-1-基于嵌入式计算机系统的数字视频监控系统的开发研究 马枫,张庆英,江霞 武汉理工大学 物流工程学院 湖北 武汉(430063)摘 要:摘 要:数字视频监控设备以其较好的图像质量和越来越低的价格,被各个领域广泛采用。本文介绍了基于市场上主流芯片的数字监控设备的一般开发过程,其中一些主要的细节问题,以及其他扩展应用。关键词:关键词:ARM DSP 视频监控系统 ARMLinux 1 系统设计平台概述系统设计平台概述 1.1 硬件平台选择 1.1 硬件平台选择 数字视频监控系统包括,摄像头、A/D 转换、逻辑电路、系统控制、视频压缩等环节。其中摄像头、A/D 转换、逻辑电路转换等设备
2、伸缩性不大,重点在于系统控制和视频压缩的选择。由于数字视频监控系统对网络功能的需求,常用于控制的微控制器是不可选择的,需要新的对网络支持较好的嵌入式处理器。其中,ARM 系列占据了 75左右的市场份额,因此控制芯片的选择基本上是不同型号 ARM 芯片的选择。目前可以选择的系统如下:(1)ARM 芯片与 DSP 共同工作的方式。以 ARM7TDMI 或者 ARM920T 等中低端 ARM 芯片作为系统的主控制芯片,以 C6000 系列 DSP 芯片为视频压缩处理器。这样弥补了 DSP 在控制方面的不足,也最大限度的降低了成本,得到了广泛采用。1 需要特别提出 DSP,根据其设计也能单独完成视频系
3、统全部功能,但其网络应用并不稳定。并且该处理器指令集相当特殊,大多数成熟嵌入式操作系统都不能在其上运行;所以,单独以 DSP 作为主芯片需要编写 RTOS,程序移植性差。因此,DSP 一般被作为协处理器,专门处理复杂运算,如 FFT、卷积等等。(2)某些高端 ARM 芯片的单独工作,如 XSCALE(PXA270)等,可以独立作为全部系统应用。该类芯片具有很高的主频,和专门对应多媒体应用的指令集(MMX),可以同时完成多媒体和控制功能;部分高端 ARM 芯片内置了 2 个核,用以处理大负荷运算。该类产品开发相对容易,但成本太高,一般仅出现 PDA 和高端便携多媒体设备中。(3)另外,TI 等
4、DSP 厂商最新产品中将 ARM 内核、DSP 核集成在一起,成为了一片多核的芯片,即性能卓越的 OMAP 系列,可以认为是 ARMDSP 的延续,但其相对较高的价格,使它更多的还是采用于个人数码消费领域。下面以主流 ARMDSP 方式为例,详细分析数字视频采集及压缩系统。由 CCD 等设备采集的模拟信号经过 A/D 转换器后,经过一些逻辑电路(CPLD、FPGA)后成为CIF 或 QCIF 等未压缩的数字信号;DSP 将这些数据压缩成一定的格式,如 H.263、MPEG-4 等,然后由 ARM 处理器发送到网络中。可以强调的是,整的系统的中心控制是由 ARM 芯片完成的,包括启动 DSP 处
5、理器的启动和控制。1.2 ARMLinux 以及 cLinux 操作系统平台 1.2 ARMLinux 以及 cLinux 操作系统平台 为了方便应用程序的开发和移植,一般需要在嵌入式计算机系统中移植专门的操作系统。专用于嵌入式系统的操作系统众多,但在人机界面、娱乐要求不高的情况下,开源操作系统 Linux 具有更好的经济性和实用性。其中,Linux 的一些变种 ARMLinux、cLinux 在嵌入式应用领域表现优良。这里以 ARMLinux 为例介绍嵌入式系统的操作平台的建立。2 1.2.1 交叉编译环境的建立交叉编译环境的建立 嵌入式系统一般情况下 I/O 设备相当简单,并且应用专一,其
6、应用程序并不能如通用 PC 系统那样在本机上编译生成;一般需要采用交叉编译的方式,即在另一台宿主机上(一般是通用 PC),通http:/-2-过特定的编译工具,编译生成在嵌入式处理器上运行的代码;再通过其他手段下载到嵌入式系统中调试运行,如 JTAG、网口、串口等。开发嵌入式系统上的程序,需要在开发 PC 上先建立交叉编译环境。对于 RedHat 9.0 环境下,只需要下载并安装 arm-linux-gcc-3.3.2.tar.gz 即可。1.2.2 操作系统内核准备。操作系统内核准备。建立一个 ARMLinux 操作系统平台首先要准备 Linux 内核镜像,即编译好的二进制代码。这在操作系统
7、的移植中是十分关键的一步,可参考以下过程。首先,在网络上下载 Linux-kernel-2.6.5 源代码包以及 Linux 对于 ARM 的补丁包,通常使用的是 rmk 补丁系列,这里采用的是patch-kernle-2.6.5-rmk2 补丁。接着对打好补丁的内核进行适当裁减。需要说明的是,Linux 内核是高度模块化的,其所有的功能以模块的形式进行组织,裁减 Linux 即去除在设计中不需要使用的功能模块及设备驱动。大致分为两步:(1)选择内核所在的系统平台,主要针对该系统的主处理器。(2)进行模块裁减,裁减的内容,主要集中在文件系统、网络支持、设备驱动中。内核的裁减并不意味着完全地裁减
8、,针对嵌入式应用,某些模块是必须选择上。虽然 Linux 内核功能模块化,但有些模块必须依赖于其他模块才可以工作,Linux 自带的“dep”(依赖关系检查)工具不能完全检查出这些问题。出现这样的问题,只要按错误提示,检查好依赖关系,做相应的修改就可以通过。然后,编译裁减好的内核,在 Makefile 文件中,将 CROSS_COMPLIE 项改为 arm-linux-gcc 安装目录。最后使用“make”、“make zImage”命令,在内核目录“/arch/arm/boot/”下得到“zImage”文件,即编译好的内核镜像。1.2.3 引导加载程序引导加载程序 引导加载程序,即 Boot
9、loader 程序,是系统上电后的第一个程序,负责系统初期的初始化、中断开启、操作系统内核和文件系统的加载。其严格依赖于硬件存在,一般对于不同的嵌入式系统,Bootloader 程序都需要重新编写。但对于 ARM 系列,由于其系统具有一定程度的相似性,可以使用通用 vivi 程序,即一种相对有较好移植性的 Bootloader 程序;同时,也可以从厂家获取专用的Bootloader。通过 JTAG 调试口下载到嵌入式硬件系统中。然后在 Bootloader 启动后,可以通过download kernel 等命令将操作系统内核下载 FLASH 中。1.2.4 文件系统的建立文件系统的建立 通常嵌
10、入式系统不具有硬盘等大容量存储体,一般使用 FLASH 为主存储器,其文件系统具有特殊性。出于安全上的需要,嵌入式系统中 FLASH 主存储器一般设为只读。主要就需要在内存中划分一部分为文件系统,即 RAMDISK 方式。在 RAMDISK 中可采用 JFFS2 或者 EXT2 等文件方式,满足读写的需要。而在 FLASH 中则一般采用 CRAMFS(只读)文件系统,最大限度节约存储空间。RAMDISK 作为一个镜像文件存储在 FLASH 中,当系统启动后由 Bootloader 读入内存。制作RAMDISK 需要准备好系统所需的文件后,由专门的转换工具(一般由厂家提供)转换成 FLASH 要
11、求格式。并且一般情况下,RAMDISK 并不只一个。需要特别提出的是,Bootloader 程序下载镜像到 RAM 中后,需要再由 Flash 命令读入 FLASH过程中,其过程中需要按设计将烧录的地址完全指明。如“flash ramdisk 0 x00100000”。1.2.5 特殊驱动程序的编写特殊驱动程序的编写 采用 Linux 操作系统的硬件驱动程序资源丰富,但也有一些驱动程序是无法获得,或者不符合嵌入式应用需求,需要开发人员自行编写。如特殊视频采集设备、I2C 总线控制设备等等,一般 Linux设备驱动分为字符设备、网络设备等,需要开发人员编写的一般是字符设备。开发驱动程序,需要注意
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 计算机系统 数字视频 监控 系统 开发 研究
限制150内