精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

DS2148/DS21348硬件模式

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-01-12 15:21 ? 次閱讀

本應(yīng)用筆記介紹如何利用DS2790溫度寄存器的最低4位產(chǎn)生16位隨機值。本說明還提供了用于生成 16 位隨機值的示例 C 代碼。

介紹

隨機數(shù)用于許多加密和身份驗證方案。隨機數(shù)的生成涉及查找隨機行為并使用此行為生成隨機值。因此,使用微控制器生成隨機數(shù)可能是一項艱巨的任務(wù),因為微控制器經(jīng)常表現(xiàn)出重復(fù)行為。

幸運的是,DS2790允許設(shè)計人員使用溫度寄存器的最低4位來產(chǎn)生16位隨機值。雖然數(shù)據(jù)手冊中只有溫度寄存器的最高11位被定義為溫度信息,但所有16位都被報告。此功能,加上寄存器的最低4位是高度隨機的,使其成為生成16位隨機值的理想選擇。

擴展溫度數(shù)據(jù)是隨機的嗎?

表1是將DS2790浸入受控溫度浴中得出的。將器件放置在如此嚴(yán)格控制的溫度環(huán)境中會迅速暴露非隨機溫度值。下面的數(shù)據(jù)顯示了內(nèi)存中存儲溫度的地址的最低 4 位。

表 1.DS2790的擴展溫度數(shù)據(jù)

價值 計數(shù) 增量計數(shù) 三角洲平均
0 23657 -453.625 -1.8814%
1 23822 -288.625 -1.1971%
2 24422 311.375 1.2914%
3 24091 -19.625 -0.0814%
4 24222 111.375 0.4619%
5 23994 -116.625 -0.4837%
6 24218 107.375 0.4453%
7 24258 147.375 0.6112%
8 24612 501.375 2.0795%
9 23984 -126.625 -0.5252%
一個 23974 -136.625 -0.5667%
B 24005 -105.625 -0.4381%
C 24178 67.375 0.2794%
D 24066 -44.625 -0.1851%
E 23954 -156.625 -0.6496%
F 24313 202.375 0.8394%
共計數(shù): 385770
總數(shù)的 1/16: 24110.625

值列以十六進制顯示溫度寄存器最低 4 位的值。“計數(shù)”列顯示每個值在大約 24 小時內(nèi)出現(xiàn)的次數(shù)。在完全隨機的系統(tǒng)中,給定無限的時間來監(jiān)測DS2790的行為,我們會看到每個值在1/16的時間內(nèi)出現(xiàn)。增量計數(shù)列顯示與理想 1/16 值相比,每個值出現(xiàn)的次數(shù)的絕對誤差。Delta-Avg 列顯示的誤差與理想 1/16 值的百分比相同,即理想隨機行為與 1/16 時間發(fā)生的值之間的百分比差異。非常低的百分比值表明溫度寄存器的最低4位是高度隨機的。

生成 16 位隨機數(shù)

為了確保在需要時隨機數(shù)可用,該示例會在每次完成溫度轉(zhuǎn)換結(jié)果時更新隨機值。若要生成 16 位隨機數(shù),請使用以下步驟。

將DS2790配置為在溫度轉(zhuǎn)換完成時產(chǎn)生中斷。

注意溫度中斷發(fā)生的時間。

發(fā)生中斷時,將溫度寄存器的最低4位移入變量。

這些步驟導(dǎo)致DS2790每220ms (標(biāo)稱值)產(chǎn)生一個溫度轉(zhuǎn)換中斷。由于每次溫度轉(zhuǎn)換提供 4 位,并且我們正在生成一個 16 位數(shù)字,因此每 880ms(標(biāo)稱值)提供一個全新的隨機數(shù)。

示例 C 代碼

下面的示例 C 代碼生成一個 16 位隨機值,該值可用作全局變量rand_num。請注意,必須初始化該器件,以便在溫度中斷完成時啟用中斷。溫度中斷在代碼中定義為EINT_ti

unsigned short rand_num;                /* Global random number */

