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

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

[复制链接]
STMCU-管管 发布时间:2019-4-1 14:06
管理驱动器使能信号以使用STM32™的 USART 进行 RS-485 和 IO-Link 通信
  C1 L/ {% {  _2 w/ u" ?4 J9 @# v! a3 S6 ^# J' b+ J; N7 ]- U
前言
4 b9 a, ?& r6 M5 E
6 B* {* \1 g$ N" h5 c4 l
RS-485 和 IO-Link 为半双工通信协议,它们为工业网络中物理层的实施提供了便捷的途径。
0 J) ]) _$ g3 C2 l% P; B
4 @; }0 n+ k7 ?9 K2 f( y" {0 nSTM32F10x 支持多达 5 个 UART 接口并可实现快速 DMA 传输和低中断延迟,符合 RS-485和 IO-Link 时序规范。
: I  w1 m; I, M- J0 k  o
7 _1 R9 k8 e- [
本应用笔记旨在提供两种方法测量 DE 信号(驱动器使能)的切换时序,并管理该信号在RS-485 和 IO-Link 中的主器件发送。 ! ?+ V3 R& ^9 D: @0 P
- V9 L; H- x" i, A
本应用笔记分为三部分: 1 e. B1 Q% S4 \# V" e
● 首先介绍 DE 信号时序之所以重要的原因 9 ]0 \% {& v! a* }  Z: M% u. g
● 然后说明两种管理 DE 信号的方法
  m1 A& X$ h, I& A, e● 最后给出不同的 DE 信号切换时间测量结果
+ o6 o# Y. ^, G9 T
  x8 T( k2 c( K0 D7 [1 DE 信号时序限制
/ C- N" F, l$ Y! v
4 W+ J6 d+ I$ m) G
对于 RS-485 和 IO-Link 等串行半双工通信协议而言,主器件需要生成方向信号来控制收发器 (PHY)。该信号会通知 PHY 必须以发送模式还是以接收模式动作。
" ]2 {% P, ?7 ^& s* h  [
. z- Q5 `  Y9 S7 x: S2 ^# S) n9 l
这种控制的时序特别重要,特别是从发送模式切换到接收模式时,应用必须确保器件在另一个实体发送数据前已处于接收模式。 4 N2 {+ x6 o( z* E2 s  O0 x$ _2 Y
) I- c! o$ e+ V
主器件必须在一个位的时间内释放 Tx/Rx 线路,否则会与从器件的响应发生冲突。因此,在主器件发送最后一个字节的最后一位后,DE 信号必须在一个位的时间内从高电平切换到低电平。
: l( {3 \0 _0 `/ @4 @
, I# u5 n! b; a+ [0 i& G
1.png

6 R( U2 r# W$ n主器件应能够确保 DE 信号的时序(由 RS-485 和 IO-Link 规范规定)。通过 GPIO 可管理DE 信号。
  B* _: V9 M8 S4 W0 |

/ G  L* Q" w; f1 b8 N7 z请注意,在本应用笔记中,虽然 DE 信号仿真使用的是 GPIO 端口 C 的引脚 6 (PC6),但实际上可以使用任何 GPIO。! d; P7 z, H/ x1 ~( a

2 N* K: j0 v9 z2 DE 信号管理方法说明 ) d# [$ I6 O# N7 _" ?
" T/ v% Y6 W( }1 |" T4 @* l
本部分将提供两种控制 DE 信号并在 USART 发送和接收模式间进行切换的方法。
3 F6 S& g1 H: @3 V4 ?

. C7 ^9 c" e; T' C第一种方法使用两个中断:DMA 的发送完成中断和 USART 的发送完成中断。
) l9 Q. i+ s! f0 Y: {. N
6 d  g- o9 J' y/ i) ?& a
第二种方法使用两个 USART 中断:发送完成中断和发送缓冲器清空中断。 & V- y1 C  i* `/ B: m
. c) A( l3 X* P
2.1 使用 DMA 中断的方法 / x7 \: C' k" v; z7 f+ L5 l% G
- z8 y0 Y9 h8 J$ p6 J$ b
在此方法中,DMA 将全程管理数据缓冲器的数据发送。它会将数据缓冲器中的数据持续发送给 USART 数据寄存器,直到 DMA 计数器的读数为 0。如果发生 DMA 发送完成中断,则使能 USART 发送完成中断。在此中断中,将 DE 引脚设置为低电平。 3 g; W1 Z) s9 c5 ?# O) G8 g! w+ Z/ }

7 R/ m2 ]: Z1 M$ C8 `DE 信号会在使能 DMA 传输前设为高电平。 ; \0 g/ J5 [2 n' x

; m) L- @! w) k0 H/ L图 2 显示使用 DMA 发送完成中断管理 DE 信号的示例。; o# @7 S  B  Q4 d

) _" a% M% c/ E- @, Z( h" \
1.png
* c# G: }+ C! P6 e
2.2 使用 USART
# w4 h9 i2 F, h6 F( ^
中断的方法使用 USART 的发送完成中断可以将 DE 引脚变为低电平,从而通知从器件发送响应。另外,还可使用发送数据寄存器清空中断将此引脚变为高电平,通知从器件主器件即将发送数据。图 3 显示使用 USART 中断管理 DE 信号的示例。
( ?" k1 O; G: u& t* l
发送第一个字节前应将 DE 引脚拉升为高电平。发送最后一个字节的最后一位后将其变为低电平。这可以通过在发送最后一个字节时使能 TC 中断来实现。下一次发生发送完成中断时会将 DE 引脚变为低电平。
9 [! [0 T3 d0 Y0 [: a0 W
1.png
..........

+ Z" w3 n& j( o0 g& L
想了解更多,请下载原文阅读
2 ~0 _8 z6 U/ Y$ }
赞 收藏 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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版