[国产单片机] 【东软载波ESF0654 PDS开发板活动】测试RT-Thread+循环冗余校...

[复制链接]
 楼主| 一路向北lm 发表于 2019-12-26 14:46 | 显示全部楼层 |阅读模式
循环冗余校验(CRC)发生器可以执行带可编程多项式设定的 CRC计算,用于对数据传输的完整性和正确性进行校验。
支持四个常用的多项式:CRC-CCITTCRC-8CRC-16 CRC-32
CRC-CCITT
X16+ X12 + X5 +1
CRC-8
X8 +X2 + X +1
CRC-16
X16+ X15 + X2 +1
CRC-32
X32+ X26 + X23 +X22 + X16 + X12+ X11 + X10 +X8 + X7 + X5 +X4 + X2 + X+1
支持可编程的种子值
支持对输入数据和 CRC校验值的可编程的反序设定
支持对输入数据和 CRC校验值的可编程的反码设定
支持 8/16/32位数据宽度
8-bit 写模式: 1 AHB 时钟周期操作
16-bit 写模式: 2 AHB 时钟周期操作
32-bit 写模式: 4 AHB 时钟周期操作
支持使用 DMA写数据执行 CRC操作
结构框图


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 一路向北lm 发表于 2019-12-26 14:46 | 显示全部楼层
CRC 发生器可以执行带可编程多项式设定的 CRC 运算。多项式操作包括 CRC-CCITT,CRC-8, CRC-16 和 CRC-32。用户可以通过设置 MODE选择 CRC多项式操作模式。
操作示例:
1. 通过设置CRC_CR.EN 使能 CRC 发生器
2. CRC 运算初始化设置
a. 通过设置CRC_CR.CHSINV 配置 CRC 校验值反码
b. 通过设置CRC_CR.CHSREV 配置 CRC 校验值位反序
c. 通过设置CRC_CR.DATINV 配置 CRC 写入数据反码
d. 通过设置CRC_CR.DATREV 配置 CRC 写入数据位反序
e. 通过设置CRC_CR.MODE 配置 CRC 校验模式
f. 通过设置CRC_CR.DATLEN 配置 CRC 写入数据长度。
3. 通过设置CRC_CR.RST 执行 CRC 复位, CRC 复位将装载初始种子值到 CRC 运算电路。
4. 写数据到CRC_DATA 寄存器来计算 CRC 校验值。
5. 通过读CRC_CHECKSUM 寄存器来获得 CRC 校验结果 。

 楼主| 一路向北lm 发表于 2019-12-26 14:47 | 显示全部楼层
bsp_crc.c
  1. #include "bsp_crc.h"

  2. void crc_module_init(void)
  3. {
  4.         md_crc_init_t h_crc;
  5.         /* Clear crc_handle_t structure */
  6.         memset(&h_crc, 0x0, sizeof(md_crc_init_t));       
  7.         //初始化CRC
  8.   md_crc_init_struct(&h_crc);
  9.         md_crc_init(&h_crc);
  10.         //使能CRC
  11.         md_crc_enable(CRC);
  12. }
bsp_crc.h
  1. #ifndef _BSP_CRC_H
  2. #define _BSP_CRC_H

  3. #include "md_crc.h"


  4. void crc_module_init(void);


  5. #endif


您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

粉丝
快速回复 在线客服 返回列表 返回顶部