當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]RNG主要特性RNG 處理器是一個(gè)以連續(xù)模擬噪聲為基礎(chǔ)的隨機(jī)數(shù)發(fā)生器,在主機(jī)讀數(shù)時(shí)提供一個(gè) 32 位的 隨機(jī)數(shù)。RNG的主要特性● 提供由模擬量發(fā)生器產(chǎn)生的 32 位隨機(jī)數(shù)● 兩個(gè)連續(xù)隨機(jī)數(shù)的間隔為 40 個(gè) PLL48CLK 時(shí)鐘信號(hào)

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

RNG的主要特性
● 提供由模擬量發(fā)生器產(chǎn)生的 32 位隨機(jī)數(shù)
● 兩個(gè)連續(xù)隨機(jī)數(shù)的間隔為 40 個(gè) PLL48CLK 時(shí)鐘信號(hào)周期
● 通過監(jiān)視 RNG 熵來標(biāo)識(shí)異常行為(產(chǎn)生穩(wěn)定值,或產(chǎn)生穩(wěn)定的值序列)
● 可被禁止以降低功耗

RNG功能描述

隨機(jī)數(shù)發(fā)生器采用模擬電路實(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 頻率無關(guān)。當(dāng)將 大量種子引入 RNG_LFSR 后,RNG_LFSR 的內(nèi)容會(huì)傳入數(shù)據(jù)寄存器 (RNG_DR)。
同時(shí),系統(tǒng)會(huì)監(jiān)視模擬種子和專用時(shí)鐘 PLL48CLK。狀態(tài)位(RNG_SR 寄存器中)指示何時(shí) 在種子上出現(xiàn)異常序列,或指示何時(shí) PLL48CLK 時(shí)鐘頻率過低。檢測(cè)到錯(cuò)誤時(shí)生成中斷。

操作
要運(yùn)行 RNG,請(qǐng)按以下步驟操作:
1.如果需要,使能中斷(為此,將 RNG_CR 寄存器中的 IE 位置 1)。準(zhǔn)備好隨機(jī)數(shù)時(shí)或 出現(xiàn)錯(cuò)誤時(shí)生成中斷。
2. 通過將 RNG_CR 寄存器中的 RNGEN 位置 1 使能隨機(jī)數(shù)產(chǎn)生。這會(huì)激活模擬部分、RNG_LFSR 和錯(cuò)誤檢測(cè)器。
3. 每次中斷時(shí),檢查確認(rèn)未出現(xiàn)錯(cuò)誤(RNG_SR 寄存器中的 SEIS 和 CEIS 位應(yīng)為 0), 并且隨機(jī)數(shù)已準(zhǔn)備就緒(RNG_SR 寄存器中的 DRDY 位為 1)。然后即可讀取 RNG_DR 寄存器中的內(nèi)容。
按照 FIPS PUB(聯(lián)邦信息處理標(biāo)準(zhǔn)出版物)140-2 的要求,將 RNGEN 位置 1 后產(chǎn)生的第 一個(gè)隨機(jī)數(shù)不應(yīng)使用,但應(yīng)保存起來,與產(chǎn)生的下一個(gè)隨機(jī)數(shù)進(jìn)行比較。隨后產(chǎn)生的每個(gè)隨機(jī)數(shù)都需要與產(chǎn)生的上一個(gè)隨機(jī)數(shù)進(jìn)行比較。如果任何一對(duì)進(jìn)行比較的數(shù)字相等,則測(cè)試失?。ㄟB續(xù)隨機(jī)數(shù)發(fā)生器測(cè)試)

錯(cuò)誤管理
如果 CEIS 位的值為 1(時(shí)鐘錯(cuò)誤)
出現(xiàn)時(shí)鐘錯(cuò)誤時(shí),RNG 無法再產(chǎn)生隨機(jī)數(shù),因?yàn)?PLL48CLK 時(shí)鐘不正確。檢查時(shí)鐘控制器是 否正確配置,是否可提供 RNG 時(shí)鐘,然后將 CEIS 位清零。當(dāng) CECS 位為 0 時(shí),RNG 可正 常工作。時(shí)鐘錯(cuò)誤對(duì)產(chǎn)生的上一個(gè)隨機(jī)數(shù)沒有影響,因此 RNG_DR 寄存器內(nèi)容可以使用。
如果 SEIS 位的值為 1(種子錯(cuò)誤)
出現(xiàn)種子錯(cuò)誤時(shí),只要 SECS 位為 1,就會(huì)中斷隨機(jī)數(shù)產(chǎn)生。如果 RNG_DR 寄存器中有可 用隨機(jī)數(shù),不能使用該隨機(jī)數(shù),因?yàn)樗赡軟]有足夠的熵。
應(yīng)執(zhí)行以下操作:將 SEIS 位清零,然后將 RNGEN 位清零并置 1,以便重新初始化和重新 啟動(dòng) RNG。

