简 是 中关于视频设备的内核驱动,它为针对视
频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流
行的 卡、视频捕捉卡和 摄像头等。对于 口摄像头,其驱动程序中
需要提供基本的 操作接口函数 、、、 的实现。对中
断的处理实现,内存映射功能以及对 通道的控制接口函数 的实现等,
并把它们定义在 中。这样当应用程序对设备文件进行
诸如 、、、 等系统调用操作时, 内核将通过
结构访问驱动程序提供的函数。例如,当应用程序对设备文件
执行读操作时,内核将调用 结构中的 函数。在系统平台
上对 口数码摄像头驱动,首先把 控制器驱动模块静态编译进内核,
使平台中支持 接口,再在需要使用摄像头采集时,使用 动态加
载其驱动模块,这样摄像头就可正常工作了,接着进行了下一步对视频流的采
集编程。
!." 下的摄像头采集编程
在 摄像头被驱动后,只需要再编写一个对视频流采集的应用程序就可
以了。根据嵌入式系统开发特征,先在宿主机上编写应用程序,再使用交叉编
译器进行编译链接,生成在目标平台的可执行文件。宿主机与目标板通信采用
打印终端的方式进行交叉调试,成功后移植到目标平台。本文编写采集程序是
在安装 操作系统的宿主机 #$ 机上进行的,下面是具体论述。
()程序中定义的数据结构
%&'(&)
%(&)
% (&&*)
% &*(&% ;
这些数据结构都是由 支持的,它们的用途如下:
+%&' 包含摄像头的基本信息,例如设备名称、支持的最大
最小分辨率、信号源信息等,分别对应着结构体中成员变量
,!"-、 .、 .(.、 .、 .(.、.
信号源个数、' 等;
+% 包含设备采集图像的各种属性,如 &(.亮度、
.色调、对比度、.色度、.深度等;
+% 用于内存映射;
+% &* 利用 进行映射的帧信息,实际上是输入到摄像头存
储器缓冲中的帧信息,包括 /(帧的大小)、* (最多支持的帧数)、
0(每帧相对基址的偏移)。
程序中用到的主要系统调用函数有:1%%213
4(、*、 %+3/(.334(3
*300、 %+3/(.和 *3
35。
前面提到 系统中把设备看成设备文件,在用户空间可以通过标准的
系统调用函数操作设备文件,从而达到与设备通信交互的目的。当然,在
设备驱动中要提供对这些函数的相应支持。这里说明一下 *3
35函数,它在用户程序中用来控制 通道,其中,* 代表设备文件描
第 1 页 共 4 页
评论0
最新资源