论文部分内容阅读
本论文分析了以往的嵌入式视频监控系统,从中发现依赖于有线网络的嵌入式视频监控系统不方便安装、视频数据得不到保存、摄像头接口选择不当造成传输速度慢等方面的不足。针对这些不足在本系统中引入以USB为接口的无线网络和摄像头,以及SD存储卡。对于嵌入式系统而言,软硬的选择是系统能够成功的基础,通过对本论文的整体需求的分析,以及对各个软硬件的进行比较。在硬件上选择了基于ARM的YPL2440开发板,以USB为接口的摄像头,以及以USB为接口的无线网卡。在软件上选择了linux做为本系统的操作系统,以JPEG做为视频传输的压缩算法,以Ipv6做为视频传输协议,以及以boa做为本系统的嵌入式Web服务器。交叉编译环境是为编译运行在开发板上的程序而使用的一种工具,因此在创建交叉编译环境时要根据具体的开发板而创建不同的交叉编译环境,本论文针对YPL2440开发板,选择不同的软件,使用crosstool工具来制作其交叉编译环境;其次在bootloader制作完成的基础上实现对yaffs文件系统的支持,实现通过命令对NAND flash存储设备的操作,以及添加一些本系统特有的命令;内核的裁剪过程中首先去掉本系统不需要的驱动,并修改系统的内核以实现对nand分区的重新划分,使其把系统启动文件和应用程序存放于不同的分区,并在这实现用户静态创建的设备节点的动态创建;最后实现了基于udev动态创建设备节点和基于YPL2440开发板自带的库文件的根文件系统制作。分析了USB HUB的原理图、框图、以及总线拓扑结构,实现USB HUB的驱动程序,最后添加驱动到内核中使其实现USB HUB功能。通过对无线网卡驱动的修改、添加无线网卡驱动和无线网卡动态库到内核实现无线网卡的功能。针对有些linux内核中没有定义media目录,及驱动的显示配置文件,在本论文中实现摄像头的驱动以及相关配置文件可以在内核配置目录树中显示出摄像头的驱动。针对开发板自带的USB接口不足这个问题,提出了第二种方法:在原有硬件基础上修改驱动使其能够支持USB HOST。分析了SD存储卡所用到的寄存器和结构体,最后通过一个device_driver结构体来实现SD的驱动,最后通过把驱动程序添加到内核,并测试SD驱动。通过使用Boa服务器,TCP传输协议,客户端的java代码及服务器端的CGI代码实现视频监控系统的客户端显示。最后介绍Ipv6协议,并用于本系统的视频传输。