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

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

[复制链接]
zero99 发布时间:2017-10-23 18:08
STM32的高速USB信号质量测试实现
) P% H# W9 V5 u  ]$ E$ h7 q$ ?9 N. }. Z6 ~- \
前言* W7 L! e. M! Z4 r$ X8 m! B: [* T
   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设备进入测试模式,以便使其输出用以获取眼图等测试项的信号。
# O9 [/ V8 T8 f" P5 P6 Y$ W7 Z& Q% C. l" t" Y( p2 a( a0 v
一 信号质量测试背景介绍; F$ R8 K, N& d' t- a0 N( s, l
    高速USB信号质量测试,实现框架如下图。
11.jpg
0 t: J9 y$ i* |+ O% c         
6 o9 Q$ t+ f: g' k    根据测试需要,利用电脑端测试软件工具HSETT,使STM32实现的USB设备进入相应的测试模式。然后利用示波器抓取测试信号,进行信号质量分析。本文中不包含示波器抓取信号的实现描述,读者可以通过文末的参考文档进行了解。
& {2 Y, l4 W8 U& a( a% s# `, w    其中,HSETT全称High-speed Electrical Test Tool,是USB官方组织发布的一个发包工具(官网www.usb.org下载)。( I& w% Y% Q, u; n
    STM32的高速USB IP遵循USB2.0规范,支持多种测试模式,包括Test_J模式、Test_K模式、Test_SE0_NAK模式、Test_Packet模式和Test_Force_Enable模式。更多测试模式内容的介绍请参考USB2.0规范。 更多内容请参考对应型号的参考手册。其中,如果是进行眼图测试,需要进入Test_Packet测试模式。  b+ I' r% I) R2 {  i# R

8 p/ C9 z1 C" r+ `9 V8 z二 软件层面支持3 `, H1 K: v5 }  M  c1 ~
    本文中实现环境如下:9 D7 h6 b  K6 |( @3 `4 O( K7 t
    硬件平台: STM32F469I-EVAL
/ F* L4 P; V: i2 p  p- t    Cube软件包版本: v1.16.01 }/ d4 P6 D5 G5 U$ `- [8 B
    HID例程文件路径 :
3 n( A  @2 h# ~# t    STM32Cube_FW_F4_V1.16.0\Projects\STM32469I_EVAL\Applications\USB_Device\HID_Standalone.
/ O3 k2 f3 n6 w8 @8 G- Q4 f6 c    HS Electrical Test Tool (HSETT)
  \  A) N* D' _* p$ `# K8 m' B2 ?    通过上述介绍可以了解到高速USB的信号质量测试,需要USB器件进入测试模式,提供符合测试的信号输出。基于此,下面列出例程中添加及修改处,以实现HID设备对测试模式的支持。
! u% L' m/ n5 y5 a) i$ K5 ] 12.jpg 3 @9 J& n9 \; _; S4 K# [& S
13.jpg
0 Z& B# g1 C4 ~# R4 M8 D
- ]  j, u% X3 J: b; h/ Z    完成上述修改,编译生成执行文件,并加载到STM32F469I-EVAL板。注: 工程中包含三个子工程,分别是STM32469I-EVAL_USBD-FS、STM32469I-EVAL_USBD-HS-IN-FS和STM32469I-EVAL_USBD-HS,选择STM32469I-EVAL_USBD-HS实现高速USB的HID设备功能。# Y5 L1 I2 R) m. y
5 R+ ]' X5 y% ^6 S  u3 o
三 测试模式进入
( O, _) L2 @- Q    利用USB数据线将STM32F469I-EVAL板上的高速USB口与电脑连接。如果HID例程运行正常,电脑会对将其识别为HID设备,可在电脑的设备管理器中查看,如下图。
  C' F2 c( N# V& q1 r
14.jpg
6 n7 P  f' w8 V2 ?6 j          , y: j( ^5 d" h- B8 E$ D8 H
    打开HS Electrical Test Tool,出现主控制器选择界面,如下图。界面中内容及出现情况与电脑有关,如果电脑仅包含一个主控制器,不会出现选择界面。注意HSETT工具用于USB2.0,如果电脑只有USB3.0主控制器,会出现无法找到USB2.0主控制器的提示,并且不能使用。

0 \& A8 V+ G9 X 15.jpg + o1 M& a5 _, ^9 u8 ?
         
- w) K4 s9 A1 ^' U- c    从设备管理器进入,查看主控制器属性中的位置路径。查找与HID设备的位置路径关联的主控制器,如下图(主控制器的总线、设备和功能号信息,在下图界面的“常规”标签中)。
6 y4 g: C% s7 M; ~ 16.jpg

0 c* V% l2 b, h& X" p! X/ Z  r: R5 j; z9 y$ R; X% @8 f+ g" m3 \
    根据图中信息确定选择 “PCI总线0、设备29、功能7”,出现选择测试类型的界面,如下图。

8 U# X+ Z  Y  u- `2 D. l 17.jpg
6 K5 n0 p1 G9 q7 ^         
: ^; ~  l8 |0 C& C: U/ d+ n' F    本文中介绍USB设备的测试实现。选择 “Device”,单击“TEST”,进入测试模式的界面,如下图。
6 D2 O! [8 r9 `- @( s7 _) u+ a( L 18.jpg

, k6 R9 |1 A5 g& w" a3 x: A) i- ]: d4 q" X+ g# E4 p: @! L* u
    界面中列出了挂载在主控制器上的USB设备硬件ID,选择对应的设备。(实验时,对应USB主控制器上只挂载了STM32实现的HID设备。)
3 C6 r+ ?+ D5 ~9 b, J    点击 “Enumerate Bus”重新与设备建立枚举。枚举成功出现如下提示。
4 [$ c% H; w5 ~/ D4 \0 q1 e! y5 S
19.png
' f8 S# N+ g% [7 D) ~3 A* n8 ?         
, J# R* n8 ~& e    HSETT提供了多种设备命令,如下图。为了实现眼图测试,选择“TEST_PACKET ”,单击“EXECUTE”,向USB设备发送设置Test_Packet模式的命令。
& w8 p( Q7 a& L 21.jpg + u; h0 T3 @% ]" S

- F8 W/ E# {1 V2 _. ?. D1 y1 [    发送成功,并被USB设备正确响应后,出现如下提示。然后可以单击“Return To Main”  “Exit”退出HSETT,释放主控制器的控制。  F/ x3 c4 o  J, O- S
22.jpg " M/ Q2 K& v. ?" w5 e

6 E+ G* y/ {7 J6 Z$ z6 m% D    STM32 高速USB进入测试模式,通过USB接口连续循环地向外输出测试需要的信号。在进入测试模式后,信号的发送不受USB数据线连接的影响,断开USB数据线,依然会发送信号,以便获取眼图等测试信号。1 |' [. a9 ?1 q7 l. }$ P
" S5 r* K" ?* ^, n
四 小结
8 ]2 R6 q$ v, }/ _    本文简略的从STM32角度,描述了高速USB信号质量测试中,涉及到的修改及实现。对于具体的测试及分析,不在本文介绍范围内,读者可以通过提供的参考文档Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure,更加全面的了解信号质量测试的步骤及实现。另外,文件中以HID设备为例,但需知测试实现与哪种类型USB设备无关。

/ g$ D" {" i2 q; \5 k5 w
- }; h4 M+ V5 {
' {7 \+ }. O+ m/ f6 i" g5 C2 ~6 X. Y# Z9 h/ Q" q

- ~# n) D5 u0 g& q! f! D! q参考文档
; _0 f! j9 h8 b% L, TUniversal Serial Bus Specification v2.0
/ y, W( p3 @8 m! T+ s" v# q8 t+ VUniversal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure For Agilent Infiniium v1.2
6 X' H7 h# o4 z0 P6 m0 R4 F) AUniversal Serial Bus Implementers Forum Device High-speed Electrical Test Procedure For Tektronix v1.5
) Y/ Y" C7 Y9 n! k9 E- pUniversal Serial Bus Implementers Forum Full and Low Speed Electrical and Interoperability Compliance Test Procedure' `% p  P) f8 v2 g; L4 A) [$ z
RM0386 Reference Manual STM32F469xx and STM32F479xx advanced ARM®-based 32-bit MCUs
- M6 c8 \$ M0 k+ S

; o: [4 O' o2 h" t4 J

8 m! g0 j- I7 F0 y) ?' u5 O9 U
. ]/ U8 j5 V" d% \

7 l' q; ?7 _1 e9 y" J4 u文档下载1>>         文档下载2>>       更多实战经验>>       ' w% v+ k' a+ u$ j

. \/ @: n  _9 A0 m! f, w
/ K7 l5 v: M  x! o$ Z$ W# j( O
收藏 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 手机版