精华内容
下载资源
问答
  • usb接口原理

    2008-04-05 13:33:46
    usb接口原理 USB接口原理
  • S5PV310开发板USB外设接口原理
  • USB接口设计原理

    2008-10-07 20:50:54
    这是一份采用PDIUSBD12 USB芯片的电路原理图,对刚刚入手USB设计的新手有帮助,供大家参考,这个电路我试过,是可以的。
  • USB接口图和工作原理

    万次阅读 多人点赞 2017-06-10 16:31:19
    通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口...usb接口的4根线一般是下面这样分配的,需要注意的是千万不要把正负极弄反了,否则会烧
    通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范。
    它只有4根线,两个电源(5V,地线),两个数据线(D+,D-)。,故信号是串行传输的,即按照传输时钟脉冲的节奏一位一位的传输。usb接口也称为串行口。

    usb接口的4根线一般是下面这样分配的,需要注意的是千万不要把正负极弄反了,否则会烧掉usb设备或者电脑的南桥芯片:黑线:gnd 红线:vcc 绿线:data+(DP) 白线:data-(DM)

    一、接口结构图

    下图就是接口图,分别是+5V(电源)、DATA+(传输数据端+ DP)、DATA-(传输数据端- DM)、和GND(地线)。

    (DM,DP是用来传输数据的,VCC,GND充电。)

     


    二、数据传输过程

    参考网页:http://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=98448 谢谢大神的分享~

    注:后文中将USB设备均举例为U盘。

    2.1 首先是主机识别U盘

    先说说USB主机是怎么识别一个U盘的吧,当你把一个U盘插到电脑上的时候,电脑的USB接口上会发生一些变化。U盘会把DP(D-)拉高,使DP,DM保持一个J状态(即:DP为高DM为低),电脑主板的USB主机芯片检测到这个J状态(DP(D-)拉高),知道有设备连接上了(这里提到的主机和设备是指连接在USB线两端的USB接口芯片),电脑的驱动会对连接上的这个设备进行识别,我们把它叫做列举,这个过程是为了让电脑知道连接上的这个设备是什么东西(是U盘,还是USB鼠标,还是USB键盘,或是其他的什么)。

    2.2 然后开始传输数据

    然后再看USB数据是怎么在DM,DP上传输的,当主机检测到有设备连接上,驱动先会对这个设备作些必备的事情,识别他的速度(这个过程又有很多协议,要了解的仔细研究协议),然后就是复位等等。之后就开始在总线(DM,DP)上发送1ms间隔的SOF包(全速)或125us间隔的SOF包(高速)。

    USB数据都是以包的形式发出的,包都有固定的格式,它以一个sync(synchronous 同步)开始,以一个eop(end of packet,包结束)结束,SOF 包也是一样的。 下面是包的结构图:


    其中PID(packet  ID 包的ID)是说明这个包是什么包,即包的类型。




    备注:这里的数据传输原理为了便于理解,省略了很多内容。具体包括数据包、帧、TCP/IP协议等,可以参考下面的网页进行了解和学习

    http://baike.baidu.com/item/TCP%2FIP%E5%8D%8F%E8%AE%AE

    http://baike.baidu.com/link?url=Ho0hNKm_Q6lsDkl7nWK-49ag6yzOJgwPJvM70ftNaJJb1alxEu-uJ3X6I8KQGaJQrKUIpXZKGp0T4ZVflDn1N-Qw33C1vyNRZc2SG1geV3clX8Umog1_UDBplSjSWE7g


    喜欢就留个脚印吧~ 大笑






    展开全文
  • 由于USB接口可以直接输出5伏电源,所以短路保护显得尤为重要。本文设计的保护电路可以实现对USB电源输出线的有效保护,无论USB电源输出线VBUS发生对12V电源还是对地短路,均不影响车载ECU内部电路的正常工作,实现了...
  • 下面是对着实物绘制的图:(电路板上有多种元件安装方法,安装请与原理图、实物图为准,PCB板上有些元件孔是不要安装的,有些元件要装在别的元件孔上,这点请注意!) 说明:为了简化电路,达到学习目地,图中用1...
  • USB接口芯片FT245AM的原理及航空ARINC429总线测试仪中的应用 摘要:介绍了一种USB总线接口芯片FT245AM及其在航空ARINC429总线测试仪中的应用方法,同时介绍了FT245AM的内部结构、管脚说明以及与微处理器的接口电路,...
  • 一个用avr控制usb接口原理图 USB , 接口 10_549.rar
  • 赛普拉斯U2CY7C68013-56 适于USB 2.0的开发】
  • 随着计算机技术的快速发展,USB移动存储设备的使用已经非常普遍,因此在一些需要转存数据的设备、仪器上使用USB移动存储设备接口的芯片便相继产生了,CH375就是其中之一,它是一个USB总线的通用接口芯片,支持HOST...
  • USB作为一种新的PC机互连协议,使外设到计算机的连接更加高效、便利.这种接口适合于多种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求(IRQs)和
  • USB接口芯片CH375的功能、原理做了较详细的介绍,并给出了在单片机读写U盘中的实例及注意事项。   随着计算机技术的快速发展,USB移动存储设备的使用已经非常普遍,因此在一些需要转存数据的设备、仪器上使用...
  • CH340C+RT9013+MINI USB接口板 AD设计硬件原理图+PCB文件,ALTIUM设计的2层板设计,包括完整的原理图和PCB文件,主要器件如下: Library Component Count : 12 Name Description ----------------------------------...
  • 摘要:以USB1.1为基础讨论了USB的基本原理、工作流程、通信协议和相应的关键技术,并介绍了一种USB接口的10M以太网卡的设计方案。已经发布的USB2.0支持480Mbps的高速数据传输,这将使...
  • USB接口摄像头原理

    2013-09-22 23:06:20
    比较简单的一款USB接口摄像头电路原理图,参考看一下。
  • 简析USB LED灯的原理

    2020-07-16 12:25:13
  • 文中详细介绍了USB接口芯片FT245R的工作原理及应用,并在MFC平台下调用 FT245R的动态链接库接口函数进行终端应用程序软件设计。  引 言  USB总线是一种高效、快速、价格低、体积小、支持热插拔的串行通信接口,...
  • 摘要:介绍以CPLD控制为核心的CMOS图像采集系统,系统选用彩色图像传感器OV7620,并通过USB接口以类似DMA方式进行快速的图像传输。最后给出了单片机固件程序和设备驱动程序的实现方法。 关键词:CMOS图像传感器;...
  • 从产品应用来看,几乎所有的USB接口都会应用到静电元件,一个新手工程师最基本的是要掌握电子产品的防护需求、电路保护器件工作原理以及选型要点等。本篇着重为新手工程师普及有关静电元件的基础知识:USB接口静电...
  • 现在商业间谍还是很多的哦,而且很多时候都是通过U盘等USB接口连接外接设备泄露公司资料出去的。 usb接口禁用软件,通过修改注册表,系统文件,实现禁用usb储存设备,可以防止企业资料从usb被拷走。 技术原理: 1....
  • 板子上使用的是一颗带IIS数字输出的MEMS麦克风,要移植到其他咪头和CODEC芯片(比如WM8978)组合的板子也是很容易的,因为都是IIS数字输出接口USB microphone 基于STM32F4-DISCOVERY开发板设计。单声道,毕竟只有...
  • 典型应用:基于ULPI接口USB HS PHY 主要资源:USB3300,MIC2075-1BM,ULPI接口 USB3300 高速 USB模块实物展示: USB3300 USB HS Board出厂演示视频: 资料包括: 测试程序(STM32) 电路原理图 相关PDF资料 实物购买...
  • STM32 USB设计原理

    千次阅读 2017-06-01 11:01:09
     当usb设备接入到主机时,主机开始枚举usb设备,并向usb设备发出指令要求获取usb设备的相关描述信息,其中包括设备描述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface ...

    首先,我们来看看usb的工作过程:

        当usb设备接入到主机时,主机开始枚举usb设备,并向usb设备发出指令要求获取usb设备的相关描述信息,其中包括设备描述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface descriptor)、端点描述(endpoint descriptor)等。这些信息是通过端点0(endpoint 0)传送到主机的。获取各种描述信息后,操作系统会为其配置相应的资源。这样主机就可以与设备之间进行通信了。

        usb通讯有四种通讯方式控制(control)、中断(interrupt)、批量(bulk)和同步( synchronous)。usb通讯是通过管道(pipe)实现的。管道是一个抽象的概念,指的是主机与设备之间通讯的虚拟链路。比如说一个usb通讯主机A和设备B,其中有bulk in(批量输入)、bulk out(批量输出)、control out(控制输出)三种通讯方式,那么A与B之间的通讯管道就有三个。(这里明确一个概念,在usb通信中数据流向都是相对设备来说的,in表示设备向主机传送数据,out表示表示主机箱设备传输数据)。在设备一端,每个管道对应一个端点,端点配置相关的寄存器和缓冲区。在通讯之前需对端点进行相关设置。在通信中,只需向缓冲写或读数据,并置位相关比特位即可。

        下面具体从usb的中断输入输出来讲述基于keil C mdk开发环境的stm32的USB接口单片机程序设计。值得一提的是,st或相关公司给我们提供许多封装函数和相关例子,我们可以根据其中的例子并进行修改即可实现我们自己需要的usb通讯程序。

    1.usb描述符配置

        从上面的讲述可以看出,usb描述符是usb通讯的前提。主机必须先了解设备后才能与其进行通讯。在st提供的例子中,描述符都在usb_des.c文件进行定义,下面就其中的Joystick例子说明usb描述负的配置。

    1.1设备描述符

    const u8 Joystick_DeviceDescriptor[JOYSTICK_SIZ_DEVICE_DESC] =
    {
        0x12,                                                        /*本描述长度*/
        USB_DEVICE_DESCRIPTOR_TYPE,        /*指明为设备描述符*/
        0x00,                                                        
        0x02,
        0x00,                                                        
        0x00,                                                      
        0x00,                                                       
        0x40,                                                        /*最大数据包大小为64字节(对于端点0而言)*/
        0x84,                                                         /*生产商ID*/
        0x19,
        0x06,                                                        /*产品ID*/
        0x04,
        0x00,                                                        
        0x02,
        1,                                                              
        2,                                                             
        3,                                                             
        0x01                                                         /*配置描述符数目*/
    }

        设备描述符两个重要参数是生产商ID和产品ID,主机将根据以上两个ID为设备选择相应驱动程序。在我们的应用中,我们一般只需修改例子中的这儿两个参数即可完成设备描述符的设置。

    1.2配置描述符

    const u8 Joystick_ConfigDescriptor[JOYSTICK_SIZ_CONFIG_DESC] =
    {
        0x09, 
        USB_CONFIGURATION_DESCRIPTOR_TYPE,
        JOYSTICK_SIZ_CONFIG_DESC,
         0x00,
        0x01,                      /*接口数目*/
        0x01,                       /*Set_Configuration命令所需要的参数值*/
        0x00,                       /*描述该配置的字符串的索引值*/
        0xE0,                       /*供电模式的选择,bus供电、自供电、支持wakeup*/
        0x32,                       /*最大供电电流*/
    /************** 接口1配置****************/
        0x09,        
        USB_INTERFACE_DESCRIPTOR_TYPE,
        0x00,                      /*接口编号*/
        0x00,         
        0x02,                      /*端点数*/
        0x00,        
        0x00,         
        0x00,        
        0,                            /*接口描述符索引值*/
        /******************** 端点1输出描述********************/
        0x07,         
        USB_ENDPOINT_DESCRIPTOR_TYPE, 
        0x81,                       /*端点地址,b.7表示方向(1为in,0为out)b.0-b.3为端点标号*/
        0x03,                       /*端点数据传输方式*/
        0x08,                      /*最大数据包大小*/
        0x00,
        0x20, 
       /******************** 端点1输入描述********************/      
        0x07,         
        USB_ENDPOINT_DESCRIPTOR_TYPE,
        0x01,                     /*端点地址*/
        0x03,                      /*端点数据传输方式*/
        0x40,                      /*最大数据包大小*/
        0x00,
        0x20,         
    }

        配置描述符中包括了接口、端点的配置。如果设备为HID设备,在配置描述符中还应加入HID描述,具体描述可以参照Joystick例子的配置。

        还有一些其他配置可以参可相关资料与例子加以理解。

    2. USB通讯的执行过程

        首先,当主机数据传送到USB设备,USB怎样接收命令和数据呢?USB首先会产生一个中断,这个中断在stm32fxxx_it.c文件的USB_HP_CAN_TX_IRQHandler和USB_LP_CAN_RX0_IRQHandler中定义,一般使用USB_LP_CAN_RX0_IRQHandler。在这个函数中继续调用USB_Istr()函数,这个函数是usb通讯的关键。它接收到主机命令,指派调度相应函数进行处理。对于这一点,详细过程我现在还不是很明白。如果以后搞懂了再补述。

        当USB设备接入主机时,主机要枚举该USB设备,他将要求USB设备提供自身相关信息,这是通过endpoint0实现的。endpoint0是一个特殊的端点,每一个接口(interface)必须有endpoint0。一般情况下,我们需要使用多个端点(如前所述,配置描述符定义了端点的数目、类型、传输数据大小等)。在使用端点前需对端点进行初始化。这个过程在usb_prop.c文件中的xxx_reset()函数定义。如我定义端点1的两种传输方式:

    /* Initialize Endpoint 1 */
    SetEPType(ENDP1, EP_INTERRUPT);
    SetEPRxAddr(ENDP1, ENDP1_RXADDR);
    SetEPRxCount(ENDP1, 8);
       SetEPRxStatus(ENDP1, EP_RX_VALID);

    /* Initialize Endpoint 1 */
    SetEPType(ENDP1, EP_INTERRUPT);
    SetEPTxAddr(ENDP1, ENDP1_TXADDR);
    SetEPTxCount(ENDP1, 64);
    SetEPTxStatus(ENDP1, EP_TX_NAK);

        在定义完端点后,我们就可以使用端点进行数据传输了。

    向主机输入数据(in):

    IN传输过程是:

        1.向缓冲区填入数据;
        2.设定USB数据计数器:
        3.设置USB输出有效。

    XXX_send()
    {
    /*copy mouse position info in ENDP1 Tx Packet Memory Area*/
    UserToPMABufferCopy(sendBuffer, ENDP1_TXADDR, 2); /*sendBuffer为要输出的数据,ENDP1_TXADDR端点1的向外传输缓冲区,2为数据大小byte为单位*/
        SetEPTxCount(ENDP1, 2);
    /* enable endpoint for transmission */
    SetEPTxValid(ENDP1);
    }

        注意一般情况下,端点的输入输出缓冲区地址没有定义,须在usb_conf.h中定义具体定义可以参考端点0的定义。

    读从主机输出的数据(out):

    out传输过程是:

        1.定义out回调函数;
        2.从缓冲区读出数据:
        3.设置USB输入有效。

    void EP1_OUT_Callback(void)
    {
    u8 DataLen;   
    DataLen = GetEPRxCount(ENDP1);
    PMAToUserBufferCopy(rcvData, ENDP1_RXADDR, DataLen);
    SetEPRxValid(ENDP1);
    }

        注意在一般情况下,EPX_OUT_Callback()回调函数的申明为空执行函数。需将usb_conf.h中#define EPX_IN_Callback   NOP_Process隐掉。再在合适的地方从新定义void EP1_OUT_Callback(void)(合适的位置是指定义之后运行不会出现EP1_OUT_Callback为申明的错误就行)。

        总结,在此将stm32芯片的usb通讯进行了简单的阐述。本人水平有限,以上难免会有错误,希望大家积极留言,共同探讨,共同进步。这篇文章是断断续续写的,给大家带来不便,在此向大家道歉了。不管怎样希望这篇文章能够对那些还在对stm32usb编程初步摸索的朋友

    展开全文
  • USB硬件原理

    2020-11-13 00:28:10
     USB接口电路如图所示。在枚举中,LED指示灯根据通信的状况间歇闪烁。当PDIUSBD12成功地枚举和配置后,LED指示灯将一直点亮。在PDIUSBD12的数据传输过程中,LED将闪烁;在挂起时LED熄灭。  PDIUSBD12的ALE脚接地...
  • USB扁口接口TP4055锂离子电池充电接口板ALTIUM设计硬件原理图+PCB文件,2层B板手设计,大小为33*18mm,,可以做为你的学习设计参考。 TP4055 是一款完整的单节锂离子电池充电器,带电池正负极反接保护,采用恒定 电流...
  • 多种应用环境中不允许使用JTAG下载器升级可编程器件的程序,要求通过设备对外的通信接口实现可编程器件的在线升级,对于XILINX公司的FPGA芯片及其配置芯片,提出了一种基于USB接口的程序在线升级方法。该USB2.0接口...
  • USB3.1接口USB转串口模块 CH340G AD设计硬件原理图+PCB+封装库文件,USB接口为3.1 USB TYPE C接口,2层板,包括完整的原理图,PCB,2D3D封装库文件,可以做为你的产品设计参考。
  • Ltd)公司生产的一种USB接口芯片,支持USB协议与并行I/O协议之间的转换,文中主要介绍了FT245BM芯片的内部结构、功能、工作原理,以及基于FT245BM芯片的硬件接口设计及软件编程。 关键字:FT245BM;USB概要 通用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,897
精华内容 12,358
关键字:

usb接口的原理