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

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

[复制链接]
STMCU-管管 发布时间:2019-4-1 14:06
管理驱动器使能信号以使用STM32™的 USART 进行 RS-485 和 IO-Link 通信" ~9 w- O7 X; H! o- r6 o

( e# j3 e4 N* Z* E1 I3 X前言 * v3 O, m- e2 N' g) h' u
, \8 G) }1 `' C" a
RS-485 和 IO-Link 为半双工通信协议,它们为工业网络中物理层的实施提供了便捷的途径。 : t# a9 |4 ]3 Y- Q8 v3 w- ?* k: C  B

2 }& D9 N' A6 WSTM32F10x 支持多达 5 个 UART 接口并可实现快速 DMA 传输和低中断延迟,符合 RS-485和 IO-Link 时序规范。 8 Z* t6 E+ x4 m. I2 d6 q4 V1 a' `3 C
+ P7 g) [" _" J, b
本应用笔记旨在提供两种方法测量 DE 信号(驱动器使能)的切换时序,并管理该信号在RS-485 和 IO-Link 中的主器件发送。
8 U$ S4 \* c- F' s
, v. o; ^5 ^( t( ^. Y4 {9 G
本应用笔记分为三部分:
% J* p0 G8 a( |0 L; k) t8 h● 首先介绍 DE 信号时序之所以重要的原因 * F9 C0 `, l: {. l
● 然后说明两种管理 DE 信号的方法 " \9 B9 L) N9 U
● 最后给出不同的 DE 信号切换时间测量结果
0 }8 o% }; g: N2 k+ T$ u) I1 i8 y2 [! ]& _
1 DE 信号时序限制 : W# ?7 j& h, k* T

9 u+ {( \* K7 V3 H' f: o! z对于 RS-485 和 IO-Link 等串行半双工通信协议而言,主器件需要生成方向信号来控制收发器 (PHY)。该信号会通知 PHY 必须以发送模式还是以接收模式动作。
$ @, A0 L1 z# B6 p) q$ \/ ^

  ~( ]! j! V& \这种控制的时序特别重要,特别是从发送模式切换到接收模式时,应用必须确保器件在另一个实体发送数据前已处于接收模式。
8 ?& c- f% |) {+ V8 u3 V: M" A

& o4 y; ^$ ?2 H2 H) w主器件必须在一个位的时间内释放 Tx/Rx 线路,否则会与从器件的响应发生冲突。因此,在主器件发送最后一个字节的最后一位后,DE 信号必须在一个位的时间内从高电平切换到低电平。# ?! ~2 N9 A: d/ \* F  L

8 H$ S$ D# [' p& t4 E
1.png

; Q8 O# g  t1 l5 |1 D, `' q主器件应能够确保 DE 信号的时序(由 RS-485 和 IO-Link 规范规定)。通过 GPIO 可管理DE 信号。 ) C3 X+ v. L& x4 i% h$ Z1 V5 F

) f& A) J+ o: I2 d请注意,在本应用笔记中,虽然 DE 信号仿真使用的是 GPIO 端口 C 的引脚 6 (PC6),但实际上可以使用任何 GPIO。
5 K7 J2 p, X* T' ~9 H+ z! I

) Z9 H: h* f& h0 x2 DE 信号管理方法说明 / H' i6 p5 a# x5 W3 h: `

" p0 T/ ~+ C; @9 V2 _本部分将提供两种控制 DE 信号并在 USART 发送和接收模式间进行切换的方法。 % Y- f4 M5 v+ z% R, [

" q' D& O* b' O% r2 r第一种方法使用两个中断:DMA 的发送完成中断和 USART 的发送完成中断。 ! n; z5 }+ o  J9 g9 y! k. {

$ C6 _1 E. n; b% x! O0 \! `/ a* o2 X6 b第二种方法使用两个 USART 中断:发送完成中断和发送缓冲器清空中断。
! Y. C; a7 p5 d/ f5 k0 r2 a2 {* i

: i; ?# u8 I* q! z8 q0 i2.1 使用 DMA 中断的方法 0 E  F% g8 Y9 Q4 H

4 N# V( e, o; [在此方法中,DMA 将全程管理数据缓冲器的数据发送。它会将数据缓冲器中的数据持续发送给 USART 数据寄存器,直到 DMA 计数器的读数为 0。如果发生 DMA 发送完成中断,则使能 USART 发送完成中断。在此中断中,将 DE 引脚设置为低电平。 , v! R% ~  t& A; B0 ?* |4 E
2 m6 N" S2 t3 ?- E7 T6 k
DE 信号会在使能 DMA 传输前设为高电平。 . Y5 u7 b; s5 |0 ^  n+ o7 P! h) x
$ r1 y: Z' _( D6 p* {# J
图 2 显示使用 DMA 发送完成中断管理 DE 信号的示例。
" m0 R+ B( Y+ K) J6 C0 \7 j. s
1.png
. F+ z1 o7 K$ x% Y3 P, j9 [7 y
2.2 使用 USART
3 \0 `0 T" Y1 Z) u
中断的方法使用 USART 的发送完成中断可以将 DE 引脚变为低电平,从而通知从器件发送响应。另外,还可使用发送数据寄存器清空中断将此引脚变为高电平,通知从器件主器件即将发送数据。图 3 显示使用 USART 中断管理 DE 信号的示例。

9 Y* u4 c* T4 K
发送第一个字节前应将 DE 引脚拉升为高电平。发送最后一个字节的最后一位后将其变为低电平。这可以通过在发送最后一个字节时使能 TC 中断来实现。下一次发生发送完成中断时会将 DE 引脚变为低电平。

' W6 v7 U7 Q4 r& H9 A
1.png
..........
1 f6 ]. F( p, ?
想了解更多,请下载原文阅读
6 ]! P' a  P- J  i, S) H7 g
收藏 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 手机版