当前位置: 首页 > news >正文

上海网站制作找缘魁湖南做门户网站的公司

上海网站制作找缘魁,湖南做门户网站的公司,wordpress修改幻灯片,做推文网站除了秀米还要什么Windows下usb接口芯片的驱动技术一、 USB概述 USB的英文全称为Universal Serial Bus,中文含义是通用串行总线#xff0c;是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器#x… Windows下usb接口芯片的驱动技术一、        USB概述  USB的英文全称为Universal Serial Bus,中文含义是通用串行总线是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器它支持各种PC与外设之间的连接还可实现数字多媒体集成。现在生产的PC几乎都配备了USB接口Microsoft 的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系统都增加了对 USB的支持。它是一种快速的双向的同步传输的廉价的并可以进行热拔插的串行接口。USB接口使用方便它可以连接多个不同的设备而过去的串口和并口只能接一个设备。速度快是USB技术的突出特点之一。全速USB接口的最高传输率可达12Mb/s,比串口快了整整100倍USB总线标准由1.1版升级到2.0版后传输率由12Mbps增加到了480Mbps.这使得高分辨率、真彩色的大容量图象的实时传送成为可能。USB接口支持多个不同设备的串列连接一个USB接口理论上可以连接127个USB设备。连接方式也十分灵活既可以使用串行连接也可以使用集线器(Hub)把多个设备连接在一起再同PC机的USB接口相接。普通的使用串口、并口的设备都需要单独的供电系统而USB设备则不需要。正是由于USB的这些特点使其获得了广泛的应用。 二、        USB的总线结构 USB的总线结构是采用阶梯式星形tiered star的拓扑topology结构如上图和下图所示。每一个星形的中心是集线器而每一个设备可以通过集线器上的接口来加以连接。从图中可以看到USB的设各包含了两种类型USB集线器与USB设备。位于最顶端的就是Host主机端。从Host的联机往下连接至Hub集线器再由集线器按阶梯式以一层或一阶的方式往下扩展出去连接在下一层的设备或另一个集线器上。事实上集线器也可视为一种设备。而其中最大层数为6层包括计算机内部的根集线器。每一个星形的外接点的数目可加以变化一般集线器具有2、4或7个接口。 在此的主机端通常是指PC主机。当然主机端因具有根集线器因此也含有集线器的功能。而集线器是在USB规范中特别定义出来的外围设备除了扩增系统的连接点外还负责中继repeat上端下端的信号以及控制各个下端端口的电源管理。至于另一个设备即是用户常见的外围设备。但在USB规范书中称这种设备为“功能”functions意味着此系统提供了某些“能力”例如具有键盘或鼠标等功能。当然不同的外围设各可以具有不同的功能。通过这种阶梯式星形的连接方式最多可同时连接到127个设备。 三、        USB结构与工作原理一个USB系统可以从三个方面加以描述 (1)USB互联。 (2)USB设备。 (3)USB主机。 USB互联是指一个USB设备与USB主机相联并和其通信的方式,它包括 (1)总线拓扑结构USB主机和USB设备的连接模型。 (2)层间关系USB在系统中的每一层都要完成一定的任务。 (3)数据流模型USB系统中信源和信息之间的数据传送方式。 (4)任务规划USB提供可以共享的互联机制。通过规划对互连机制的访问可以支持同步数据传输。 四、        USB硬件结构  一个USB系统包含三类硬件设备: USB主机(USB HOST)、 USB设备(USB DEVICE)、USB集线器(USB HUB)。   (1)USB HOST 在一个USB系统中当且仅当有一个USB HOST时USB HOST有以下功能: Ø  管理USB系统; Ø  每毫秒产生一帧数据; Ø  发送配置请求对USB设备进行配置操作; Ø  对总线上的错误进行管理和恢复。   (2)USB DEVICE 在一个USB系统中USB DEVICE和USB HUB总数不能超过127个。USB DEVICE接收USB总线上的所有数据包通过数据包的地址域来判断是不是发给自己的数据包若地址不符则简单地丢弃该数据包;若地址相符则通过响应USB HOST的数据包与USB HOST进行数据传输。   (3)USB HUB   USB HUB用于设备扩展连接所有USB DEVICE都连接在USB HUB的端口上。一个USB HOST总与一个根HUB (USB ROOT HUB)相连。USB HUB为其每个端口提供100mA电流供设备使用。同时USB HUB可以通过端口的电气变化诊断出设备的插拔操作并通过响应USB HOST的数据包把端口状态汇报给USB HOST。一般来说USB设备与USB HUB间的连线长度不超过5mUSB系统的级联不能超过6级(包括ROOT HUB)。 USB总线最多可支持127个USB外设连接到计算机系统。USB的拓扑是树形结构有1个USB根集线器(root hub)下面还可有若干集线器。1个集线器下面可接若干USB接口。USB线缆包括4条线Vbus(USB电源)、D(数据)、D-(数据)和 Gnd(USB地)。线缆最大长度不超过5m。USB1.1的传输速率最高为12Mb/s(低速外设的标准速率为1.5Mb/s高速外设的标准速率为 12Mb/s)。USB外设可以采用计算机里的电源(5V500mA)也可外接USB电源。在所有的USB信道之间动态地分配带宽是USB总线的特征之一这大大地提高了USB带宽的利用率。当一台USB外设长时间(3ms以上)不使用时就处于挂起状态这时只消耗0.5mA 电流。按USB1.0/1.1标准USB的标准脉冲时钟频率为12MHz而其总线时脉冲时钟为1ms(1kHz)即每隔1msUSB器件应为 USB线缆产生1个时钟脉冲序列。这个脉冲系列称为帧开始数据包(SOF)。高速外设长度为每帧12000bit(位)而低速外设长度只有每帧 1500bit。1个USB数据包可包含0~1023字节数据。每个数据包的传送都以1个同步字段开始。 五、        USB的数据流主控制器负责主机和USB设备间数据流的传输。这些传输数据被当作连续的比特流。每个设备提供了一个或多个可以与客户程序通信的接口每个接口由0个或多个管道组成它们分别独立地在客户程序和设备的特定终端间传输数据。USBD为主机软件的现实需求建立了接口和管道当提出配置请求时主控制器根据主机软件提供的参数提供服务。 USB支持四种基本的数据传输模式控制传输等时传输中断传输及数据块传输。每种传输模式应用到具有相同名字的终端则具有不同的性质。 控制传输类型支持外设与主机之间的控制状态配置等信息的传输为外设与主机之间提供一个控制通道。每种外设都支持控制传输类型这样主机与外设之间就可以传送配置和命令/状态信息。等时传输类型支持有周期性有限的时延和带宽且数据传输速率不变的外设与主机间的数据传输。该类型无差错校验故不能保证正确的数据传输支持像计算机-电话集成系统(CTI)和音频系统与主机的数据传输。 中断传输类型支持像游戏手柄鼠标和键盘等输入设备这些设备与主机间数据传输量小无周期性但对响应时间敏感要求马上响应。 数据块传输类型支持打印机扫描仪数码相机等外设这些外设与主机间传输的数据量大USB在满足带宽的情况下才进行该类型的数据传输。 USB采用分块带宽分配方案若外设超过当前带宽分配或潜在的要求,则不能进入该设备。同步和中断传输类型的终端保留带宽并保证数据按一定的速率传送。集中和控制终端按可用的最佳带宽来传输传输数据。 六、        USB外设控制器的两种实现方式USB芯片在外设领域的应用面很广。USB外设控制芯片通常包括USB收发器、串行接口引擎(SIE)、USB控制器和外设功能等四个模块(SIE 主要以硬件方式处理大多数USB协议USB控制器负责与PC交互通信信息)。USB控制器一般有两种类型一种是MCU集成在芯片里面的如 Intel的8X930AX、CYPRESS的EZ-USB、SIEMENS的C541U以及 MOTOLORA、National Semiconductors等公司的产品;另一种就是纯粹的USB接口芯片仅处理 USB通信如PHILIPS的PDIUSBD11(I2C接口)、 PDIUSBP11A、PDIUSBD12(并行接口)National Semiconductor的USBN9602、USBN9603、USBN9*等。 集成MCU的USB控制芯片优点是CPU与控制器在同一片芯片里CPU只需要访问一系列寄存器和存储器便可实现USB口的数据传输最大限度的发挥 USB高速的特点。而且简化了程序的设计极大地降低了USB外设的开发难度。缺点是灵活性不够高开发成本较大。 纯粹的USB接口芯片的优点是系统组成灵活可根据不同的系统需求搭配不同的MCU具有较高的性能价格比。但因为USB控制器是通过串行口或并行口与MCU连接在传输速度方面和开发难度方面不如集成了MCU的控制芯片。 不同的实现方式在设计开销、上市时间、元器件开销和引脚数方面各有优劣选择不同的方案意味着在以上各项指标中进行取舍。如PHILIPS公司的PDIUSBD12器件。该芯片是一款性价比很高的USB器件它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口设计者可根据需要选择合适的微控制器灵活性较大适用于开发低成本且高效的USB外围设备。 七、        USB设备的枚举过程USB架构中 hub负责检测设备的连接和断开利用其中断IN端点(Interrupt IN Endpoint)来向主机Host报告。在系统启动时主机轮询它的根hubRoot Hub的状态看是否有设备包括子hub和子hub上的设备连接。 一旦获悉有新设备连接上来主机就会发送一系列的请求(Resqusts)给设备所挂载到的hub再由hub建立起一条连接主机Host和设备Device之间的通信通道。然后主机以控制传输(Control Transfer)的方式通过端点0(Endpoint 0)对设备发送各种请求设备收到主机发来的请求后回复相应的信息进行枚举Enumerate操作。所有的USB设备必须支持标准请求Standard Requests控制传输方式Control Transfer和端点0Endpoint 0。 当枚举完成后这个新添加的设备可在Windows的设备管理器里面看到当用户删除这个设备/硬件时系统把这个设备从设备管理器里删除。 对于一般的设备固件Firmware内包含主机所要请求的信息而有些设备则是完全由硬件来负责响应主机的请求。在主机方面则是由操作系统而非应用程序负责处理相关枚举操作。 枚举步骤 USB协议定义了设备的6种状态仅在枚举过程种设备就经历了4个状态 的迁移上电状态(Powered)默认状态(Default)地址状态(Address)和配置状态(Configured)其他两种是连接状态和挂起状态Suspend。 USB协议定义了设备的6种状态仅在枚举过程种设备就经历了4个状态的迁移上电状态(Powered)默认状态(Default)地址状态(Address)和配置状态(Configured)其他两种是连接状态和挂起状态Suspend。 下面步骤是Windows系统下典型的枚举过程但是固件不能依此就认为所有的枚举操作都是按照这样一个流程行进。设备必须在任何时候都能正确处理所有的主机请求。 1.用户把USB设备插入USB端口或给系统启动时设备上电。 这里指的USB端口指的是主机下的根hub或主机下行端口上的hub端口。Hub给端口供电连接着的设备处于上电状态。 2.Hub监测它各个端口数据线上(D/D-)的电压 在hub端数据线D和D-都有一个阻值在14.25k到24.8k的下拉电阻Rpd而在设备端D全速高速和D-低速上有一个1.5k的上拉电阻Rpu。当设备插入到hub端口时有上拉电阻的一根数据线被拉高到幅值的90%的电压大致是3V。hub检测到它的一根数据线是高电平就认为是有设备插入并能根据是D还是D-被拉高来判断到底是什么设备全速/低速插入端口全速、高速设备的区分在我将来的文章中描述。如下图。 检测到设备后hub继续给设备供电但并不急于与设备进行USB传输。 3. Host了解连接的设备。 每个hub利用它自己的中断端点向主机报告它的各个端口的状态对于这个过程设备是看不到的也不必关心报告的内容只是hub端口的设备连接断开的事件。如果有连接断开事件发生那么host会发送一个 Get_Port_Status请求(request)以了解更多hub上的信息。Get_Port_Status等请求属于所有hub都要求支持的hub类标准请求standard hub-classrequests。 4.Hub检测所插入的设备是高速还是低速设备。 hub通过检测USB总线空闲(Idle)时差分线的高低电压来判断所连接设备的速度类型当host发来Get_Port_Status请求时hub就可以将此设备的速度类型信息回复给host。USB 2.0规范要求速度检测要先于复位Reset操作。 5.hub复位设备。 当主机获悉一个新的设备后主机控制器就向hub发出一个 Set_Port_Feature请求让hub复位其管理的端口。hub通过驱动数据线到复位状态(D和D-全为低电平 )并持续至少10ms。当然hub不会把这样的复位信号发送给其他已有设备连接的端口所以其他连在该hub上的设备自然看不到复位信号不受影响。 6.Host检测所连接的全速设备是否是支持高速模式。 因为根据USB 2.0协议高速High Speed设备在初始时是默认全速Full Speed 状态运行所以对于一个支持USB 2.0的高速hub当它发现它的端口连接的是一个全速设备时会进行高速检测看看目前这个设备是否还支持高速传输如果是那就切到高速信号模式否则就一直在全速状态下工作。 同样的从设备的角度来看如果是一个高速设备在刚连接bub或上电时只能用全速信号模式运行根据USB 2.0协议高速设备必须向下兼容USB 1.1的全速模式。随后hub会进行高速检测之后这个设备才会切换到告诉模式下工作。假如所连接的hub不支持USB 2.0即不是高速hub不能进行高速检测设备将一直以全速工作。 7. Hub建立设备和主机之间的信息通道。 主机不停得向hub发送 Get_Port_Status请求以查询设备是否复位成功。Hub返回的报告信息中有专门的一位用来标志设备的复位状态。 当hub撤销了复位信号设备就处于默认空闲状态Default state准备着主机发来的请求。设备和主机之间的通信通过控制传输默认地址0端点号0进行。在此时设备能从总线上得到的最大电流是100mA。 8.主机发送Get_Descriptor请求获取默认管道的最大包长度。 默认管道Default Pipe在设备一端来看就是端点0。主机此时发送的请求是默认地址0端点0虽然所有位分配地址的设备都是通过地址0来获取主机发来的信息但由于枚举过程不是多个设备并行处理而是一次枚举一个设备的方式进行所以不会发生多个设备同时响应主机发来的请求。 设备描述符的第8字节代表设备端点0的最大包大小。对于Windows系统来说Get_Descriptor请求中的wLength一项都会设为64虽然说设备所返回的设备描述符Device Descriptor长度只有18字节但系统也不在乎此时描述符的长度信息对它来说是最重要的其他的瞄一眼就过了。Windows系统还有个怪癖当完成第一次的控制传输后也就是完成控制传输的状态阶段系统会要求hub对设备进行再一次的复位操作USB规范里面可没这要求。再次复位的目的是使设备进入一个确定的状态。 9.主机给设备分配一个地址。 主机控制器通过Set_Address请求向设备分配一个唯一的地址。在完成这次传输之后设备进入地址状态Address state之后就启用新地址继续与主机通信。这个地址对于设备来说是终生制的设备在地址在设备消失被拔出复位系统重启地址被收回。同一个设备当再次被枚举后得到的地址不一定是上次那个了。 10.主机获取设备的信息。 主机发送 Get_Descriptor请求到新地址读取设备描述符这次主机发送Get_Descriptor请求可算是诚心它会认真解析设备描述符的内容。设备描述符内信息包括端点0的最大包长度设备所支持的配置Configuration个数设备类型VIDVendor ID由USB-IF分配 PIDProduct ID由厂商自己定制等信息。Get_Descriptor请求(Device type)和设备描述符已抹去VIDPID等信息之后主机发送Get_Descriptor请求读取配置描述符Configuration Descriptor字符串等逐一了解设备更详细的信息。事实上对于配置描述符的标准请求中有时wLength一项会大于实际配置描述符的长度9字节比如255。这样的效果便是主机发送了一个Get_Descriptor_Configuration 的请求设备会把接口描述符端点描述符等后续描述符一并回给主机主机则根据描述符头部的标志判断送上来的具体是何种描述符。 11.主机给设备挂载驱动复合设备除外。 主机通过解析描述符后对设备有了足够的了解会选择一个最合适的驱动给设备。在驱动的选择过程中Windows系统会和系统inf文件里的厂商ID产品ID有时甚至用到设备返回来的产品版本号进行匹配。如果没有匹配的选项Windows会根据设备返回来的类子类协议值信息选择。如果该设备以前在系统上成功枚举过操作系统会根据以前记录的登记信息而非inf文件挂载驱动。当操作系统给设备指定了驱动之后就由驱动来负责对设备的访问。对于复合设备通常应该是不同的接口Interface配置给不同的驱动因此需要等到当设备被配置并把接口使能后才可以把驱动挂载上去。       设备-配置-接口-端点关系见下图 实际情况没有上述关系复杂。一般来说一个设备就一个配置一个接口如果设备是多功能符合设备则有多个接口。端点一般都有好几个比如Mass Storage设备一般就有两个端点控制端点0除外。 12. 设备驱动选择一个配置。 驱动注意这里是驱动之后的事情都是有驱动来接管负责与设备的通信根据前面设备回复的信息发送Set_Configuration请求来正式确定选择设备的哪个配置Configuration作为工作配置对于大多数设备来说一般只有一个配置被定义。至此设备处于配置状态当然设备也应该使能它的各个接口Interface。              对于复合设备主机会在这个时候根据设备接口信息给它们挂载驱动。 13. 设备可使用。                      至此步骤完成设备可用了。 本文来自CSDN博客转载请标明出处http://blog.csdn.net/sshhbb/archive/2010/12/31/6109444.aspx 转载于:https://www.cnblogs.com/shanghe/archive/2011/04/15/2017329.html
http://www.zqtcl.cn/news/437012/

