请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
zero99 发布时间:2017-10-23 18:08
STM32的高速USB信号质量测试实现
( p9 i- J% P$ V; \- k+ e' T2 W' x  Q% }" z( q: |$ i: Y
前言
0 Q) |" l, |) J7 I( o; y   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设备进入测试模式,以便使其输出用以获取眼图等测试项的信号。
4 D3 ]7 |0 B0 A: j( I2 h: t* E0 d7 D0 |9 W
一 信号质量测试背景介绍5 B+ G% w# B& M! u
    高速USB信号质量测试,实现框架如下图。
11.jpg
: j/ |' h0 j( \/ t$ }! q         
6 W7 p/ `1 ]2 U5 N& Q. K" D3 V    根据测试需要,利用电脑端测试软件工具HSETT,使STM32实现的USB设备进入相应的测试模式。然后利用示波器抓取测试信号,进行信号质量分析。本文中不包含示波器抓取信号的实现描述,读者可以通过文末的参考文档进行了解。
$ m+ W: K; y' Y# k' `- O    其中,HSETT全称High-speed Electrical Test Tool,是USB官方组织发布的一个发包工具(官网www.usb.org下载)。
( n8 y0 V+ q2 V5 O8 R: N+ b8 P    STM32的高速USB IP遵循USB2.0规范,支持多种测试模式,包括Test_J模式、Test_K模式、Test_SE0_NAK模式、Test_Packet模式和Test_Force_Enable模式。更多测试模式内容的介绍请参考USB2.0规范。 更多内容请参考对应型号的参考手册。其中,如果是进行眼图测试,需要进入Test_Packet测试模式。. n+ F1 }( F0 b7 }5 O% F$ \+ m. n# f' e

0 U  \$ M' m! E; B) t. z" Y9 r二 软件层面支持  \3 e2 @3 w* A, a2 `
    本文中实现环境如下:
6 h+ F- _5 C8 l& X% x% v) y: G4 N    硬件平台: STM32F469I-EVAL; T! X' Y% L" T, _; c
    Cube软件包版本: v1.16.02 }, P( I7 d7 e. p% H
    HID例程文件路径 :3 i, h- T7 u* I+ ^# k
    STM32Cube_FW_F4_V1.16.0\Projects\STM32469I_EVAL\Applications\USB_Device\HID_Standalone./ S% q( A- O- B+ k' s; {6 T1 p7 {, n
    HS Electrical Test Tool (HSETT)
, R# C5 j1 G  E6 I8 S( p    通过上述介绍可以了解到高速USB的信号质量测试,需要USB器件进入测试模式,提供符合测试的信号输出。基于此,下面列出例程中添加及修改处,以实现HID设备对测试模式的支持。5 }) \' Y1 G  t* R% ^$ t. L2 z
12.jpg
; p$ O2 [  o& ~1 Q4 Z
13.jpg
0 }1 e, K* s" X( |; W
4 P8 A* A  v! u9 s    完成上述修改,编译生成执行文件,并加载到STM32F469I-EVAL板。注: 工程中包含三个子工程,分别是STM32469I-EVAL_USBD-FS、STM32469I-EVAL_USBD-HS-IN-FS和STM32469I-EVAL_USBD-HS,选择STM32469I-EVAL_USBD-HS实现高速USB的HID设备功能。
4 Q4 D! e5 E, H1 M, y7 ?: ^( U$ O8 k+ O
三 测试模式进入
: m/ p; s* i- S    利用USB数据线将STM32F469I-EVAL板上的高速USB口与电脑连接。如果HID例程运行正常,电脑会对将其识别为HID设备,可在电脑的设备管理器中查看,如下图。

) h" o4 u/ z, ]8 ^" P+ w, C0 R& Y 14.jpg
2 U, r! Y% j2 J9 D6 F, r, n         
" c. e0 }8 i5 T" E) B    打开HS Electrical Test Tool,出现主控制器选择界面,如下图。界面中内容及出现情况与电脑有关,如果电脑仅包含一个主控制器,不会出现选择界面。注意HSETT工具用于USB2.0,如果电脑只有USB3.0主控制器,会出现无法找到USB2.0主控制器的提示,并且不能使用。

6 U5 J" D: |, A  k& e6 I# K9 [$ z 15.jpg 6 Y5 B5 O1 ~4 C3 L
         
) h% _7 W& P0 i; j2 s: `" q/ b    从设备管理器进入,查看主控制器属性中的位置路径。查找与HID设备的位置路径关联的主控制器,如下图(主控制器的总线、设备和功能号信息,在下图界面的“常规”标签中)。
( L1 t' C8 a9 G 16.jpg
2 F- ]) S& ^% f8 s

4 g% [/ u  F% |  p8 V# ]    根据图中信息确定选择 “PCI总线0、设备29、功能7”,出现选择测试类型的界面,如下图。
# }; A& G" a0 B2 m& L4 v: R) B- p
17.jpg
* i& a- a5 M: J+ D# q9 r, U: i, K         
- P8 _' v2 A( B9 l9 ~1 L0 [3 [    本文中介绍USB设备的测试实现。选择 “Device”,单击“TEST”,进入测试模式的界面,如下图。
( `. j, A9 W6 H/ R8 d 18.jpg
  X+ m- q, Y$ }# I; ]+ N% p2 A: \: `
