历史上的今天
返回首页

历史上的今天

今天是:2024年10月22日(星期二)

正在发生

2019年10月22日 | STM32F103之USB(一)

2019-10-22 来源:eefocus

初识USB    


由于项目需求,需要USB这块,花了几天时间了解了下USB方面的知识,的确挺难的!USB是个挺难啃的家伙,当时看了一遍看的一头雾水,不过几天下来还是有所收获的。顺便记录下自己学习的过程,一遍以后查看。


一、USB介绍


    USB(Univetsal Serial Bus)的缩写,即通用串行总线。是现在通讯设备中不可或缺的一部分,可以这么说,电子工程师不懂USB那就太OUT了。


二、USB的发展史


   Ø1994年     Philips公司  Access.Bus规范(USB的前身)

   Ø1996年     Compaq、Intel、Microsoft、NEC   USB1.0规范

   Ø1997年     USB1.1规范

   Ø2000年     USB2.0规范

   Ø2002年     USB OTG规范 


三、USB的特点

    1)优点:  

    Ø可以热插拔:告别“并口和串口先关机,将电缆接上再开机”的动作。

    Ø系统总线供电:可提供5V/500mA电源。

    Ø支持设备众多:例如鼠标,键盘,打印机,显示器等。

    Ø扩展容易,通过Hub可以连接多个设备只PC机

    Ø高速数据传输:USB1.1是12Mb/s,USB2.0高达480Mb/S(ps210Mb/s/并口8Mb/s、R-                    23220Kb/s)

    Ø方便的设备互连:USBOTG支持点对点通信,例如数码相机和打印机直接互连,无                      需PC断开连接。

   2)缺点:  

     Ø供电能力差:高功率设备必须外接电源,例如:打印机

     Ø传输距离短:USB总线的连线长度最大为5m,即便是用HUB来扩展最远也不超过                     30m,距离越远数据传输误差越大!

      不过对于这次做空中鼠标来说,还是挺好的。这些影响基本没有。


四、USB的工作原理


   1)USB识别过程

     以前的确很好奇,往电脑插个鼠标,它就能识别出鼠标来,插个键盘就能识别很出是键盘,插个U盘就能识别出U盘,太神奇了,心中充满了好奇,一直想找个机会了解下,这回,终于懂了,USB是如何识别的,呵呵!


   在USB的原理图设计时,必须给D+和D-端接上连个电阻:

    

     D+和D-是两个差分信号线。 D+ 减 D-进行区分,可以看到区分度还是挺大的。

     

    在设备链接主机时,会检测设备电平,如果检测到在D+上有上拉电阻说明是全速设备,如果检测到在D-上有上拉电阻说明是低速设备。


    识别过程是一个枚举过程。


    首先设备上电---USB设备会自动复位(将自己的地址初始化为0(包括设备地址和端口地址))---主机检测到复位了(检测到地址为0 的设备)---主机要求USB提供设备址,此时USB设备会将自己的一些描述符发送给主机(电脑),在这些描述符中包括,生产厂商、名字、干什么的、属于什么类别(比如U盘、鼠标……)……,接着主机会查找自己的当前没有占用的地址分配给设备,包括端口地址、设备地址-----想刚分配的地址发送索取信息--包括描述符(比如是U盘的话,索取U盘的大小、什么牌子等等),然后就可进行其他通讯了。想象还是挺神奇的,USB枚举居然做了这么多的事情。


    在枚举完成后,主机会给设备安装驱动程序,这也是我们经常可以看到的,刚买的鼠标、键盘或U盘插入电脑后会提示正在安装驱动,当驱动程序安装完成后就可以记性相关的操作了。


    2)描述符类型

     在USB枚举过程中,主机要求设备提供描述符,描述符主要有一下几个:

     标准的(通用的)描述符主要有:

     设备描述符:属于什么设备

     配置描述符:

     接口描述符:

     端点描述符:有多少个端口

     字符串描述符:告诉USB英文的一个表述:比如U盘的名字,KingSton(金士顿)

     以上描述符的详细信息会在后面讲解。

推荐阅读

史海拾趣

DURATOOL公司的发展小趣事

DURATOOL公司自成立以来,一直致力于电子工具的技术创新。在20世纪90年代,公司研发出了一款具有革命性的数字万用表,该产品在精确度、稳定性和操作便捷性方面均大幅超越当时的市场主流产品。这一创新不仅为DURATOOL公司赢得了大量忠实用户,也为其在电子测量工具市场树立了技术领先的形象。随后,DURATOOL公司不断加大研发投入,推出了一系列具有竞争力的新产品,逐步巩固了其在电子工具行业的领先地位。

星海公司的发展小趣事

随着国内市场的饱和,星海公司开始实施国际化战略,积极拓展海外市场。公司积极参加国际展览和比赛,展示星海钢琴的品质和实力。同时,星海公司还与国际知名音乐院校和乐团建立合作关系,推动星海钢琴在国际市场的知名度和影响力。目前,星海钢琴已出口到世界60多个国家和地区,成为国际市场上备受瞩目的中国品牌。

BESTECH公司的发展小趣事

