• 资料介绍
  • 在线预览
  • 相关推荐
申请入驻 产业图谱

LAT1500 如何通过DMA配合CRC功能

2025/03/06
571
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1500 如何通过DMA配合CRC功能

762.19 KB

1、概述

STM32 的 CRC 外设是用来实现 CRC 计算的硬件单元,硬件实现 CRC 计算相对于软件算法实现来说,可以大大提高运算速度。CRC 计算单元具有单个 32 位读/写数据寄存器(CRC_DR)。它用于输入新数据(写访问)并保存以前的 CRC 计算结果(读访问)。当 DMA用作数据传输处理器时,可以极大地减轻 CPU 负荷。本文以 STM32G474 为例,介绍如何通过 DMA 配合 CRC 计算,以供读者参考。

2、原理

2.1. 时间上的可能性

单次 DMA 传输包括两个 AHB 传输阶段,通过 DMA AHB 总线 master 实现:

  • 通过内部当前外设/存储器地址寄存器进行寻址,从外设数据寄存器或存储器单元中读取单个数据(字节、半字或字)。
  • 通过内部当前外设/存储器地址寄存器进行寻址,向外设数据寄存器或存储器单元中写入单个数据(字节、半字或字)。

在 AHB 总线上一次读+写就至少需要 4 个 AHB 时钟周期,这就已经可以满足 CRC 单次计算所需的时间。所以单次 DMA 数据传输之后即可进行下次数据传输(背靠背传输),无需额外等待。

3、实现

这里以 NUCLEO-G474RE 为例进行介绍,这里不对基本操作做过多介绍,只介绍与

DMA 和 CRC 相关的配置部分,详细配置可参考附件。

3.1. 创建工程

  1. 使用 STM32CubeMX 选择 STM32G474RET6 创建工程。然后选择 CRC 外设,点击"Activated"选项。本例的"Input Data Format"参数配置为"Words",其他参数保持默认,这里大家在实际应用中可以根据自己需求进行配置,这里 CRC 外设已经配置完毕。
  2. 找到 DMA 外设。点击"Add"添加 DMA Request,并选择"MemToMem"模式。配置保持默认即可,Mode 设置为"Normal"。要注意"Dst Memory"不要勾选,因为CRC_DR 寄存器的地址是固定的。这里的"Data Width"配置为 Byte、Half Word 或者Word 都可以,本示例中配置为 Word。
  3. 配置 DMA 中断。在"NVIC"里面 Enable "DMA1 channel1 global interrupt",注意这里与你使用的 DMA 相关,本例中使用的是 DMA1。
  4. 然后点击"GENERATE CODE"即可生成代码。

4、小结

本文对通过 DMA 配合 CRC 应用从原理上进行了可行性分析,并且介绍了如何实现这个过程,希望能对读者有所帮助。

在线预览

相关推荐

意法半导体拥有49,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一 家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、成千上万名合作伙伴一起研发产品和 解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需 求。意法半导体的技术让人们的出行更智能,让电源和能源管理更高效,让云连接的自主化设备应用更广 泛。我们正按计划在所有直接和间接排放(包括范围1和范围2)、产品运输、商务旅行以及员工通勤排 放(重点关注的范围3)方面实现碳中和,并在2027年底前实现100%使用可再生电力的目标。 详情请浏 览意法半导体公司网站:www.st.com.cn