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

【中文文档】AN3070_用STM32的USART管理RS-485和RS-485通信的驱动...

[复制链接]
STMCU-管管 发布时间:2019-4-1 14:06
管理驱动器使能信号以使用STM32™的 USART 进行 RS-485 和 IO-Link 通信# u3 T( f: G/ ^& d# C, i$ u, o" E
+ V: p, }. t- V/ n3 ^" o
前言
$ |8 N, T, _4 E5 E; y) M8 l. q$ ?

. r  L% z3 L; w2 i3 w2 M( eRS-485 和 IO-Link 为半双工通信协议,它们为工业网络中物理层的实施提供了便捷的途径。 ' h. l. [/ A, C, v7 A9 Z! Z4 B
, s) b, ~& d" n. k8 E1 f
STM32F10x 支持多达 5 个 UART 接口并可实现快速 DMA 传输和低中断延迟,符合 RS-485和 IO-Link 时序规范。 9 X1 r! s# x/ W8 U

4 ?( i5 i  l- x: z5 Y7 L本应用笔记旨在提供两种方法测量 DE 信号(驱动器使能)的切换时序,并管理该信号在RS-485 和 IO-Link 中的主器件发送。 8 J2 {1 a5 ]! k1 V7 o

" T; e5 f+ p; P3 l* R本应用笔记分为三部分: ' b% _5 V9 Q" V' ]; r7 R: a1 D3 Q! w# c
● 首先介绍 DE 信号时序之所以重要的原因
+ Y/ R6 E1 g7 v, V% X● 然后说明两种管理 DE 信号的方法
& G6 k6 \; x, ^8 P  d- ^( I● 最后给出不同的 DE 信号切换时间测量结果
0 _' T8 O3 A/ o& o- f6 g3 X: @8 x( R& U. E4 B
1 DE 信号时序限制
& ]$ \9 N- t" h, Q7 J# \4 ~; Y% D

. N3 C; N1 }* U+ I对于 RS-485 和 IO-Link 等串行半双工通信协议而言,主器件需要生成方向信号来控制收发器 (PHY)。该信号会通知 PHY 必须以发送模式还是以接收模式动作。
2 |" m9 w' v  ^+ Y& {5 h

! A1 L4 E: t, l' T* n这种控制的时序特别重要,特别是从发送模式切换到接收模式时,应用必须确保器件在另一个实体发送数据前已处于接收模式。 * s# a: k+ K' V! l; u( ]
- x+ T) w! |% d$ J8 B$ z
主器件必须在一个位的时间内释放 Tx/Rx 线路,否则会与从器件的响应发生冲突。因此,在主器件发送最后一个字节的最后一位后,DE 信号必须在一个位的时间内从高电平切换到低电平。/ K* m. |  P' T, @
' x* q. A8 F4 c& O0 g/ k5 ^) |
1.png
2 z2 `) H! w( P& p' n7 \- [' P6 a
主器件应能够确保 DE 信号的时序(由 RS-485 和 IO-Link 规范规定)。通过 GPIO 可管理DE 信号。 : W+ V/ [3 S# O
# O( U0 @8 N/ a
请注意,在本应用笔记中,虽然 DE 信号仿真使用的是 GPIO 端口 C 的引脚 6 (PC6),但实际上可以使用任何 GPIO。
! j# t  U3 ^# p

- C0 F2 N+ f% j$ B2 DE 信号管理方法说明
# \0 I2 H" ?4 D- x! i" o; v; p! S- Z- o' o6 w, x$ D
本部分将提供两种控制 DE 信号并在 USART 发送和接收模式间进行切换的方法。 1 U8 @- X# d, \8 Y. P/ l+ ?- H9 X
% k; E, ^- H9 \
第一种方法使用两个中断:DMA 的发送完成中断和 USART 的发送完成中断。
# {. i' `$ D6 q% c  j

) y# R$ t$ k, {8 \第二种方法使用两个 USART 中断:发送完成中断和发送缓冲器清空中断。 # q1 @8 ?" u4 G! Q8 v

9 d5 ^/ H! _% w: V. t$ v2.1 使用 DMA 中断的方法 4 b: m& h! a# L. p8 c$ c8 r" A

/ e  U3 O& C/ U0 _! b在此方法中,DMA 将全程管理数据缓冲器的数据发送。它会将数据缓冲器中的数据持续发送给 USART 数据寄存器,直到 DMA 计数器的读数为 0。如果发生 DMA 发送完成中断,则使能 USART 发送完成中断。在此中断中,将 DE 引脚设置为低电平。 / M, Y* b6 B. h8 o8 t6 _
3 q* w. \  V8 h" l- t; Z
DE 信号会在使能 DMA 传输前设为高电平。 - U2 r9 Y& \1 z

/ I/ t7 X# b. G! j5 O1 Y8 R" e+ o图 2 显示使用 DMA 发送完成中断管理 DE 信号的示例。, z5 ~) P: o' Z- h! e) z% Y& I
& N" g, q+ ~% P3 v) M0 p, P
1.png

! m/ B0 h. b, c5 J" b2 y0 q
2.2 使用 USART

/ {  D! K& |0 p/ H$ b
中断的方法使用 USART 的发送完成中断可以将 DE 引脚变为低电平,从而通知从器件发送响应。另外,还可使用发送数据寄存器清空中断将此引脚变为高电平,通知从器件主器件即将发送数据。图 3 显示使用 USART 中断管理 DE 信号的示例。

4 h9 R  u. [3 x2 x, }* a
发送第一个字节前应将 DE 引脚拉升为高电平。发送最后一个字节的最后一位后将其变为低电平。这可以通过在发送最后一个字节时使能 TC 中断来实现。下一次发生发送完成中断时会将 DE 引脚变为低电平。

! z/ ]3 O! Y  z. Q" Z( P
1.png
..........
/ Z* K# O7 _- D' S  Y) d+ g. V% X/ J
想了解更多,请下载原文阅读
" ~2 e& z& e! o2 S) a: f
收藏 1 评论3 发布时间:2019-4-1 14:06

举报

3个回答
Kevin_G 回答时间:2019-4-1 15:49:37
点赞
此名已占用 回答时间:2019-4-1 16:37:01
make,编写一下。
darkseeker 回答时间:2019-6-26 08:38:57
刚好需要!谢谢分享

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版