你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【实战经验】STM32的高速USB信号质量测试实现

[复制链接]
zero99 发布时间:2017-10-23 18:08
STM32的高速USB信号质量测试实现& p  w, e9 j# N
' x0 Y+ M' _% |: r" s$ Z% ]
前言
4 @& E7 k4 a2 ]. R   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设备进入测试模式,以便使其输出用以获取眼图等测试项的信号。' g/ [& b# N9 m% H. M5 I# h' ?
* @4 n" a, C: W& }6 F, }
一 信号质量测试背景介绍
7 \7 b/ J8 o8 h' T    高速USB信号质量测试,实现框架如下图。
11.jpg # e1 f# c& r. T6 S+ W0 v
          " W6 u! G1 ?9 j
    根据测试需要,利用电脑端测试软件工具HSETT,使STM32实现的USB设备进入相应的测试模式。然后利用示波器抓取测试信号,进行信号质量分析。本文中不包含示波器抓取信号的实现描述,读者可以通过文末的参考文档进行了解。% Z& a* x3 B" b) |8 d
    其中,HSETT全称High-speed Electrical Test Tool,是USB官方组织发布的一个发包工具(官网www.usb.org下载)。0 _5 [9 k, @  T& u  m/ Z8 [
    STM32的高速USB IP遵循USB2.0规范,支持多种测试模式,包括Test_J模式、Test_K模式、Test_SE0_NAK模式、Test_Packet模式和Test_Force_Enable模式。更多测试模式内容的介绍请参考USB2.0规范。 更多内容请参考对应型号的参考手册。其中,如果是进行眼图测试,需要进入Test_Packet测试模式。% j% u$ u$ k1 G4 D. U
9 U- g/ v3 Y% p- g  a; B, `; O
二 软件层面支持
  q+ S* J$ M( v1 n    本文中实现环境如下:
* x, x/ W4 s$ y- s% i    硬件平台: STM32F469I-EVAL4 ?6 E5 X+ C0 R( Y2 @
    Cube软件包版本: v1.16.0
) Y! d0 C. w/ m8 I    HID例程文件路径 :$ @) Q3 w# v# e# b( g) r
    STM32Cube_FW_F4_V1.16.0\Projects\STM32469I_EVAL\Applications\USB_Device\HID_Standalone.- p" L" |, N2 S& q2 M& Y4 ]
    HS Electrical Test Tool (HSETT)
9 \" e1 g0 L# d, a% g9 E    通过上述介绍可以了解到高速USB的信号质量测试,需要USB器件进入测试模式,提供符合测试的信号输出。基于此,下面列出例程中添加及修改处,以实现HID设备对测试模式的支持。
+ z1 m" Z5 T& O0 K 12.jpg
; i- Y9 e- u1 B* l$ T
13.jpg ' Q# t9 x0 H+ K; V* c7 |: ~
9 s& N5 ]* m8 B( n' G# a
    完成上述修改,编译生成执行文件,并加载到STM32F469I-EVAL板。注: 工程中包含三个子工程,分别是STM32469I-EVAL_USBD-FS、STM32469I-EVAL_USBD-HS-IN-FS和STM32469I-EVAL_USBD-HS,选择STM32469I-EVAL_USBD-HS实现高速USB的HID设备功能。
5 n5 |3 W" k1 U& e! @3 M* C! w1 z3 I" K' j& u9 ~% X) s
三 测试模式进入/ D$ Y* |! v4 ~7 I; D0 u
    利用USB数据线将STM32F469I-EVAL板上的高速USB口与电脑连接。如果HID例程运行正常,电脑会对将其识别为HID设备,可在电脑的设备管理器中查看,如下图。
' e. [+ g% o8 m
14.jpg 2 i# K+ \: u0 h
          4 h+ _5 a: i& }
    打开HS Electrical Test Tool,出现主控制器选择界面,如下图。界面中内容及出现情况与电脑有关,如果电脑仅包含一个主控制器,不会出现选择界面。注意HSETT工具用于USB2.0,如果电脑只有USB3.0主控制器,会出现无法找到USB2.0主控制器的提示,并且不能使用。

5 T. K! a! X: H* k: g* ]% A7 A 15.jpg 7 g+ W( K, K% {5 o! l$ r7 F$ ]% u' o
         
1 V' k9 e0 Q$ H! r; l" S    从设备管理器进入,查看主控制器属性中的位置路径。查找与HID设备的位置路径关联的主控制器,如下图(主控制器的总线、设备和功能号信息,在下图界面的“常规”标签中)。
7 X4 o! l# j( G  v0 u 16.jpg

( W0 p: [/ L8 d
- G& {  V0 A5 J% G    根据图中信息确定选择 “PCI总线0、设备29、功能7”,出现选择测试类型的界面,如下图。

  o0 e* N2 |; P 17.jpg
4 y1 O* W/ X' b; @         
1 [% t2 u3 B0 V    本文中介绍USB设备的测试实现。选择 “Device”,单击“TEST”,进入测试模式的界面,如下图。
( n) [( r% m- k 18.jpg

1 h: K8 T4 I  Y3 ]% w: j3 }+ A: W) C" c) b, Y  o- g
    界面中列出了挂载在主控制器上的USB设备硬件ID,选择对应的设备。(实验时,对应USB主控制器上只挂载了STM32实现的HID设备。)
! P$ v* d0 ?7 p6 V8 ?    点击 “Enumerate Bus”重新与设备建立枚举。枚举成功出现如下提示。
; }  K' K4 v: B* [
19.png
  N" u$ ~/ U$ L( O/ n          ; G# e9 a' e# G* Q# d( E1 G; A
    HSETT提供了多种设备命令,如下图。为了实现眼图测试,选择“TEST_PACKET ”,单击“EXECUTE”,向USB设备发送设置Test_Packet模式的命令。/ @# G4 ]% S/ d% M0 v
21.jpg
3 ]$ S7 R) h! ^3 b5 V' s. L# `" o1 `- D
    发送成功,并被USB设备正确响应后,出现如下提示。然后可以单击“Return To Main”  “Exit”退出HSETT,释放主控制器的控制。
5 }6 r% k6 [! T- F/ A6 p 22.jpg
$ U" i: X4 h& _- q) c4 {" F
. P: a( v' b. B; Z    STM32 高速USB进入测试模式,通过USB接口连续循环地向外输出测试需要的信号。在进入测试模式后,信号的发送不受USB数据线连接的影响,断开USB数据线,依然会发送信号,以便获取眼图等测试信号。% F8 Z( `8 b8 i6 |6 ^5 G9 q( W( y
- D$ w5 k0 \" s* N1 W# V3 L- z' _
四 小结/ H# J  N" M: b9 A
    本文简略的从STM32角度,描述了高速USB信号质量测试中,涉及到的修改及实现。对于具体的测试及分析,不在本文介绍范围内,读者可以通过提供的参考文档Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure,更加全面的了解信号质量测试的步骤及实现。另外,文件中以HID设备为例,但需知测试实现与哪种类型USB设备无关。

" J$ C& q; X) Q" H( `) U# r$ q5 h. K& Q8 o, y
- v5 y5 f' }: H& x( i' b

) ^0 N$ e$ u/ w( ?# I! p. s

' a8 r0 o" M4 m8 H参考文档
4 ^" W: A8 P1 N( DUniversal Serial Bus Specification v2.00 Q/ M3 p8 K3 n# \  @6 \
Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure For Agilent Infiniium v1.24 V, o8 p4 Q/ `. t# D" N
Universal Serial Bus Implementers Forum Device High-speed Electrical Test Procedure For Tektronix v1.5  l1 i' q# P% B. I6 x9 Z
Universal Serial Bus Implementers Forum Full and Low Speed Electrical and Interoperability Compliance Test Procedure
. A5 C/ r' M, KRM0386 Reference Manual STM32F469xx and STM32F479xx advanced ARM®-based 32-bit MCUs
# {! Q# c+ i8 r! k

& D% w8 i- @% {

, g0 C# d, [7 [2 `* A* n& C! H+ H
/ x9 Z' z( T: \2 {. l

' ~6 i) k# Q0 D6 l0 B3 h$ E文档下载1>>         文档下载2>>       更多实战经验>>         W% {3 n3 q; s0 d9 o& V

3 o/ Q2 [7 C6 f; q# M2 C- f# m( |$ ~. p
收藏 1 评论2 发布时间:2017-10-23 18:08

举报

2个回答
斜阳 回答时间:2017-10-24 09:16:07
签到        
soh4th 回答时间:2020-10-28 09:32:14
签到
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版