USB

STM32 提供了丰富的接口资源,其中包括 USB FS、USB HS、OTG FS 和 OTG HS。对于高速 USB,由于信号速率相对较高。在开发过程中,会对高速 USB 信号质量进行测试,例如运用广泛的眼图测试。STM32 的高速 USB/OTG IP 遵循USB 2.0 规范,能够配合实现眼图等信号质量测试项。本文中,首先介绍眼图等信号质量测试的实现框架,然后以 Cube 软件包中 USB 设备类的 HID 例程为基础,提供软件层面的修改。最后通过 USB 官方提供的 HSETT 工具,一步一步呈现如何使STM32 实现的 USB 设备进入测试模式,以便使其输出用以获取眼图等测试项的信号。

一 信号质量测试背景介绍

高速 USB 信号质量测试,实现框架如下图。

STM32 的高速 USB 信号质量测试实现

根据测试需要,利用电脑端测试软件工具 HSETT,使 STM32 实现的 USB 设备进入相应的测试模式。然后利用示波器抓取测试信号,进行信号质量分析。本文中不包含示波器抓取信号的实现描述,读者可以通过文末的参考文档进行了解。

其中,HSETT 全称 High-speed Electrical Test Tool,是 USB 官方组织发布的一个发包工具(官网 www.usb.org 下载)。

STM32 的高速 USB IP 遵循 USB2.0 规范,支持多种测试模式,包括 Test_J 模式、Test_K 模式、Test_SE0_NAK 模式、Test_Packet 模式和 Test_Force_Enable 模式。更多测试模式内容的介绍请参考 USB2.0 规范。 更多内容请参考对应型号的参考手册。其中,如果是进行眼图测试,需要进入 Test_Packet 测试模式。

二 软件层面支持

本文中实现环境如下:

硬件平台: STM32F469I-EVAL
Cube 软件包版本: v1.16.0
HID 例程文件路径 :
STM32Cube_FW_F4_V1.16.0\Projects\STM32469I_EVAL\Applications\USB_Device\HID_Standalone.HS Electrical Test Tool (HSETT)

通过上述介绍可以了解到高速 USB 的信号质量测试,需要 USB 器件进入测试模式,提供符合测试的信号输出。基于此,下面列出例程中添加及修改处,以实现 HID 设备对测试模式的支持。

STM32 的高速 USB 信号质量测试实现

STM32 的高速 USB 信号质量测试实现

STM32 的高速 USB 信号质量测试实现

完成上述修改,编译生成执行文件,并加载到 STM32F469I-EVAL 板。注: 工程中包含三个子工程,分别是STM32469I-EVAL_USBD-FS、STM32469I-EVAL_USBD-HS-IN-FS 和 STM32469I-EVAL_USBD-HS,选择 STM32469IEVAL_USBD-HS实现高速 USB 的 HID 设备功能。

三 测试模式进入

利用 USB 数据线将 STM32F469I-EVAL 板上的高速 USB 口与电脑连接。如果 HID 例程运行正常,电脑会对将其识别为HID 设备,可在电脑的设备管理器中查看,如下图。

STM32 的高速 USB 信号质量测试实现

打开 HS Electrical Test Tool,出现主控制器选择界面,如下图。界面中内容及出现情况与电脑有关,如果电脑仅包含一个主控制器,不会出现选择界面。注意 HSETT 工具用于 USB2.0,如果电脑只有 USB3.0 主控制器,会出现无法找到USB2.0 主控制器的提示,并且不能使用。

STM32 的高速 USB 信号质量测试实现

从设备管理器进入,查看主控制器属性中的位置路径。查找与 HID 设备的位置路径关联的主控制器,如下图(主控制器的总线、设备和功能号信息,在下图界面的“常规”标签中)。

STM32 的高速 USB 信号质量测试实现

根据图中信息确定选择 “PCI 总线 0、设备 29、功能 7”,出现选择测试类型的界面,如下图。

STM32 的高速 USB 信号质量测试实现