8 p7 A+ z. g5 o( J7 y' }) d0 M
    界面中列出了挂载在主控制器上的USB设备硬件ID,选择对应的设备。(实验时,对应USB主控制器上只挂载了STM32实现的HID设备。)
2 M& M7 E  [# h* P  u, |    点击 “Enumerate Bus”重新与设备建立枚举。枚举成功出现如下提示。

9 F6 ^7 R! H- D 19.png
' A, x9 N; ?6 @0 `% ^         
2 ^/ `. s, Q' P5 K# c0 D    HSETT提供了多种设备命令,如下图。为了实现眼图测试,选择“TEST_PACKET ”,单击“EXECUTE”,向USB设备发送设置Test_Packet模式的命令。
; |/ K5 p  _/ V5 m 21.jpg + Y7 ?- C6 M: w3 e4 u
: A+ p1 F3 Z! q  u" a! g
    发送成功,并被USB设备正确响应后,出现如下提示。然后可以单击“Return To Main”  “Exit”退出HSETT,释放主控制器的控制。5 i8 Y( W" i6 R* `& s
22.jpg ; h  [3 c8 N; k) u* G

7 @" J, W7 g' e5 ?$ ^; f: b; e3 l8 U    STM32 高速USB进入测试模式,通过USB接口连续循环地向外输出测试需要的信号。在进入测试模式后,信号的发送不受USB数据线连接的影响,断开USB数据线,依然会发送信号,以便获取眼图等测试信号。
8 v6 A2 F! y6 P" ]  j3 e- Q% x
2 `' _0 z& A( ^$ G6 u四 小结& D* h! W; Q  n5 R! N
    本文简略的从STM32角度,描述了高速USB信号质量测试中,涉及到的修改及实现。对于具体的测试及分析,不在本文介绍范围内,读者可以通过提供的参考文档Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure,更加全面的了解信号质量测试的步骤及实现。另外,文件中以HID设备为例,但需知测试实现与哪种类型USB设备无关。

) B' g, Y9 D; h; Z) U. Z5 m% Q
, {- [5 w( `( f: |: k4 F' X: ~/ c) x6 T* n/ \5 ^
2 K* ?1 h- b6 l0 e# Q) m, j

5 s0 A4 y4 x, h6 [2 `参考文档* `4 q0 s7 m( C5 l; A3 l
Universal Serial Bus Specification v2.07 N* E2 Y- p) B$ _+ l
Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure For Agilent Infiniium v1.2
+ I1 t" ?1 E) F1 W  hUniversal Serial Bus Implementers Forum Device High-speed Electrical Test Procedure For Tektronix v1.5
  P5 n; h1 ~- Y6 |9 KUniversal Serial Bus Implementers Forum Full and Low Speed Electrical and Interoperability Compliance Test Procedure) t. @: i2 N/ b, a7 L: Q# v3 O
RM0386 Reference Manual STM32F469xx and STM32F479xx advanced ARM®-based 32-bit MCUs

3 |8 @: i' u9 S) P/ L8 u4 t* t1 N3 m
$ Z% A, G: \. K# \! x8 A
$ C8 n. q4 r3 y
# t- ^; P3 k( K, r0 b" s4 E
文档下载1>>         文档下载2>>       更多实战经验>>      
4 N) S2 ^/ b/ [; E: w: {0 o8 a0 x) O2 v% \& |$ ~: s3 |
2 W! H4 v  W/ ?2 v' g; \
收藏 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 手机版