一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CKS32F4xx系列RNG功能設(shè)置

中科芯MCU ? 來(lái)源:中科芯MCU ? 2023-09-08 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MCU微課堂

CKS32F4xx列RNG功能

隨機(jī)數(shù)發(fā)生器簡(jiǎn)介

CKS32F4xx系列自帶了硬件隨機(jī)數(shù)發(fā)生器(RNG),RNG處理器是一個(gè)以連續(xù)模擬噪聲為基礎(chǔ)的隨機(jī)數(shù)發(fā)生器,在主機(jī)讀數(shù)時(shí)提供一個(gè)32位的隨機(jī)數(shù)。

CKS32F4xx系列的隨機(jī)數(shù)發(fā)生器框圖如圖1所示:

b924921e-4d7a-11ee-a25d-92fbcf53809c.jpg

圖1.RNG框圖

CKS32F4xx系列的隨機(jī)數(shù)發(fā)生器(RNG)采用模擬電路實(shí)現(xiàn)。此電路產(chǎn)生饋入線性反饋移位寄存器(RNG_LFSR)的種子,用于生成32位隨機(jī)數(shù)。

該模擬電路由幾個(gè)環(huán)形振蕩器組成,振蕩器的輸出進(jìn)行異或運(yùn)算以產(chǎn)生種子。RNG_LFSR由專用時(shí)鐘(PLL48CLK)按恒定頻率提供時(shí)鐘信息,因此隨機(jī)數(shù)質(zhì)量與HCLK頻率無(wú)關(guān)。當(dāng)將大量種子引入RNG_LFSR后,RNG_LFSR的內(nèi)容會(huì)傳入數(shù)據(jù)寄存器(RNG_DR)。

同時(shí),系統(tǒng)會(huì)監(jiān)視模擬種子和專用時(shí)鐘PLL48CLK,當(dāng)種子上出現(xiàn)異常序列,或PLL48CLK時(shí)鐘頻率過低時(shí),可以由RNG_SR寄存器的對(duì)應(yīng)位讀取到,如果設(shè)置了中斷,則在檢測(cè)到錯(cuò)誤時(shí),還可以產(chǎn)生中斷。

RNG寄存器

我們介紹下CKS32F4xx系列隨機(jī)數(shù)發(fā)生器(RNG)的幾個(gè)寄存器。

b9d4d84a-4d7a-11ee-a25d-92fbcf53809c.png

圖2.RNG控制寄存器

圖2為RNG的CR寄存器,其只有bit2和bit3有效,用于使能隨機(jī)數(shù)發(fā)生器和中斷。我們一般不用中斷,所以只需要設(shè)置bit2為1,使能隨機(jī)數(shù)發(fā)生器即可。

ba01b96e-4d7a-11ee-a25d-92fbcf53809c.jpg

圖3.RNG狀態(tài)寄存器

圖3為RNG狀態(tài)寄存器:RNG_SR。該寄存器我們僅關(guān)心最低位(DRDY位),該位用于表示RNG_DR寄存器包含的隨機(jī)數(shù)數(shù)據(jù)是否有效,如果該位為1,則說明RNG_DR的數(shù)據(jù)是有效的,可以讀取出來(lái)了。讀RNG_DR后,該位自動(dòng)清零。

ba14fc68-4d7a-11ee-a25d-92fbcf53809c.jpg

圖4.RNG數(shù)據(jù)寄存器

圖4為RNG數(shù)據(jù)寄存器:RNG_DR。在RNG_SR的DRDY位置位后,我們就可以讀取該寄存器獲得32位隨機(jī)數(shù)值。此寄存器在最多40個(gè)PLL48CK時(shí)鐘周期后,又可以提供新的隨機(jī)數(shù)值。

至此,隨機(jī)數(shù)發(fā)生器的寄存器,我們就介紹完了。接下來(lái),我們看看要使用庫(kù)函數(shù)操作隨機(jī)數(shù)發(fā)生器,應(yīng)該如何設(shè)置。

配置隨機(jī)數(shù)發(fā)生器

1.使能隨機(jī)數(shù)發(fā)生器時(shí)鐘

要使用隨機(jī)數(shù)發(fā)生器,必須先使能其時(shí)鐘。隨機(jī)數(shù)發(fā)生器時(shí)鐘來(lái)自PLL48CK,通過AHB2ENR寄存器使能。所以我們調(diào)用使能AHB2總線外設(shè)時(shí)鐘的函數(shù)使能RNG時(shí)鐘即可:

RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_RNG, ENABLE);

2.使能隨機(jī)數(shù)發(fā)生器

這個(gè)就是通過RNG_CR寄存器的最低位設(shè)置為1,使能隨機(jī)數(shù)發(fā)生器。當(dāng)然,如果需要用到中斷,你快還可以使能RNG中斷。本章我們不用中斷。庫(kù)函數(shù)中使能隨機(jī)數(shù)發(fā)生器的方法為:

RNG_Cmd(ENABLE);

3.判斷DRDY位,讀取隨機(jī)數(shù)值

經(jīng)過前面兩個(gè)步驟,我們就可以讀取隨機(jī)數(shù)值了,不過每次讀取之前,必須先判斷 RNG_SR寄存器的DRDY位,如果該位為1,則可以讀取RNG_DR得到隨機(jī)數(shù)值,如果不為1,則需要等待。