本文中介绍 USB 设备的测试实现。选择 “Device”,单击“TEST”,进入测试模式的界面,如下图

STM32 的高速 USB 信号质量测试实现

界面中列出了挂载在主控制器上的 USB 设备硬件 ID,选择对应的设备。(实验时,对应 USB 主控制器上只挂载了STM32 实现的 HID 设备。)

点击 “Enumerate Bus”重新与设备建立枚举。枚举成功出现如下提示。

STM32 的高速 USB 信号质量测试实现

HSETT 提供了多种设备命令,如下图。为了实现眼图测试,选择“TEST_PACKET ”,单击“EXECUTE”,向 USB 设备发送设置 Test_Packet 模式的命令。

STM32 的高速 USB 信号质量测试实现

发送成功,并被 USB 设备正确响应后,出现如下提示。然后可以单击“Return To Main”  “Exit”退出 HSETT,释放主控制器的控制。

STM32 的高速 USB 信号质量测试实现

STM32 高速 USB 进入测试模式,通过 USB 接口连续循环地向外输出测试需要的信号。在进入测试模式后,信号的发送不受 USB 数据线连接的影响,断开 USB 数据线,依然会发送信号,以便获取眼图等测试信号。

四 小结

本文简略的从 STM32 角度,描述了高速 USB 信号质量测试中,涉及到的修改及实现。对于具体的测试及分析,不在本文介绍范围内,读者可以通过提供的参考文档 Universal Serial Bus Implementers Forum Device Hi-Speed Electrical TestProcedure,更加全面的了解信号质量测试的步骤及实现。另外,文件中以 HID 设备为例,但需知测试实现与哪种类型 USB设备无关。

来源: http://www.stmcu.com.cn

围观 17
170

独具无比伦比灵活性的Microchip新款器件,客户设计的绝佳选择

随着车载信息娱乐系统的兴起,汽车制造商需要在汽车显示屏和多台智能手机或者平板电脑之间建立可靠而智能的连接。

Microchip Technology Inc.是提供支持此类连接的集成电路(IC)的业界翘楚,推出的5款新型USB 2.0智能集线器IC为用户提供了多种选择。这些器件有各种架构,能够非常灵活地适应汽车制造商的设计需求,满足消费者对系统易于使用而且直观的要求。

如需了解有关这些新器件的更多信息,请访问: www.microchip.com/USB4914

这5款新器件支持各种架构,因此制造商可以轻松地将其特定设计连接至所有主流智能手机操作系统。这些系统支持将手机或者平板电脑的图形用户界面显示在车辆屏幕上,与车内语音命令集成,同时还能对移动设备进行充电,并支持手机上的辅助驾驶应用程序与汽车信息娱乐系统相集成。

Microchip新款智能集线器IC支持集线器级联到第二和第三排座位,数据可同时出现在所有端口上,并具备充电功能。例如,如果有两个USB端口,一个端口可以把手机或者平板电脑连接到汽车主机,而另一个端口既可以充电也可以上传/下载数据。采用Microchip的新款USB4914、USB4916、USB4925和USB4927智能集线器IC,汽车制造商可以定制自己的解决方案以满足其设计需求。随着汽车越来越成为一种娱乐环境,制造商可以开发新颖的解决方案——支持消费者使用一部手机进行导航,而另一部用于听音乐或者看视频。

Microchip的USB和联网产品部副总裁Mitch Obolsky说:“Microchip是汽车行业USB集线器IC的领导者。我们的长期投入取得了专利技术,为手持设备与车辆的连接提供独特的主机/设备总线配置,更好地获得信息,实现更安全的辅助驾驶和通信功能。”

Microchip新款USB4715、USB4914、USB4916、USB4925和USB4927 USB 2.0智能集线器IC独特的USB配置包括了单路和双路总线实现,能够很好地连接信息娱乐系统。所有器件都使用大多数汽车主机系统的标准USB驱动程序,以便更迅速地开发和验证系统,进行现场更新。每一器件还集成了一个32位单片机,用于高级桥接、音频应用支持和USB供电(USB PD)。

