前言: S1 h( ~) X- A: U, A 本应用笔记说明了STM32微控制器自举程序中使用的CAN协议。它详细说明了每个支持的指令。 本文档适用于内置V3.x、V7.x和V9.x版自举程序的STM32产品,如应用笔记AN2606“STM32微控制器系统存储器自举模式”中所述。这些产品已在表 1中列出,在整篇文档中统称为STM32。 关于所使用器件自举程序的CAN硬件资源和要求的更多信息,请参考上文提到的AN2606。 3 q! Y! g8 O( @5 x" T 1 自举程序代码序列 ! U }" e0 J; T7 D7 h( _5 B. j, Z) a ) k4 H( J/ e- q( W2 t 随后,代码将相应初始化串行接口。使用此计算波特率向主机返回确认字节(0x79),表明STM32已准备接收指令。 0 f6 P# p2 R4 h) W 2 CAN设置 STM32 CAN与2.0A和B(主动)规范兼容,比特率最高达1 Mbit/s。它可接收和发送包含 11位标识符的标准帧和包含 29 位标识符的扩展帧。 A& S0 k4 ?" B _$ b4 M ; H5 L. i Z, j $ k5 G ~, E* N& O k A% Q h 此应用中的CAN设置如下:4 M. s5 q3 g" q' o • 标准标识符(未延长): P! W. g3 m+ u% S; p • 比特率:开始时为125 kbps;运行期间可通过速度指令进行更改,以达到最大比特率1Mbps。 发送设置(从STM32至主机)如下: • Tx mailbox0:开1 L, ?5 R+ A- P • Tx mailbox1和Tx mailbox2:关! _4 p3 ]8 y, { • Tx标识符:(0x00、0x01、0x02、v03、0x11、0x21、0x31、0x43、0x63、0x73、0x82、0x92)" Y( X7 Y* `7 U8 Q' ` 接收设置(从主机至STM32)如下: • 同步字节0x79在RX标识符而不是数据字段内。 • RX标识符取决于指令(0x00、0x01、0x02、0x03、0x11、0x21、0x31、0x43、0x63、0x73、0x82、0x92)。! `9 ~6 T5 D2 O+ i& P • 错误检查:如果错误字段(CAN_ESR寄存器中的[6:4]位)不是000b,则丢弃消息并向主机发送NACK。, D0 s" w: u: q, H1 l; R • 当发生FIFO过载时,丢弃消息并向主机发送NACK。 • 传入消息可包含1至8个数据字节。% I% V" d- `# e" j1 M6 M 注: CAN自举程序固件每次仅支持一个节点。这意味着固件不支持CAN网络管理。5 t! y O, f! `& L& G% U7 I ) y* m, m' H" v# _& P3 s# h# H 3 J# q, x$ h( a, G1 r3 k$ _, c 完整版请查看:附件. G" I/ U% w v2 N9 b1 w% Q( Y; B * X3 _* T1 |. r. [, X0 c |
STM32自举程序中使用的CAN协议.pdf
下载796.52 KB, 下载次数: 0
基于STM32的BootLoader经验分享
基于STM32如何选择 S2-LP 的外部晶体经验分享
基于是STM32的BLE 设备地址经验分享
基于ToF传感器的3D手势识别
NUCLEO-U545RE-Q评测(2)运行环境建立
基于使用 STM32 TT 类型 IO 的注意事项经验分享
基于STM32使用Framebuffer_Analyzer工具调试图像显示
ST安全连接,护航工业物联网一路前行
基于STM32的TouchGFX 4.22解锁新功能经验分享
基于STM32的MPU子区经验分享