獲取隨機(jī)數(shù)發(fā)生器狀態(tài)的函數(shù)為:

FlagStatus RNG_GetFlagStatus(uint8_t RNG_FLAG);

判斷數(shù)據(jù)是否有效的入口參數(shù)為 RNG_FLAG_DRDY,所以等待就緒的方法為:

while(RNG_GetFlagStatus(RNG_FLAG_DRDY)==RESET);

判斷數(shù)據(jù)有效后,然后我們讀取隨機(jī)數(shù)發(fā)生器產(chǎn)生的隨機(jī)數(shù)即可,調(diào)用函數(shù)為:

uint32_t RNG_GetRandomNumber(void);

審核編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124533
  • 發(fā)生器
    +關(guān)注

    關(guān)注

    4

    文章

    1405

    瀏覽量

    62861
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3484

    瀏覽量

    67509
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64898

原文標(biāo)題:MCU微課堂|CKS32F4xx系列RNG功能

文章出處:【微信號(hào):中科芯MCU,微信公眾號(hào):中科芯MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MCU微課堂|CKS32F4xx系列產(chǎn)品時(shí)鐘配置

    作為MCU運(yùn)行的基礎(chǔ),時(shí)鐘是單片機(jī)各個(gè)模塊工作時(shí)序的最小時(shí)間單位,推動(dòng)單片機(jī)的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。CKS32F4xx系列產(chǎn)品具有眾多的外設(shè),但并非所有的外設(shè)均需要系統(tǒng)時(shí)鐘的高頻率
    發(fā)表于 12-12 10:17 ?1015次閱讀

    CKS32F4xx系列ETH通信詳解

    CKS32F4xx系列芯片自帶以太網(wǎng)模塊,該模塊包括帶專用DMA控制器的MAC 802.3(介質(zhì)訪問控制)控制器
    的頭像 發(fā)表于 11-10 11:13 ?1451次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>ETH通信詳解

    CKS32F4xx系列DSP功能介紹

    CKS32F4xx系列使用高性能的32位內(nèi)核,支持浮點(diǎn)運(yùn)算單元(FPU),同時(shí)還支持DSP指令以及存儲(chǔ)保護(hù)(MPU)用來(lái)加強(qiáng)應(yīng)用的安全性。
    的頭像 發(fā)表于 03-04 13:43 ?2200次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DSP<b class='flag-5'>功能</b>介紹

    CKS32F4xx系列產(chǎn)品串口DMA傳輸

    在上一講,我們講過CKS32F4xx系列的6個(gè)串口都支持DMA傳輸。因此本節(jié)我們對(duì)CKS32F4xx系列的DMA進(jìn)行介紹,同時(shí)利用DMA對(duì)串口數(shù)據(jù)進(jìn)行傳輸。
    的頭像 發(fā)表于 04-10 11:18 ?1402次閱讀

    CKS32F4xx系列DAC功能

    CKS32F4xx系列DAC功能
    的頭像 發(fā)表于 11-06 16:56 ?1178次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>DAC<b class='flag-5'>功能</b>

    CKS32F4xx系列ADC多通道DMA電壓采集

    CKS32F4xx系列ADC多通道DMA電壓采集
    的頭像 發(fā)表于 11-06 16:53 ?1408次閱讀

    CKS32F4xx系列ADC單通道電壓采集

    CKS32F4xx系列ADC單通道電壓采集
    的頭像 發(fā)表于 11-06 16:54 ?1263次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>ADC單通道電壓采集

    CKS32F4xx系列低功耗模式STANDBY模式

    CKS32F4xx系列低功耗模式STANDBY模式
    的頭像 發(fā)表于 11-06 16:57 ?801次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STANDBY模式

    CKS32F4xx系列低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式SLEEP模式
    的頭像 發(fā)表于 11-06 16:59 ?1041次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式SLEEP模式

    CKS32F4xx系列低功耗模式STOP模式

    CKS32F4xx系列低功耗模式STOP模式
    的頭像 發(fā)表于 11-06 17:08 ?920次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>低功耗模式STOP模式

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-比較輸出
    的頭像 發(fā)表于 11-09 17:39 ?1208次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品Timer的基本使用方法-比較輸出

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)操作

    CKS32F4xx系列產(chǎn)品Timer的基本使用方法-定時(shí)操作
    的頭像 發(fā)表于 11-09 17:41 ?880次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品Timer的基本使用方法-定時(shí)操作

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品SPI通信
    的頭像 發(fā)表于 10-24 17:12 ?1099次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品SPI通信

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置

    MCU微課堂 | CKS32F4xx系列產(chǎn)品GPIO口配置
    的頭像 發(fā)表于 10-24 15:14 ?1150次閱讀
    MCU微課堂 | <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>產(chǎn)品GPIO口配置

    CKS32F4xx系列FSMC功能簡(jiǎn)介

    本課講為大家講解CKS32F4xx系列產(chǎn)品的FSMC應(yīng)用實(shí)例,F(xiàn)SMC全稱是Flexible Static Memory Controller,讀作靈活的靜態(tài)存儲(chǔ)控制器,顧名思義,MCU可以通過FSMC擴(kuò)展靜態(tài)內(nèi)存
    的頭像 發(fā)表于 04-14 15:06 ?1517次閱讀
    <b class='flag-5'>CKS32F4xx</b><b class='flag-5'>系列</b>FSMC<b class='flag-5'>功能</b>簡(jiǎn)介