ST MCU芯片中的絕大部分都內置一串96位唯一標識碼【unique ID】。時不時有人問起這個東西,尤其最近感,覺詢問它的人甚是熱鬧。這里跟大家一起簡單分享下。
上面說了ST MCU芯片中的絕大部分都帶UID,也就是說并非所有ST MCU芯片都帶它。到底誰帶誰不帶,從各自芯片數據手冊的首頁即可確認。如果首頁沒有明確寫明,就表示該芯片沒有UID或者說即使相應地址有數據但不保證其唯一性。
比方在STM8系列中,STM8S0XX、STM8L0XX系列芯片就不帶UID的。
在STM32家族中,STM32F0系列中的STM3F030子系列、STM32F070子系列也是不帶UID的【如果此處說錯,遵照數據手冊所言】,而STM32F042、STM32F071、STM32F031、STM32F051等是帶UID的。這點也不用太花心思記它,知道去芯片數據手冊首頁核查就好。
該UID對用戶來講是只讀的,在一些對數據具有唯一性要求、數據加密操作等場合可以派上用場。ST MCU芯片中的這個UID 是對整串92位數據保證唯一性,如果你截取其中一部分就不保證唯一性了。
STM32芯片UID的詳細描述是在各系列的參考手冊里。比方,STM32F0系列UID介紹如下。  大致內容就是芯片WAFER的坐標信息、編號信息、產品批號信息等多個數據組合在一起的。關于UID的描述,在STM8數據手冊里描述更為直觀點,截圖如下:

至于對該UID數據的讀取,沒啥特別的。先從ST MCU參考手冊中找到UID的地址信息,從相關地址中取出數據,用幾條賦值語句即可完成。 最后順便提一下,不要把這個UID跟STM32芯片器件ID【DEVICE ID】混為一談,STM32芯片往往還有DEVICE ID,該ID主要包含芯片料號信息和晶圓DIE版本等信息。它可以通過調試接口訪問或被用戶軟件訪問。當我們用STLINK UTILITY通過STLINK調試器連接STM32目標板時就可看到有關DEVICE ID的信息。 下圖就是使用STLINK UTILITY通過STLINK連接STM32F072目標板時看到的有關DEVICE ID的信息。 
此外,對于STM32芯片,除了上面提到的UID,DEVICE ID外,還有其它基于內部調試組件的JTAG ID,有興趣的話可以自行繼續了解。
往期話題l鏈接: 1、一個與System Bootloader相關的話題 2、關于STM32Cube的幾個常見問題 3、STM32CUBE相關技術手冊哪里找 4、STM32中國峰會上展示了哪些成品? 5、一個關于STM32 CAN出錯恢復的話題 6、STM32開發所需的基本資料與開發工具 |