/* This is the main Interrupt Service Routine*/
void FuelGaugeISR(void) __interrupt
{
char temp_low4bits;                     /* Store the low 4 bits of temperature here */

        /* Stay in the loop if there is an interrupt. */
        while (IIR & IMR_IM0 || IIR & IMR_IM1)
        {
                /* The IIR signifies if a Module 0 or Module 1 interrupt has occured.*/
                /* Module 0 will be treated with priority. */
                
                if (IIR & IMR_IM0) /* Module 0 Interrupt */
                {
                        /* Detect and Service Higher Priority Module 0 Interrupts here. */

                        if (EINT & EINT_ti) /* A temperature conversion completion int occurs every 220ms. */
                        {
                                EINT &= ~EINT_ti; /* Reset the temperature interrupt bit. */
                                
                                /* This code builds a new 16 bit random number every 4 temperature interrupts */
                                /* The global variable rand_num is fully updated every 880ms */
                                /* Next statement clears all but low 4 bits of the temperature register */
                                temp_low4bits = (char)((pADC->TEMPERATURE) & 0x000F);
                                
                                /* Next statement shifts the old random number left by 4 bits. */
                                rand_num = rand_num << 4;
                                
                                /* Next statement "shifts" the new bits in by adding them. */
                                rand_num = rand_num + temp_low4bits;            
                        }
                }
                else /* This is a module 1 interrupt. */
                {
                        /* Handle module 1 interrupts here. */
                }
        }?
}

審核編輯:郭婷

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

    關(guān)注

    48

    文章

    7496

    瀏覽量

    151087
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5325

    瀏覽量

    120054
收藏 人收藏

    評論

    相關(guān)推薦

    DS2148/DS21348 Hardware Mode

    Semiconductor/Maxim DS2148/DS21348 selectable E1 or T1 line interface unit (LIU) in hardwar
    發(fā)表于 04-20 09:09 ?1528次閱讀
    <b class='flag-5'>DS2148</b>/<b class='flag-5'>DS21348</b> Hardware Mode

    Additional Pulse Amplitude Set

    IntroductionThis application note provides the register settings for the DS2148/DS21348/DS21Q48/
    發(fā)表于 04-20 09:15 ?666次閱讀

    Using DS2148/348 as Repeater

    Abstract: Application Note 387 describes the use of the Dallas Semiconductor/Maxim DS2148/DS21348
    發(fā)表于 04-20 09:40 ?986次閱讀
    Using <b class='flag-5'>DS2148</b>/348 as Repeater

    DS2148TN+ 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS2148TN+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS2148TN+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS2148TN+真值表,DS214
    發(fā)表于 01-14 18:59
    <b class='flag-5'>DS2148</b>TN+ 接口 - 電信

    DS21348TN+ 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS21348TN+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS21348TN+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS21348TN+真值表,DS
    發(fā)表于 01-14 19:00
    <b class='flag-5'>DS21348</b>TN+ 接口 - 電信

    DS21348T+ 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS21348T+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS21348T+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS21348T+真值表,DS213
    發(fā)表于 01-14 19:01
    <b class='flag-5'>DS21348</b>T+ 接口 - 電信

    DS21348G+ 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS21348G+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS21348G+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS21348G+真值表,DS213
    發(fā)表于 01-14 19:02
    <b class='flag-5'>DS21348</b>G+ 接口 - 電信

    DS21348GN+ 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS21348GN+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS21348GN+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS21348GN+真值表,DS
    發(fā)表于 01-14 19:28
    <b class='flag-5'>DS21348</b>GN+ 接口 - 電信

    DS21348G 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS21348G相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS21348G的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS21348G真值表,DS21348
    發(fā)表于 01-14 19:40
    <b class='flag-5'>DS21348</b>G 接口 - 電信

    DS21348T 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS21348T相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS21348T的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS21348T真值表,DS21348
    發(fā)表于 01-14 19:41
    <b class='flag-5'>DS21348</b>T 接口 - 電信

    DS2148T 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS2148T相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS2148T的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS2148T真值表,DS2148T
    發(fā)表于 01-14 19:41
    <b class='flag-5'>DS2148</b>T 接口 - 電信

    DS21348TN 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS21348TN相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS21348TN的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS21348TN真值表,DS213
    發(fā)表于 01-14 19:42
    <b class='flag-5'>DS21348</b>TN 接口 - 電信

    DS2148GN+ 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS2148GN+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS2148GN+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS2148GN+真值表,DS214
    發(fā)表于 01-14 19:50
    <b class='flag-5'>DS2148</b>GN+ 接口 - 電信

    DS2148G 接口 - 電信

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS2148G相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有DS2148G的引腳圖、接線圖、封裝手冊、中文資料、英文資料,DS2148G真值表,DS2148G
    發(fā)表于 01-30 18:12
    <b class='flag-5'>DS2148</b>G 接口 - 電信

    DS2148DS21348DS21Q48、DS21Q348和DS21448的附加脈沖幅度設(shè)置

      本應(yīng)用筆記提供了DS2148/DS21348/DS21Q48/DS213Q48和DS21448的寄存器設(shè)置,用于配置發(fā)送器的脈沖幅度不同
    的頭像 發(fā)表于 02-13 15:42 ?933次閱讀