新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于通信类终端的嵌入式USB2.0 主机的测试

基于通信类终端的嵌入式USB2.0 主机的测试

作者:时间:2010-11-04来源:网络收藏

  一切看起来都是那么的顺利,但是当我们通过串口进行TEST Packet命令下发之后在两个接口却看不到信号波形出现。因为是第一次进行USB的,所以对于出现的问题是没有任何经验可以参考和借鉴的。从串口信息来看是显示命令下发成功的,那问题到底出在哪里呢?只有从信号流向一步一步地查找了。工程师首先了USB HUB与CPU之间的UpSTream接口,发现有相应的信号波形出现。也就是说USB控制器已经执行了TEST Packet命令并发送了码流,问题出现在了USB Hub这里,它并没有向两个Down Stream Facing Port转发码流。而且原厂提供的命令也很奇怪,根据有PC主板测试经验的工程师的意见,对于HUB的测试应该需要指定测试端口才对。而在测试命令中我们并没有看到相应的指令而只有简单的TEST Packet命令。在询问了原厂技术人员后问题有了答案:

  (1)原来我们采用的方案只支持一个USB 接口,所以在片上只集成一个USB 主机 CONtroller,测试命令也是主机控制器类型的。而我们的板级应用是采用了一个USB Hub与主机 Controller中继来实现多端口应用的扩展,根本无法进行Hub Down Stream Facing Port的测试。

  (2)并且原厂的测试是在CFE模式下通过下载运行特定的测试程式来进行测试,在这个阶段,并没有实现USB Hub的初始化以及配置字的操作,也就是说USB Hub是不可控的无法进入测试模式的设定。我们的多USB主机端口的应用设计使得系统架构中加入了USB Hub进行中继,已经超出了原厂设计的USB测试状态机控制范畴,导致了无法通过原厂提供的测试命令进行测试。再次和原厂技术支持讨论新的测试程式的开发从时间说来看已经不实际了,客户非常关注并要求我们必须尽快给到USB 主机的测试报告。第一次进行USB 主机测试就遇到如此棘手的问题,工程师们一时间束手无策。有没有另外的方法呢?

  3 问题分析解决

  在和客户方面的资深工程师分析和讨论之后,我们有了一个非常巧妙的解决方案,当然还需要实际的测试来验证。USB专业测试人员都知道,USB IF针对USB一致性测试提供了一个专用测试工具 (USB-IF HS Electrical TEST Tool)以方便开发者进行相关的USB测试。但这个工具只能运行在PC主机上,而我们的系统其实也是通过相应的底层命令来实现这个工具相关的测试功能。从测试拓扑来看,我们目前的问题主要在于嵌入式控制主机无法实现对USB Hub的控制和测试模式设定。从控制系统的角度来说,不管是嵌入式控制主机还是PC主机都实现的是USB主机控制器的作用,也就是说我们可以使用PC主机替代嵌入式控制主机,在一台装有USB-IF HS Electrical TEST Tool的PC上对产品板级USB Hub进行Down Stream Facing Port的TEST Packet测试了。当然,我们首先要断开嵌入式控制主机与USB Hub之间的Up Stream Facing Port并飞线与PC主机的USB接口连接。因为测试单扳本身提供5V供电,所以我们只需要飞出D+/D-/GND三线即可。完成后的图示如下:

  

控制工具设置界面

  USB Hub Up Stream Port飞线图

  我们使用了一台装有USB-IF HS Electrical TEST Tool的ThinkPad R51作为控制平台,在按照上面的图示进行测试连接并将产品上电之后我们在测试工具中选择了Hub类测试并发现了板级的USB Hub。我们已经初步实现了之前关于控制系统的设想,图示如下:

  

控制工具设置界面

  控制工具设置界面

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