




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、USB总线技术的应用 目录一、课题简介2二、系统框图3三、系统工作原理331 USB设备基础43. 2 USB驱动体系结构5四、硬件设计74. 1 USB 摄像头SPCA561A74. 2 USB 主机控制器CH37484. 3 USB 同步传输原理84. 4 视频数据采集过程9五、软件设计95. 1 USB 摄像头初始化95. 2 同步传输和图像帧处理105. 3 图像数据的预编码11六、结语12基于USB摄像头的嵌入式图像采集系统设计一、 课题简介名称:手势识别功能:通过摄像头对手势的前后左右的识别,使显示器上的页面完成转向、翻页、放大、缩小等操作。包含的总线:USB总线 VGA总线 CP
2、U内部的数据和地址总线等本文主要介绍与USB相关的内容。二、 系统框图摄像头采集图像信息,通过USB总线传到MCU的FIFO缓冲区,MCU对图像信息数据进行识别和处理,并控制显示器的页面做出与手势动作相对应的操作。系统框图如下所示:图2 系统框图三、 系统工作原理典型的USB 图像采集系统如图3 所示。USB 系统包含主机和物理设备两个最基本的元素, 一个USB 系统只能有一个USB 主机, 可以连接多个物理设备。本设计中的设备是USB 摄像头, USB 主机由USB 主机控制器、微处理器及驱动软件构成。USB 系统工作层次分明: USB接口层提供主机控制器和设备的物理连接; 设备层中,USB
3、 主机调用驱动程序通过端点0 发送并获取USB 设备的控制信息; 功能层进行实际数据的传输, 主机必须选择合适的接口和端点, 调用底层驱动提供的接口函数获取USB 摄像头的视频数据流。图3 USB视频采集系统示意图31 USB设备基础USB设备由断点、接口和配置组成,USB驱动程序通常绑定到USB接口上,而不是整个USB设备。下面介绍几个重要的概念:1端点USB通信最基本的形式是通过一个名为端点(endpoint)的东西。USB端点只能往一个方向传送数据,从主机到设备(称为输出端点)或者从设备到主机(称为输入端点)。端点可以看作是单向的管道。USB端点有四种不同的类型,分别具有不同的传送数据的
4、方式:(1)控制端点:它用来控制对USB设备不同部分的访问。它们通常用于配置设备、获取设备信息、发送命令到设备,或者获取设备的状态报告。每个USB设备都有一个名为“端点0”的控制端点,USB核心使用该端点在设备插入时进行设备的配置。USB协议保证这些传输始终有足够的保留带宽以传送数据到设备。(2)中断端点:当USB宿主要求设备传输数据时,中断端点就以一个固定的速率来传送少量的数据。它们通常还用于发送数据到USB设备以控制设备,不过一般不用来传输大量的数据。USB协议保证这些传输始终有足够的保留带宽以传送数据。(3)批量端点:它传输大批量的数据。这些端点通常比中断端点大得多(它们可以一次持有更多
5、的字符)。它们常见于需要确保没有数据丢失的传输的设备。USB协议不保证这些传输始终可以在特定的时间内完成。如果总线上的空间不足以发送整个批量包,它将被分割为多个包进行传输。这些端点通常出现在打印机、存储设备和网络设备上。(4)等时端点:它同样可以传送大批量的数据,但数据是否到达是没有保证的。这些端点用于可以应付数据丢失情况的设备,这类设备更注重于保持一个恒定的数据流。实时的数据收集(例如音频和视频设备)几乎毫无例外都使用这类端点。2接口USB端点被捆绑为接口。USB接口只处理一种USB逻辑连接,例如鼠标、键盘或者音频流。一些USB设备具有多个接口,一个USB接口代表了一个基本功能,而每个USB
6、驱动程序控制一个接口,因此对于具有多个接口的USB设备来说,Linux需要有多个不同的驱动程序来处理一个硬件设备。3配置USB接口本身被捆绑为配置。一个USB设备可以有多个配置,而且可以在配置之间切换以改变设备的状态。3. 2 USB驱动体系结构通用串行总线(USB)是一种外部总线结构,特点是接口统一、方便扩展、支持热插拔,简化了计算机与不同类型外设间的连接。USB是一种分层总线结构,并且由一个主机控制器来控制,USB主机控制器(host controller)负责询问每一个USB设备是否有数据需要发送,USB不支持设备的直接通信。图3.2给出了Linux中USB驱动的体系结构。图3.2 Li
7、nux下USB驱动体系结构Linux USB主机驱动由三部分组成:USB主机控制器驱动、USB驱动和不同的USB设备类驱动。其中USB主机控制器驱动(HCD)是USB主机直接与硬件交互的软件模块,它为上层提供统一的接口,屏蔽掉硬件具体细节。USB驱动(USBD)是整个USB主机驱动的核心,主要为USB设备类驱动提供相关的接口、提供应用程序访问USB系统的文件接口。而USB设备类驱动是最终与应用程序交互的软件模块,主要为访问特定的USB设备和应用程序提供接口。四、 硬件设计图4 初步设计框图4. 1 USB 摄像头SPCA561A视频信号的采集一般选择USB 摄像头来实现。如图4.1.1所示,
8、USB 摄像头SPCA561A 集成了镜头、CMOS 传感器、USB 图像处理器以及USB 控制器。图4.1 SPCA561A芯片示意图比起直接与微处理器接口的CMOS 传感器, 使用USB 摄像头虽然成本偏高, 但是易于实现, 节省CPU 资源, 传输速度远远高于串口、并口的速度,而且驱动支持非常丰富。SPCA561A 提供了一种单芯片摄像头解决方案, 它将一个CIF 的CMOS 传感器、一个图像处理器和USB 控制器集成于单芯片, 从而大大降低了成本和开发难度; 缺点是只有10 万像素, 每秒帧数较少, 然而非常适合应用于图像要求不高的小型监控系统。4. 2 USB 主机控制器CH374C
9、H374 是一个嵌入式USB 总线的通用接口芯片, 支持USB 主机方式和USB 设备方式, 支持低速和全速的控制传输、批量传输、中断传输以及同步传输。在本地端,CH374 具有8 位数据总线和读、写、片选控制线以及中断输出, 可以方便地挂接到DSP/ MCU/ MPU 等控制器的系统总线上。大多数嵌入式的USB 主机接口芯片并不提供同步传输模式, 而CH374 的一大特点就是提供了同步传输, 使得视频和音频流的传输成为可能。本系统使用CH 374 作为USB 主机控制器, 如图4所示。CH374 用总线方式与S3C44B0 相连, 微控制器通过读写CH374 寄存器实现USB 主机驱动。4.
10、 3 USB 同步传输原理同步传输主要用来传输音频或视频信号。这种信息是周期的, 又是实时的, 对信息实时性有很高的要求, 但是对误码率却可以容忍。所以USB 为这种信息保留90%的带宽, 其他类型的传输在同步传输期间不可以占用。为保证数据传输的实时性, 同步传输不进行数据错误的重传, 也不在硬件层次上响应一个握手资料包。同步传输的主机每隔1 ms 发送一个SOF 同步信号, 随后接收设备发送的信号, 其数据流程如图4.3 所示。图4.3 同步传输流程图在同步传输中, 每一个信包的容量是一定的。拿SPCA561 来说, 在启动同步传输之前必须设置相应的接口号。不同的接口号决定将要发送多大的信包
11、容量, 如接口号1 每次发送的信包容量是128 字节, 接口号6 的信包容量是896 字节。接口号通过USB 标准设备请求SET _INTERFACE 来设置。由于CH374 的缓冲区最大为128字节, 所以本设计中使用接口号1, 同步传输每接收一个信包的大小是128 字节容量的信包。4. 4 视频数据采集过程如图4.4所示, 视频信号由摄像头SPCA561A 采集得到, 经过内部的图像处理芯片后编码为规定的格式, 一般为RGB 或者YUV 格式, 但是SPCA561 采用比较特殊的S561 图像格式( 类似于RGB 格式) 。因为一帧图像的数据量很大, 无法在一个同步信包内传送, 所以将其分
12、割成多个单元, 每个单元前添加包头( 包头的内容包括当前包序号和此图像帧信息) , 组成多个同步信包, 通过FIFO 缓冲发送到USB 总线上。主机控制器用同步方式接收每个信包, 并去除包头合并成S561 格式的数据, 组成一个完整的图像帧。最后由软件将此图像帧预编码成为YUV420格式的图像数据, 以便后续的压缩处理。图4.4 视频数据采集示意图五、 软件设计5. 1 USB 摄像头初始化初始化一个USB 摄像头有两个步骤, 第一步是摄像头的枚举, 第二步是摄像头的自定义设置。( 1) 设备枚举设备的枚举就是标准设备请求的过程。对USB 摄像头来说, 枚举的过程依次如下: 获取设备描述符。通
13、过设备描述符得到端点0 的负载, 也就是最大传送包容量。 设置地址。给设备分配一个默认地址0 之外的地址。 获取配置描述符。这个过程包括两个阶段, 第1次获取的配置描述符的前4 个字节得到配置描述符的真实长度; 再以真实长度第2 次获取配置描述符, 此描述符包含了设备的配置信息和多个接口信息。可以从这里得到可以使用的接口号和对应的信包负载。 设置配置信息。设置的主要信息是配置描述符中的第5 个字段bConf igurationValue。 设置接口。USB 摄像头不同的接口号对应不同的信包负载。本设计选定的接口号为2, 对应信包负载是128 字节。( 2) 自定义设置USB 摄像头并不是标准U
14、SB 外设, 需要很多自定义设置, 可以称之为/ 自定义设备请求0, 它是用标准设备请求包方式传送的, 目的是修改内部寄存器, 对采集图像和压缩方式进行配置。自定义设备请求的内容非常丰富, 它包含以下几个方面: 时序产生设置。包括图像采集频率和振荡器的设置等。 图像处理设置。包括图像窗口大小、压缩类型、色彩分配等配置属性。 存储器设置。对图像缓冲进行设置。 控制及状态设置。包括启动及停止图像采集、数据传输方式、当前状态等配置属性。初始化结束后, 可以根据需要进行图像格式的设定, SPCA561A 支持SQVGA ( 160 x 120) 、QCIF( 176x 144) 、QVGA( 320
15、x 240) 、CIF( 352 x288) 四种格式。设定结束后启动摄像头采集, 进行数据传输。5. 2 同步传输和图像帧处理同步传输的过程非常简单, 甚至不包含握手信息; 但是因为同步传输对时序的要求很高, 所以对同步传输数据的处理颇困难。此驱动的设计将同步数据的接收用中断服务程序进行处理, 同步数据的处理放在中断服务之外执行。图5.2.1 同步传输中断 中断服务程序流程如图5.2.1所示。每次同步中断发生时, 首先从USB 主机控制器的缓冲区内读取接收到的128 字节同步信包, 将数据存储到数据处理程序提供的存储单元中。再发送PID_IN 标志和端点号, 设置同步传输类型并启动下一次传输。CH374 主机会在每1 ms 发送1个SOF 同步标志, USB 设备接收到SOF 标志后, 会传送下一个同步信包。 同步数据处理程序如图5.2.2 所示。图5.2.2 同步数据处理程序流程图中断结束后, 执行数据处理程序, 程序读取同步信包的第一个字节, 确认同步帧处理包的序号, 此序号的范围是0 0x FF。如果此序号为0xFF, 则说明是无效包, 需要丢弃。如果此序号为0, 则可能是首次采集得到的第一个同步数据包, 直接存储此数据到图像帧; 也可能是当前图像帧结束后开始的下一帧图像的第一个同步信包, 则需要处理已经结束当前帧图像, 同时将当前帧设置为下帧。至此得到了一帧图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 听读训练考试题及答案
- 天然气管护员考试题库及答案
- 冀教版数学六年级上册1.3 扇形 同步练习(含解析)
- 骨整合电刺激-洞察及研究
- 静脉抽血法试题及答案
- 纪检督察员管理办法
- 财务供热收费管理办法
- it公司取证管理办法
- 营销管理办法明确了
- it数据变更管理办法
- 2022创伤骨科患者围术期下肢静脉血栓形成诊断及防治专家共识
- 《急性亚硝酸盐中毒》课件
- 2024年度企业员工信息安全培训内容
- 《标准施工招标文件》(2007年版)
- led显示屏售后服务承诺书
- 酒店水单模板
- 输尿管镜碎石术
- 园林植物栽培实验课件
- 兽医药理学各论(抗微生物药物)课件(同名386)
- 焊接专业安全技术交底
- 洁净区人员行为规范培训PPT
评论
0/150
提交评论