0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统中实现对USB接口微小变化的测控

PCB线路板打样 来源:LONG 2019-08-08 09:22 次阅读

随着台式机和笔记本电脑串口的消失,USB已成为最常见的外围设备接口。此外,USB的嵌入式应用正在增加。但是,在嵌入式系统中实现USB接口的开发团队可以轻松地产生微小的变化,这可能使与其他嵌入式USB设备的互操作性成为不确定的结果。

我们的团队处理USB 3.0主机接口开发的方式之一是检查我们的主机与许多不同供应商的USB设备的兼容性。我们最终投入了大量时间来调查和调试出现的问题。我们发现了导致大多数这些问题的两个重要问题。

第一个问题是系统电源管理工作的结果。在嵌入式系统中,可能需要让USB主机动态关闭连接的USB设备,作为其电源管理方案的一部分。问题是,当主机VBUS电源关闭时,USB 2.0/3.x规范没有在主机/设备侧提供放电机制。在主流台式PC和Linux系统中,VBUS电源始终保持开启状态。

在主机电源断开后,连接设备放电所需的时间差异很大。图1显示了USB存储器件的典型放电事件。这种特定设备需要6-8秒才能放电,但来自不同供应商的设备可能会显示不同的放电特征。

嵌入式系统中实现对USB接口微小变化的测控

嵌入式USB系统想要循环主机的VBUS电源不接受规范的指导,关于主机在重新断电之前关闭电源以使连接的设备放电多长时间。所以,他们选择了自己的延迟时间。不幸的是,开发人员往往只在其软件中插入10到150毫秒的延迟;他们不愿意延迟几秒钟,这可能是实际需要的。

当主机软件关闭VBUS电源只有几百毫秒时,由于连接的设备可以出现问题处于一个未知的状态。这种不确定的情况通常会导致在电源恢复后设备连接或连接阶段出现故障。如果主机软件关闭VBUS电源,则必须将电源线接地并保持足够长的时间以完全放电并重置连接的设备。

因为规范没有说明和供应商通常不提供最小“关闭”时间的值,开发人员需要为自己定义一个。通用工程实践表明,开发人员测量许多设备的放电时间,以达到“安全”的关闭时间。该结果将基于有限数量的实验,但可以证明是足够的。从图1可以看出,几乎所有连接的USB设备都可以使用10秒左右的关闭时间。

作为这种不确定的经验方法的替代方案,可以有硬件解决方案。问题。为主机硬件提供一个有时间限制地正确释放VBUS电源的措施。这样,软件可以使用保证正确的延迟值。增加的放电机制甚至可以根据其他平台设计选择,允许系统控制,在VBUS放电时间内选择性地启用放电机制,并在VBUS打开时禁用机制。

我们实施了这样的放电在发现我们在测试各种USB设备时看到的枚举错误的原因后,我们的主机设计中的机制。一旦机制到位,先前在电源循环期间失败的设备就会开始正确枚举。

在测试以数据速率为中心的USB主机兼容性时经常出现的第二个问题。 USB规范要求主机通过发送命令和数据请求来初始化和配置任何连接的设备。不幸的是,我们发现市场上的某些设备在高速接收协议兼容的请求时不会表现出来。设备出现故障,最终将不间断的NAK发送给主机,导致主机超时。在枚举期间或稍后在数据传输期间,设备可能会失败,具体取决于设备逻辑无法处理主机请求的位置。

Windows和Linux系统似乎通过微调主机/设备来解决此问题握手。它们将吞吐率降低到大多数或所有设备可以工作的水平。嵌入式USB开发人员需要测量他们打算使用的设备可以处理的命令间请求时间。

嵌入式系统中实现对USB接口微小变化的测控

这种速度的一个例子图2中显示了与记忆棒相关的故障。在枚举期间,主机的大容量存储驱动程序会发出设备必须确认和处理的设置令牌。该图显示,如果设置后的命令间隙大约为9μs,则设备的逻辑无法确认“获取字符串描述符”命令。设备使用NAK连续响应命令,导致主机超时。图3显示了设置后的命令间隙增加到27μs时的结果。通过这个时间,设备可以正常工作。

嵌入式系统中实现对USB接口微小变化的测控

主机需要添加额外的命令间延迟才能适应某些USB设备的恶意功能,甚至虽然9μs的命令间隙是有效的USB请求。但是,只有在枚举阶段或控制转移中才需要这种延迟。在正常数据交易(批量输入/输出)期间不会出现此计时问题。

我们的研究结果是,嵌入式USB主机 - 设备互操作性问题可能来自两个来源:电源循环和命令/数据流量速率。由于这些因素没有明确的规范,开发人员希望不同供应商能够看到其实施的许多变化。为确保广泛的互操作性,开发人员应确保其USB主机设计“慷慨”,以满足设备的处理能力。此外,这些问题也应作为澄清USB标准的基础,以便设备供应商在未来针对统一的要求。

