硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3039|回复: 1
收起左侧

SEGGER介绍如何专业的测试USB Host产品稳定性

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2019-10-9 02:53:32 | 显示全部楼层 |阅读模式
USB设备兼容性是Windows以外嵌入式设备永久的痛,在这里找到根了。

USB有专门的规范标准,但是不幸的是,许多设备并未遵循它。似乎,许多USB设备制造商仅使用Windows主机进行测试,其它类型主机不关心也不进行任何测试。注意,与Windows兼容并不一定意味着与USB标准兼容。

这给USB Host协议栈设计带来了挑战。它需要符合USB标准,至少与不完全兼容的设备也能很好地工作。嵌入式系统中有限的资源使事情变得更具挑战性。确保嵌入式主机堆栈满足所有要求的唯一方法是从头开始进行整理设计,并对不同设备进行严格的测试。



1、使用不同厂商的U盘进行测试

市场上的大多数U盘都没有通过严格的测试。根据我们的经验,大多数制造商仅使用Windows主机测试其大容量存储设备。

在我们的软件中,我们努力适应和解决这些问题。为此,我们维护了大量U盘和其他大容量存储设备(读卡器,硬盘驱动器)。我们会定期将新设备添加到我们的集合中。

下图所示的测试方案中,十九个U盘和四个集线器连接到主机。该测试可确保枚举单个集线器和USB盘,并且读写操作成功。

msd.jpg


2、使用不同类别的USB设备进行测试

为了测试每个类别的模块,我们使用了来自不同制造商的多种设备,以确保我们的协议栈可以处理市场上的任何设备。
2.jpg

3、严格的枚举测试

USB设备的枚举是一个复杂的过程。为了测试,需要进行数千次枚举,而无需雇用专门人员负责连接和断开USB电缆,我们为J-Link设计了一个特殊的适配器,使我们可以模拟此过程。
3.jpg


4、集线器测试

与U盘类似,许多集线器非常不可靠。有些崩溃,有些不能在全速模式下工作,有些集线器虽然是一个物理设备,但实际上内部有两个集线器。

为了确保我们的软件可以与任何集线器一起使用,我们购买了许多用于测试的USB集线器。

4.jpg


5、自动测试环境

为此专门设计了个测试板和测试软件进行自动测试。

测试软件可以决定枚举哪些设备以及运行哪些测试。在枚举测试中,读写,异步,带超时的操作均以任何数据包大小进行测试。还测试了在不同设备上的同时操作,正在运行的操作的取消,CPU高负载下的操作,堆栈的重新初始化,正在运行的操作期间的错误处理和设备移除。

通过为有问题的端情况添加新的测试方案,稳定地扩展了自动测试设置。

5.jpg


测试效果:
6.png



评分

参与人数 1金币 +10 收起 理由
xode + 10 赞一个!

查看全部评分

回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2020-9-28 11:46:14 | 显示全部楼层
赞一个
Releasing your creativity
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-5 22:09 , Processed in 0.183200 second(s), 37 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表