回答

收藏

[评测分享] 【NUCLEO-U083RC试用】真随机数生成模块(TRNG)测试

#板卡评测 #板卡评测 2490 人阅读 | 0 人回复 | 2024-07-14

本帖最后由 eefocus_3972069 于 2024-7-14 17:28 编辑

一、环境搭建
   目前使用多个编译软件搭建工程的体验结果是用STM32CubeIDE搭建环境最方便。因为板卡用的控制芯片比较新,所以需要最新的软件版本才可以成功搭建,1.13及其以下的版本就不能搭建,所以选择最新的版本1.15.1才完成环境的搭建。
   若坚持用MDK软件进行编译的话,可以在如下官网下载芯片支持包。Arm Keil | Keil STM32U0xx_DFP
二、真随机数(TRNG)
   在数据手册中需要搜索RNG才能找到相关的资料,因为T代表True,在文档缩写中并未带上。在第485页开始便是RNG的介绍。RNG是通过硬件生成特点是操作简单随机数真实框图如下图所示

   由框图可以看出,随机数的生成源是模拟量的噪声,而该噪声也是无规律的,体现出随机数的真实性。由多个模拟噪声通过异或的逻辑操作生成128bit的随机数放在4个32bit的FIFO中,所以可以连续获取随机数。
   具体的介绍可以看数据手册。
三、RNG初始化和获取
   RNG初始化和随机数获取函数在stm32u0xx_hal_rng.c有定义。初始化有两部分,如下图所示

   随机数获取函数为HAL_RNG_GenerateRandomNumber。参数有两个,第一个为RNG的句柄,第二个为获取32bit随机数变量地址。
四、结果打印
   若将程序获取随机数的变量random改成符号型的,则可以获取正负的随机数。我是将获取的随机数与一个数做取余并加1,则是限制随机数的范围为1至取余数。
注:附件有程序源码和芯片数据手册
STM32U083RCT6_RNG.zip (17.16 MB, 下载次数: 0)


分享到:
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条