chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

STM32芯片UID話題

茶話MCU ? 來源:ST MCU 信息交流 ? 2020-06-15 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

絕大多數(shù)STM32系列的芯片都在固定的地方放置了長(zhǎng)度為96位的唯一身份識(shí)別碼,簡(jiǎn)稱UID,只有極少數(shù)STM32系列芯片內(nèi)部沒有該UID,比方超值型STM32F0x0系列,STM32F100系列。具體到哪顆芯片到底有沒有UID,在芯片數(shù)據(jù)手冊(cè)的首頁都有明確的說明,無需猜測(cè)。如下圖所以:

芯片所對(duì)應(yīng)的參考手冊(cè)里,有對(duì)該UID存放地址的詳細(xì)介紹。地址因不同系列或子序列而不同。

關(guān)于這個(gè)UID常有人有些疑問,有幾個(gè)問題在這里稍微總結(jié)下:

1、有無問題。上面說了絕大部分STM32都內(nèi)置UID,具體以查看數(shù)據(jù)手冊(cè)為準(zhǔn)。

2、唯一性問題。該UID的唯一性是靠96位這個(gè)整體來保證其唯一性,你若截取部分就不保證了。

3、內(nèi)容問題。有人對(duì)這個(gè)UID內(nèi)容似乎很好奇,這點(diǎn)在STM32參考手冊(cè)里并無詳細(xì)描述,但這并不影響使用?!疽?yàn)?a target="_blank">STM8有些芯片也有96位UID,那里有較為詳細(xì)的介紹,涉及芯片WAFER生產(chǎn)加工工程中的一些各種坐標(biāo)信息、wafer編號(hào)信息、產(chǎn)品批號(hào)信息等】

4、地址問題。芯片UID的存放地址要到芯片對(duì)應(yīng)的參考手冊(cè)里去查對(duì)。特別要提醒的是,并非所有STM32系列的UID信息存放在某個(gè)起始地址開始的連續(xù)空間內(nèi)。

5、怎么用的問題。說實(shí)在的,這個(gè)就很難說了,反正STM32有這個(gè)特性在,肯定沒有固定不變的用法。具體怎么用就看你自己了。對(duì)于該UID,STM32參考手冊(cè)給了些大致應(yīng)用方向的介紹:

簡(jiǎn)單點(diǎn)說,該UID可以做特定序列號(hào);做FLASH編程的安全密鑰;激活安全啟動(dòng)流程。據(jù)我所知,曾有人拿這個(gè)UID碼作為唯一發(fā)射碼。中間按個(gè)做密鑰配合加密技術(shù)的應(yīng)用涉及到很專業(yè)的內(nèi)容, ST官方也有不少這方面的培訓(xùn)材料,有興趣的可以找相關(guān)資料進(jìn)一步了解學(xué)習(xí)。

相對(duì)用的比較多的就是基于該UID設(shè)計(jì)用戶程序的安全啟動(dòng)。其大致原理就是,用戶程序第一次運(yùn)行時(shí)將預(yù)定的未被改寫過FLASH地址寫入本芯片UID數(shù)據(jù),之后每次啟動(dòng)都會(huì)重讀UID數(shù)據(jù)并與特定FLASH地址的內(nèi)容進(jìn)行比對(duì),若比對(duì)成功則正常運(yùn)行,否則進(jìn)入異常處理,不予正常運(yùn)行程序。一般來講,編寫UID那一步在產(chǎn)品出廠前就完成了。

這里所說的第一次運(yùn)行,就是指程序運(yùn)行后,到預(yù)定的FLASH地址去讀取內(nèi)容,發(fā)現(xiàn)該處是被擦除過且未被改寫的數(shù)據(jù)狀態(tài)[一般為全1狀態(tài)],并將UID數(shù)據(jù)寫入相應(yīng)的FLASH區(qū)域,這次運(yùn)行視為第一次運(yùn)行。

下面使用STM32L4芯片就上面應(yīng)用做個(gè)簡(jiǎn)單的代碼實(shí)現(xiàn)示范,僅供參考。注意,不同STM32芯片在FLASH編程這個(gè)地方并不完全一樣。

先做些基本的準(zhǔn)備工作。

我們根據(jù)實(shí)際應(yīng)用程序情況預(yù)留出一塊地址空間,我在下面示例中將STM32L476RG內(nèi)部FLASH中間位置抽出1頁來存放UID【注:很多STM32系列都具備OTP空間,也可以將UID寫在這個(gè)區(qū)域】。STM32L4的FLASH編程采用雙字編程,在給定FLASH編程地址時(shí),注意8字節(jié)對(duì)齊。到相應(yīng)的參考手冊(cè)查找UID的地址及存放情況【即是連續(xù)存放還是分散存放】。

準(zhǔn)備工作差不多了,就可以嘗試組織程序代碼了。

