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

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

[复制链接]
STMCU小助手 发布时间:2022-7-25 21:54
前言
: j6 |/ l: k/ D& h* E本应用笔记将介绍 USART 协议在 STM32 微控制器自举程序中的应用,还将详细介绍支持 的每个命令。要详细了解器件自举程序的 USART 硬件资源和要求,请参见“STM32 系统存 储器自举模式”(应用笔记 AN2606)。
* r: e) b: y/ G9 T' h1 y
相关文档% |+ L9 ?: ?+ I. r0 ?* Q4 z/ B
可从 www.st.com 下载:
* R1 ~3 X) `% k, n: EAN2606“STM32 系统存储器自举模式”
( B5 @' f$ G1 g) q0 h; E
6 o, s$ z+ v* ?# o- E& H
MUSQI@CRCB~87ACZ(J(E}PO.png : X0 T. c2 a* D

5 G' \$ o; V8 b: a; v1 USART 自举程序代码序列
3 p. ]0 i5 X; B, W. D; C6 E
' h% A2 }# M" P* V 5F@3EKUF09950UN{UVD8N~0.png + m/ p2 @: E, l5 j
4 g9 {# c  i! A0 l
当配置 STM32 微控制器为自举启动,系统将进入自举程序模式(有关详细信息,请参见应 用笔记 AN2606“STM32 系统存储器自举模式”),自举程序代码将立即扫描 USARTx_RX 引脚,等待接收 0x7F 数据帧:一个起始位,0x7F 数据位,偶校验位和一个停止位。
, e5 I% |" n7 q+ Z# T9 `此数据帧的持续时间由 SysTick 定时器测量。之后,该定时器的计数值用于计算关于当前系统时钟的相应波特率因子。) W! {) Q8 i4 U; p
随后,代码将相应初始化串行接口。通过计算出的波特率,发送确认字节 (0x79) 返回主机, 表示 STM32 已准备好接收命令。
1 y) i: Y; W1 E
8 W! s! ?" K$ ^& ~" \9 y
8 k& H9 C: V: ?

5 n- Q, x2 g. u  F2 选择 USARTx 波特率7 C, |' q! J' K" c5 y, ^
USARTx 串口波特率根据接收到的首字节长度进行计算,便于在很大波特率范围下运行自举 程序。不过,为了确保数据传输正常进行,波特率必须确保在对应范围的上限和下限内。
$ z$ t1 H" R6 m9 S6 V0 W$ h, v为了确保从主机到微控制器的数据传输正常进行,USARTx 内部初始化波特率与主机实际波 特率之间的最大偏差应小于 2.5%。可使用如下公式计算主机波特率与微控制器波特率之间的偏差(fB,用百分比表示):6 G! ]- |! X' X' H
0 U* f& {$ y' F+ @- u
+ F; _& ]% z" b" c2 C7 Q
IQB[Q@L0$KMPGGZZT6C(N2T.png
7 U9 _2 r' P4 W( a) o+ f
( k; T3 {4 k  m9 S  B$ L此波特率偏差为非线性函数,其结果取决于 CPU 时钟和主机波特率。函数 (fB) 的最大值随 主机波特率增大。原因是,波特率预分频系数越小,隐含的量化误差越大。
+ K0 W  [/ g4 s7 u# X  A6 S1 D6 a" @+ P/ c
2.1 最小波特率5 \" _7 P, d! }+ l6 n3 f6 P
测试所得的最小波特率 (BLow) 为 1200。波特率低于 BLow 会导致 SysTick 定时器溢出。此时USARTx 将无法正确初始化。
! d, i$ n+ D6 ?" @3 E0 q: P  l, C& h9 O  ], D( H
2.2 最大波特率
9 i. T8 c$ A8 z. G/ d0 [5 X3 L* JBHigh 为偏差不超过限值的最高波特率。BLow 和 BHigh 之间的所有波特率均低于偏差限值。
) t3 y9 I/ |, Z6 A测试所得的最高波特率 (BHigh) 为 115 200。
% ?: O3 w6 Y: P  Z* J$ l: [" Q3 O3 `3 O3 C0 m* F4 s  }# p, g, R
3 自举程序命令集
  `$ [1 Q8 G# ~$ D下面的表 2 中列出了支持的命令。本部分将详细说明其中的每一个命令。8 K" b% d. B0 Q# E; `5 e
1 ?+ s4 K) Z/ b7 |. g, ]0 h' a/ f
7 k4 n% s1 o& n9 f
Z(TLGNR)@@(J6LPGRP}U[KP.png & S+ r7 {( i* T6 f6 H$ b
1 Q1 r9 ~' L# [; A
通信安全
, @$ {/ u: K) M( L$ f, e6 ?编程工具 (PC) 到器件的所有通信均通过如下方式验证:% {5 C* R% o) v
1. 校验和:接收到的数据字节块进行异或运算。每个通信结尾增加一个字节(校验和字节),包含前面所有字节异或运算的结果。异或运算所有接收到的字节,即数据包加上校验和字节,结果必须为 0x00: c' P: D) i* H  n
2. 针对每条命令,主机都会发送一个字节及其补码(异或结果 = 0x00)
5 J* n6 W" B% R& u0 W" |3. UART:激活奇偶校验(偶校验)
, ^9 w6 ], }+ a1 l4 K% o每个数据包或者被接受(ACK 应答)或者被丢弃(NACK 应答):
. I1 E1 N0 |. `% l+ `• ACK = 0x79% z9 v+ }, M$ Q& u+ r3 ]8 m
• NACK = 0x1F% I0 \' T( i- f  B. r3 K6 Q
  a; J1 x6 g, \
; ^$ l7 a( N- P, y+ ~8 |
完整版请查看:附件
- t' W6 G9 v1 v5 V: C/ q
  }3 M+ B4 G* v/ q2 S0 n. A
+ p; y8 Y3 q$ ^$ D8 z" k

CD00264342_ZHV5.pdf

下载

1.08 MB, 下载次数: 4

赞 收藏 评论0 发布时间:2022-7-25 21:54

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版