请选择 进入手机版 | 继续访问电脑版

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

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

[复制链接]
STMCU小助手 发布时间:2022-7-25 21:54
前言3 n& ]/ ]7 J9 Q# L; A: V
本应用笔记将介绍 USART 协议在 STM32 微控制器自举程序中的应用,还将详细介绍支持 的每个命令。要详细了解器件自举程序的 USART 硬件资源和要求,请参见“STM32 系统存 储器自举模式”(应用笔记 AN2606)。4 C+ ?# H- j/ v
相关文档
6 n7 A1 U+ t# n% t可从 www.st.com 下载:
; [/ b6 u6 l# t( q4 C( ZAN2606STM32 系统存储器自举模式”
7 ?* i) Z9 }7 H" j. O! U/ j" c4 Y/ g
2 A) t& K5 P$ |, D7 x- X+ `# n7 `
MUSQI@CRCB~87ACZ(J(E}PO.png . K9 \% s/ |" V% m1 x; C* q" K
$ A& P; s7 |( I# f; u8 `! S
1 USART 自举程序代码序列
0 x2 m" s) q' E1 H# @
2 L5 b* Y, m$ j 5F@3EKUF09950UN{UVD8N~0.png
: a$ ~9 Y' `( C1 P+ s# f. c5 }  b/ {. J9 l, a: {' z2 T( v
当配置 STM32 微控制器为自举启动,系统将进入自举程序模式(有关详细信息,请参见应 用笔记 AN2606STM32 系统存储器自举模式”),自举程序代码将立即扫描 USARTx_RX 引脚,等待接收 0x7F 数据帧:一个起始位,0x7F 数据位,偶校验位和一个停止位。
" E' M' j  M9 q2 I( z9 O此数据帧的持续时间由 SysTick 定时器测量。之后,该定时器的计数值用于计算关于当前系统时钟的相应波特率因子。3 C' a7 Y5 f+ y. K
随后,代码将相应初始化串行接口。通过计算出的波特率,发送确认字节 (0x79) 返回主机, 表示 STM32 已准备好接收命令) K% l' M+ p# S3 @
- u, V+ Y) f. n2 q  Y

/ C( P" u# v% V! e
5 ?' {+ x: a  G8 a2 选择 USARTx 波特率
. P- \5 O- C! ]; {USARTx 串口波特率根据接收到的首字节长度进行计算,便于在很大波特率范围下运行自举 程序。不过,为了确保数据传输正常进行,波特率必须确保在对应范围的上限和下限内。5 q( }& K+ I; `( s
为了确保从主机到微控制器的数据传输正常进行,USARTx 内部初始化波特率与主机实际波 特率之间的最大偏差应小于 2.5%。可使用如下公式计算主机波特率与微控制器波特率之间的偏差(fB,用百分比表示):
. I, c3 v4 H1 w9 ]- h3 J9 v
2 X2 s/ ]3 e2 u7 i

- ]$ H2 T1 N# V. {( P IQB[Q@L0$KMPGGZZT6C(N2T.png
7 |* V1 H* \- l9 k+ y% M5 }- z$ b. E7 X4 Z+ @9 E3 L0 u7 W
此波特率偏差为非线性函数,其结果取决于 CPU 时钟和主机波特率。函数 (fB) 的最大值随 主机波特率增大。原因是,波特率预分频系数越小,隐含的量化误差越大。, `6 }8 X( l* K
! f& P# c) L1 T5 K7 _+ _6 `
2.1 最小波特率9 m: k) k. x$ H) E$ Z
测试所得的最小波特率 (BLow) 1200。波特率低于 BLow 会导致 SysTick 定时器溢出。此时USARTx 将无法正确初始化。
" Z4 b7 p" x4 v
3 z# d( |3 H. ~
2.2 最大波特率, ^9 T+ s2 C1 G; d, g6 u' d7 `
BHigh 为偏差不超过限值的最高波特率。BLow BHigh 之间的所有波特率均低于偏差限值。
( H  `3 N( Y! n9 K# ]( w1 y+ R1 q; g测试所得的最高波特率 (BHigh) 115 200$ G2 \6 K5 D" f4 u5 `

* D0 z) ~  Y/ J4 X3 自举程序命令集
- a" J. y+ x+ a2 v% }8 A下面的 2 中列出了支持的命令。本部分将详细说明其中的每一个命令。6 T. D+ Z0 ~, z- |( ]4 e7 |
7 s  n) h& e* U/ X8 x& M- t
4 @9 i- B# y: h$ l3 P2 H7 L1 ?; Z# b
Z(TLGNR)@@(J6LPGRP}U[KP.png 9 o$ h) u6 p2 i' R: ^! t3 t9 h" a

: e" B; v' c% K7 o: c( E& _" E通信安全
0 z+ F( f3 y6 [- M+ U编程工具 (PC) 到器件的所有通信均通过如下方式验证:
; A8 G0 a; G& p3 a) s0 l1. 校验和:接收到的数据字节块进行异或运算。每个通信结尾增加一个字节(校验和字节),包含前面所有字节异或运算的结果。异或运算所有接收到的字节,即数据包加上校验和字节,结果必须为 0x00
. h* M+ u2 Y, W( p8 Y/ O2. 针对每条命令,主机都会发送一个字节及其补码(异或结果 = 0x00
0 r" S2 H; W8 m% R3. UART:激活奇偶校验(偶校验)' O" l1 S+ S$ Z
每个数据包或者被接受(ACK 应答)或者被丢弃(NACK 应答):% u1 r4 W# h; Z& G/ L# H2 F
ACK = 0x79
* e2 e+ D" c  g, sNACK = 0x1F
- M3 r+ p) K$ L: z; b) y8 L. Y. i" K1 \& ]1 x
3 y6 S# U* O9 Q7 x% x% U$ F* \* a
完整版请查看:附件
0 f  t+ p0 u. }  h/ P+ c4 l5 P" f4 S, h
5 {! x; B9 X# f) A- C2 h9 |+ n1 M

CD00264342_ZHV5.pdf

下载

1.08 MB, 下载次数: 1

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

举报

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