开发支持

每一新款USB 2智能集线器IC都提供应用演示电路板和评估电路板。应用演示电路板模拟了一级供应商或者原始设备制造商(OEM)在其实际应用中使用的一个系统。Microchip还演示了一个USB供电应用,按照USB PD 3.0规范进行充电。

供货

USB4715、USB4914和USB4925提供48引脚QFN封装。USB4916和USB4927提供64引脚QFN封装。该器件目前已经量产,10,000片起可批量供货。

围观 9
362

STM32 提供了丰富的接口资源,其中包括 USB FS、USB HS、OTG FS 和 OTG HS。对于高速 USB,由于信号速率相对较高。在开发过程中,会对高速 USB 信号质量进行测试,例如运用广泛的眼图测试。STM32 的高速 USB/OTG IP 遵循USB 2.0 规范,能够配合实现眼图等信号质量测试项。本文中,首先介绍眼图等信号质量测试的实现框架,然后以 Cube 软件包中 USB 设备类的 HID 例程为基础,提供软件层面的修改。最后通过 USB 官方提供的 HSETT 工具,一步一步呈现如何使STM32 实现的 USB 设备进入测试模式,以便使其输出用以获取眼图等测试项的信号。

一 信号质量测试背景介绍

高速 USB 信号质量测试,实现框架如下图。

STM32 的高速 USB 信号质量测试实现

根据测试需要,利用电脑端测试软件工具 HSETT,使 STM32 实现的 USB 设备进入相应的测试模式。然后利用示波器抓取测试信号,进行信号质量分析。本文中不包含示波器抓取信号的实现描述,读者可以通过文末的参考文档进行了解。

其中,HSETT 全称 High-speed Electrical Test Tool,是 USB 官方组织发布的一个发包工具(官网 www.usb.org 下载)。

STM32 的高速 USB IP 遵循 USB2.0 规范,支持多种测试模式,包括 Test_J 模式、Test_K 模式、Test_SE0_NAK 模式、Test_Packet 模式和 Test_Force_Enable 模式。更多测试模式内容的介绍请参考 USB2.0 规范。 更多内容请参考对应型号的参考手册。其中,如果是进行眼图测试,需要进入 Test_Packet 测试模式。

二 软件层面支持

本文中实现环境如下:

硬件平台: STM32F469I-EVAL
Cube 软件包版本: v1.16.0
HID 例程文件路径 :
STM32Cube_FW_F4_V1.16.0\Projects\STM32469I_EVAL\Applications\USB_Device\HID_Standalone.
HS Electrical Test Tool (HSETT)
通过上述介绍可以了解到高速 USB 的信号质量测试,需要 USB 器件进入测试模式,提供符合测试的信号输出。基于此,下面列出例程中添加及修改处,以实现 HID 设备对测试模式的支持。

STM32 的高速 USB 信号质量测试实现

完成上述修改,编译生成执行文件,并加载到 STM32F469I-EVAL 板。注: 工程中包含三个子工程,分别是
STM32469I-EVAL_USBD-FS、STM32469I-EVAL_USBD-HS-IN-FS 和 STM32469I-EVAL_USBD-HS,选择 STM32469I-EVAL_USBD-HS实现高速 USB 的 HID 设备功能。

三 测试模式进入

利用 USB 数据线将 STM32F469I-EVAL 板上的高速 USB 口与电脑连接。如果 HID 例程运行正常,电脑会对将其识别为HID 设备,可在电脑的设备管理器中查看,如下图。

STM32 的高速 USB 信号质量测试实现

打开 HS Electrical Test Tool,出现主控制器选择界面,如下图。界面中内容及出现情况与电脑有关,如果电脑仅包含一个主控制器,不会出现选择界面。注意 HSETT 工具用于 USB2.0,如果电脑只有 USB3.0 主控制器,会出现无法找到USB2.0 主控制器的提示,并且不能使用。

