查看: 1305|回复: 0

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

[复制链接]
  • TA的每日心情

    7 天前
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2024-7-14 17:21:36 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 eefocus_3972069 于 2024-7-14 17:28 编辑

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

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

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

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-11-21 23:14 , Processed in 0.124842 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.