[评测分享]
【NUCLEO-U083RC试用】真随机数生成模块(TRNG)测试
#板卡评测
2487 人阅读
|
0 人回复
|
2024-07-14
TA的每日心情 | 擦汗 2025-5-27 14:21 |
|---|
签到天数: 38 天 连续签到: 1 天 [LV.5]常住居民I
举人
- 积分
- 556
|
本帖最后由 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至取余数。 注:附件有程序源码和芯片数据手册
|
|
|
|
|
|
|
|
|