STM32 的高速 USB 信号质量测试实现

从设备管理器进入,查看主控制器属性中的位置路径。查找与 HID 设备的位置路径关联的主控制器,如下图(主控制器的总线、设备和功能号信息,在下图界面的“常规”标签中)。

STM32 的高速 USB 信号质量测试实现

STM32 的高速 USB 信号质量测试实现

本文中介绍 USB 设备的测试实现。选择 “Device”,单击“TEST”,进入测试模式的界面,如下图。

STM32 的高速 USB 信号质量测试实现

界面中列出了挂载在主控制器上的 USB 设备硬件 ID,选择对应的设备。(实验时,对应 USB 主控制器上只挂载了STM32 实现的 HID 设备。)
点击 “Enumerate Bus”重新与设备建立枚举。枚举成功出现如下提示。

STM32 的高速 USB 信号质量测试实现

HSETT 提供了多种设备命令,如下图。为了实现眼图测试,选择“TEST_PACKET ”,单击“EXECUTE”,向 USB 设备发送设置 Test_Packet 模式的命令。

STM32 的高速 USB 信号质量测试实现

发送成功,并被 USB 设备正确响应后,出现如下提示。然后可以单击“Return To Main”  “Exit”退出 HSETT,释放主控制器的控制。

STM32 的高速 USB 信号质量测试实现

STM32 高速 USB 进入测试模式,通过 USB 接口连续循环地向外输出测试需要的信号。在进入测试模式后,信号的发送不受 USB 数据线连接的影响,断开 USB 数据线,依然会发送信号,以便获取眼图等测试信号。

四 小结

本文简略的从 STM32 角度,描述了高速 USB 信号质量测试中,涉及到的修改及实现。对于具体的测试及分析,不在本文介绍范围内,读者可以通过提供的参考文档 Universal Serial Bus Implementers Forum Device Hi-Speed Electrical TestProcedure,更加全面的了解信号质量测试的步骤及实现。另外,文件中以 HID 设备为例,但需知测试实现与哪种类型 USB设备无关。

来源:ST

围观 24
444

USB已经成为设备和PC之间通信的标准方式,从通用设备(如闪存设备和鼠标)到专用设备,该标准几乎完全替代了其他的串行通信协议。

USB外围设备彼此之间不能相互通信,它们只能与具有控制总线能力的USB主设备通信。直到最近,也只有PC具有主设备能力。但目前,许多微控制器也具有了嵌入式USB主设备的功能,这使得嵌入式应用可以连接更加广泛的USB外围设备。

USB闪存驱动器是一种使用非常广泛的USB外围设备,它已经成为传递或存储大量数据的廉价介质,许多数据记录设备正是得益于它才得以发展。对于远程的长期数据记录,可以先采集,并存储在闪存驱动器中,然后带回到方便分析处理的地方。

闪存驱动器也可以用于向PC中传输高速时间相关数据。PC是极好的数据分析工具,但实时能力有限。相反,嵌入式应用特别适合实时数据采集,但数据分析能力通常很弱。嵌入式实时数据记录仪可以在闪存驱动器上存储数据,然后把数据传输到PC上分析,这样二者的优势都得到了充分的发挥。

嵌入式USB主设备的应用

开始嵌入式设计的首要任务之一是选择微控制器。为了使用闪存驱动器,微控制器就必须具有嵌入式USB主设备的能力。如果微控制器具有USB OTG(On-The-Go)或USB双角色(Dual Role)功能,如Microchip公司的PIC24FJ256GB1微控制器,如图1所示,它也可以支持嵌入式USB主设备功能。USB外围设备,有时也称为USB设备模式,只能用作闪存驱动器等,而不能和其他USB外围设备通信。

其次,设计者应该确信能有完整的开发工具。至少也需要一个器件编程器(如果有一个调试器是最好的)和一个C语言编译器,因为嵌入式USB主设备和运行在微控制器中的程序往往是用C语言而不是用汇编语言编写的。

