打印
[牛人杂谈]

单片机生成随机数的几个方法

[复制链接]
1728|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
玛尼玛尼哄|  楼主 | 2017-9-14 11:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

单片机生成随机数的几种常用随机信号如下:

1. 用一路AD采集温度或电源噪声,取后几位作为随机信号;

2. 将用户的交互信号时间作为随机信号;

3. 利用时钟芯片或RTC获取当前时间再经处理作为随机信号;

4. 自己搭一个硬件电路用来产生随机信号,如利用单片机的内置时钟设为1M,外接一个用温度敏感电阻搭建一个特征频率10M的RC振荡电路,用慢时钟去采集快时钟,然后经过简单处理,就可以得到一个真正的随机数了


沙发
玛尼玛尼哄|  楼主 | 2017-9-14 11:44 | 只看该作者
最简单的其实就是AD采集了,可以外接一个悬空的金属,或者PCB悬空的焊盘线,这样你可以测到该ADC,会一直在波动,,读取的值每次都不同,你可以用最后两位作为随机数。

使用特权

评论回复
板凳
玛尼玛尼哄|  楼主 | 2017-9-14 11:45 | 只看该作者
交互信号这种需要你通过按键或者触摸等动作获取,比如定时器循环跑秒,你按键随机捕获其中的值。这种需要人工干预。。

使用特权

评论回复
地板
玛尼玛尼哄|  楼主 | 2017-9-14 11:46 | 只看该作者
还有就是通过时钟电路,RTC,这种可以根据时钟的偏差特性,并且在不同时间获取的值是不同的这一特点获取随机数

使用特权

评论回复
5
玛尼玛尼哄|  楼主 | 2017-9-14 11:46 | 只看该作者
最后一种也是类似,不过我推荐第一种,用ADC这种,这种太随机了,,跟温度有关,跟环境有关,跟电磁噪声有关。。

使用特权

评论回复
6
mintspring| | 2017-9-17 09:38 | 只看该作者
值得研究,要找个真正靠谱的方法

使用特权

评论回复
7
wahahaheihei| | 2017-9-17 21:21 | 只看该作者
感觉第一种最靠谱了。

使用特权

评论回复
8
gejigeji521| | 2017-9-17 21:28 | 只看该作者
根据经验,确实是第一种方法最好。

使用特权

评论回复
9
gejigeji521| | 2017-9-17 21:29 | 只看该作者
不过ADC要处理好了,才行,要有个随机特性做出来,自动感应波动强烈了才好

使用特权

评论回复
10
dongnanxibei| | 2017-9-17 21:31 | 只看该作者
总结的很全面,确实是这么多种,不过单片机如果要规划好了,可以用一路定时器提供定时,延时和随机数服务的。

使用特权

评论回复
11
zhuomuniao110| | 2017-9-17 21:33 | 只看该作者
第一种现象观察到过,回头试试

使用特权

评论回复
12
稳稳の幸福| | 2017-9-17 21:36 | 只看该作者
总结的好全面,第一次知道这么多方法。

使用特权

评论回复
13
yiyigirl2014| | 2017-9-17 21:38 | 只看该作者
面面俱到啊,不错的经验,如果给个单片机的例子就好了

使用特权

评论回复
14
wforest68| | 2017-9-30 13:28 | 只看该作者
我一般是取定时器时间加上ADC取值然后使用Hash算法计算出一个值,随机数的唯一性能保证

使用特权

评论回复
15
yiy| | 2017-10-1 19:55 | 只看该作者
方法十分新颖,测试一下,看看到底随机度,和采样频率如何。

使用特权

评论回复
16
598330983| | 2017-10-1 22:06 | 只看该作者
主要先测量一个系统随机数最快生成的速度

使用特权

评论回复
17
捉虫天师| | 2017-10-3 19:30 | 只看该作者
如果没有pcb和成本限制可以单独做个系统时钟电路,不仅可以提供定时功能还可以提供随机数生成

使用特权

评论回复
18
xixi2017| | 2017-10-4 10:47 | 只看该作者
方法好多,以前没想过还能这么玩,终于知道为何不让ADC悬空了。。会自动随机数。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

158

主题

3008

帖子

2

粉丝