精华内容
下载资源
问答
  • USB学习之一:USB协议基础

    千次阅读 2018-12-25 09:39:28
    USB开发者论坛http://www.usb.org/ USB专区:http://group.ednchina.com/93/ 1.1USB的特点 在USB1.0和USB1.1版本中,只支持1.5Mb/s的低速(low-speeed)模式,和12Mb/s的全速(full-speed)模式。在USB2.0又加入...

    USB开发者论坛http://www.usb.org/

    USB专区:http://group.ednchina.com/93/

    1.1USB的特点

           在USB1.0和USB1.1版本中,只支持1.5Mb/s的低速(low-speeed)模式,和12Mb/s的全速(full-speed)模式。在USB2.0又加入了速度更快的(480Mb/s)的高速(high-speed)模式。目前USB3.0协议支持5Gb/s超高速模式。

    1.2 USB的拓扑结构

            USB是一种主从结构的系统,主机叫做Host,从机叫做Device。通常所说的USB主机具有一个或多个USB主控制器(host controller)和根集线器(root hub),另外还有一类特殊的USB设备-USB集线器(USB hub),它可以对原有的USB口在数量上进行拓展,获得更多的USB口,它只能拓展出更多的USB口,但是不能拓展出更多的带宽,所有USB口共享一个主机控制器带宽。

           USB数据交换只能发生在主机和设备之间,主机与主机,设备与设备之间不能直接连接和交换数据。所有数据传输都是由主机主动发起,而设备只是被动应答。

          USB的拓扑结构为金字塔形,如下图所示:

    理论上一个USB主机控制器最多可以接127个设备,这是因为协议规定,一个USB设备具有一个7bit的地址,取值0-127,其中0地址是保留给未初始化的设备用的。

    1.3 USB的插入检测机制

            USB集线器的每个下游端口的D+ D-上,分别接了一个15k的下拉电阻到地,当集线器的端口悬空,即没有设备插入时,

    输入端就被下拉到地。在USB设备端的D+或者 D-上接了一个1.5k的上拉电阻到3.3v电源,1.5k电阻是接D+ 还是D-是由设备的速度来决定的。对于全速和高速设备上拉到D+上,对于低速设备上拉到D-上。当有设备插入集线器时,接了上拉电阻的那条数据线电压由1.5k和15k电阻分压决定,大概是在3v,这对集线器来说是高电平,集线器检测到这一状态后,就报告给USB主机控制器,这样就检测到设备的插入了。

    1.4:USB描述符及其之间的关系

    USB1.1协议定义的标准描述符有:设备描述符(Device Descriptor)、配置描述符(Configuation Descriptor)、接口描述符(Interface Descriptor)、端点描述符(Endpoint Descriptor)及字符串描述符(String Descriptor)。

    一个USB设备只有一个设备描述符,设备描述符里决定了该设备有多少种配置,每种配置都有一个配置描述符;而在每个配置描述符中又定义了该配置里有多少个接口,每个接口都有一个接口描述符,在接口描述符里又定义了该接口有多少个端点,每个端点有一个端点描述符。在主机获取描述符时,先获取设备描述符,接着再获取配置描述符,然后根据配置描述符中的配置集合的总长度,一次将配置描述符、接口描述符、类型描述符。端点描述符一次读回。

    设备描述符:主要记录的信息有,设备所使用是USB协议版本号、设备类型、端点0的最大包大小、厂商ID和产品ID、设备版本号、厂商字符串索引、产品字符串索引、设备序列号索引、可能的配置树等。

    配置描述符:主要记录配置所有包含的接口数,配置的编号,供电方式,是否支持远程唤醒。电流需求量等。

    接口描述符:主要记录接口的编号,接口的端点树,接口所使用的类,子类,协议等。

    端点描述符:主要记录端点号及方向、端点的传输类型、最大包长度、查询时间间隔等。

    字符串描述符:主要提供一些方便人们阅读的信息,不是必须的。

    1.5 USB设备的枚举过程

            USB主机检测到USB设备插入后,就要对设备进行枚举了,枚举就是从设备读取各种描述符信息。这样主机就可以根据这些信息加载合适的驱动程序。

    枚举过程:

          (1).USB设备检测到USB设备插入后,就会先对设备进行复位,USB设备在总线复位后其地址为0,这样主机就可以通过地址0和那些刚刚插入的设备通信。主机往地址为0 的设备端点发送获取设备描述符的标准请求。设备在收到请求后,会按照主机请求的参数,在数据过程将参数返回给主机,主机在获取到设备的描述符后并且确认无误后,会返回一个0长度的 确认数据包,从而进入接下来的设置地址阶段。

          (2).主机对设备又一次复位,就进入到设置地址阶段,USB主机往设备地址为0的设备端发出一个设置地址请求,新的设备地址包含在建立过程的数据包中,主机会分配一个唯一的地址给刚接入的设备,USB设备在收到这个建立过程之后,就直接进入到状态过程,因为这个控制传输没有数据过程。设备等待主机请求状态返回,收到输入令牌包后,设备就返回0长度的状态数据包,如果主机确认该状态包已经正确收到,就会发送应答包ACK给设备,设备收到这个ACK后,就要启用新的设备地址了,这样设备就分配到了一个唯一的设备地址,以后主机就通过他来访问设备。

         (3)主机再次获取设备描述符,这次是使用新的地址获取设备描述符,这次需要获取全部18个字节的设备描述符。

         (4)主机获取配置描述符,配置描述符总共为9个字节,主机获取配置描述符后,根据配置描述符中所描述的配置集合总长度,获取配置集合。配置集合包括配置描述符,接口描述符,类特殊描述符,端点描述符。接口描述符,类特殊描述符、端点描述符是不能单独获取的,必须跟随配置描述符以一个集合的方式一并返回。

          (5) 如果有字符串描述符,还要获取字符串描述符,另外像HID设备,还有报告描述符等,他们是单独获取的。

    1.6 USB事务

           事务通常由两个或者三个包组成:令牌包,数据包,捂手包。

          令牌包:用来启动一个事务,总是由主机发送。

           数据包:传送数据,可以从主机到设备,也可以从设备到主机,方向由令牌包指定。

           捂手包:握手包的发送者通常为数据接受者,当数据接收正确后,发送握手包。

    1.7 USB的四种传输类型

           (1)批量传输: 批量传输使用批量事务(bulk transaction)传输数据,一次批量事务有三个阶段:令牌包阶段,数据包阶段,和握手包阶段。

          (2)中断传输:中断传输是一种保证查询频率的传输,中断端点在端点描述符中要报告它的查询间隔,主机会保证在小于这个时间间隔的范围内安排一次传输。这里 所说的中断,跟我们硬件上的中断是不一样的,它不是由设备主动地发出一个中断,而是由主机在保证不大于某个时间间隔内安排一次传输,中断传输通常用在数据量不大,但是对时间要求比较严格的设备中,例如鼠标键盘等。

        (3)等时传输:等时传输(同步传输)用在数据量大,对实时性要求高的场合,例如音频设备,视频设备。

        (4)控制传输:控制传输比前面三种传输要复杂些,控制传输分为三个过程。第一个过程建立过程,第二个过程是可选的数据过程,第三个过程是状态过程。

    1.8:端点类型和传输类型的关系

              一个具体的端点,只能工作在一种传输模式下。通常我们把工作在什么模式下 的 端点,就叫做什么端点,例如控制端点,批量端点,等。端点0是每个USB设备都必须具备的默认控制端点,他一上电就存在并且可用,设备的各种描述符以及主机发送的各种命令,都是通过端点0 传输的,其他端点是可选的需要根据具体的设备来决定。非端点0只有在set config之后才可使用。


     

     

     

     

     

     

     

     

     

     

     

     

     

     

    展开全文
  • USB HID 学习笔记

    2012-08-30 12:12:04
    USB开发者论坛发布了一系列USB设备的类型定义,并配以相应的使用说明。hid类设备只能使用控制传输与中断传输两种方式。HID的交换的数据格式称为报文。
  • USB Type-C

    2018-01-11 10:43:32
    前言 USB Type-C又称USB-C,是一种通用串行总线...USB Type-C规范1.0由USB开发者论坛(USB-IF)发布,并于2014年8月完成。与USB 3.1规格大致相同。但实现USB-C设备不一定支持USB 3.1或USB Power Delivery。目前多...

    前言

    USB Type-C又称USB-C,是一种通用串行总线(USB)硬件接口形式。外观最大特点在于上下端完全一致,同Micro-USB比意味用户不必区分USB正反面,两方向都可插入。USB Type-C规范1.0由USB开发者论坛(USB-IF)发布,并于2014年8月完成。与USB 3.1规格大致相同。但实现USB-C设备不一定支持USB 3.1或USB Power Delivery。目前多Android移动设备和笔记本电脑用USB Type-C连接端口。

    简介

    USB Type-C接口尺寸8.3×2.5毫米,小于当前PC的USB接口,但略大于多手机采用的尺寸6.85×1.8毫米micro-USB接口。至于电力传输规格,线材标准为直流电5V、5A,连接器3A。Type-C因不兼容现任类型,故需额外设计转接设备。全球首套USB 3.1主控端与设备端原型由祥硕科技于2014年USB-IF年会发布,但因速度仅较USB 3.0快一倍(理论值,实际不到),故众多大厂仍以主流规格USB 3.0为主及设备端厂商也极少跟进投入开发对应USB 3.1产品。

    USB 3.0 Promoter Group主席Brad Saunders接受采访表示:“虽USB技术于设备连接和充电最受欢迎,但仍意识到需开发一新接头满足不断发展设计趋势,如设备尺寸和可用性进步。新Type-C接头将迎合市场需求并为未来USB版奠定基础。”

    特性

    USB Type-C其它特性如下:

    • 正确插入后发声
    • 通USB Power Delivery技术,可用于3C产品充电
    • 增进电磁干扰(EMI)与射频干扰(RFI mitigation)特性
    • 支持1万次拔插
    • 支持DisplayPort,可外接高清显示屏与音质喇叭
    展开全文
  • USB 开发者论坛USB-IF)制定的USB Type-C标准和PD规范因能实现纤薄的工业设计,具有简单易用的连接器和线缆,能够传输多种协议,电力输出可达100W (较之前的7.5W标准有了大幅提升),因而获得了越来越多PC厂商的...
  • 引言 近年来USB产品层出不穷,USB音频类在USB开发者论坛的努力下,成为一种标准的规范,USB声卡也开始在市场上悄然出现。因为USB声卡内置了DAC和有源功放,音频数据以数字方式进入USB声卡,完全杜绝了PC的内部干扰...
  • USB 开发者论坛USB-IF)制定的USB Type-C标准和PD规范因能实现纤薄的工业设计,具有简单易用的连接器和线缆,能够传输多种协议,电力输出最高可达100W (较之前的7.5W标准有了大幅提升),因而获得了越来越多顶级...
  • 引言 近年来USB产品层出不穷,USB音频类在USB开发者论坛的努力下,成为一种标准的规范,USB声卡也开始在市场上悄然出现。因为USB声卡内置了DAC和有源功放,音频数据以数字方式进入USB声卡,完全杜绝了PC的内部干扰...
  • Synopsys 技术营销经理 Morten Christensen简介USB4™ 是 USB 开发者论坛 (USB-IF) 制定的一种新的连接标准。USB4 支持多种高速接口协议,包括 USB4、DisplayPort、PCI Express 和 Thunderbolt 3,可通过单根 USB ...

    Synopsys 技术营销经理 Morten Christensen

    简介

    USB4™ 是 USB 开发者论坛 (USB-IF) 制定的一种新的连接标准。USB4 支持多种高速接口协议,包括 USB4、DisplayPort、PCI Express 和 Thunderbolt 3,可通过单根 USB Type-C 电缆高效地传输数据并同时传递数据、电源和高分辨率视频。USB4 实现高达 40Gbps 的速度,是之前的 USB 3.2 Gen 2x2 标准的两倍。本文简要概述了复杂的 USB4 新标准,包括电缆和连接器,以及片上系统 (SoC) 构建块。如需了解该标准的更多详细信息,请下载 Synopsys 白皮书,USB4:用户的期望或 USB-IF 制定的 USB4 规范促使设计变得日益复杂,。

    USB4 电缆和连接器

    USB4 可以使用与 USB 3.2 相同的无源 Type-C 到 Type-C 电缆,但是电缆长度可能不同。USB 3.2 支持在最长 2 米的电缆上保持 5 Gbps 的超高速,同样的电缆支持 USB4 达到 20 Gbps 的速度。USB 3.2 支持在最长 1 米的电缆上保持 10 Gbps 和 20 Gbps 的超高速,同样的电缆也支持 USB4 达到 20 Gbps 的速度。将电缆长度减少到 0.8 米,可以支持 USB4 40 Gbps 的速度。因此,我们预计 USB 3.2 的 1 米电缆将被淘汰,取而代之的是使用新的 USB4 标志的 0.8 米电缆。除 DisplayPort 切换模式外,这些 0.8 米的电缆还适用于 USB 3.2 和 USB4。

    USB4 40 Gbps 的电缆长度大于 0.8 米,USB4 20 Gbps 的电缆长度大于 2 米时,需要使用有源电缆。有源电缆的设计很复杂。USB4 营销指南包含新的端口和电缆图标,表明支持 USB4。

    USB4 主机、集线器、扩展坞和设备

    USB4 规范描述了不同 USB4 产品类型的特性和功能。图 1 显示了 USB4 双总线系统架构,其中 USB 2.0(用于向后兼容)与 USB4 分开布线。USB 主机“下游端口”连接到 USB4 集线器、USB 扩展坞(图 1 中未显示)和 USB4 设备“上游端口”。其他 USB4 集线器、USB4 扩展坞和/或 USB4 设备的连接就像 USB 2.0 和 USB 3.2 规范中已知的标准 USB 拓扑和设备树一样。

    579f615879f20fde7928f82cc0734817.png

    图 1:连接 USB4 主机、集线器和设备(来源:USB4 规范 图 2-1)

    USB4 构建块

    USB4 主机、集线器、扩展坞和设备的描述表明,设计 USB4 产品需要许多不同的构建块。Synopsys 提供设计 USB4 产品所需的各种 DesignWare® IP。

    支持通道多路复用的 USB4 PHY

    DesignWare USB4 PHY IP 可在 USB4 主机、USB4 集线器下游端口 (DFP)、USB4 扩展坞 DFP 和某些 USB4 设备应用的高级工艺节点中使用。新思科技 USB4 PHY 可以通过定制 Type-C 辅助 (TCA) 数字cross-bar切换功能,以实现主机应用的通道多路复用,如图 2 所示。数字交叉开关确保最佳的信号质量,这对于保证 10 Gbps 和 20 Gbps 的数据速率至关重要。Synopsys 还在为某些 USB4 设备应用提供合适的低成本工艺节点的 USB4 PHY。USB4 主机、集线器和扩展坞上用于 DFP 的 USB4 PHY 必须以多种模式运行:USB4、Thunderbolt3、USB 3.x 和 DisplayPort TX 切换模式,如图 2 所示。

    295073724f60e1cbc94e02bcdd772ff0.png

    图 2:复杂的 USB4、USB 3.x 和 DisplayPort (DP) 切换模式在 Type-C 连接器上的使用

    支持在 USB4 PHY 中使用 DisplayPort 2.0

    DisplayPort 2.0 流量不会通过 USB4 或 Thunderbolt 进行隧道传输,因为 USB4 规范仅定义了 DisplayPort 1.4a 隧道传输。Synopsys USB4 PHY 支持 DisplayPort 1.4 TX 切换模式,可以根据新发布的 DisplayPort 2.0 切换模式规范进行定制以支持 DisplayPort 2.0 TX。当通过定制支持 DisplayPort 2.0 TX 后,Synopsys 的 USB4 PHY 支持 UHBR10、UHBR13.5 和 UHBR20 数据速率。UHBR20 的四个通道可提供 80 Gbps 的原始数据速率,能够支持 8K 或甚至 16k 显示器和电视、高刷新率游戏、高级 AR/VR 和其他高级显示应用。

    用于 AI 加速的 USB4 设备路由器

    Synopsys 提供 DesignWare® USB4 设备路由器 IP,该 IP 最初面向的是边缘和大容量存储应用的人工智能(AI)加速器。每个 AI 加速器如何与关联的本地计算和存储器一起运行,取决于具体实际情况,但是图 3 展示了一个可能的示例。在 USB4 模式下,这个 AI 加速器使用 USB4 连接到带有隧道 PCIe 的 PCIe 4.0 嵌入式端点。这种模式使 AI 加速器可以利用连接到主机系统存储器的低延迟直接存储器访问 (DMA) 连接。在 USB 3.x 模式下,该 AI 加速器使用旧版 USB 流(同步)或大量流量连接到 USB 主机。图 3 还显示了支持 PCIe 4.0 的定制 USB4 PHY。集成定制的 USB4 PHY 时,可以将 AI 加速器安装在嵌入式主机中的 PCB 上,或安装在 PCIe 扩展卡上。

    a873c05d8effb09a1a335d93b748570b.png

    图 3:用于边缘和大容量存储的 AI 加速器使用 USB4 路由器 IP 支持新功能

    使用额外的 USB4 构建块完成 SoC 设计

    除了 DesignWare USB4 PHY IP 和 USB4 设备路由器外,Synopsys 还提供 xHCI 增强型超高速控制器 IP,可用于 USB4 主机、USB4 集线器和 USB4 扩展坞产品。此外,Synopsys 还提供用于 USB4 扩展坞和 USB4 设备产品的 USB 2.0 和 USB 3.2 设备控制器 IP,以及用于 USB4 扩展坞和 USB4 设备产品中的旧版 USB 端口的 USB 2.0 和 USB 3.2 PHY IP。对于显示应用,Synopsys通过使用Synopsys HDCP 2.3嵌入式安全模块提供支持高清内容保护(HDCP)的DisplayPort 1.4 TX(源)控制器IP 。这种 IP 组合可用于 USB4 主机、USB4 扩展坞和 USB4 设备产品。

    Synopsys 还提供 DesignWare USB/DisplayPort 1.4 PHY IP,可与 USB4 扩展坞和 USB4 设备产品使用的旧版 DisplayPort 连接器一起使用。设计人员如果想要推出与众不同的 USB4 扩展坞设计,可以将 Synopsys HDMI 控制器和 PHY IP 与适合旧版 HDMI 端口的 HDCP 2.3 ESM 安全 IP 一起集成到 USB4 扩展坞或 USB4 设备上。Synopsys DesignWare 用于 USB4 主机的 PCIe 控制器(PCIe 根复合体)IP,用于 USB4 集线器、USB4 扩展坞和复杂 USB4 设备的 PCIe 交换机,以及 PCIe 设备控制器(PCIe 嵌入式端点),均可用于 USB4 扩展坞和 USB4 设备产品。

    总结

    用户的期望促使 USB4 变得日益复杂,消费者希望 USB4 产品能够同时支持 USB、Thunderbolt 和 DisplayPort 操作模式以及现有产品。根据现有规范精心设计的 USB4 产品也会支持未来的产品。只有未来才能确定 2019 年发布的 USB4 规范是不是最终的 USB 规范、是否会出现 USB4 发展放缓,和/或设计人员将来是否必须面对 USB5。无论如何,满足用户“USB 正好合适的”的期望的 USB4 产品设计将会令 USB4 取得成功。

    作为 USB 技术和标准的主要贡献者,Synopsys 的员工为几乎所有已发布的 USB 标准提出了意见。Synopsys 是世界上最受欢迎和使用最广泛的 USB IP 供应商,产品符合从 USB 1.1 到 USB4 的所有 USB 标准。敬请联系 Synopsys,详细了解我们如何帮助您的下一个设计支持最新 USB4 规范,或启动需要具有 HDCP IP 支持功能的 PCIe、USB 和/或 DisplayPort 的项目。

    fcf2bd89adc3bffae0b4fe38e0f9ae7e.png
    展开全文
  • USB 声卡 (转载)

    千次阅读 2013-07-02 17:03:44
    近年来USB产品层出不穷,USB音频类在USB开发者论坛的努力下,成为一种标准的规范,USB声卡也开始在市场上悄然出现。因为USB声卡内置了DAC和有源功放,音频数据以数字方式进入USB声卡,完全杜绝了PC的内部干扰,所以,USB...

     

    引言
        近年来USB产品层出不穷,USB音频类在USB开发者论坛的努力下,成为一种标准的规范,USB声卡也开始在市场上悄然出现。因为USB声卡内置了DAC和有源功放,音频数据以数字方式进入USB声卡,完全杜绝了PC的内部干扰,所以,USB声卡将有可能成为现有内置声卡的替代品。本文介绍了一种基于ARM处理器的USB声卡设计。
      
    USB声卡原理
        由USB声卡数据流图(见图1)可以看出USB声卡的工作原理。在主机端播放音乐时,应用软件或驱动程序把各类音频信号转换为统一的格式,如PCM、MPEG等格式的数据流,通过主机的USB接口发送给USB声卡。声卡的USB接口接收到数据后,通过I2S接口把并行音频数据转为串行,再发送给音频编解码芯片进行D/A转换,即可在音频芯片连接的扬声器中发音。录音过程和播放过程正好相反。


       
    图1  USB 声卡数据流

    硬件设计
        USB声卡硬件主要包括MCU和音频编解码芯片。MCU采用三星公司的处理器S3C2410,S3C2410内置I2S总线控制器和USB Slaver控制器。S3C2410的I2S控制器实现了一个外部8/16位立体声音频CODEC IC的接口,支持I2S总线数据格式和MSB-justified数据格式,并且支持DMA传输模式。

        音频芯片采用UDA1341TS。UDA1341TS提供标准的I2S接口,可以直接和S3C2410的I2S引脚连接。另外,此芯片还提供标准的L3、麦克风和扬声器接口。L3接口的引脚分别连到S3C2410的3个GPIO输出引脚上,通过GPIO控制L3接口。UDA1341TS音频芯片集成数字化音频和混频器功能。数字化音频功能可以播放数字化声音或录制声音,因为包括这个功能,所以常把此类芯片称为CODEC设备。混频器用来控制各种输入/输出的音量大小等,在本芯片中通过L3接口进行控制。


    图2 USB声卡拓扑图

    软件设计
        软件设计包括两部分:USB声卡固件程序设计和主机端Windows驱动设计。因为USB音频类设备是一种标准设备,在Windows 操作系统上有标准的USB音频驱动,所以只需要开发者根据USB音频类的协议开发固件程序。

        USB声卡的固件程序主要包括两部分,第一部分主要是USB通讯,第二部分实现I2S接口数据传输以及数据流的缓冲区控制等。

    USB通讯
    USB声卡描述符
        为了有效地定义出USB声卡的描述符,可先根据USB音频类协议,并结合需要实现的USB声卡功能,确定出USB声卡的拓扑图(见图2),然后再根据拓扑图和USB音频类描述符的协议,写出USB声卡的描述符。

        USB声卡的描述符包括5部分,分别为设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符。接口描述符是其中的难点。USB声卡的接口描述符包括两部分:音频控制(AudioControl)接口描述符和音频数据流(AudioStreaming)接口描述符。

        1. USB音频控制接口描述符。根据USB声卡的拓扑图所示,当声卡用于回放功能时,其声卡功能的控制流程,通过IT1(Input Teminal),OT3(Out Teminal)和Feature单元表示,IT1表示的是PC向USB声卡发送的音频数据流,OT3表示的是发向DAC的数据流,在IT1和OT3之间的Feature单元用于调节音量和音效功能等。当声卡执行录音功能时,USB的功能拓扑通过IT2,OT4表示,IT2表示A/D采样的音频数据流,OT4表示的是通过USB接口发向PC的数据流。USB音频控制接口的数据传输一般使用默认端点0。

    在USB声卡的拓扑图中,F表示的是USB音频类的Feature单元,Feature单元的主要作用是控制音量、静音、低音等。如果在描述符中声明了Feature单元,在Windows操作系统下,控制面板中的声音和音频设备的一些功能才能使用。那么在Windows中进行调节音量等控制时,就会触发固件程序对UDA1341TS芯片L3接口的控制。

        2. USB音频数据流接口描述符。因为USB 音频有回放和录音两种功能,所以需要两个同步数据流接口,两个接口使用双向端点1进行数据传输。

        通过USB声卡的拓扑图,可以分析出音频接口的流程和功能,从而得出USB声卡的描述符。

    USB通讯的程序实现
        S3C2410有5个双向FIFO端点,其中0端点是控制传输端点,其他4个端点支持批量、中断、同步传输等方式。在本系统中使用0、1两个双向传输端点。端点0执行控制传输(CONTROL),一方面传输USB协议的控制信息,例如Setup事件、握手信号、枚举信息等,另一方面传输音频控制信息,例如采样率控制、音量控制等。端点1采用同步传输方式( ISOCHRONOUS),传输时间间隔为1ms,用于实时传递主机和I2S之间的录音或放音数据。

        根据USB协议,USB设备的任何数据传输,都由USB主机分配,然后USB设备响应相应的USB主机总线请求。S3C2410的USB控制器采用的是中断方式响应,那么在S3C2410的USB中断服务程序中要作以下工作:
    Isr_USB()
    {
    if(USB_INT_REG&RESET_INT)     Reset_USB();   //重启USB设备
    if(USB_INT_REG&RESUME_INT)   Resume_USB();  //唤醒USB设备
    if(USB_INT_REG&SUSPEND_INT)  Suspend_USB(); //挂起USB设备
    if(EP_INT_REG&EP0_INT)         Handle_EP0(); //执行控制传输端点0处理程序
    if(EP_INT_REG&EP1_INT)         Handle_EP1(); //执行同步传输端点1处理程序
    }

    USB声卡的控制传输
        在主机端应用程序中,执行音量调节、静音等事件时,USB音频驱动通过默认端点0执行一个控制传输。一次控制传输主要包括两个步骤,第一步,由主机向设备发送一个建立(Setup)信息,描述控制访问的类型,设备将执行此控制访问。第二步,零个或多个控制数据信息的传送,这是访问的具体信息。根据USB音频类协议分解控制信息包,然后再根据控制信息,执行相应的操作。例如,在主机端应用程序中播放音乐前,USB声卡就会从主机端收到如下的两个包:
    Setup包  22 01 00 01 01 00 03 00
    控制数据包 40 1F 00

        根据USB音频类协议分解Setup包,可以得知,本次控制传输的作用是设置USB声卡的采样频率,并且收到的3字节控制数据信息是采样频率,即8KHz。那么在播放音乐前,必须把I2S和UDA1341TS芯片的采样频率设置为8kHz,才能和主机端保持同步。

    I2S总线实现方法
        在S3C2410芯片中,I2S接口提供三种数据传输模式:正常传输模式、DMA传输模式、传输/接收模式。本系统采用的是传输/接收模式,它具有双通道DMA功能,一方面窃取总线控制权,提高系统的吞吐能力,另一方面,可以实现同时接收和发送音频数据,即全双工模式。

        在S3C2410芯片中,有4个DMA通道控制器用于控制各种外部设备,其中I2S与其他串行外设共用两个桥接DMA(BDMA)类型的DMA通道。通过设置I2SFCON寄存器可以使I2S接口工作在DMA模式下。此模式下FIFO寄存器组的控制权掌握在DMA控制器上。当FIFO满时,由DMA控制器对FIFO中的数据进行处理。DMA模式的选择由I2SCON寄存器的第四和第五位控制。

        为了使USB声卡的回放和录音可以同时进行,即实现全双工,数据传输使用两个BDMA通道,通道0用于回放,通道1用于录音,因为S3C2410的BDMA中没有内置DMA存储区域,所以需要在SDRAM中分配DMA缓冲区。音频数据回放时,先由USB总线取得音频数据,写入DMA缓冲区,由BDMA控制器通道0窃取总线控制权,通过I2S控制器写入I2S总线并传输给音频芯片。录音采用BDMA控制器的通道1,其数据流过程和回放相反。

        由于处理的音频数据量比较大,并且PC端接收/发送数据的速度和I2S处理数据的速度不能完全匹配,这就导致了放音失真或者录音丢帧的现象。为了解决这个问题,最简单易行的方法是使用比较大的环形缓存。但实际上大的缓存区需要更长的填充时间,在使用时会出现延时。为了解决延时的问题,使用环形、多段缓存机制。在这种机制下,将缓存区分割成若干个相同大小的块,并使用算法实现环形缓冲。下面以8kHz/16位/单通道音频流的播放为例说明缓冲区的操作。

        USB音频类规定的USB同步传输周期为1ms,即对于8kHz/16位/单通道PCM编码的音频流,每隔1ms,USB设备就会收到一次主机传来的数据,数据包大小为16字节,为了尽量保持I2S和USB传输同步,可以取16字节作为一个缓存区段的大小。当USB声卡接收到数据后,MCU先判断缓冲区中是否有空闲区域,如果没有足够缓冲区就跳过一个样本,然后再逐一把FIFO中的数据复制到SDRAM的缓冲区。

        因为I2S的DMA控制器处理数据是按段进行,每段长度为16字节,在DMA取数据前,先判断缓冲区中的数据量,如果没有足够数据(16字节),则加入静音数据,然后再执行DMA传输。
    结语
        本文所阐述的基于I2S总线的USB声卡,已经在基于S3C2410处理器的开发板上成功实现,不过只是实现了USB声卡的最基本功能。可以尝试把MP4、U盘等和USB声卡集成在一体,会更有应用价值。
    参考文献
    1. Samsung Inc. S3C44B0X Risc Microprocessor Datasheet. http://www.samsung.com.  2003
    2.Philips Semiconductors. UDA1341TS datasheet.http://www. semiconductor. philips.com. 2002
    3. Hyde, John, USB Design by Example. Intel. www.usb-by-example.com.2002.5
    4. UDA1341TS datasheet http://www.dzsc.com/datasheet/
    (本文转自电子工程世界:http://www.eeworld.com.cn/mcu/2013/0417/article_12823_2.html)

     

    展开全文
  • USB 3.0:七十秒传输25GB

    2008-11-16 21:37:00
    在WinHEC2008上,USB开发者论坛主席Jeff Ravencraft透露,新的USB 3.0详细计划书将在11月17日的超速USB开发者大会上公布。USB 3.0也称为SuperSpeed USB,它的传输速度能达到5Gbps.提供高达600MB/S的带宽,并且可以向...
  • USB是目前发展应用非常广泛的一项技术。它是一种计算机系统连接外围设备的标准输入/输出接口。根据外围设备的不同的类型USB协议将其分类, ...USB开发者论坛发布了一系列USB设备的类型定义, 并配以相应的使用说明
  • Type-C接口原理图,附引脚说明

    万次阅读 多人点赞 2019-10-15 13:51:13
    USB Type-C,又称USB-C,是一种通用...USB Type-C规范1.0由USB开发者论坛(USB-IF)发布,并于2014年8月完成[1]。与USB 3.1规格大致相同。但现实USB-C的设备不一定支持USB 3.1或Power Delivery[2][3]。自从2014年USB-C
  • 原标题:详解USB OTG工作原理及其应用1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行 开发者论坛( Implementers Forum, USB IF),并在1994年11月提出了...
  • usb otg原理

    2017-11-20 17:52:48
    1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行总线开发者论坛USB Implementers Forum, USB IF),并在1994年11月提出了USB 0.7版,到了1998年开始...
  • 有鉴于市面存在相当多的快速充电技术,包括高通推出的 Quick Charge,或是由 USB 开发者论坛所定义的 USB Power Delivery(PD)等技术。值得注意的是,即便手机具备快充技术,若是使用不符规范的充电器材进行充电,仍...
  • 安捷伦科技公司(Agilent)日前宣布将在开发者大会上演示其超高速USB测试解决方案系列。这是业内首款可与NEC公司的USB 3.0 主机控制器结合使用的超高速USB测试夹具。安捷伦还将演示其全套USB 3.0系列。该系列由全自动...
  • 近日在Intel开发者论坛IDF上,NEC公司展示了高带宽无线USB兼容LSI芯片,带宽范围从6.3GHz到7.6GHz。  在展示现场,NEC公司展示的原型系统通过改善固件,其有效...
  • 1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行总线开发者论坛USB Implementers Forum, USB IF),并在1994年11月提出了USB 0.7版,到了1998年开始...
  • jsr80 java 访问 usb

    2015-02-14 08:52:01
    usb.util : 这个包提供了一些有用的实用程序,可以将 firmware下载到 USB 设备上、将 USB 系统的内容转储到 XML 中、以及将只有 bulk I/O 的 USB 设备工具转换成一个套接字(socket)。 usb.devices : 这个可选包收集...
  • 笔者从“泰克2011年春季创新论坛”上获悉,已发布两年的USB3.0在中国受到开发者热捧,并且泰克的高速串行专家及合作伙伴表示,随着不久之后Intel和AMD将其集成到主板(芯片组)中,USB3.0市场的爆发期在2012年也随之...
  • USB4 会是一个统一的接口,可以淘汰笨重的电缆和超大的插头,并提供满足从笔记本电脑用户到服务器管理员的每个人的吞吐量。-- Andy PatrizioUSB 开发者论坛...
  • 项目场景: Windows 10 + Android Studio 4.0 + 小米10青春版 + MIUI 12.0.5稳定版 ...需要注意的是,不同手机软硬件版本会有不同的开发者选项要求,须多查网上资料论坛尝试解决。 手机厂商对权限的控制越来越严格,
  • 小米XIAOMI 真机调试有多坑

    千次阅读 2018-06-15 17:40:31
    1、第一个槽点,我就开个开发者模式,打开USB安装,为啥要让我插SIM卡,能告诉我为啥吗?难不成每次打开开发者模式上机调试都让开发者往测试机上插卡吗? 看看小米的论坛下面一群骂爸爸的,我就不说什么了,你妹的 ...
  • 英伟达Jetson TX2 资源贴

    千次阅读 2019-01-23 19:16:19
    NVIDIA JETSON TX2 install packages ...NVIDIA开发者论坛 TX2上只能源码安装opencv,从Pycharm试过也不行,按照下边的链接博客终于装好了,按照顺序装好所有依赖,中间可能会出现pip问题,参看上边的链接 安装Op...
  • 文章目录一、删除内置应用1、电脑可以测出USB手机驱动2、安装ADB环境3、开启手机开发者选项,启用USB调试4、用CMD进入ADB环境目录5、在cmd中用ADB命令连接手机二、查看android APP的方法 一、删除内置应用 嘻嘻,这...
  • 昨天还好用今天就不能跑了,...有的说改一下开发者选项中的USB安装,把他设置成选中状态。我打开发现没有这个选项。去小米的论坛上也发现好多类似现象。其实只要根新一下系统,就会有USB安装的选项,设置之后就可以了。
  • 手机 启用黑暗模式,关闭用户体验 ,卸载很多应用,手机感觉还是占用内存高,上华为论坛学习了一下,得到华为安卓手机的精简方法,当然其他安卓手机也是可以用的 下面开始adb大法卸载停用更多用不到的系统应用 注意...
  • 近日国外知名开发者论坛XDA放出三星I9000解锁工具,国内很快就有用户进行了真机实测,并且发布解锁教程。对于国内已经和将要购买美版等有锁I9000的用户来说,绝对是个利好消息。 三星I9000解锁工具Generate_Code...
  • libusb1.0

    千次阅读 2014-04-14 21:24:52
    首先声明,这是看到国外论坛上的学习文章后,独立翻译过来作为笔记用,加入部分自我理解,并且全部原创。 介绍: libusb是一个开源库,可以帮助开发者在用户空间的层面上与UBS设备进行通讯。如果想了解更多,可以...

空空如也

空空如也

1 2 3
收藏数 49
精华内容 19
关键字:

usb开发者论坛