基于CH374的USB摄像头驱动设计

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8844

文章摘要: 为保证数据传输的实时性,同步传输不进行数据错误的重传,也不在硬件层次上响应一个握手资料包。同步传输的主机每隔lms发送一个SOF同步信号,随后接收设备发送的信号,其数据流程如图4所示。 在同步传输中,每一个信包的容量是一定的。拿SPCA561来说,在启动同步传输之前必须设置相应的接口号。不同的接口号决定将要发送多大的信包容量,如接口号1每次发送的信包容量是128字节,接口号6的信包容量是896字节。接口号通过USB标准设备请求SET_INTERFACE来设置。由于CH374的缓冲区最大为128字节。所以本设计中使用接口号1,同步传输每接收一个信包的大小是128字节容量的信包。1.

基于CH374的USB摄像头驱动设计,标签:电子小制作,http://www.88dzw.com
    为保证数据传输的实时性,同步传输不进行数据错误的重传,也不在硬件层次上响应一个握手资料包。同步传输的主机每隔lms发送一个SOF同步信号,随后接收设备发送的信号,其数据流程如图4所示。

    在同步传输中,每一个信包的容量是一定的。拿SPCA561来说,在启动同步传输之前必须设置相应的接口号。不同的接口号决定将要发送多大的信包容量,如接口号1每次发送的信包容量是128字节,接口号6的信包容量是896字节。接口号通过USB标准设备请求SET_INTERFACE来设置。由于CH374的缓冲区最大为128字节。所以本设计中使用接口号1,同步传输每接收一个信包的大小是128字节容量的信包。
1.4 视频数据采集过程
   
如图5所示,视频信号由摄像头SPCA56lA采集得到,经过内部的图像处理芯片后编码为规定的格式,一般为RGB或者YUV格式,但是SPCA561采用比较特殊的S56l图像格式(类似于RGB格式)。因为一帧图像的数据量很大,无法在一个同步信包内传送,所以将其分割成多个单元,每个单元前添加包头(包头的内容包括当前包序号和此图像帧信息),组成多个同步信包,通过FIFO缓冲发送到USB总线上。主机控制器用同步方式接收每个信包,并去除包头合并成S561格式的数据,组成一个完整的图像帧。最后由软件将此图像帧预编码成为YUV420格式的图像数据,以便后续的压缩处理。

2 USB摄像头驱动的实现
    USB摄像头并非标准的USB外设。与其他USB外设不同的是,每个厂商的摄像头芯片都有自己定义的设备请求,而这些摄像头芯片数据手册并不对外公开,所以编写摄像头驱动的难度很大,想要驱动支持更多的摄像头,程序会非常复杂。本文只介绍SPCA561A摄像头驱动的方法。
2.1 USB摄像头初始化
    初始化一个USB摄像头有两个步骤,第一步是摄像头的枚举,第二步是摄像头的自定义设置。
(1)设备枚举
   
设备的枚举就是标准设备请求的过程,这部分内容包含于USB协议第9章。对USB摄像头来说,枚举的过程依次如下:
    ①获取设备描述符。通过设备描述符得到端点0的负载,也就是最大传送包容量。
    ②设置地址。给设备分配一个默认地址0之外的地址。
    ③获取配置描述符。这个过程包括两个阶段,第1次获取的配置描述符的前4个字节得到配置描述符的真实长度;再以真实长度第2次获取配置描述符,此描述符包含了设备的配置信息和多个接口信息。可以从这里得到可以使用的接口号和对应的信包负载。
    ④设置配置信息。设置的主要信息是配置描述符中的第5个字段bComfigurationValue。
    ⑤设置接口。USB摄像头不同的接口号对应不同的信包负载。本设计选定的接口号为2,对应信包负载是128字节。
(2)自定义设置
    USB摄像头并不是标准USB外设,需要很多自定义设置,可以称之为“自定义设备请求”,它是用标准设备请求包方式传送的,目的是修改内部寄存器,对采集图像和压缩方式进行配置。标准设备请求和自定义设备请求包的不同内容如表1所列。自定义设备请求的内容非常丰富,它包含以下几个方面:
    ①时序产生设置。包括图像采集频率和振荡器的设置等。
    ②图像处理设置。包括图像窗口大小、压缩类型、色彩分配等配置属性。
    ③存储器设置。对图像缓冲进行设置。
    ④控制及状态设置。包括启动及停止图像采集、数据传输方式、当前状态等配置属性。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《基于CH374的USB摄像头驱动设计》相关文章