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设计有关的专利。

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

    关注

    4976

    文章

    18239

    浏览量

    287892
  • usb
    usb
    +关注

    关注

    59

    文章

    7412

    浏览量

    257871
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21376
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27455
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42567
收藏 人收藏

    评论

    相关推荐

    USB嵌入式产品的应用

    用U盘实现数据、版本更新嵌入式产品可以通过USB接口随时更新软件系统,获得最新数据。如可以在自动贩卖机、自动售票机上及时更新货物、票据的品
    发表于 03-28 12:26

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

    ;gt;摘 要</strong>:为嵌入式系统设计并实现USB主机接口。硬件设计采用LPC2290为主控平台, ISP1160
    发表于 10-19 14:40

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

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

    如何在嵌入式测控系统实现数字滤波算法?

    的数据系列,然后通过某种处理,才能得到一个可信度较高的结果。这种从数据系列中提取逼近真值的软件算法,通常称为数字滤波算法。相对于硬件滤波,数字滤波的优越性在于其无需硬件且可靠性高,尤其对频率很高或很低的信号进行滤波。那么有谁知道,我们有什么办法能在嵌入式测控
    发表于 08-02 06:12

    嵌入式系统串行设备管理怎么实现

    随着微电子技术的发展,嵌入式系统的功能越来越强大,像 UART口、IrDA、USB、I2C以及SPI这些串行接口或设备同时存在于一个嵌入式
    发表于 09-04 07:53

    请问在嵌入式应用怎样去实现USB

    嵌入式应用USBOTG控制器的功能特性是什么?在嵌入式应用怎样去实现USB
    发表于 04-27 06:25

    如何去实现嵌入式终端的USB接口功能?

    S3C2440A的特点有哪些?如何去实现嵌入式终端的USB接口功能?
    发表于 05-20 06:25

    嵌入式系统接口测试

    嵌入式系统接口测试策略嵌入式系统接口测试策略摘要:在日益广泛应用的
    发表于 10-27 08:41

    嵌入式系统设计和优化实现

    实现。另外,在现代化的医疗、测控仪器和机电产品系统的可靠性、实时性要求较高,更需要有专用的嵌入式系统
    发表于 12-21 06:46

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

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

    如何构建一个传感器网络的嵌入式远程测控系统

    ,对其进行处理。该测控设备是由嵌入式技术研发的具有智能检测与控制的系统,它以中央微处理器为,配以SDRAM、NANDFLASH、网络接口RJ-45、4线触摸屏
    发表于 04-03 07:00

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

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

    嵌入式智能小车测控系统的设计与实现_董宗祥

    嵌入式智能小车测控系统的设计与实现_董宗祥
    发表于 02-07 16:58 1次下载

    嵌入式系统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>

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

    嵌入式测控系统中数字滤波算法的实现(嵌入式开发用啥语言)-嵌入式
    发表于 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>