码迷,mamicode.com
首页 > 其他好文 > 详细

STM32F103之USB(一)

时间:2015-04-05 21:59:22      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:stm32   usb   

初识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(金士顿)
     以上描述符的详细信息会在后面讲解。
     

    技术在于分享、交流……

    Email: creazylq@163.com

    QQ:936563422


STM32F103之USB(一)

标签:stm32   usb   

原文地址:http://blog.csdn.net/u013704336/article/details/44890007

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!