Ritika Sharma毕业于NIT的电子通信工程专业贾朗达尔,旁遮普邦,印度。她目前正在与飞思卡尔半导体印度公司合作。有限公司(恩智浦集团公司)作为IP设计和验证领域最近3年的设计工程师。

Parul具有模拟设计背景和该公司致力于模拟PHY(如1394a,USB2.0和HDMI)的设计和芯片开发,采用0.35um至28nm的各种技术。 Parul还拥有多项与USB设计有关的专利。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5068

    文章

    19017

    浏览量

    303254
  • usb
    usb
    +关注

    关注

    60

    文章

    7896

    浏览量

    263986
  • PCB打样
    +关注

    关注

    17

    文章

    2968

    浏览量

    21652
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27723
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42981
收藏 人收藏

    评论

    相关推荐

    嵌入式系统USB总线接口电路图

    详细阐述了一种用于嵌入式系统USB总线接口电路,该电路是基于USB专用芯片CH375
    发表于 09-22 14:13 4873次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>中</b>的<b class='flag-5'>USB</b>总线<b class='flag-5'>接口</b>电路图

    基于嵌入式系统USB接口的虚拟示波器的开发与实现

    基于嵌入式系统USB接口的虚拟示波器的开发与实现
    发表于 08-06 12:59

    嵌入式系统开发的串行和USB接口有何作用

    嵌入式开发板中有几大类接口呢?嵌入式系统开发的串行接口有何作用?
    发表于 12-27 07:57

    USB接口嵌入式设备的应用和设计

    论述了USB接口嵌入式设备可能的应用方式,并对USB接口的软硬件设计方法进行了比较全面的分析
    发表于 05-08 17:11 17次下载

    嵌入式系统USB接口的研究及设计

    本文针对嵌入式系统USB 接口进行了研究,提出了MCU+USB
    发表于 06-13 11:29 15次下载

    基于LPC2290嵌入式系统USB接口的设计

    基于LPC2290嵌入式系统USB接口的设计:为嵌入式系统设计并
    发表于 12-31 17:07 30次下载

    嵌入式系统USB虚拟串口设计

    嵌入式系统USB虚拟串口设计 现代嵌入式系统,异步串行通信
    发表于 09-27 16:07 1053次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>的<b class='flag-5'>USB</b>虚拟串口设计

    嵌入式系统USB接口设计

    嵌入式系统USB接口设计 引言1.1研究背景     USB(UniversalSerialBus
    发表于 11-24 10:39 1313次阅读

    FPGA的嵌入式系统USB接口设计

    FPGA的嵌入式系统USB接口设计 摘要:设计基于FPGA的IP-BX电话应用系统,用于传统的电话网络(PSTN)与PC机之间的
    发表于 04-03 10:52 1904次阅读
    FPGA的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>USB</b><b class='flag-5'>接口</b>设计

    基于LPC2214的嵌入式系统USB接口模块设计

    本文为基于LPC2214的 嵌入式系统 USB接口模块设计,实现了与PC机之间的通信。
    发表于 06-29 15:22 61次下载
    基于LPC2214的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>USB</b><b class='flag-5'>接口</b>模块设计

    嵌入式USB MiniHost系统设计与实现

    设计并实现了一个嵌入式USB主机系统的硬件和软件,用于解决USB设备不能脱离PC主机的问题。并在设计的硬件和软件基础上利用
    发表于 04-12 15:04 47次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>USB</b> MiniHost<b class='flag-5'>系统</b>设计与<b class='flag-5'>实现</b>

    基于mClinux的嵌入式USB接口设计

    引言 越来越多的嵌入式设备与外部连接要求更简洁、方便、智能化,所以,USB接口嵌入式设备的应用会越来越广泛。本文是信息家电网络控制平台技
    发表于 07-20 15:54 1057次阅读

    嵌入式系统USB接口的虚拟示波器的开发与实现

    嵌入式系统USB接口的虚拟示波器的开发与实现
    发表于 10-31 10:28 14次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>USB</b><b class='flag-5'>接口</b>的虚拟示波器的开发与<b class='flag-5'>实现</b>

    基于STM32的嵌入式测控系统设计与实现

    本文主要介绍了基于STM32的嵌入式测控系统设计与实现,以STM32F103芯片为核心控制器,移植了有多任务、实时性特点的嵌入式
    发表于 12-23 17:03 8532次阅读
    基于STM32的<b class='flag-5'>嵌入式</b><b class='flag-5'>测控</b><b class='flag-5'>系统</b>设计与<b class='flag-5'>实现</b>

    嵌入式测控系统数字滤波算法的实现

    嵌入式测控系统数字滤波算法的实现(嵌入式开发用啥语言)-
    发表于 07-30 12:43 9次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>测控</b><b class='flag-5'>系统</b><b class='flag-5'>中</b>数字滤波算法的<b class='flag-5'>实现</b>