Linux USB摄像头驱动体系结构

通用串行总线(USB)是一种外部总线结构,特点是接口统一、方便扩展、支持热插拔和 PNP(plug-and—play),简化了计算机与不同类型外设间的连接。USB是一种分层总线结构,并且由一个主机控制器来控制,USB主机控制器负责询问每一个USB设备是否有数据需要发送,USB不支持设备的直接通信。

USB摄像头以其良好的性能和低廉的价格得到广泛应用。同时因其灵活、方便的特性,易于集成到嵌入式系统中。但是如果使用现有的符合Video for Linux标准的驱动程序配合通用应用程序,难以充分利用USB带宽,帧速不高,不易满足实时监控等要求。本文首先介绍在Linux系统下USB摄像头驱动编制的一般方法,然后说明在此基础上如何提高帧速。

Linux USB主机驱动由3部分组成:USB主机控制器驱动、USB驱动和不同的USB设备类驱动。高清晰针孔摄像头其中USB主机控制器驱(HCD)是USB主机直接与硬件交互的软件模块,它为上层提供统一的接口,屏蔽掉硬件具体细节,USB驱动(USBD)是整个 USB主机驱动的核心,主要为USB设备类驱动提供相关的接口、提供应用程序访问的USB系统的文件接口,而USB设备类驱动是最终与应用程序交互的软件模块,主要为访问特定的USB设备和应用程序提供接口。

Linux内核中自带了主机控制器驱动(HCD)和USB驱动(USBD),因此在Linux下编写USB设备的驱动程序,从严格意义上讲,就是使用USB驱动(USBD)子系统定义的数据结构,宏和函数来编写数据的处理功能。

Linux USB摄像头驱动体系结构

此条目发表在 Linux驱动开发 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

发表评论