最后,设计者也应该了解哪些软件库是可以获得的,因为嵌入式设备发现闪存驱动器时的握手操作需要USB设备类、FAT32文件系统和其他库的支持。从头开始设计支持嵌入式USB主设备的工作会需要数月的时间,而一个由经过认证的协议栈组成的方案可以节省相当多的时间。

为了使用闪存驱动器,嵌入式设备也需要一种USB海量存储类(Mass Storage Class)设备的终端驱动程序、硬件命令行接口,以及文件系统接口。通常,具有2Gb或更低存储空间的闪存驱动器使用FAT16文件系统,而更大容量的闪存驱动器将使用FAT32文件系统。

设计要求

一旦选定了微控制器,硬件设计就开始了。USB硬件设计需要遵循以下许多规则。

● 如果嵌入式主设备需要支持USB设备类,它对外围的供电就必须能够提供500mA的电流。

● 如果嵌入式主设备需要支持任何消耗电流超过100mA的设备,它也必须能够提供500mA的电流。

● 如果嵌入式主设备需支持消耗电流100mA或更低的设备,那么VBUS电压限制就可以降低到4.4V。然而,如果嵌入式主设备需支持消耗电流超过100mA的设备,那么VBUS电压限制是 4.75V,就和全功能主设备一样。

● 必须重新设计无须用户干预就可复位的过流保护机制。

● 从USB连接器到收发器之间的传输延迟必须在8ns之内。

● 嵌入式USB主设备在VBUS上的电容必须大于120μF,而且USB OTG设备在VBUS上的电容必须为1.0?6.8μF。

除以上规则外,也必须仔细考虑采用嵌入式USB主设备应用的用户接口。USB外围设备通常用在PC上,万一发生错误就可以提供详细的错误信息。如果LED 指示灯闪烁,用户能够知道连接失败了。USB规范也作了强制性的规定,经过认证的USB嵌入式主设备必须提供错误信息。换句话说,所有错误信息必须被明确地通知应用层,也就是告知用户。

USB设备认证

USB认证主要用于保证USB设备符合USB规范的要求。认证可以在各种独立的测试机构进行。一旦产品通过认证,生产商就被允许使用USB标志,但同样需要遵守额外的许可证限制。

产品也可以不通过USB认证而直接进行生产和销售。没有USB认证,生产商可以声明自己的产品支持USB,但他不能在设备或包装上的任何地方使用USB标志。通常,取得USB嵌入式主设备认证是不太难的。

通过USB通信

实现USB嵌入式主设备的一个最大挑战就是要和各种各样的USB外围设备通信。虽然不是所有的闪存驱动器产品都通过了认证,但是如果在嵌入式设备中一种闪存驱动器可以正常使用,而另一种没有任何原因就不能使用时,用户是不会高兴的。

如果闪存驱动器需要的上电时间是允许最大时间的两倍或一半,或由于主机以最大允许的速率轮询时闪存驱动器被锁住,以及因为闪存驱动器需要一种不同的 SCSI命令序列来建立通信等,这都不会有任何问题。但如果这样的闪存驱动器在主设备上不能运行,在PC上却可以正常使用,用户会批*这一主设备。因此,确保进行广泛的测试,与多种没有进行认证的USB外围设备进行通信,即使它只是一个拇指大的闪存驱动器或一根电缆。

虽然嵌入式USB主设备可以提供USB类级的支持,在进行设计和测试时,也应该考虑对特殊USB外围设备支持的限制,通过对VID(供应商ID)和 PID(产品ID)的识别来保证产品能在设计的应用领域正常使用。这个ID列表是指USB执行者论坛所发布的目标外围设备列表(TPL),它是为了获得嵌入式主设备认证所必须服从的检查项目列表。完整的OTG认证实际上仅需要与TPL列表中的VID/PID标志的产品互操作。

围观 5
843
订阅 RSS - USB