程序流程很簡(jiǎn)單。先判斷指定FLASH地址是否為全1,如果是讀取當(dāng)前芯片UID并填寫到相應(yīng)地址;如果不是全1,則讀取指定FLASH地址空間內(nèi)容跟當(dāng)前芯片UID數(shù)據(jù)比較,若正確,正常運(yùn)行程序,若二者不符,則進(jìn)入異常處理,不正常運(yùn)行功能代碼。

【下面是監(jiān)測(cè)到指定flash地址未被改寫過,進(jìn)入U(xiǎn)ID內(nèi)容填充的FLASH編程代碼】

【下面是監(jiān)測(cè)到指定flash地址已被改寫過,進(jìn)入比較判斷及相應(yīng)處理的代碼】

上面代碼是基于STM32L476芯片和STM32L4Cube庫(kù)而編寫的,主要介紹下大致實(shí)現(xiàn)過程,簡(jiǎn)單直觀,無須過多解釋。

不過,在實(shí)際應(yīng)用過程中,這段功能代碼就不要如此直白明了。這里給幾點(diǎn)參考建議:

1、代碼編寫過程中,F(xiàn)LASH地址盡量不要一次性直接給出,最好幾經(jīng)變換后得出;

2、被存放的UID在不破壞唯一性的情況下可以適當(dāng)做些變換后存放;

3、將這部分代碼拆分成幾個(gè)相互獨(dú)立而有一定關(guān)聯(lián)的不同函數(shù)塊來處理??梢钥紤]將有的功能塊放在用戶主程序里,有的夾在正常的中斷程序里,包括嵌套的中斷程序里。

4、用來存放UID的flash地址盡量不要連續(xù),最好在不同功能塊訪問相應(yīng)的地址;

5、如果可能,考慮使用兩套完全獨(dú)立的UID改寫、比對(duì)處理代碼。即使用兩套FLASH存儲(chǔ)區(qū)域和比對(duì)代碼,只有兩套都比對(duì)成功后才正常運(yùn)行程序,否則任何一套比對(duì)失敗都進(jìn)入保護(hù)狀態(tài)。

因?yàn)閯偤米罱腥苏勂疬@方面的話題,就順便聊聊上面這些,權(quán)作參考。另外,還應(yīng)該充分利用芯片的讀寫保護(hù)機(jī)制以及某些系列已經(jīng)具有的信息安全保護(hù)機(jī)制,如PCROP、TrustZone等。還有,我們可以根據(jù)自身產(chǎn)品特點(diǎn)設(shè)計(jì)出一些結(jié)合硬件線路、機(jī)械組裝的特定自檢流程,讓盜版者在生產(chǎn)加工環(huán)節(jié)遇到麻煩。這些地方都留給每個(gè)設(shè)計(jì)者大量的發(fā)揮空間,來保護(hù)自己的知識(shí)產(chǎn)權(quán)。

總之,關(guān)于產(chǎn)品的產(chǎn)權(quán)保護(hù),應(yīng)該從產(chǎn)品規(guī)劃之初就著手考慮應(yīng)對(duì)方案了,從最早的芯片選型開始,最好回避選用市面上使用過于普遍且老舊的芯片系列。相信芯片商在推陳出新的過程中也有安全性這方面的考量,使得芯片在這方面的性能越來完善和強(qiáng)大。

最后順便提醒下,當(dāng)我們的程序監(jiān)測(cè)到發(fā)生侵權(quán)進(jìn)入保護(hù)狀態(tài)時(shí),目的是保護(hù)自己的產(chǎn)權(quán)不受侵害。這個(gè)過程中我們可能會(huì)對(duì)代碼采取些行動(dòng),阻止其正常運(yùn)行,但注意不要因此而給第三方帶來人身傷害。打個(gè)比方,假設(shè)你設(shè)計(jì)的產(chǎn)品是馬達(dá)控制類交通工具,當(dāng)發(fā)現(xiàn)有人盜版時(shí),如果你在代碼里只是簡(jiǎn)單粗暴地對(duì)代碼進(jìn)行破壞而完全不顧破壞后的異常代碼可能導(dǎo)致什么后果,那就不妙了。

聲明:本文內(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)注

    463

    文章

    53863

    瀏覽量

    463127
  • 身份識(shí)別
    +關(guān)注

    關(guān)注

    1

    文章

    58

    瀏覽量

    13058
  • STM32芯片
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    4840

