
USB设计
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
WDM驱动设计系统环境设置
系统环境设置在编写USB设备驱动程序时,开发人员需要使用下列软件: 1、 Microsoft Visual C++。 2、 SDK(Software Development Kit,软件开发工具包),它是可选的。 3、 DDK(Driver Development Kit,驱动开发工具包)。 Visual C++是包含标准编译工具(编译程序和连接程序)的集成开发环境,通过正确设置,其可以用来建立内原创 2009-05-15 21:12:00 · 2835 阅读 · 2 评论 -
USB设备驱动程序开发框架
USB设备驱动程序开发框架USB设备驱动程序开发框架的源代码文件文件名说明Driver.h驱动程序头文件DrvInit.c入口例程和卸载例程DrvPnp.c即插即用例程DrvDispatch.c分发例程DrvPowe原创 2009-05-16 11:28:00 · 2723 阅读 · 0 评论 -
USB常见术语及缩略词
ACK 确认信号Active Device 正在使用的设备Asynchronous Data 异步数据Asynchronous RA 异步原创 2009-05-14 11:32:00 · 3301 阅读 · 0 评论 -
USB设备的电源设计考虑
USB设备的电源设计考虑作者:duoduo 在USB接口有四根线,分别是VBUS,D-,D+,GND。其中VBUS线是HOST/HUB向USB设备供电的电源线。HOST/HUB每个端口通过VBUS提供的电流最大为500mA,电压范围是4.4V-5.5V,但是这并不是意味着设备可以无条件地使用VBUS向自己提供500mA的电流。 根据USB规范,从转载 2009-05-13 18:15:00 · 3701 阅读 · 2 评论 -
我学习USB设计的历程
首先谢谢这位大哥的这篇文章,学习是一个痛苦的过程,但是却会有甜美的收获,将自己的感受写出来与大家分享,把资源上载共同利用,真的是我们开发人员共同应当努力的,建设几个”优美“的开发圈圈。谢谢-献给即将学习USB和对此感兴趣的朋友作者:duoduohttp://www.ifelec.com 最初想学习USB的原因在于当时非常非常想有一台通用编程器,商用的编程器虽转载 2009-05-13 17:25:00 · 2792 阅读 · 5 评论 -
USB描述符
USB是个通用的总线,端口都是统一的。但是USB设备却各种各样,例如USB鼠标,USB键盘,U盘等等,那么USB主机是如何识别出不同的设备的呢?这就要依赖于描述符了。 USB的描述符主要有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,HID描述符,报告描述符等等。关于报告描述符,请看我以前写的:《USB HID报告及报告描述符简介 》 http://h原创 2009-05-13 14:54:00 · 2640 阅读 · 0 评论 -
USB一种主从结构
USB是一种主从结构。主机叫做Host,从机叫做Device(也叫做设备),集线器也被当作一种特殊的设备处理。USB的数据交换只能发生在主机和设备之间,主机和主机,设备和设备之间不能互连。为了在物理上区分主机和设备,使用了不同的插头和插座,这个在USB的连接器一节中会讲到。所有的数据传输都由主机主动发起,而设备只是被动的负责应答。例如,在读数据时,USB先发出读命令,设备收到该命令后,才返回数据。原创 2009-05-13 11:31:00 · 11100 阅读 · 0 评论 -
USB HID报告及报告描述简介
在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等。USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。 USB HID设备是通过报告来给传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的,例如USB鼠标将鼠标原创 2009-05-13 14:48:00 · 3672 阅读 · 0 评论 -
USB电气特性
标准的USB使用4根线:5V电源线(Vbus),差分数据线负(D-),差分数据线正(D+),地(Gnd)。在USB OTG中,又增加了一种mini接口,使用的是5根线,比标准的USB多了一根身份识别(ID)线。USB使用的是差分传输模式,有两根数据线,分别是D+和D-。在USB的低速和全速模式中,采用的是电压传输模式。而在高速模式下,则是电流传输模式。关于具体的高低电平门限值,请参看USB协议。为原创 2009-05-13 11:36:00 · 3280 阅读 · 0 评论 -
dirs文件
dirs文件通过dirs文件,BUILD工具可以递归创建其他目录中的目标源文件。dirs文件通常存在于含有子目录的上层目录中(如DDK的根目录),其子目录可以是源文件所在的目录,也可以使其他含有dirs文件的目录。在dirs文件中可以使用DIRS宏,以指明BUILD工具需要构造的目录列表,其各个目录之间可以用空格键或“tab”键来分割,但DIRS宏只能列出当前目录的下一级目录。即当存在多级原创 2009-05-16 08:51:00 · 2499 阅读 · 0 评论 -
设备驱动程序安装的重要文件
设备驱动程序安装的重要文件INF文件 INF(Device Information File设备信息文件)是一个文本文件,包含一个或多个USB设备、设备驱动程序和其安装过程的详细信息,如该设备使用哪个驱动、系统注册表中应存储哪些信息等,以确保其硬件设备能够正确的配置和安装。 在USB设备驱动程序安装完毕后,该设备的一些基本信息(如DeviceDesc、Hardw原创 2009-05-16 14:36:00 · 2867 阅读 · 0 评论 -
设备驱动程序INF文件的处理过程
设备驱动程序INF文件的处理过程当Windows发现有USB设备连接时,其设备管理器会把系统所有的INF文件中的数据和该USB设备的设备信息或接口信息进行比较,已找到与之匹配的INF文件。对于Windows 98,为避免在每次检测到新设备时都需读取INF文件本身,他建立了一个保存INF文件调用信息的数据库,其文件名为drvdata.bin和drvidx.bin,他们位于“Windows/INF原创 2009-05-16 14:50:00 · 4441 阅读 · 0 评论 -
CYPEESS USB3.0程序解读之---SPI读写
前面已经解读了GPIO以及同步FIFO操作,下面我们看一个SPI读写的例子,它是主程序命令从SPI中读写一些数据。SPI传输子程序看一下: 页地址,字节计数,缓冲区,读写标志因为只能一页一页的读或写,故读写总是从页地址开始的/* SPI read / writefor programmer application. */CyU3PReturnStatus_tCyFxSpiTransfer (转载 2013-08-16 16:50:56 · 3304 阅读 · 0 评论 -
CYPEESS USB3.0程序解读之---同步FIFO(slaveFifoSync)
上一篇文章解读了CYPRESS FX3的GPIO的操作过程,下面解读同步FIFO的一个例子(slaveFifoSync)。*生产者,消费者。1、首先看DMA的回调函数(cyu3dma.h):typedef void (*CyU3PDmaCallback_t) ( CyU3PDmaChannel *handle, /* Handle to the DMA channel. */ CyU3PD转载 2013-08-16 16:50:32 · 6825 阅读 · 3 评论 -
CYPEESS USB3.0程序解读之---GPIO
CPRESS 官方给出的SDK1.1中(目前最新的SDK),提供了大量的例程供我们开发软件的时候作参考,就像STM32的开发一样提供了库一样,但是又不是库,仅仅是参考例程。首先看一个简单一点的GPIO的例子(GpioApp) 1.先是一个错误处理的函数,我们不需要它,故这是一个死循环。 2. CyFxDebugInit 这个函数,将串口作为调试口用115200bps。 3.void CyFxGp转载 2013-08-16 16:50:01 · 4536 阅读 · 1 评论 -
USB 3.0 开发要点
最近在公司里安排了我一个新的任务,那就是USB3.0的研发。对于我之前都是做ARM+LINUX和单片机软件研发的来说,虽然之前都是做驱动程序和应用程序,但是没有做与USB 相关的开发,毕竟这是第一次。还好都是用C/C++来进行嵌入式软件开发。所以一切进行比较顺利。其实,USB 3.0来说,虽然现在还没有广泛普及,但是我们几年后就会随处可见。想像一下,现在USB 2.0的高速模式才是480Mb/s,转载 2013-08-16 16:48:31 · 3667 阅读 · 14 评论 -
常用电平转换方案
(1) 晶体管+上拉电阻法 就是一个双极型三极管或 MOSFET,C/D极接一个上拉电阻到正电源,输入电平很灵活,输出电平大致就是正电源电平。(2) OC/OD 器件+上拉电阻法 跟 1) 类似。适用于器件输出刚好为 OC/OD 的场合。(3) 74xHCT系列芯片升压 (3.3V→5V) 凡是输入与 5V TTL 电平兼容的 5V CMOS 器件都可以用作 3.3V→5V 电平转换原创 2010-03-06 01:58:00 · 3115 阅读 · 2 评论 -
DriverStudio的USB编程类函数
DriverStudio的USB编程类函数DriverWorks提供了三个类:KUsbLowerDevice、KUsbInterface和KUsbPipe类,用于实现USB设备操作。KUsbLowerDevice类用于逻辑设备的编程,KUsbInterface类用于借口的编程,KUsbPipe类用于管道的编程。1、KUsbLowerDevice类 KUsbLowerDevi原创 2009-05-30 08:52:00 · 3661 阅读 · 0 评论 -
USB描述符
描述符 USB采用USB标准描述符说明一个USB设备,这些描述符包括设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符。对于高速设备还包括设备限定描述符和其他速率配置描述符。设备类和供应商也可以自己定义其设备专用描述符,分别称为设备类定义描述符和供应商自定义描述符。 (1)设备描述符 (Device Descriptor)用于指出USB设备的总体信息,其内容对该设备中原创 2009-05-23 21:35:00 · 3874 阅读 · 2 评论 -
设备驱动程序INF文件——INF文件的节
INF文件的节 INF文件是一个文本文件,由许多按层次结构排列的节组成,他们以方括号中的节名称开始,如[Version]、[Manufacturer]等,后面是改接所含有的各个项,如Signature、DriverVer等。节中各项的基本定义格式为entry=value[,value…] 其中,“entry”标示项名称,“value”标示该想的取值。节名和项名称原创 2009-05-16 15:11:00 · 5267 阅读 · 2 评论 -
USB通信协议
要对USB传输有个清楚的了解首先必须要了解两个基本概念:端点和管道。(l)端点 所有的传输都是传送到设备端点,或是从设备端点发出。端点其实就是一个能够储存多个字节的缓存器。在USB规范中,端点被定义为“USB设备中唯一可寻址部分,是主机与设备之间通信流的来源或去向。” 每个端点所需的唯一地址是由端点编号和方向组成的。编号范围可以是0-15,方向则基于主机的角度:创表示朝向主机,原创 2009-05-13 11:33:00 · 8370 阅读 · 3 评论 -
USB设备状态
USB设备状态 USB外设通过数据线与主机连接后,由于其特殊的电气特性,主机立刻知道有外设插入,主机读取外设的描述符,并根据其进行配置。配置完成后,外设和主机就可以进行数据传输。USB外设有若干可能的状态。 (1)连接状态 USB设备可被连接到USB接口上或从接口断开,USB设备处在断开时的设备状态不包括在本篇说明之中。本篇说明中仅讨论那些处在连接状态的设备特性与操作。 (2)加电状态(Power原创 2009-05-13 11:33:00 · 5402 阅读 · 0 评论 -
USB系统的主从机制
USB作为一种主从总线,就意味着任何USB事务都是由主机引发。USB主机处于主模式,设备处于从模式。在主机中,USB所需要的唯一的系统资源是USB系统软件所使用的内存空间、USB主控制器所使用的内存地址空间(I/O地址空间)和中断请求(RIQ)线。每一个设备有一些专有寄存器,也就是端点(EndPoint)。在进行数据交换时,应用程序可以通过设备驱动间接访问它。每一个端点支持几种特殊的传输原创 2009-05-11 16:26:00 · 8418 阅读 · 2 评论 -
USB的四种传输类型
USB定义了4中传输类型 控制传输:可靠的、非周期的、由主机软件发起的请求或者回应的传输,通常用于命令事物和状态事物。 同步传输:在主机与设备之间的周期性的、连续的通信,一般用于传输与时间相关的信息。这种类型保留了将时间概念包含于数据总的能力。但这并不意味着传输这样的数据的时间总是很重要,基传输并不一定很紧急。 中断传输:小规模数据的、低速的、固定延迟的传原创 2009-05-11 11:26:00 · 5840 阅读 · 1 评论 -
USB数据通信协议简介
数据通信协议部分是USB的核心内容。主要包括:以差模串行信号为载体传送二进制代码来传输信号;数据包作为最基本的完整信息单元,包含一系列数据信息。数据包可以分解为更小的单元—域;以包为基础,构成USB的三种事务。进而,组合不同的传输类型,传输各种类型的数据,实现USB的各种功能。 包是USB最基本的数据单元,每个包,基本包含一个完整的USB信息。按照其在整个USB数据传原创 2009-05-12 08:30:00 · 9427 阅读 · 0 评论 -
USB数据处理
USB需要实现的区域主要包括两大部分。在主机部分,包括客户软件、USB系统软件和主机控制器;在USB物理设备方面也包括客户软件、USB系统软件和主机控制器。那么要实现主机和设备间的通信也就是要实现主机客户软件与USB物理设备客户软件间的数据通信。实际的通信(数据)流流向为主机客户软件主机UBS系统软件主机UBS主机控制器设备UBS主机控制器设备UBS系统软件设备客户软件。 U原创 2009-05-11 22:08:00 · 2759 阅读 · 0 评论 -
USB系统的分层
为了方便理解主机和USB设备间的数据传输机制,USB系统的分层结构进行了更详细的描述。从逻辑上看,客户软件通过一组管道来与USB设备的功能单元进行通信;USB系统软件和USB逻辑设备间的通信是通过缺省控制管道0实现的;所有实际的USB数据传输都是由主机和USB设备的SIE来完成。功能层 功能层负责实现USB设备的特定功能。该层不理解USB的串行传输机制,而只是知道应该和US原创 2009-05-11 21:14:00 · 3470 阅读 · 0 评论 -
USB接口技术发展历史和接口技术的优点
基于传统I/0模式的外设必须占用PC主机的中断请求、I/0地址等系统资源,而这些有限的主机资源不可共享,容易发生冲突,无法满足众多外设连接的需要;而传统串行通信标准的数据传输率比较低,在使用上也很不方便,特别是双向通信能力和多接口扩展能力非常有限。因此,为满足数量众多、种类不一的计算机外设的数据传输需求,业界鱼待一种新的接口方案来解决上述问题。 1994年,Intel、Com原创 2009-05-11 15:15:00 · 5656 阅读 · 0 评论 -
USB协议栈设备框架和连接枚举过程
介绍标准的USB设备描述符和请求命令的概念,是搭建USB协议栈的基础知识,以及进行USB固件和软件设计时首先需要编程实现的部分。 标准usB描述符 描述符(Descriptor),是一个完整的数据结构,用于描述一个USB设备的所有属性。USB协议将这些属性信息进行分类,定义了五种标准的描述符,按照等级由高到低依次为:设备描述符、配置描述符、接口描述符和端原创 2009-05-12 08:52:00 · 5613 阅读 · 0 评论 -
USB描述符
USB设备的属性通过一组描述符来反映它们,这些描述符是具有一定格式的数据结构,主机软件可通过GET_DESCRIPTOR请求获取这些描述符。每一个描述符的第一个字节表明本描述符的长度,其后是一个字节的描述符类型信息。如果描述符之中的长度域值少于本说明的定义,此描述符被认为非法,不能被主机接收;如果返回的描述符中的长度域值大于本说明定义,则过长部分被忽略。USB设备描述符类型如表所示:USB设备原创 2009-05-11 19:33:00 · 3985 阅读 · 0 评论 -
USB端点与管道
USB设备中的唯一可寻址部分是设备端点。端点是主机与设备之间通信的目的或来源。控制端点可以双向传输数据,而其它端点只能在单方向传输数据。主机和设备的通信最终作用于设备上的各个端点,它是主机与设备间通信流的一个逻辑终端。每个USB设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设计设备时给定的。每个端点都是一个简单原创 2009-05-11 16:42:00 · 4209 阅读 · 2 评论 -
USB通信流
USB数据传输 在USB总线上,所有与USB设备功能单元的数据传输都是由客户软件启动的,而且必须经过主机的USB系统软件和USB总线接口模块才能将数据发送到USB设备。其传输过程涉及4个软硬件实体:客户软件、USB总线驱动程序、USB主控制器驱动程序和USB主控制器。客户软件向USB设备发送数据的情况,其传输步骤如下。(l)客户软件把要传输的数据放入数据缓冲区,并向USB总线驱动程序发出原创 2009-05-11 21:28:00 · 2635 阅读 · 0 评论 -
USB设备类
要完成一个USB设备的开发,仅了解USB协议是不够的,还需要知道USB设备类协议,USB协议与USB设备类协议是相互补充的。为了简化USB总线的开发流程,USB-IF将常用的具有相同或相似功能的设备归为一类,并制定了相关的设备类规范,使得只要依照统一规范标准,不同的厂商开发的USB设备可以使用同样的驱动程序。 USB设备类是个庞大的概念,限于篇幅,简单介绍一下一些常见的类型原创 2009-05-12 09:12:00 · 3421 阅读 · 0 评论 -
USB 软件、端点和管道
在实际的实现上,具体的系统要比这复杂,不同层次的实现者对USB有不同要求,这使得我们必须从不同的层次观察UBS系统。UBS系统提出了一些重要的概念来支持现代个人计算机所提出的可靠性要求,所以USB的分层理解是必须的。它能使不同层次的实现者只关心UBS相关层次的特性功能细节,而不必掌握从硬件结构到软件系统的所有细节。通信服务的协议按照不同的功能分为功能层、设备层和接口层。 模型原创 2009-05-12 10:09:00 · 6415 阅读 · 0 评论 -
USB的概念及其特性
USB技术由三个部分组成:具备USB接口的CP机系统、能够支持USB的系统软件和使用USB接口的设备。 USB是“Universal Serial Bus”的缩写,即通用串行总线。它是一种电缆总线,是由Intel等厂商制定的连接计算机与具有USB接口的多种外设之间通信的串行总线. USB具有如下的结构: 硬件结构:UBS采用四线电缆,其中两根用来做数据传输的串原创 2009-05-11 21:39:00 · 3044 阅读 · 0 评论 -
USB设备和设备描述符
按USB设备功能的不同,可以分为两大类:集线器和功能设备。其中,集线器为USB系统提供额外的连接点,它使得一个USB端口可以连接多个设备;功能设备为主机提供额外的功能,如USB键盘、数码相机等。在终端用户看来,USB设备为主机提供了多种多样的附加功能,但对USB主机来说,它与所有USB设备的接口都是一致的,它认为一个USB设备由3个功能模块组成:USB总线接口、USB逻辑设备和功能单元。原创 2009-05-11 21:08:00 · 3082 阅读 · 0 评论 -
USB设备的枚举过程
主机对一个USB设备的识别是经过一个枚举的过程来完成的,主机的总线枚举器随时监控必要的设备状态变化。总线枚举的过程如下:(1)设备连接。USB设备经USB总线连接主机。(2)设备上电。USB设备可以自供电,也可以使用USB总线供电。(3)主机检测到设备,发出复位。主机通过检测设备在总线的上拉电阻检测到有新的设备连接,并获释设备是全速设备还是低速设备,然后向该端口发送一个复位信号。(4)设备默认状态原创 2009-05-11 20:25:00 · 5926 阅读 · 2 评论 -
USB协议层和USB数据传送类型
USB协议层描述了USB主机与USB设备交互时的语法和协议,并且定义了字段、包、事务和传输的结构,以及由字段到包、由包到事物、由事物到传输所组成的组织层次关系。 USB规范定义了四种传送类型:控制传送、批量传送、等时(同步)传送和中断传送。它们的不同之处在于:单个事务能携带的数据量能否保证特定的周期或延迟,能否自动校正错误。实际上,给定类型的端点(控制、批量、中断、等时)总是原创 2009-05-11 16:50:00 · 3856 阅读 · 3 评论 -
USB通信模型
一般而言,每个USB设备可以有一个或多个配置(configuration),设备的每个配置中都含有一个或更多的接口(interface),接口指出软件应该怎样访问硬件,另外,接口一般都有替换设置(alternate setting)以适应不同的带宽要求。设备的接口又包含一个或多个端点(endpoint),端点是作为通信管道(pipe)的一个终点。端点类型直接影响着USB数据的传输类型,原创 2009-05-11 15:40:00 · 3090 阅读 · 0 评论 -
USB总线协议概述
USB总线属于一种轮讯方式总线,主机控制端口初始化所有的数据传输。每一总线动作最多传送三个数据包,包括令牌(Token)、数据(Data)、联络(HandShake)。按照传输前制定好的原则,在每次传送开始时,主机送一个描述传输动作的种类、方向、USB设备地址和终端号的USB数据包,这个数据包通常被称为令牌包(TokenPacket)。USB设备从解码后的数据包的适当位置取出属于自己的原创 2009-05-12 10:24:00 · 7784 阅读 · 4 评论