视频采集图像实时显示在LCD上.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文档。上传文档
查看更多
视频采集图像实时显示在LCD上

嵌入式系统设计实训报告 视频采集图像实时显示在LCD上 目录 一、实训任务的名称、内容 1 二、题目分析 2 三、系统平台搭建 6 四、系统设计与实现 7 五、系统测试 13 六、心得体会 13 七、参考文献 14 一、实训任务的名称、内容 在这学期期末的实训中,我们的任务是“视频采集图像并实时显示在LCD上”。具体内容是,通过在USB接口上外接一个带USB口的摄像头,将采集到的视频图像数据放入输入缓冲区中。然后保存成文件的形式,或者运行移植到平台上的图像处理程序,对缓冲的图像数据直接进行相关处理,通过网络接口将图像发送到上。摄像头的驱动系统平台上运行的是。启动后,启用了MMU,系统进入保护模式,所以应用程序就不能包括I/O端口和I/O内存),这时一般就要借助于该外设的驱动来进入内核完成这个工作。本系统中的视频采集分两步实现:一是为USB口数码摄像头在内核中写入驱动,二是要再写入上层应用程序获取视频数据。摄像头在Linux中是如何支持的在 Linux中,硬件的驱动程序,都是由内核支持的;目前比较新内核版本也集成了一些的摄像头驱动。就是Fedora、SuSE最新版本所支持的内核也是来自由 。所以支持也是极为正常的。内核对硬件的支持分为内置于和外挂模块两种方便。对于摄像头来说,大多是模块支持的; 摄像头驱动   在Linux 环境下,所有的外设都被看成一类称为“设备文件”的特殊文件,系统中所有硬件都可以用一个特殊的设备文件来表示。在本系统中,USB 摄像头被作为一种字符设备来对待,用/dev/video0 来表示。相对于应用程序来讲,硬件是不透明的,设备驱动程序屏蔽了硬件在实现上的细节,应用程序必须依靠相应驱动程序中定义的通信接口实现对硬件的操作。   Video4Linux(简称V4L)是Linux 系统关于视频设备的内核驱动程序,它为针对视频设备的应用程序编程提供一系列接口函数。对于USB 接口摄像头,驱动程序中提供了基本的I/O操作接口函数open、read、write、close 的实现,对中断的处理实现,内存映射功能以及对I/O 通道的控制接口函数ioctl 的实现等,并在struct file_operations 数据结构中定义了这些函数,当应用程序对设备文件进行例如read、write 等操作时,嵌入式Linux 内核通过strcutfile_operations 数据结构访问驱动程序提供的函数。驱动程序基本结构如下:   1)驱动的注册与注销   通过在驱动程序的初始化过程中调用 register_chrdev()或register_blkdev()函数来添加驱动程序并分配主设备号;通过调用unregister_chrdev()或unregister_blkdev()函数从内核中注销设备,同时释放其占用的主设备号。   2)设备文件的打开与释放   调用 file_operations 结构体中的open()函数打开设备;调用file_operations 结构中的函数release()关闭设备。   3)设备的读/写操作   使用函数 read()和write()完成对设备的读和写。   4)设备的控制操作   通过设备驱动程序中的函数ioctl()来完成。ioctl()的用法与具体设备密切关联,因此需要根据设备的情况进行具体分析。   5)设备的中断和轮流查询处理   由于有些硬件设备不支持中断,那么在对其读写时需要轮流查询设备状态,以便决定是否继续进行数据传输。如果硬件设备支持中断,则可以按中断方式进行操作。系统软件开发采用交叉编译调试的方式。交叉编译调试环境建立在宿主机上,对应的开发板叫做目标板。通常宿主机和目标板上的处理器不所以程序需要使用针对处理器特点的编译器才能生成在相应平台上可运行的代码。GNU编译器提供这样的功能,在编译时,可以选择开发所需的宿主机和目标机,从而建立开发环境。在进行嵌入式开发前的第一步工作就是把一台PC机作为宿主机开发机在宿主机上建立交叉编译调试的开发环境[root@localhost ~]# lshal |grep WebCam ? duct = ZC0303 WebCam? (string) ? usb_duct = ZC0303 WebCam? (string) 其中,“usb_duct=”后面的ZC0303说明这个摄像头是ZC303芯片组的。 上面这个命令是列出系统硬件设备,然后从输出中,提取WebCam字样的信息。[root@localhost ~]# lshal |grep usb 然后就找 ZC0303字样的设备usb_device_ac8_303b_noserial usb_device_ac8_303b_noserial_if0 usb_d

文档评论(0)

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

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

1亿VIP精品文档

相关文档