STMCU小助手
发布时间:2022-6-14 14:09
|
01. 随机数发生器简介 RNG 处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个 32 位的随机数。 RNG 已通过 FIPS PUB 140-2(2001 年 10 月 10 日)测试,成功率达 99%。 02. 随机数发生器主要特性 ● 提供由模拟量发生器产生的 32 位随机数 ● 两个连续随机数的间隔为 40 个 PLL48CLK 时钟信号周期 ● 通过监视 RNG 熵来标识异常行为(产生稳定值,或产生稳定的值序列) ● 可被禁止以降低功耗 03. 随机数发生器功能说明
04. 随机数发生器操作 要运行 RNG,请按以下步骤操作: 1.如果需要,使能中断(为此,将 RNG_CR 寄存器中的 IE 位置 1)。准备好随机数时或出现错误时生成中断。 2.通过将 RNG_CR 寄存器中的 RNGEN 位置 1 使能随机数产生。这会激活模拟部分、RNG_LFSR 和错误检测器。 3.每次中断时,检查确认未出现错误(RNG_SR 寄存器中的 SEIS 和 CEIS 位应为 0),并且随机数已准备就绪(RNG_SR 寄存器中的 DRDY 位为 1)。然后即可读取 RNG_DR寄存器中的内容。 按照 FIPS PUB(联邦信息处理标准出版物)140-2 的要求,将 RNGEN 位置 1 后产生的第一个随机数不应使用,但应保存起来,与产生的下一个随机数进行比较。随后产生的每个随机数都需要与产生的上一个随机数进行比较。如果任何一对进行比较的数字相等,则测试失败(连续随机数发生器测试)。 05. 随机数发生器寄存器 5.1 RNG 控制寄存器 (RNG_CR) RNG control register 偏移地址:0x00 复位值:0x0000 0000
位 31:4 保留,必须保持复位值 位 3 IE :中断使能 (Interrupt enable) 0:禁止 RNG 中断。 1:使能 RNG 中断。只要 RNG_SR 寄存器中 DRDY=1 或 SEIS=1 或 CEIS=1,就会挂起中断。 位 2 RNGEN :随机数发生器使能 (Random number generator enable) 0:禁止随机数发生器。 1:使能随机数发生器。 位 1:0 保留,必须保持复位值 5.2 RNG 状态寄存器 (RNG_SR) RNG status register 偏移地址:0x04 复位值:0x0000 0000
位 31:3 保留,必须保持复位值 位 6 SEIS :种子错误中断状态 (Seed error interrupt status) 此位与 SECS 同时设置,通过向其写入 0 来清零。 0:未检测到错误序列 1:检测到以下错误序列之一: — 超过 64 个连续位具有相同值(0 或 1) — 超过 32 个连续交替的 0 和 1 (0101010101…01) 如果 RNG_CR 寄存器中 IE = 1,则会挂起中断。 位 5 CEIS :时钟错误中断状态 (Clock error interrupt status) 此位与 CECS 同时设置,通过向其写入 0 来清零。 0:正确检测到 PLL48CLK 时钟 1:未正确检测到 PLL48CLK 时钟 (f PLL48CLK < f HCLK /16) 如果 RNG_CR 寄存器中 IE = 1,则会挂起中断。 位 4:3 保留,必须保持复位值 位 2 SECS :种子错误当前状态 (Seed error current status) 0:目前未检测到错误序列。如果 SEIS 位置 1,则意味着已检测到错误序列并已恢复正常。 1:检测到以下错误序列之一: — 超过 64 个连续位具有相同值(0 或 1) — 超过 32 个连续交替的 0 和 1 (0101010101…01) 位 1 CECS :时钟错误当前状态 (Clock error current status) 0:正确检测到 PLL48CLK 时钟。如果 CEIS 位置 1,则意味着已检测到时钟错误并已恢复 正常。 1:未正确检测到 PLL48CLK 时钟 (f PLL48CLK < f HCLK /16)。 位 0 DRDY :数据就绪 (Data ready) 0:RNG_DR 寄存器尚未有效,无可用随机数据 1:RNG_DR 寄存器包含有效随机数据 注意:如果 RNG_CR 寄存器中 IE = 1 ,则会挂起中断。 读取 RNG_DR 寄存器后,此位恢复到 0 ,直到计算出新的有效值 5.3 RNG 数据寄存器 (RNG_DR) RNG data register 偏移地址:0x08 复位值:0x0000 0000 RNG_DR 寄存器是只读寄存器,在读取时提供 32 位随机数值。读取后,此寄存器在最多40 个 PLL48CLK 时钟周期后,提供新的随机数值。在读取 RNDATA 值之前,软件必须检查DRDY 位是否已置 1。
5.4 RNG寄存器映射
|
分享STM32资料-采用 STM32U031R8 MCU 的 STM32 Nucleo-64 开发板,官方资料,数据手册等资料
HRTIM 指南
使用 STM32 的 DWT 单元监控内存
DAC,COMP,HRTIM Fault 功能的使用
一个软件引起的 LSE 驱动不良的问题
STM32 GUI LTDC 最大像素时钟评估方法
STM32 Cordic 运算速度评估
全新OpenSTLinux 6.1版本发布
ST-LINK Utility介绍、下载、安装和使用教程
【2025·STM32峰会】GUI解决方案实训分享1-对LVGL咖啡机例程的牛刀小试以及问题排查
微信公众号
手机版