原文標(biāo)題:STM32芯片UID話題

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    IEEE 802.11af 與空白頻譜無線技術(shù)的話題

    IEEE 802.11af 與空白頻譜無線技術(shù)的話題
    的頭像 發(fā)表于 12-14 15:12 ?1320次閱讀

    什么是(UID)寄存器

    產(chǎn)品唯一身份標(biāo)識(shí)(UID)寄存器(80bit) UID寄存器存儲(chǔ)了芯片的唯一身份標(biāo)識(shí)符,UID芯片生產(chǎn)時(shí)寫入,用戶無法修改。
    發(fā)表于 12-05 06:28

    XL2417D無線收發(fā)芯片UID讀取的操作流程

    XL2417D芯片是一款低功耗、高性能和高度集成的SoC,帶有2.4G收發(fā)器。它集成了高性能2.4GHz射頻收發(fā)器、豐富的基帶功能、32位MCU和各種外圍IO。XL2417D的2.4G射頻收發(fā)
    的頭像 發(fā)表于 09-28 09:16 ?576次閱讀
    XL2417D無線收發(fā)<b class='flag-5'>芯片</b><b class='flag-5'>UID</b>讀取的操作流程

    RT-Thread支持STM32H723VG芯片嗎?

    RT-Thread支持STM32H723VG芯片嗎,我現(xiàn)在的工程是裸板工程,芯片STM32H723VG的芯片,在構(gòu)建工程時(shí)中找不到對(duì)應(yīng)的
    發(fā)表于 09-22 06:57

    請(qǐng)問如何保證UID(唯一ID)的唯一性?

    如何保證UID(唯一ID)的唯一性?
    發(fā)表于 08-21 08:18

    如何將 UID 代碼綁定到 M031 LDROM 和 APROM 固件?

    UID 代碼綁定到 M031 LDROM 和 APROM 固件
    發(fā)表于 08-20 06:38

    替換STM32f429I芯片

    用GD32F芯片直接STM32f429i替換芯片,要求不改電路板,軟件稍作修改?
    發(fā)表于 07-09 22:09

    RT-Thread支持STM32H723VG芯片嗎?

    RT-Thread支持STM32H723VG芯片嗎,我現(xiàn)在的工程是裸板工程,芯片STM32H723VG的芯片,在構(gòu)建工程時(shí)中找不到對(duì)應(yīng)的
    發(fā)表于 06-11 08:28

    使用ST25R3911B已經(jīng)獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內(nèi)部數(shù)據(jù),怎么做?

    使用ST25R3911B已經(jīng)獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內(nèi)部數(shù)據(jù),有相關(guān)的歷程嗎?
    發(fā)表于 06-09 08:01

    使用ST25R3911B已經(jīng)獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內(nèi)部數(shù)據(jù),怎么解決?

    使用ST25R3911B已經(jīng)獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內(nèi)部數(shù)據(jù),有相關(guān)的歷程嗎?
    發(fā)表于 06-04 06:25

    Linux黑客入侵檢測(cè)的排查思路

    檢查是否有UID和GID是0的賬號(hào) UID為0代表具有root權(quán)限。
    的頭像 發(fā)表于 05-23 15:13 ?540次閱讀
    Linux黑客入侵檢測(cè)的排查思路

    stm32f103c8t6主控芯片無人機(jī)原理圖

    stm32f103c8t6主控芯片無人機(jī)原理圖
    發(fā)表于 04-29 17:02 ?3次下載

    邊緣AI應(yīng)用爆火!STM32N6芯片憑何領(lǐng)跑AI眼鏡和機(jī)器人賽道?

    STM32N6芯片就發(fā)揮了重要的作用。為此,記者特別專訪了意法半導(dǎo)體中國(guó)區(qū)微控制器、數(shù)字IC與射頻產(chǎn)品部市場(chǎng)經(jīng)理丁曉磊,請(qǐng)她分享了關(guān)于STM32N6芯片的性能和架構(gòu)優(yōu)勢(shì),以及在AI眼鏡
    的頭像 發(fā)表于 04-29 13:52 ?4842次閱讀
    邊緣AI應(yīng)用爆火!<b class='flag-5'>STM32</b>N6<b class='flag-5'>芯片</b>憑何領(lǐng)跑AI眼鏡和機(jī)器人賽道?

    用于LEGIC Advant UID/序列號(hào)的NFC讀卡器,為什么無法讀取這些卡的UID/序列號(hào)?

    我目前正在開發(fā)一個(gè)小展示柜,其中 LEGIC Advant 卡 (CTC) 的 UID/序列號(hào)應(yīng)由 NFC 閱讀器讀取。在當(dāng)前的設(shè)置中,我有一個(gè)使用 MFRC522 芯片的 ESP32。不幸
    發(fā)表于 04-02 08:07

    如何使用PN7制作具有5180字節(jié)UID的身份驗(yàn)證mifare plus?

    我正在開發(fā)的讀卡器使用 PN5180。 我想讀取 7 字節(jié) UID 的 Mifare Plus ev1 卡 但 PN5180數(shù)據(jù)表僅解釋了4字節(jié) UID 卡。 如何使用 PN7 制作具有 5180 字節(jié) UID 的身份驗(yàn)證 mi
    發(fā)表于 04-01 06:37