您的位置 首页 解答

USB 枚举

一,概述现在很多的主控上都带有USB的功能,但是对于初学者来说,这方面应用还是比较棘手,因为usb的不但固件程序需要编写,PC端的驱动也要…

一,概述
现在许多的主控上都带有USB的功用,可是关于初学者来说,这方面运用仍是比较扎手,由于usb的不光固件程序需求编写,PC端的驱动也要编写,而且驱动写好了还要写个上位机才干看出作用。这样调试起来好不容易,主张从USB的键盘,鼠标开端做,了解清楚了,再做自己的协议就比较简略了。
USB的概念前史啥的这儿就不说了。咱们先不论具体的数据包格局,这一节先从整个包的层面上简略的说,进程是这样的,

—————————————设备刺进————————————————————-
1) 主时机轮回查询各个USB端口,主机检测到D+与D-之间有电压差,就认为有新的设置接入。主机等候100ms后宣布复位恳求。设备接到复位恳求后将发生一个外部中止信号。

(枚举 :是 USB 系统中一个很重要的活动,由一系列规范恳求组成(若设备归于某个子类,还包含该子类界说的特别恳求)。经过枚举 HOST 能够获得设备的根本描绘信息,如支撑的 USB 版别、PID、VID、设备分类 (Class)、供电方法、最大耗费电流、装备数量、各种类型端点的数量及传输才干 (最大包长度)。HOST 依据 PID 和 VID 加载设备驱动程序,并对设备进行适宜的装备。只要经过枚举的设备才干正常运用。关于总线供电设备,在枚举完结前最多可从总线获取 100mA 的电流。)

—————————————枚举进程————————————————————
2) 主机这时候仅仅知道有新的设备刺进了,可是不知道插进来个什么东西,所以就开端问询它是什么设备,怎样用,负荷才干怎样样。这个时侯就进入了枚举进程。由于刚刚刺进的设备没有分配地址,就用默许地址0,首要发送一个Get_deor(获取设备描绘符)指令包,设备接到包后就开端解析包(其实便是你在固件程序里判别处理) ,然后按固定格局回来自己设备的设备描绘符,这一步主要是主机知道你的USB设备的根底特点,比如支撑的传输数据长度,电流负荷多少,支撑那个USB版别,以及今后便利电脑找驱动的PID,VID。
3) 这时候主机知道你(你做的设备,简称你吧)的数据长度还有电流巨细后,下一步便是给你分配一个归于你的地址。
4) 给你一个地址后就开端问询你的具体装备。首要发送一个试探性的设备装备恳求Get_configuration(要求固定回来9个设备装备字),你接到后就开端发送9字节的设备装备字,其间包含你的装备字的总长度,这样主机就知道你的装备到底有多长,然后再发一次设备装备恳求,这时你就开端上传一切的装备字。这个时侯主机就现已很理解你的作业方法就各种特性,然后就能够正常作业了
5) 假如你在前面的某些装备(今后章节具体阐明)要求要阐明自己的姓名什么的,这儿还要上传字符串描绘符。
6) 假如是鼠标或许键盘还要上传陈述描绘符

—————————————正常数据阶段——————————————————
7) 这个时侯你现已被主机正式承受而且注册了,你能够经过自己写测驱动或通用驱动与电脑进行通讯了。

以上是简略的描绘,具体的后边章节再做介绍,学习一个东西关键是首要要知道这个东西是什么,简略的作业原理。关于USB的作业我这儿做个比如,
主机比如一个公司,你便是USB设备,要进入公司首要要面试(枚举),你到了面试现场(第一次刺进设备),面试官首要了解到你的表面,性别现已你要应聘的岗位(设备描绘符),然后给你一个号,今后就开端按号叫人,当你被叫到就开端问你的专业知识,性情等(装备描绘符),假如你比较适宜(经过了枚举)你就会录取了,而且注册一个你的信息到公司(驱动装置,而且写入注册表)。等你下次来公司,只要把工号(PID,VID)报上,就知道是你来了。

补白:仅仅在第一步,不是由主机轮回查询是否有设备刺进,这个使命是由HUB完结,HUB查到有设备刺进后保存这个信息,在主机的问询下再陈述新设备的刺进。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/238777.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部