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

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

[复制链接]
STMCU-管管 发布时间:2019-4-1 14:06
管理驱动器使能信号以使用STM32™的 USART 进行 RS-485 和 IO-Link 通信
2 a; c+ d1 {1 a; x  R$ L8 ]. _. [6 V1 J
前言 # U4 Y- O5 S( {! R9 c

# k. C' A7 M  U9 T7 R4 QRS-485 和 IO-Link 为半双工通信协议,它们为工业网络中物理层的实施提供了便捷的途径。
; I# I, U! d$ |; Q% r7 [
5 V4 R( K2 l" a$ m% i! C+ H, K- b2 ^STM32F10x 支持多达 5 个 UART 接口并可实现快速 DMA 传输和低中断延迟,符合 RS-485和 IO-Link 时序规范。 + F5 w1 ~4 h5 N. D+ a
3 e  t# T$ L9 B& s  Y7 V3 S
本应用笔记旨在提供两种方法测量 DE 信号(驱动器使能)的切换时序,并管理该信号在RS-485 和 IO-Link 中的主器件发送。 3 _$ }/ m6 e. D) k9 P; b( N
: K1 B7 g% `) C# u
本应用笔记分为三部分: + X+ `! u8 A1 F# M; h
● 首先介绍 DE 信号时序之所以重要的原因
4 w- j* y# s# A" q; \% s2 }● 然后说明两种管理 DE 信号的方法
/ Z( Y* p3 U6 F$ Q5 C4 o  s/ K% n% C● 最后给出不同的 DE 信号切换时间测量结果6 H% N/ Y! g: v3 B+ H! m
8 i$ e- X% w7 ?% o+ N
1 DE 信号时序限制
8 f; t5 \8 q' M, A
7 i6 H, j% O( U, K( v# Y
对于 RS-485 和 IO-Link 等串行半双工通信协议而言,主器件需要生成方向信号来控制收发器 (PHY)。该信号会通知 PHY 必须以发送模式还是以接收模式动作。 ) x# r# E) p( d& g. T7 R
7 }/ D& c; r& C4 q
这种控制的时序特别重要,特别是从发送模式切换到接收模式时,应用必须确保器件在另一个实体发送数据前已处于接收模式。
5 Z! j7 \0 Q2 p5 R  O- b) \. `6 N. E
  b5 E1 j: F7 J9 }- H  J
主器件必须在一个位的时间内释放 Tx/Rx 线路,否则会与从器件的响应发生冲突。因此,在主器件发送最后一个字节的最后一位后,DE 信号必须在一个位的时间内从高电平切换到低电平。' e4 w" g. u" ]- ~: H5 v

3 s6 M) }8 _1 ?) e$ u* P! N
1.png
$ Y0 z) T& O: g5 }: c
主器件应能够确保 DE 信号的时序(由 RS-485 和 IO-Link 规范规定)。通过 GPIO 可管理DE 信号。 " Z1 L1 i& Q" o. r
/ F$ I% \0 m% n0 l: T) }' H
请注意,在本应用笔记中,虽然 DE 信号仿真使用的是 GPIO 端口 C 的引脚 6 (PC6),但实际上可以使用任何 GPIO。4 d4 @# X. F  M1 S( ]6 y5 d- \7 e

% y+ Y( r$ P  c8 G2 DE 信号管理方法说明 ' {. {% J! ?- |
) Y/ ]- }, M- `2 `" w0 L! b2 N# V
本部分将提供两种控制 DE 信号并在 USART 发送和接收模式间进行切换的方法。 . ^! E' p! G1 G3 a  |; b

. ?- y: j2 R. L# ?, x第一种方法使用两个中断:DMA 的发送完成中断和 USART 的发送完成中断。
/ r7 K1 h1 V4 i5 Z4 a" d* M4 B

7 m) S7 `2 X6 \3 b9 Z1 m% }第二种方法使用两个 USART 中断:发送完成中断和发送缓冲器清空中断。
5 s  N3 E% {  N+ z$ \

& G3 Z4 ]$ o0 T2 h  T/ a8 y2.1 使用 DMA 中断的方法
2 @. a# r: A6 V: A6 f8 E& d- K. S0 b
6 q7 v* ~4 V$ n. T8 C6 q3 y在此方法中,DMA 将全程管理数据缓冲器的数据发送。它会将数据缓冲器中的数据持续发送给 USART 数据寄存器,直到 DMA 计数器的读数为 0。如果发生 DMA 发送完成中断,则使能 USART 发送完成中断。在此中断中,将 DE 引脚设置为低电平。
8 E8 a+ q$ {4 a1 g7 _# D
3 ]1 ~" {3 s) B& A8 f5 W
DE 信号会在使能 DMA 传输前设为高电平。 $ m" Q$ Q9 ~4 G$ ^7 O
4 ?8 N" e0 ^3 F1 }
图 2 显示使用 DMA 发送完成中断管理 DE 信号的示例。4 K' |) K: \2 c' `' x/ o  u2 M
+ l& s9 g  a, K2 Y5 ]5 y2 I
1.png
9 A/ K" X6 U4 S1 K8 L+ h4 Z
2.2 使用 USART
4 x7 G7 x% W: N  |% Y$ a
中断的方法使用 USART 的发送完成中断可以将 DE 引脚变为低电平,从而通知从器件发送响应。另外,还可使用发送数据寄存器清空中断将此引脚变为高电平,通知从器件主器件即将发送数据。图 3 显示使用 USART 中断管理 DE 信号的示例。

+ g) ~8 M% `' K7 j8 \
发送第一个字节前应将 DE 引脚拉升为高电平。发送最后一个字节的最后一位后将其变为低电平。这可以通过在发送最后一个字节时使能 TC 中断来实现。下一次发生发送完成中断时会将 DE 引脚变为低电平。
2 f( ~! z0 n+ v& k# V/ W
1.png
..........
5 n2 ]3 M7 O, c4 @; g) W' N% e0 p) g% M
想了解更多,请下载原文阅读

$ T; {) h! s4 ?, A( t9 Q( V* 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 手机版