基于IPV6的网络摄像机的设计与实现
到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等现有的大部分芯片)等特性的一种通用操作系统,已经被成功的移植到了数十种硬件平台上,它也可以在没有MMU(内存管理单元)的处理器上运行,这就使得在嵌入式领域这种没有MMU的处理器的情形下得到相当广泛的应用。
Linux带有强大的网络功能和完善的开发工具
几乎所有的Unix系统的应用软件都已移植到了Linux上。Linux还提供了强大的网络功能,有多种可选择窗口管理器(X Windows)。Linux的一个显著优势就是强大的网络功能,优秀的网络功能,这在Internet时代尤其重要。 Linux的发展过程本身就是随着网络发展起来的,Linux上有一套成熟的网络协议堆栈,从2.4开始就支持IPV6了。对于TCP/IP协议,Linux有着最完备的支持,这使得Linux在网络方面有很大的优势。此外,在其下也有大量的自由的优秀的开发工具和软件资源,和大量的应用软件可用,其中大部分都遵从GPL,是开放源代码和免费的。这样在Linux下开发应用程序时,往往不需要从头做起,而是直接进行二次开发,大大减少了工作量,缩短了开发周期,提高了开发的效率。它也具有强大的语言编译器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。
开放源代码的免费软件,适合裁剪
Linux遵从 GPL,因此我们只要遵循GPL相关规定就可以获得其拷贝, 无须为每例应用交纳许可证费, 人们可以任意修改,以满足自己的应用,由于嵌入式系统是面对特定功能的专用计算机系统, 往往就需要针对具体系统进行裁剪和优化, Linux内核小巧,适合裁剪, Linux的内核采用模块化设计,模块可以根据需要加载和卸除。这就使得开发人员可以针对自己的系统来编译自己的内核,运行所需资源少,十分适合嵌入式应用。此外,Linux内核与用户界面完全独立,各部分的可定制性很强,这有利于节约系统资源,非常适合于嵌入式系统的开发。其程序源码全部公开,任何人可以修改。这样,开发人员可以对操作系统进行定制,适应其特殊需要。
性能高效、稳定
Linux本身具备的一个很大优点就是稳定,曾有人做过实验,24小时不间断运行的情况下,Linux三年内只出现过5次死机现象,而Windows死机次数则有150次之多,嵌入式系统一般要求在环境恶劣的情况下依然能够稳定正常的工作,正是由于Linux的稳定性,才使得嵌入式系统得到高可靠性的保证。
通过以上比较,我们决定采用最后一种方案。
3 方案的实施
我们做设计的目标是用Sitsang开发平台实现一个具有实时视频采集压缩及传输功能的可以直接接入IPV6网的网络摄像机。
3.1 硬件系统简介
因本文主要介绍软件系统的设计,所以只简单介绍其硬件系统。整个系统除摄像头部分外都是在基于Intel PXA255 的Sitsang开发板上实现的。Sitsang板的核心为PXA255,配备了大量的硬件资源,其中通信接口中的以太网控制器和USB Host控制器在本系统中是关键部件。Sitsang开发板上采用了Standard Microsystems LAN91C96以太网控制器,它通过U52与网络相连,支持IEEE802.3的10Mb/s模式。Sitsang开发板上采用了Philips的 ISP1161作为USB Host控制器,使用USB Host接口可以使Sitsang板与视频采集摄像头相连。以太网控制器和USB Host控制器通过数据总线收发器(74LVCH32245)以及地址、数据总线驱动器(74LVCH32244)与PXA255相连接,使用ov511芯片的USB摄像头。
3.2 软件系统的实现
软件系统的设计与实现是本系统的关键,主要分以下几个步骤:
3.2.1. 编译支持IPv6的Linux内核
我们采用的内核是Linux 2.6.12,该内核扩展多嵌入式平台支持的一个主要途径就是把uCLinux的大部分并入主流内核功能中。要向该CPU移植Linux,首先要准备交叉编译环境,以便在PC机上编译可运行于PXA255核CPU的目标代码。实验选用的Linux内核源码包是Linux最新版内核(Kernel),版本号2.6.12.ar.bz2,以下是编译支持IPv6的Linux内核的过程。首先是下载内核源代码,其地址是:
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.gz,下载后将其放置到 /usr/src/下,然后用命令tar zxvf linux-2.6.12.tar.gz解压,再执行以下命令 #cd linux-2.6.12 ,#make menuconfig配置内核,一定要选开发板的网卡驱动。在执行make menuconfig命令的时候,注意把Network Options下有关IPv6和隧道(tunnel)的模块选为内核模式,以便得
- 直接变频接收机设计可实现多标准/多频带运行(10-11)
- 基于蓝牙芯片的无线通信模块设计与开发(02-03)
- 无线通信网络设计与现场测试(10-10)
- WiMAX数据传输加密方案设计与实现(05-25)
- 高性能TD-SCDMA接收机的设计(03-15)
- 初步设计WiMAX射频系统(03-29)