除了钢琴制造,星海公司还积极拓展多元化业务。公司下设多个分厂和子公司,涉及西管乐器、民族乐器、打击乐器、电声乐器和乐器配件等多个领域。此外,星海公司还积极打造音乐教育板块,成立钢琴培训学校,为音乐爱好者提供优质的教育资源。通过多元化发展,星海公司逐渐形成了完整的产业链和强大的品牌影响力。

友盟(AP)公司的发展小趣事

在市场拓展方面,友盟(AP)公司也展现出了强大的实力。公司通过线上线下相结合的方式,积极开展市场推广活动,扩大品牌知名度和影响力。同时,友盟还积极参与行业交流和合作,与业界同行共同探讨行业发展趋势和未来发展方向。这些努力不仅提升了友盟在行业内的地位,也为其未来的发展奠定了坚实的基础。

芯茂微电子公司的发展小趣事

随着市场竞争的日益激烈和技术创新的加速推进,芯茂微电子也面临着越来越多的挑战和机遇。面对这些挑战,公司始终坚持不懈地推进技术创新和产品研发,不断提升自身的核心竞争力和市场地位。同时,公司也积极寻求新的市场机遇和合作伙伴,不断拓展业务领域和市场空间。正是这种对挑战和机遇的积极应对和坚持不懈的努力,让芯茂微电子在电子行业中不断发展壮大。

Calmos Systems Inc公司的发展小趣事

Calmos Systems Inc公司创立之初,面临着资金短缺、市场竞争激烈的挑战。公司创始人凭借对电子技术的深厚理解和对市场需求的敏锐洞察,带领团队研发出了一款具有创新性的电子产品。然而,由于品牌知名度低,市场推广困难,产品销量一度不佳。为了打开市场,创始人亲自拜访潜在客户,了解他们的需求,不断优化产品功能。经过不懈的努力,产品逐渐赢得了客户的认可,为公司的发展奠定了基础。

问答坊 | AI 解惑

EMI/EMC--原理与应对详解(三)

2.物体带电与电场感应 从原理上说,绝对不带电的物体是不存在的,任何物体都会不知不觉地就会带上电。每种物质都有一个代表自己性质的位能,两种不同性质的物体靠近在一起就会产生“接点电位差”。当两种不同性质的物体接触在一起时,这两种物质 ...…

查看全部问答>

单片机如何通过ps2向pc传输数据

我想将数据经过ps/2接口传输到pc,这样数据直接在文本上可显示,怎样编程?…

查看全部问答>

安装evc4.0 sp4的时候出错

安装evc4成功,但是安装evc sp4多次,老是在最后弹出这么个提示,怎么办啊????…

查看全部问答>

求问wince中电源管理

我想得到wince平台电池的剩余的百分比, 但是我找了wince的help并没有哪个函数可以得到这个剩余量 这个值应该怎么得到呢? 谢谢…

查看全部问答>

WriteFile写并口打印(windows字体)时,出现漏打印问题。

大家好,第一次发帖,请多关照。 现象描述: PC端并口连接设备打印机(设备自带打印机),生产过程中实时发送Windows字体的汉字(例如 张三),随机出现漏打印,即设备返回执行成功,但色带打印机并没有真正打印出来。 软件结构: VB主动程序,D ...…

查看全部问答>

导出DLL整个类和单独导出类函数有何区别?

我要用到一个开源包(GeoPad),开发环境为EVC+PPC2003模拟器,所给开发包SDK中包括了3个DLL(GeoPAD.DLL,GeoPADVB.NET.DLL,和GeoPADVC.NET.DLL)和一个.h文件(定义了一个类GeoPADCtrl),还分别给了C#和c++版的2个例程。 C#版的例程将GeoPADVB.NET. ...…

查看全部问答>

位图问题,想在uboot启动的时候把一张图片显示到LCD上面。这时候系统还没有起来,不知道程序怎么写?

我现在能想到的方案是这样的: @ 把bitmap图像的数据用数组的形式组织起来,然后把这些数据丢到显示缓存上面。然后让其显示在lcd上面。 现在遇到的问题是, 1;不知道bimap的数据是怎样组织的。用UltraEdit打开一张bitmap位图,里面的数据看不懂 ...…

查看全部问答>

模电

图一 是积分运算电路 图二  是输入波形和与之对应的输出波形 问题:请问本应输出波形与输入波形的附加相移为180°,现在只有90°,是不是由于加的反馈电容导致的滞后90°?…

查看全部问答>

msp430f2274通过JTAG下载程序的问题

用并口仿真器,利用IAR C3.41A的Debug向msp430f2274下载仿真代码,总是提示没有连接的设备。线路经过反复检查,没有错误。借了一个USB的仿真器后,选择4线JTAG方式,可以顺利下载仿真。不知用并口仿真器仿真msp430f2274时软件、硬件有什么具体设置 ...…

查看全部问答>

altium designer中关于polygon和焊盘间距的布线规则的设置

步骤如下:— Design》Rules》Design Rules》Electrical》Clearances— 右键单击鼠标,而后选择*New Rule*即添加了新的间距规则— 在上面的where the first object matches选项里选advanced,query builder>>下拉菜单-object kind is 后面选pol ...…

查看全部问答>