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

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

[复制链接]
STMCU小助手 发布时间:2022-12-6 14:56
前言
* D7 p% H) Y" L1 w/ i& K本应用笔记将介绍 USART 协议在 STM32 微控制器自举程序中的应用,还将详细介绍支持的每个命令。要详细了解器件自举程序的 USART 硬件资源和要求,请参见“STM32 系统存储器自举模式”(应用笔记 AN2606)。/ A8 @( @! H2 G; M

$ E: [" N3 [! Z2 _相关文档
* D4 b; O6 X6 R+ u% Q2 pAN2606“STM32 系统存储器自举模式”/ i9 o6 D0 S: F" Q( w8 Y4 h: Z
0 P' e4 ]3 t1 G$ \  u
* J: G$ x1 S4 z* }" g: L' n
V53P{JJ18F(INXPWDJ`@OCX.png ; \' w- ^* V2 r( l" i6 o
6 L/ p6 q, e3 V. {& F7 R. E
+ z1 i5 \  j+ V& P! T9 T
1 USART 自举程序代码序列
9 Q" W9 N4 g5 m4 h4 y% N$ `7 x
. f; F2 r% W, b5 a5 @- k V]A}UK~[%`MPB@H3ITEBJZ3.png
5 ?: i9 p( c  ]' K  u
9 p& U8 U8 K0 u" A4 v" m6 ~) F' r- ^. k' J4 C5 }
当配置 STM32 微控制器为自举启动,系统将进入自举程序模式(有关详细信息,请参见应用笔记 AN2606“STM32 系统存储器自举模式”),自举程序代码将立即扫描 USARTx_RX引脚,等待接收 0x7F 数据帧:一个起始位,0x7F 数据位,偶校验位和一个停止位。
  ^$ ~8 Y: |) W  O4 Q此数据帧的持续时间由 SysTick 定时器测量。之后,该定时器的计数值用于计算关于当前系统时钟的相应波特率因子。
. V9 G4 ~" T" J( s( \  h随后,代码将相应初始化串行接口。通过计算出的波特率,发送确认字节 (0x79) 返回主机,表示 STM32 已准备好接收命令。9 G' O5 J; z4 G
, E* P9 j( |4 B7 M- }% M, c& |( J
2 选择 USARTx 波特率
, \3 R4 V, O: P0 W% s9 |USARTx 串口波特率根据接收到的首字节长度进行计算,便于在很大波特率范围下运行自举程序。不过,为了确保数据传输正常进行,波特率必须确保在对应范围的上限和下限内。
6 g% U. L. Q2 s5 {为了确保从主机到微控制器的数据传输正常进行,USARTx 内部初始化波特率与主机实际波特率之间的最大偏差应小于 2.5%。可使用如下公式计算主机波特率与微控制器波特率之间的偏差(fB,用百分比表示):. _& M+ `6 e2 x, U
  ~1 y3 x1 v  Z5 M) i9 v
8 w5 J9 T/ x8 R5 c/ M9 }( a4 V+ k5 M$ n
J4VW)51]6`ONZ0CNI}%8T9F.png 1 U3 ^, b% H4 `& ^* J# ~! K

2 J5 b7 @0 f4 D3 s此波特率偏差为非线性函数,其结果取决于 CPU 时钟和主机波特率。函数 (fB) 的最大值随主机波特率增大。原因是,波特率预分频系数越小,隐含的量化误差越大。: e8 L) l! a# |" L  x7 Q6 `

; b# t2 i. y. I' P
1 ?7 e% G: M+ Y
2.1 最小波特率6 |; Y8 g/ T0 P
测试所得的最小波特率 (BLow) 为 1200。波特率低于 BLow 会导致 SysTick 定时器溢出。此时USARTx 将无法正确初始化。
6 z+ o2 W7 g. K( ]% |
( a# B! n1 \& Y1 o

' f% g# R7 H$ R2 E2.2 最大波特率- r. S7 t6 f! h$ q+ I
BHigh 为偏差不超过限值的最高波特率。BLow 和 BHigh 之间的所有波特率均低于偏差限值。测试所得的最高波特率 (BHigh) 为 115 200。
& A6 T3 `; P4 s6 ~# o% i  i8 l# X' _
3 自举程序命令集
: q! ]7 e$ N( V3 E* E. K下面的表 2 中列出了支持的命令。本部分将详细说明其中的每一个命令。; r$ Y9 L: k' c
- {2 h: d9 j& n$ e

; x: m1 C+ v( P( k% O$ ~% t% R& ^ 324@YGM8`ZO{A[J%VS6J4$E.png
" S6 q6 p* Z( B# b# s; T3 C& w) Q( p' p
: D5 n* u9 x" U! }
通信安全
+ w; y: _2 r+ f* q( a( ]* u编程工具 (PC) 到器件的所有通信均通过如下方式验证:( z4 B( Q* Y$ A5 E1 b
1. 校验和:接收到的数据字节块进行异或运算。每个通信结尾增加一个字节(校验和字节),包含前面所有字节异或运算的结果。异或运算所有接收到的字节,即数据包加上校验和字节,结果必须为 0x00
" c) t0 ?2 |) S: B: \7 V2 J2. 针对每条命令,主机都会发送一个字节及其补码(异或结果 = 0x00)
! A$ _: ^! \& B0 p8 r: u1 \# p! s3. UART:激活奇偶校验(偶校验)
" r) W4 m$ A$ J+ M& a每个数据包或者被接受(ACK 应答)或者被丢弃(NACK 应答):
4 o0 ~) |' W. b1 _! A" }• ACK = 0x79
: ^0 h1 S1 G+ E( b" P: c+ d5 L4 E• NACK = 0x1F% |5 s4 e1 M3 d
! b  `5 K0 i- a6 [3 Z) q
& l: `2 c9 [) Z7 f1 o" t% \2 P

8 {  Z) ^% \2 P$ }2 F* x, h6 i0 ^" O- R完整版请查看:附件+ C! J! j3 v$ H

+ m( \: ]1 |& O) _* m0 `4 u+ J, g6 S4 A, o5 `- ?/ t: x

0 w5 q3 O6 j( R# V6 Y6 }3 @( f$ o
3 Z# V: X0 @! o7 M

; E' Y3 V& h+ ^' c  l" I2 r$ k2 L7 P9 ?  s" }- N/ [

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

下载

1.04 MB, 下载次数: 4

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

举报

0个回答

所属标签

相似技术帖

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