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

STM32™ 自举程序中使用的 USART 协议

[复制链接]
STMCU小助手 发布时间:2022-12-6 14:56
前言  R% A; e# s- N# H& C
本应用笔记将介绍 USART 协议在 STM32 微控制器自举程序中的应用,还将详细介绍支持的每个命令。要详细了解器件自举程序的 USART 硬件资源和要求,请参见“STM32 系统存储器自举模式”(应用笔记 AN2606)。; {  n, G0 ]( z2 k; _
% K: m, l" S# [5 J$ Y
相关文档5 }- z5 f4 ^5 [9 n3 j
AN2606“STM32 系统存储器自举模式”/ w+ \+ R+ i, |; K. m( f1 ?5 F: o

3 C) L) z8 g# Y9 R' M+ x

) e# K4 j/ M7 F2 t V53P{JJ18F(INXPWDJ`@OCX.png 8 s9 u1 s3 l7 A+ K' _& y: a
( N* }+ r2 T1 Y8 C' z

* s8 T. s6 @/ P1 USART 自举程序代码序列
: d( D+ ~3 U2 Y( r
: e0 _$ p2 g$ k. i% ^9 t V]A}UK~[%`MPB@H3ITEBJZ3.png
5 @- i* S+ s2 @2 W6 t
( ?5 L) u1 H6 |2 D! r: b$ {" o
: u) J# J4 E% A' P4 y4 y; Q# r% i当配置 STM32 微控制器为自举启动,系统将进入自举程序模式(有关详细信息,请参见应用笔记 AN2606“STM32 系统存储器自举模式”),自举程序代码将立即扫描 USARTx_RX引脚,等待接收 0x7F 数据帧:一个起始位,0x7F 数据位,偶校验位和一个停止位。
1 I4 z# s) l3 [- ]0 }" s7 }8 m+ A2 n  ?此数据帧的持续时间由 SysTick 定时器测量。之后,该定时器的计数值用于计算关于当前系统时钟的相应波特率因子。
8 t9 M4 O/ N3 s3 r1 O$ B; D随后,代码将相应初始化串行接口。通过计算出的波特率,发送确认字节 (0x79) 返回主机,表示 STM32 已准备好接收命令。
8 S# M0 J$ e4 l$ {6 p6 b0 o; J: d/ `! p+ O+ ~
2 选择 USARTx 波特率
% G! |. m  L) LUSARTx 串口波特率根据接收到的首字节长度进行计算,便于在很大波特率范围下运行自举程序。不过,为了确保数据传输正常进行,波特率必须确保在对应范围的上限和下限内。6 w: Y* s1 b0 T6 W: v) w
为了确保从主机到微控制器的数据传输正常进行,USARTx 内部初始化波特率与主机实际波特率之间的最大偏差应小于 2.5%。可使用如下公式计算主机波特率与微控制器波特率之间的偏差(fB,用百分比表示):
, m3 Y  a4 v- c3 a9 ?  i
5 ]' ^% p1 [( m/ q- m4 E' w
. E7 _6 T4 {" R+ z/ Q
J4VW)51]6`ONZ0CNI}%8T9F.png 7 |- R3 a- m3 j2 }  H" ]
' m+ v6 Q& B. s  W
此波特率偏差为非线性函数,其结果取决于 CPU 时钟和主机波特率。函数 (fB) 的最大值随主机波特率增大。原因是,波特率预分频系数越小,隐含的量化误差越大。2 Y2 c, E& A. C

$ {- t+ U/ G% \

( s/ D/ w  Z6 m5 U: g2.1 最小波特率
! b0 T" K; ~6 q7 E9 b, F7 |测试所得的最小波特率 (BLow) 为 1200。波特率低于 BLow 会导致 SysTick 定时器溢出。此时USARTx 将无法正确初始化。5 R: Q6 F0 L0 ^" c
( q3 E& ]/ ^0 G- U) x8 \9 X
1 E5 G, n' b% k# C( o
2.2 最大波特率
7 q# M" ]& q9 z2 k- D' a; Z' }BHigh 为偏差不超过限值的最高波特率。BLow 和 BHigh 之间的所有波特率均低于偏差限值。测试所得的最高波特率 (BHigh) 为 115 200。
! Y' T1 |9 D0 u+ L7 _* t0 G" F& A5 }' J6 R' Z% T& ]" j
3 自举程序命令集* W) y5 @) e' x& @2 C
下面的表 2 中列出了支持的命令。本部分将详细说明其中的每一个命令。7 {6 i* R  R: Z/ s

, F; x: W* K  u0 g$ V: |% a8 n. L

* R/ w( A4 }4 y 324@YGM8`ZO{A[J%VS6J4$E.png
! L$ u9 f) Z, l# Y
" @  Z7 Q: u* E! t

1 }2 R9 l- \( [* X/ [; F" X% {通信安全
4 p" d- }1 `* @* b( r) I$ z  H编程工具 (PC) 到器件的所有通信均通过如下方式验证:
% z. W: ~2 a5 p' f1. 校验和:接收到的数据字节块进行异或运算。每个通信结尾增加一个字节(校验和字节),包含前面所有字节异或运算的结果。异或运算所有接收到的字节,即数据包加上校验和字节,结果必须为 0x00
5 t$ }4 I  H. x% w& R/ x2. 针对每条命令,主机都会发送一个字节及其补码(异或结果 = 0x00)* p. t! X; d. K  H/ m  I- q" F2 X
3. UART:激活奇偶校验(偶校验)
: |$ W+ }8 \3 @2 H" U  n每个数据包或者被接受(ACK 应答)或者被丢弃(NACK 应答):, C7 P% J- h" }
• ACK = 0x79
0 J0 z: L. U# V  r% L; [4 U• NACK = 0x1F% C  A/ H9 d  r5 t7 ]

* q: t: M! j6 J1 j5 T: v

+ f5 t, \) m- y% T1 @; A. n5 J7 K; K+ r, s; B5 y
完整版请查看:附件
. y, E* {0 b" |% e9 O- q( a1 D9 A; \0 o/ k: g! o- H# w9 b
2 E$ P, @8 r0 `( _' ?8 S  R. D2 f

3 `& S" j% U( z. s1 ?4 k% A
. \: m" k9 B  T8 ~- r3 Q2 w5 ~

0 E8 b) L* B1 s! X5 H& C- I, @# W" m" P

STM32™ 自举程序中使用的 USART 协议.pdf

下载

1.04 MB, 下载次数: 2

收藏 评论0 发布时间:2022-12-6 14:56

举报

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