AOVX环境监测技术单片机中快速生成真随机数方法
随着社会经济水平的不断提升,人们对于物资的要求不仅局限在可以用了。人们希望能够在衣食住行上有质量的提升,包括生活在舒适的环境上,品尝新鲜的食物等。作为相关企业和机构,也在不断提升自身对于办工作业环境的要求,以保证货物的品质与工作人员的舒适度。在此背景下,以物联网技术为基础的环境监测设备逐渐被市场所认可。
环境监测设备简介: 环境监测设备的主要作用是帮助用户实现温湿度监测以及实时位置监测,避免资产在运输过程中质量受到影响,或存储环境不当,影响资产的质量。AOVX环境监测设备的应用场景包括了:冷链生鲜运输、仓库监测、实验室监测、药物运输监测等。在运输过程中用户只需要登录云端后台即可对相关数据进行监测,并且环境监测设备可设置阈值,当温湿度达到阈值时,系统后台会自动报警提醒用户确认资产的状态。对于运输过程中发生的碰撞等情况后台也会在第一时间报警。
对于环境监测设备功能的实现离不开单片机,单片机中经常需要使用快速生成真随机数方法,对于该问题相关用户可以参考以下解决方式:
真随机数通常由硬件方式生成,比如单片机中的RNG硬件,但是这种生成方式比较慢。伪随机数通常是有软件算法生成,但是因为遵循一定规则,所以称为伪随机数,生成速度快。例如C库中的rand()函数。如果给定相同的熵源,生成的随机数则相同。在单片机中可以使用硬件方式生成熵源,再调用伪随机数方法来生成随机数,则可以既保证速度也保证随机数的是真随机数。
希望该内容能够帮助到更多用户。
单片机还可以这样得到加密随机数?
一、什么是随机数?
(1)随机数是概念
随机数,顾名思义,就是随机生成的一个数据。
随机数
举个例子,我们在一堆红豆中,随手抓一把红豆,那么手中这把红豆的粒数,就是一个随机数。
因为我们无法具体预判抓的这一把红豆具体多少粒,这个数据是随机的,不可预算的,故这种方式产生的数据,就叫随机数。
(2)随机数的用法
随机数,可用于做一些需要随机的事件,如抽奖,掷骰子等。
同时,随机数也多用于简单的加密。通过随机生成的一个随机数,将一段需要加密的数据,进行一定的数据公式运算,然后发送出去,接收方只要知道这段接收到的数据中,哪一段是密钥随机数,哪一段是加密密文,就可以通过协定的公式反向运算,进行解密,就可以获得密文数据。
数据简单加密
二、生成随机数的方法
(1)通过单片机计数器的方式
通过单片机计数器的方式声明一个16位的变量CNT,并将其放置于主循环while(1)中,让其自加,如
当单片机运行到某一需要随机数的时候,如按键触发某个功能,需要获取随机数,来作为加密的随机码时,这时正在自增变化的CNT变量,提取其尾数(CNT%10),就可以作为一个伪随机数。
在这里,可能会有一个疑问了,为何这个值可以作为随机数使用呢?原因如下:
1)裸机跑单片机属于单线程运行方式,在主循环while(1){}中,循环一次所需时间,是根据每次循环所执行的内容决定的,具有不确定性;
2)当我们按下按键时,由于按下的时间点是不确定的,所以CNT变化了多少,也具有不确定性;
3)由于单片机主频很高,在我们触发时,CNT已经递增了数千个值了,故截取数据时,CNT的尾数,也是不确定性的。
因此,可以用该方式,来生成一个我们想要的随机数。
(2)通过ADC的方式
使用ADC的方式,采集芯片内部温度传感器的方式。来获得一个伪随机数。
我们自行测试能知道,单片机在通过ADC采集这个温度波形模拟信号时,该数值的尾数,变化是很随机的。而温度传感器,受到不同时刻温度的影响时,该值的尾数变化也是不确定的。
因此。我们可以通过该方式,来生成一个伪随机数。
ADC采集温度
(3)通过单片机自带的硬件随机数发生器的方式
有些单片机,集成了专有的硬件随机数发生器,通过获取该发生器的随机数值,即可得到一个理想的随机数。
如STM32F4 自带了硬件随机数发生器(RNG),RNG 处理器是一个以连续模拟噪声为基础的随机数发生器,在主机读数时提供一个32 位的随机数。
RNG发生器图
相关问答
在 单片机 中如何产生 随机数 字?对于51单片机里有两个定时器/计数器,可以利用其中的一个来产生随机数。但要设置成方式2,自己计数状态。这样,只有8位数。但不要开中断,只要计数就行。需要时...
如何产生真正的 随机数 使用STM32 单片机 ?要么用带有RNG模块的单片机,要么从一个随机的外部量(例如RTC时钟的秒、悬空AD管脚采集的电压等等)取种子。要么用带有RNG模块的单片机,要么从一个随机的外部...
掷骰子游戏该怎么用 单片机 做?就是产生一个随机数,随机数的产生,可以借用别人的随机函数代码,也可以通过高速自加1,中断采样的方式产生“伪随机数”,比如主程序中可以让一个变量i不停地从...
怎么用c语言编写一个程序,可以在A和B两个选项中随机出现一个结果,概率为50%?给一个参考思路,可以写一个子程序,其功能是,在A和B两个选项中均匀的返回其中的一个,代码可以参考如下:上面代码中先定义包含两个选项的数组opts,然后产生1...给...
如何用程序加密明文软件 - 小红薯933DBB02 的回答 - 懂得下载一个加密狗,小白级的加密软件,第一次使用也能很快上手,可以应对日常加密需要的。百度一下软件加密就知道了。软件加密求助编辑百科名片软件加...
单片机 flash和ram/ROM的区别?单片机FLASH主要用作程序存贮器,就是替代以前的ROM,最大的有有点是降低了芯片的成本并且可以做到电擦写,目前市场上单片机的FALSH寿命相差比较大,擦写次数从10...
单片机 32的M3与M4在使用上有区别吗,有哪些不同?M3与M4基本相同,频率不一样,内存大小不一样实时时钟不一样,M4有数字摄像头接口M3没有还有M4多了随机数发生器和浮点运算单元定时器也多了3个总之,大部分功能...