历史上的今天
今天是:2024年11月28日(星期四)
2020年11月28日 | MSP430 MCU内部时钟极低功耗生成随机数字
2020-11-28 来源:elecfans
不管是生成随机器件地址、强化加密算法还是创建独立产品密钥,可靠地生成随机数字都变得日益重要。这些随机数字对于日常嵌入式系统特别有用,比如车库门接收机必须一一对应地正确识别远程控制的随机数字,以防止非授权访问。为了生成随机数字,开发人员可以使用高级 16 位 MCU 确保将所有信号都控制在 MCU 内部,而且与昂贵的模拟硬件相比,这种解决方案成本更低、安全性也更高。
双时钟芯片架构可以支持 TI 超低功耗MCU MSP430 的随机数字生成能力。超低频振荡器 (VLO) 与数控振荡器 (DCO) 是两个独立的时钟系统,可以利用二者间的计时差生成随机位流。一个 VLO 时钟周期中的DCO 时钟数量大致相同。然而,由于 VLO 与 DCO 时钟源彼此独立变化,无法预测生成的数字是奇数还是偶数,因此这种器件更安全。更重要的是,即使在前面生成的数字为已知的情况下,也不可能预测之后的结果。
由于 VLO 的灵活性很高,其速度可降至 DCO 以下。然后可以将定时器配置为升序计数,将 DCO 作为源时钟,从而触发对下一次 VLO 从低到高升序的采集。这次采集将记录一个 VLO 时钟周期中的 DCO 时钟周期数。由于时钟源的变化,每次采集将导致单位 VLO 周期内的 DCO 时钟数略有差异。正是这种差异才产生了随机数字。例如,为了生成 16 位随机数字,需要进行 16 次采集,每个被采集数字的最低有效字节转换成存储器中的一个字。
设计人员可以使用定时器外设收集随机 LSB,通过在每个采集周期中确保 CPU 处于关闭状态,可以实现超低功耗。只需要短暂使用 CPU,即可将 LSB 转换为存储单元。
尽管上述方法是随机数字的主要来源,但是,MSP430 时钟系统还是允许设计人员结合使用反馈法。在要求进行 FIPS 140-2 测试的情况下,这些方法可提高算法性能。
第一个反馈机制是,在每个采样位后使 DCO 略微加速。时钟控制寄存器在每个位后加上数字 5。这种相加或额外变化导致在每个环路时 DCO 的速度均高于 VLO。虽然可以使用任何数字,但数字 5 可以产生足够大的阶跃变化,以至于 DCO 与 VLO 之间发生很大的差异。
另外,每次转换 LSB 时,两个以前采样的随机位被按位加至时钟控制寄存器的除法器位。这些位在到达计时器之前将控制用于 VLO 的除法器,同时还改变了计时器测定的VLO 与 DCO 之间的关系。
最后,每个得出的位实际上是 5 个环路“多数原则”的结果。如前所述,每个环路都从 CCR 生成其自身的 LSB,但 5 的“多数原则”用于选择最终位。
通过这种方式,MSP430 MCU 能够以极低的功耗生成随机位的连续流。这种位流可以用于创建随机数字;如果不需要对运行的应用时钟架构进行修改,将针对伪随机数字生成器 (PRNG) 生成初始种子。
借助该技术,就可以生成通过 FIPS 140-2 随机性测试的位流。这就是说,该技术可广泛用于需要生成随机数字的各种应用领域。特别是随着无线技术的推广,这种随机数字生成技术将有很好的前景。另外,由于该技术采用目前的 MSP430 MCU 架构内部信号,具有成本低与安全性高等优势。
史海拾趣
|
看老兄翻译操劳,特发ADC-DAC应用设计宝典,中文的,不用您再费劲翻译了 [ 本帖最后由 leang521 于 2009-12-7 17:24 编辑 ]… 查看全部问答> |
|
本文讨论的四种常用FPGA/CPLD设计思想与技巧:乒乓操作、串并转换、流水线操作、数据接口同步化,都是FPGA/CPLD逻辑设计的内在规律的体现,合理地采用这些设计思想能在FPGA/CPLD设计工作种取得事半功倍的效果。 FPGA/CPLD的设计思想与技巧是一个非 ...… 查看全部问答> |
|
replyreload += \',\' + 373502;一些物联网有关的基本介绍。附上节选看大家是否有需要下载: Timson,如果您要查看本帖隐藏内容请回复 射频识别射频标签的数据量通常在几个字节到几千个字节之间。但是,有一个例外,这就是1比特射频标签。它 ...… 查看全部问答> |
|
可能版里已经有不少人问过这个问题了,但是可能具体到我自己的一些情况还是不太一样,所以还是单开一个帖子问问各位熟悉的人。 首先说一下我个人的情况,我自己是做系统(导弹上的电子设备)总体集成的,从射频到数字电路方面都有一些肤浅的了解, ...… 查看全部问答> |
|
延时问题 我在仿真时总是发现有延时,大概几个ns,当把仿真模式从timing换到functional时,出现错误。本人用的Quartus II9.0 网络版不知什么原因,请教各位大侠了,不胜感激!… 查看全部问答> |
|
我想把自己的一张320*240的图放到2440开发板上显示..可是发现我在把图转成*.c之后..在ADS里把代码复制到原来的图片代码那里取代了原来的代码位置..为什么make的时候会出现L62181E: error:Undefine symbol TQ_LOGO_320240(refered from LCD_TFT_.o ...… 查看全部问答> |
|
小弟最近在用这款芯片来实现SPI到SCI的转换,发送的时候没有问题,但是在接收数据时就会出现问题。比如PC机发送5个数据1,2,3,4,5 那么MAX3111E产生5次接收中断,但是读取出来的数据是00 01 02 03 04 是这五个。不知道这是什 ...… 查看全部问答> |
|
PADS9.3 画图。最后铺铜。鼠标右键 select shapes ,选中copper pour ,右键 flood , 出现proceed with flood? 选择是。然后,没有出现铺铜。折腾半天,终于发现。图中有copper cut out ,但 ...… 查看全部问答> |
|
U-boot下用tftp下载kernel,并加载kernel 本帖最后由 sdwuyawen 于 2014-7-20 14:04 编辑 S3C2416通过U-Boot启动后,U-Boot会自动执行bootcmd来加载内核。《君益兴开发板手册V2》第3.3.4节,把kernel烧写到nandflash的0x40000地址后,set bootcmd \'nand read.i c0008000 0 ...… 查看全部问答> |
|
EEWORLD大学堂----Atmel软件框架(ASF)入门(上) Atmel软件框架(ASF)入门(上):https://training.eeworld.com.cn/course/462更进一步了解Atmel软件框架,,一个产品源代码集合,如驱动、协议栈和触摸功能。学习创建项目,导入新驱动、DMA和中断等。… 查看全部问答> |




