国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32芯片UID話題

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

掃碼添加小助手

加入工程師交流群

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

芯片所對應的參考手冊里,有對該UID存放地址的詳細介紹。地址因不同系列或子序列而不同。

關于這個UID常有人有些疑問,有幾個問題在這里稍微總結下:

1、有無問題。上面說了絕大部分STM32都內置UID,具體以查看數據手冊為準。

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

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

4、地址問題。芯片UID的存放地址要到芯片對應的參考手冊里去查對。特別要提醒的是,并非所有STM32系列的UID信息存放在某個起始地址開始的連續空間內。

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

簡單點說,該UID可以做特定序列號;做FLASH編程的安全密鑰;激活安全啟動流程。據我所知,曾有人拿這個UID碼作為唯一發射碼。中間按個做密鑰配合加密技術的應用涉及到很專業的內容, ST官方也有不少這方面的培訓材料,有興趣的可以找相關資料進一步了解學習。

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

這里所說的第一次運行,就是指程序運行后,到預定的FLASH地址去讀取內容,發現該處是被擦除過且未被改寫的數據狀態[一般為全1狀態],并將UID數據寫入相應的FLASH區域,這次運行視為第一次運行。

下面使用STM32L4芯片就上面應用做個簡單的代碼實現示范,僅供參考。注意,不同STM32芯片在FLASH編程這個地方并不完全一樣。

先做些基本的準備工作。

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

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

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

【下面是監測到指定flash地址未被改寫過,進入UID內容填充的FLASH編程代碼】

【下面是監測到指定flash地址已被改寫過,進入比較判斷及相應處理的代碼】

上面代碼是基于STM32L476芯片和STM32L4Cube庫而編寫的,主要介紹下大致實現過程,簡單直觀,無須過多解釋。

不過,在實際應用過程中,這段功能代碼就不要如此直白明了。這里給幾點參考建議:

1、代碼編寫過程中,FLASH地址盡量不要一次性直接給出,最好幾經變換后得出;

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

3、將這部分代碼拆分成幾個相互獨立而有一定關聯的不同函數塊來處理。可以考慮將有的功能塊放在用戶主程序里,有的夾在正常的中斷程序里,包括嵌套的中斷程序里。

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

5、如果可能,考慮使用兩套完全獨立的UID改寫、比對處理代碼。即使用兩套FLASH存儲區域和比對代碼,只有兩套都比對成功后才正常運行程序,否則任何一套比對失敗都進入保護狀態。

因為剛好最近有人談起這方面的話題,就順便聊聊上面這些,權作參考。另外,還應該充分利用芯片的讀寫保護機制以及某些系列已經具有的信息安全保護機制,如PCROP、TrustZone等。還有,我們可以根據自身產品特點設計出一些結合硬件線路、機械組裝的特定自檢流程,讓盜版者在生產加工環節遇到麻煩。這些地方都留給每個設計者大量的發揮空間,來保護自己的知識產權。

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

最后順便提醒下,當我們的程序監測到發生侵權進入保護狀態時,目的是保護自己的產權不受侵害。這個過程中我們可能會對代碼采取些行動,阻止其正常運行,但注意不要因此而給第三方帶來人身傷害。打個比方,假設你設計的產品是馬達控制類交通工具,當發現有人盜版時,如果你在代碼里只是簡單粗暴地對代碼進行破壞而完全不顧破壞后的異常代碼可能導致什么后果,那就不妙了。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    463

    文章

    54010

    瀏覽量

    466023
  • 身份識別
    +關注

    關注

    1

    文章

    58

    瀏覽量

    13089
  • STM32芯片
    +關注

    關注

    0

    文章

    38

    瀏覽量

    4892

原文標題:STM32芯片UID話題

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    IEEE 802.11af 與空白頻譜無線技術的話題

    IEEE 802.11af 與空白頻譜無線技術的話題
    的頭像 發表于 12-14 15:12 ?1575次閱讀

    什么是(UID)寄存器

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

    XL2417D無線收發芯片UID讀取的操作流程

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

    RT-Thread支持STM32H723VG芯片嗎?

    RT-Thread支持STM32H723VG芯片嗎,我現在的工程是裸板工程,芯片STM32H723VG的芯片,在構建工程時中找不到對應的
    發表于 09-22 06:57

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

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

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

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

    替換STM32f429I芯片

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

    RT-Thread支持STM32H723VG芯片嗎?

    RT-Thread支持STM32H723VG芯片嗎,我現在的工程是裸板工程,芯片STM32H723VG的芯片,在構建工程時中找不到對應的
    發表于 06-11 08:28

    使用ST25R3911B已經獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內部數據,怎么做?

    使用ST25R3911B已經獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內部數據,有相關的歷程嗎?
    發表于 06-09 08:01

    使用ST25R3911B已經獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內部數據,怎么解決?

    使用ST25R3911B已經獲取到Mifare Classic 1k的UID,但是始終獲取不了卡片的內部數據,有相關的歷程嗎?
    發表于 06-04 06:25

    Linux黑客入侵檢測的排查思路

    檢查是否有UID和GID是0的賬號 UID為0代表具有root權限。
    的頭像 發表于 05-23 15:13 ?602次閱讀
    Linux黑客入侵檢測的排查思路

    stm32f103c8t6主控芯片無人機原理圖

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

    邊緣AI應用爆火!STM32N6芯片憑何領跑AI眼鏡和機器人賽道?

    STM32N6芯片就發揮了重要的作用。為此,記者特別專訪了意法半導體中國區微控制器、數字IC與射頻產品部市場經理丁曉磊,請她分享了關于STM32N6芯片的性能和架構優勢,以及在AI眼鏡
    的頭像 發表于 04-29 13:52 ?5020次閱讀
    邊緣AI應用爆火!<b class='flag-5'>STM32</b>N6<b class='flag-5'>芯片</b>憑何領跑AI眼鏡和機器人賽道?

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

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

    如何使用PN7制作具有5180字節UID的身份驗證mifare plus?

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