题目《WINCE_NET系统下USB总线客户端设备驱动的研究与开发》
嵌入式系统的含义:以具体的产品为形态,以计算机技术为基础,软硬件可裁剪,适应应用系统的具体要求,对功能,可靠性,成本,功耗严格要求的专用计算机系统
比较著名的嵌入式操作系统:VXWORK,PSOS,LINUX,wince5.0,发布于2004年6月,最新版本是06年的WINCE6.0,BSP的开发包跟不上版权进度,所以WINCE5.0应用广泛。WINCE5.0有五大特点:1:高度的模块化和可裁剪性,最小的WINCE2.0内核可以做到200KB,winXPEmbedded只能做到5MB,典型是4MB-18MB2:多硬件平台支持,ARM.MIPS,SUPERH,X86. 3稳定的实时性支持。。支持中断嵌套和中断优先级设置,具有强大的线程控制能力, 4 丰富的资源,开发便利:支持DIRECT API 和WINDOWS MEDIA 5强大的开发工具 EVC,VS.NET.PB
USB总线是Intel,Microsoft,Compaq,NEC等计算机公司联合推出的新型的计算机外围设备串行通信接口标准。
驱动程序是硬件与操作系统联系的桥梁
USB总线标准是一种开放的标准。它立求在同一个系统框架下统一软件与硬件的接口与开发,从而使驱动程序设计简化。
在主机端,需要具备单独的USB主机控制器硬件,在相关的USB协议栈的支持下才能实现对设备的控制和通信。
这个图描述了USB主机通讯流程,实际的数据流是纵向的。
通常所说的USB规范包括以下三个部分:
USB基本规范,即我们常说的USB1.X, USB2.0
USB设备规范:硬件功能制造时所依据的规范
USB主机控制器规范:实现主机与设备传输的硬件规范
USB1.1: 设备传输速度1.5Mb/S 12Mb/S 2000年推出的USB2.0规范达到了480Mb/S
主机端USB总线体系结构HOST
---分层结构
---
---主机控制器及其驱动程序,HCD Host Controller Driver 作为USB主机端的唯一硬件,主机控制器就是总线接口层。它控制了电气和协议层的交互。由SIE串行接口引擎实现了USB总线的电气协议,并且解释并执行上层USBD协议栈的请求。不同的控制器硬件功能不同,但是普遍采用的都是UHC UNIVERSIAL HOST CONTROLLER 和OHC OPEN HOST CONTROLLER
---USB协议栈USBD USB BUS DRIVER. USBD是主机端USB总线管理的大脑,使得控制简化。USBD提供了客户端驱动程序和操作系统访问设备的机制集合。对USB设备进行管理以及实现上下层通讯,为客户端驱动提供数据通讯机制和命令机制,即接口函数,从而使用户可以访问设备。USB拥有对默认缺省管道0的控制权,该管道负责传送命令控制流,
---客户端驱动程序client driver,USB规定接口不同对应的驱动功能也不同,一个设备可能要写多个客户端驱动程序。该层功能主要利用USBD提供的功能来创建管道,传输完成后根据USB系统软件返回的数据传输状态,判断信息的正确与否。
USB总线设备的特征对应不同的规范,不同的驱动程序
USB总线的各类描述符
---符结构是USB协议中使用最为广泛的。USB设备通过描述符来反映自己的功能特性。
USB1.X中描述符包括了:设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符。USB2.0为了适应速度的提高增加了好几种描述符。由于设备的多样性,协议还允许了非标准描述符的存在
---一个设备只能有一个设备描述符,允许有多个配置描述符。每个配置描述符可以有多个接口功能描述符,每一个接口描述符允许有多个端点描述符,字符串描述符可有可无,视具体设备而定,功能是用来描述厂商信息,设备信息
---USB设备描述符提供厂商标志,设备序列号,包含了14个字段,分别为描述符共有信息,设备的产品信息,配置信息。这个描述符是设备连到总线上后读取的第一个描述符,是系统注册表为之匹配驱动程序的信息来源
USB总线的请求命令
---由主机发给设备,USB1.X有11种命令,所有命令都遵循相同的结构
USB总线的管道和端点
---USB总线数据传输的四种方式:控制传输,批量传输(U盘),中断传输(鼠标),等时传输(摄像头)
---USB数据传输的通道叫做管道。不是一个体的对象,而是逻辑的抽象
USB总线设备配置过程
---在每个设备正常工作之前,必须完成对其的配置工作,这是USB设备通信与传统方式不同的地方。
---设备配置又叫做设备枚举,由主机的协议软件完成
---USB总线的主机控制器必须通过其上的根集线器才能连接识别外围的设备
---根集线器在主机的配合下实现设备枚举的过程,应完成以下基本任务
1)发现设备连接
2)给请求的设备分配地址
3)从设备中获取所需要的描述符
4)根据设备所反应的数据来对设备进行配置
5)加载相应的设备驱动程序
阅读(1221) | 评论(0) | 转发(0) |