STM32F4的RNG庫
如何使用RNG驅(qū)動(dòng)
1.通過函數(shù)RCC_AHB2PeriphClockCmd(RCC_AHB2Perph_RNG,ENABLE)使能RNG控制器時(shí)鐘。
2.通過函數(shù)RNG_Cmd()使能RNG。
3.等待直到隨機(jī)數(shù)發(fā)生器產(chǎn)生有效的隨機(jī)數(shù)(中斷或查詢模式)。
4.通過函數(shù)RNG_GetRandomNumber()得到隨機(jī)數(shù)。
從上面第三步開始繼續(xù)得到后面的隨機(jī)數(shù)。

初始化和配置函數(shù)
這部分函數(shù)主要提供以下功能
· 初始化RNG外設(shè)
· 使能或禁止RNG外設(shè)。
void RNG_DeInit()功能:從新初始化RNG外設(shè)寄存器數(shù)據(jù)到復(fù)位值。
void RNG_Cmd(FunctionanState NewState)功能:使能或禁止RNG

得到32位隨機(jī)數(shù)函數(shù)
uint32_t RNG_GetRandomNumber(void)
函數(shù)功能:返回32位隨機(jī)數(shù)
調(diào)用此函數(shù)之前需要等待直到DRDY標(biāo)志置位,調(diào)用函數(shù)RNG_GetFlagStatus(RNG_FLAG_DRDY)進(jìn)行等待標(biāo)志位。每次在的調(diào)用RNG_GetrandomNumber(void)后RNG_FLAG_DRDY標(biāo)志自動(dòng)清除。
在seed錯(cuò)誤的情況下只要SECS位是1,隨機(jī)數(shù)產(chǎn)生將被中斷。如果RNG_DR寄存器中有數(shù)據(jù)可用,但是請(qǐng)不要使用,應(yīng)為沒有足夠的entopy。這種情況下推薦用戶通過函數(shù)RNG_ClearFlag(RNG_FLAG_SECS)清除SEIS標(biāo)志,然后禁止并重新使能RNG外設(shè)(通過函數(shù)RNG_Cmd())來從新初始化和啟動(dòng)RNG。
在時(shí)鐘錯(cuò)誤的情況下,應(yīng)為PLL48CLK時(shí)鐘的不準(zhǔn)確,RNG將無法產(chǎn)生隨機(jī)數(shù)。檢查是否正確配置時(shí)鐘控制器RNG時(shí)鐘,同時(shí)清除CEIS(通過函數(shù)RNG——ClearFlag(RNG_FLAG_CECS))位。當(dāng)CECS位是0的時(shí)候RNG次啊能正常工作。時(shí)鐘錯(cuò)誤對(duì)先前殘生的隨機(jī)數(shù)沒有影響,RNG_DR寄存器中的數(shù)據(jù)仍然可以使用。

中斷標(biāo)志管理
· 標(biāo)志
RNG_FLAG_DRDY:RNG_DR寄存器有有效隨機(jī)數(shù)時(shí),通過讀此寄存器來清除標(biāo)志(可通過函數(shù)RNG_GetRandomNumber()實(shí)現(xiàn))。
RNG_FLAG_CECS:seed檢測(cè)錯(cuò)誤
RNG_FLAG_SECS:時(shí)鐘檢測(cè)錯(cuò)誤
· 中斷
如果是能了RNG中斷,下面三種情況僵尸的RNG中斷會(huì)被掛起。
RNG_DR寄存器含有有效的隨機(jī)數(shù),只有通過讀RNG_DR寄存器才能清除中斷源,也就是清除中斷掛起標(biāo)志。
發(fā)生seed錯(cuò)誤,檢測(cè)到下面的錯(cuò)誤序列之一:
64個(gè)以上的的連續(xù)位都是0或者1
32個(gè)以上出現(xiàn)連續(xù)的01.
通過函數(shù)RNG_ClearITPendingBit(RNG_IT_SEI)清除此中斷源。
發(fā)生時(shí)鐘錯(cuò)誤,PLL48CLK不能被正確的檢測(cè)到


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