基于嵌入式Linux的视频监控系统的.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于嵌入式Linux的视频监控系统的

基于嵌入式Linux的视频监控系统的 设计与实现 【摘要】视频监控系统是安全防范系统的组成部分,它是一种防范能力较强的综合系统。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。嵌入式视频监控系统是以应用为中心、软硬件可裁减的、适应应用系统对功能、可靠性、成本、体积等综合性严格要求的专用计算机系统,亦即为监控系统量体裁衣的专用计算机系统。嵌入式视频监控系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”。在视频监控上的嵌入式应用将是视频监控领域的一个重要发展方向。 论文首先阐述了嵌入式网络视频监控系统的发展、现状以及整体构建,然后介绍了嵌入式Linux操作系统以及ARM处理器的发展情况,分析了主要外围电路的设计,以及如何在ARM硬件平台上进行嵌入式Linux内核的编译与移植,介绍了Bootloader的启动原理及运行过程,并对在Linux操作系统下的USB驱动程序的开发进行了研究。本文重点讨论了图像采集、编码和网络通信程序的设计原理与实现。最后进行了系统整体测试,并提出进一步开发设想。 【关键词】嵌入式,图像采集,网络通信,视频监控 目 录 1 视频监控系统的发展 5 2 嵌入式系统软件平台 6 2.1 Linux操作系统简介 6 2.2视频监控系统结构设计 6 2.3 三星S3C2410处理器简介 7 2.4 交叉编译环境的建立 8 3 USB摄像头驱动程序设计 8 4 视频采集设计与实现 9 4.1 初始化及设置 9 4.2 实现摄像头设备文件到内存区的映射 10 4.3 数据采集 10 5 视频传输的实现 11 6 客户端程序 12 7 结束语 13 参考文献 14 图1.2 摄像头驱动实现原理 USB摄像头的驱动和通用设备的驱动准则一样,但需要与内核提供的视频驱动挂钩。即首先在驱动中声明一个video device结构,并为其指定文件操作函数指针数组fops,向系统注册。在应用程序发出文件操作的相关命令时,核心根据这些指针调用相应函数,并将该结构作为参数传递给它们。这样,就完成了驱动和核心之间的通信。例如: static struct video—device vdev_template={??); //声明video device,指出挂接驱动 Static Struct file_operations spca5xx_fops={??); //声明本驱动的文件操作函数指针 Struct video—device幸vdev=video_devdata(file); //从文件指针中提取出video device结构 在video device结构中,有一个私有指针priv,可以将它指向一块保留内存。在这块内存中,保存着本驱动、本设备的相关初始化信息。这块内存的申请、初始化、指针指向等工作都是在USB驱动的枚举函数probe中完成。这样,在枚举函数将控制权返还给系统后,因为内核不销毁保留内存,所以驱动仍然保留着自己的信息。在驱动卸载函数中需要将申请的各块内存全部释放。 4 视频采集设计与实现 4.1 初始化及设置 使用ioctl(camerafd,VIDIOCGMBUF,camerambO函数初始video—mbuf,获得摄像头存储缓冲区的帧信息,之后修改video mmap和帧状态的设置,例如重新设置图像帧的垂直及水平分辨率、彩色显示格式。可利用如下语句: Mapbutheight=COL;//COLS为程序中定义的常量; mapbufwidth=ROWS;//ROWS为程序中定义的常量; mapbufformat=VIDEO_PALATTE_RGB24; 4.2 实现摄像头设备文件到内存区的映射 调用buf=void *mmap(void *addr,size—t len,int prot,int flags,int fd,off—t offset)。 以下是个函数各参数的注释。 len:映射到调用进程地址空间的字节数,它从被映射文件开头offset个字节开始算起: prot:指定共享内存的访问权限PROT_READ(可读),PROT_WRITE(n-J写),PROT—EXEC(可执行); flags:MAP_SHARED MAP—PRIVATE中必选一个,MAP—FIXED不推荐使用; addr:共享内存的起始地址,一般设0,表示由系统分配: mmapO:返回值是系统实际分配的起始地址; 下面是该函数的程序实现: int camerammap_init(camera_device *vd) { if(camera mbuf(vd)0) return-1; if((vd一map=mmap(O,vd一mbuf.size,PROT_READIP

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档