您的位置:首页 > 移动开发 > Android开发

全志H3-android 4.4下进行USB Camera的配置和使用总结

2017-08-01 17:05 1041 查看
    项目当中要使用USB接口作为系统的图像输入口,即使用USB camera进行开发。

 首先要介绍的是UVC的概念,uvc即USB video class也即USB video device class。这个标准的设备是在不需要安装驱动的情况下实现即插即用,包括了摄像头,数字摄影机和模拟视频转换等。在Linux当中已经对udc camera的支持,全志H3,linux3.4下,uvc相关代码在路径:linux-3.4/drivers/media/video/uvc下,截图:



 然后是简单介绍V4L或者V4L2的概念,很明显,V4L2是前者的改进版本,这是Linux系统下用于采集图片,音频,视频数据的API接口,这些API和对应的视频图像采集设备和对应的驱动程序一起,就能够实现在Linux平台上面的图像视频等数据的采集。

    USB camera要能够正常使用就需要上述两个概念的支持,并且要在内核里面做相应的配置工作,在Linux目录下执行 make menuconfig 进入到内核配置的界面,如下:



  必要的配置有如下几项,不同的Linux内核版本,其所在的位置可能不同,要根据选项之间的信息仔细寻找,我之前没有找到,在网络上面参考的又是另外的内核版本,因此找了半天没有发现。从Device Drivers --->Multimedia support 下配置相应选项:



  然后再进入到Video capture adapters 下选择USB的相应配置,如图:



  通过以上配置就能够保证USB camera设备的数据能够被处理,重新编译内核,是配置生效。烧录到板子后插入USB camera的设备,果然!读取不到数据~~~。板子上面只留出了一个USB接口,也就是USB0口,通过查看官方文档找到USB0口的相应配置文件在路径:/lichee/tools/pack/chips/sun8iw7p1/configs/定方案目录,下面的sys_config.fex,搜索usb0相关配置如下:



    上图为修改过得配置,主要有两个参数要修改,根据官方文档”usb_port_type"值为0则是”device only",如果是1则是"host only",如果是2,则是”OTG“,文件当中初始值为2,按理说应该在插入摄像头设备的时候应该能够自动切换到host模式,但现实是没有正确识别USB设备。接着修改的第二个参数是”usb_host_init_state“,这个属性的意思是表示在系统启动后是否要初始化host的驱动(前提条件是上述的参数已经设置设备为host模式了):0---不初始化;1---初始化。这个值默认为0,因此显然要修改为1才行。
 完成了上述的设置后,保存退出,然后编译内核,编译android,刷机,然后进行测试,USB CAMERA就能够通过系统相机打开了:



  这次调试相对来说是比较顺利的,虽然中途因为USB host模式设置不对导致数据没拿到这个小插曲耽误了一些时间,但总的来说都比较顺利,思路也是比较清晰,这要得益于网络上面很多文章的帮助,最主要的有以下这些参考,贴出来希望能够帮到其他人:
1,uvc介绍
2,V4L/V4L2介绍
3,http://blog.csdn.net/wb4916/article/details/52913954

4,http://blog.csdn.net/wb4916/article/details/53097797
5,http://blog.csdn.net/jiangdou88/article/details/24884483
6,http://blog.csdn.net/codectq/article/details/44278465
7,http://blog.csdn.net/hclydao/article/details/21235919
8,http://blog.csdn.net/wb4916/article/details/53161774
9,http://blog.csdn.net/zmnqazqaz/article/details/49535531
10,http://blog.csdn.net/it_fish_man/article/details/17395469
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