基于H3在Linux下驱动OV5640摄像头的方法与流程

文档序号:12696143阅读:4254来源:国知局

本发明涉及一种摄像头驱动方法,具体涉及一种基于全志H3 ARM处理器在Linux操作系统下驱动OV5640摄像头的方法。



背景技术:

全志H3ARM芯片是一种被广泛应用于各种嵌入式平台(比如车载电子设备,现场监控设备,自动贩卖机,广告机,人机交互系统等等)的核心部件。这些平台要正常工作时必须运行操作系统(比如Linux,Android等)。操作系统就是H3芯片和系统各硬件设备(比如摄像头,显示器等)之间沟通的桥梁,而操作系统中起到沟通桥梁作用的就是硬件设备的软件驱动模块。没有合适硬件设备的软件驱动模块,硬件设备无法正常工作。目前H3芯片所运行的Linux操作系统中尚无支持OV5640这种摄像头的软件驱动模块。



技术实现要素:

针对现有技术的不足,本发明旨在提供一种基于H3在Linux下驱动OV5640摄像头的方法,填补H3芯片所运行的Linux操作系统中在支持OV5640这种摄像头的软件驱动模块方面的空白。

为了实现上述目的,本发明采用如下技术方案:

基于H3在Linux下驱动OV5640摄像头的方法,包括如下步骤:

S1打开OV5640摄像头所对应的设备文件/dev/videoX;

S2为OV5640摄像头驱动添加读写寄存器sys文件系统接口;

S3初始化OV5640摄像头,添加自动对焦功能;

S4读取OV5640摄像头的能力值;

S5设置视频输入源:设置VFE驱动默认输入源的初始值为0;

S6设置数据流类型和格式:设置VFE支持的视频格式为OV5640摄像头的格式;

S7初始化内存映射分配缓冲区;

S8查询缓冲区大小;

S9映射设备缓冲区到应用空间mmap;

S10添加缓冲区到输入队列;

S11启动视频流,开始采集数据,直至采集数据停止,停止视频流,停止采集数据;

S12释放内存映射;

S13关闭设备文件/dev/videoX。

进一步地,步骤S6中,VFE支持的视频格式的视频格式包括:

V4L2_MBUS_FMT_YUYV8_2X8;

V4L2_MBUS_FMT_YVYU8_2X8;

V4L2_MBUS_FMT_UYVY8_2X8;

V4L2_MBUS_FMT_VYUY8_2X8。

本发明的有益效果在于:本发明填补了H3芯片所运行的Linux操作系统中在支持OV5640这种摄像头的软件驱动模块方面的空白。

附图说明

图1为本发明的实施流程图。

具体实施方式

以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。

如图1所示,基于H3在Linux下驱动OV5640摄像头的方法,包括如下步骤:

S1打开OV5640摄像头所对应的设备文件/dev/videoX。

S2为OV5640摄像头驱动添加读写寄存器sys文件系统接口。步骤S2的设置为调试本驱动模块提供了一个便捷的接口。

S3初始化OV5640摄像头,添加自动对焦功能。通过步骤S3的设置增加了操作系统能控制摄像头的功能。

S4读取OV5640摄像头的能力值VIDIOC_QUERYCAP。

S5执行设置视频输入源VIDIOC_S_INPUT,并设置VFE驱动默认输入源的初始值为0。通过本步骤,可以避免由于逻辑错误导致系统内核崩溃,进而影响整个平台的正常工作。

S6执行设置数据流类型和格式VIDIOC_S_FMT,并设置VFE支持的视频格式为OV5640摄像头的格式;

S7初始化内存映射分配缓冲区VIDIOC_REQBUFS;

S8查询缓冲区大小VIDIOC_QUERYBUF;

S9映射设备缓冲区到应用空间mmap;

S10添加缓冲区到输入队列VIDIOC_QBUF;

S11启动视频流,开始采集数据VIDIOC_STREAMON;持续采集数据直至采集数据停止,停止视频流,停止采集数据VIDIOC_STREAMOFF;

S12释放内存映射munmap;

S13关闭设备文件/dev/videoX。

进一步地,步骤S6中,VFE支持的视频格式的视频格式包括:

V4L2_MBUS_FMT_YUYV8_2X8;

V4L2_MBUS_FMT_YVYU8_2X8;

V4L2_MBUS_FMT_UYVY8_2X8;

V4L2_MBUS_FMT_VYUY8_2X8。

对于本领域的技术人员来说,可以根据以上的技术方案和构思,作出各种相应的改变和变形,而所有的这些改变和变形都应该包括在本发明权利要求的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1