相关文章:

  • 租电信服务器开网站为何要屏蔽网站快照
  • 广州建设网站技术企业咨询属于什么行业
  • 哪些网站容易做网站开发价格
  • 展览网站源码棋牌游戏软件开发
  • 网站开发业务ppt做网站如何放入图像
  • 专业做网站和小程序车载网络设计是干什么的
  • 运城网站建设兼职建设通网站武义巨合汪志刚
  • 广州网站建设公司排行个人介绍网页设计模板图片
  • 东莞营销网站建设多少钱wordpress开场动画
  • 网站建设问题及解决办法网站优化过度的表现
  • html5手机网站教程合肥企业网站营销电话
  • 公司网站引导页建设银行网站怎么登录密码忘了怎么办
  • iis7 网站打不开做兼职哪个网站好
  • 惠州网站制作网站iot物联网平台开发
  • 龙岩门户网站最新仿58同城网站源码
  • 简单的企业小网站南宁最新消息今天
  • 美橙表业手表网站公司推广渠道
  • 大连网站排名优化价格wordpress锚文字
  • 漯河网做网站南京市建设工程档案馆网站
  • 重庆可以建建网站的平台天眼查 企业查询官网
  • gta5单机买房子网站在建设免费建小程序网站
  • 怎么制作网站设计图片劳动保障局瓯海劳务市场和做网站
  • 视屏网站制作青岛平台网站建设
  • asp网站做搜索义乌网站建设工作室
  • .net网站开发环境wordpress添加特效
  • 常州 网站制作如何找专业的网站建设公司
  • 陕西网络营销优化公司seo搜索价格
  • 山东通信局报备网站东营城镇建设规划网站
  • 建设银行如何招聘网站网站开发转包协议
  • 主流网站建设服务器有哪些电商平台