??每一個STM32單片機出廠的時候都有全球唯一的ID,當在數據安全性比較高的地方,需要對每一個接入系統的芯片進行身份驗證,那么這個芯片自身的ID號就可以作為它的身份信息。
產品唯一的身份標識非常適合:
用來作為序列號(例如USB字符序列號或者其他的終端應用)
用來作為密碼,在編寫閃存時,將此唯一標識與軟件加解密算法結合使用,提高代碼在閃存存儲器內的安全性。
用來激活帶安全機制的自舉過程
??96位的產品唯一身份標識所提供的參考號碼對任意一個STM32微控制器,在任何情況下都是唯一的。用戶在何種情況下,都不能修改這個身份標識。
??這個96位的產品唯一身份標識,按照用戶不同的用法,可以以字節(8位)為單位讀取,也可以以半字(16位)或者全字(32位)讀取。
??不僅可以讀取到芯片的ID,還能讀出芯片的存儲器容量。
??芯片型號也同樣可以讀出來。
下面就通過代碼來讀取這幾個數據。
//讀取芯片ID
void GetChipID ( void )
{
u32 CpuID[3]; //小端模式
CpuID[0] = * ( vu32 * ) ( 0x1ffff7e8 ); //高32位地址
CpuID[1] = * ( vu32 * ) ( 0x1ffff7ec ); //中32位地址
CpuID[2] = * ( vu32 * ) ( 0x1ffff7f0 ); //低32位地址
printf ( "此芯片唯一ID為:0x%x-%x-%x rn", CpuID[0], CpuID[1], CpuID[2] );
}
//獲取芯片Flash大小
void GetFlashSize ( void )
{
u16 stm32_Flash_Size;
stm32_Flash_Size = * ( u16 * ) ( 0x1FFFF7E0 ); //閃存容量寄存器
printf ( "芯片閃存容量大小為:%x rn", stm32_Flash_Size );
}
//讀取芯片型號
void Main_Chip_Type(void)
{
u32 type;
type = *( unsigned int * )( 0xE0042000 ); //MCU ID
printf ( "芯片型號為:0x%x rn", type );
}
int main ( void )
{
NVIC_PriorityGroupConfig ( NVIC_PriorityGroup_2 );
uart_init ( 115200 );
delay_init(); //延時函數初始化
LED_Init(); //初始化與LED連接的硬件接口
GetChipID();
GetFlashSize();
Main_Chip_Type();
while(1);
}
通過串口打印出芯片的ID
此芯片唯一ID為: 0x66eff51-51578248-87074312
芯片閃存容量大小為: 40
芯片型號為: 0x20036410
然后通過單步調試,直接觀察內存中的數據。
然后觀察內存中地址0x1FFFF7E0開始的數據
??可以看出0x1FFFF7E0開始的16位數據為0x0040換算為10進制數據就是64,說明當前用的芯片的容量是64K。接下來從0x1ffff7e8地址開始的12個字節,也就是96位存儲的就是芯片的ID。內存中ID號存儲為低位在前高位在后,而打印出來的數據是高位在前,低位在后。打印的前32位是 06 6e ff 51對應在內存中的存儲順序51應該是第一位,06是最后一位。
??最后在0xE0042000地址查看單片機的型號。
??低12位數據是 0x410,也就是設備編碼為0x410,通過對比文檔可以看出這個是中容量產品。高16位是0x2003,對比文檔可以看出,這個是中容量產品,版本號為Y。
??由于這些ID號都存儲在指定的內存地址中,而系統沒有提供專用的讀取這些ID號的函數,所以讀取數據的時候,只能通過指針的方式去讀取,首先將數據加一級指針轉換為地址,然后加二級指針,表示讀取當前地址中存儲的內容。這種操作方法在庫函數的頭文件中使用的比較多。比如在stm32f10x.h中就可以看到對GPIOA的定義。
#define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral base address in the alias region */
#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)
#define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
typedef struct
{
__IO uint32_t CRL;
__IO uint32_t CRH;
__IO uint32_t IDR;
__IO uint32_t ODR;
__IO uint32_t BSRR;
__IO uint32_t BRR;
__IO uint32_t LCKR;
} GPIO_TypeDef;
將地址值逐個替換后為 #define GPIOA ((GPIO_TypeDef *) 0x4001 0800),相當于在 0x4001 0800 地址處定義了GPIOA的結構體。查閱芯片資料可知,GPIOA的起始地址就是0x4001 0800。
這樣操作GPIOA的的時候就和上面讀取ID的方法是一樣的,相當于直接讀寫對應地址中的值。
上一篇:STM32F103單片機RTC實時時鐘的使用
下一篇:STM32F103單片機PWM單脈沖輸出模式
推薦閱讀
史海拾趣
泰科天潤(GPT)公司電子行業發展的五個故事
故事一:初創與早期發展
2011年,正值國內碳化硅產業從2英寸晶圓向4英寸迭代的關鍵時期,泰科天潤半導體科技(北京)有限公司應運而生,成為國內最早一批建設碳化硅晶圓制造工廠的民營企業。公司初創時面臨著技術、資金、市場等多方面的挑戰,但憑借對碳化硅產業的堅定信念和持續投入,逐步搭建起生產線,完成了設備采購和工藝調控,為后續的快速發展奠定了堅實基礎。
故事二:產品線擴展與技術創新
隨著技術的不斷積累和市場的逐步拓展,泰科天潤的產品線日益豐富。公司不僅成功推出了600V至1700V系列的碳化硅肖特基二極管產品,實現了批量生產,還不斷向更高端的技術領域邁進。2023年,泰科天潤推出了多款新品,包括1200V SiC MOSFET、2000V SiC二極管等,并在市場上取得了顯著的銷售業績。這些新產品的推出,不僅豐富了公司的產品線,也進一步鞏固了泰科天潤在碳化硅功率器件領域的領先地位。
故事三:生產線建設與產能擴張
為了滿足日益增長的市場需求,泰科天潤不斷加大生產線的建設和產能的擴張。2023年,公司啟動了北京總部基地6/8英寸生產線的建設,目前正在開展土建及樁基工程相關工作,預計2025年年初可實現通線并正式投產。此外,泰科天潤還在湖南等地建設了多條生產線,實現了產能的快速增長。這些生產線的建設和產能擴張,為公司的持續發展提供了有力保障。
故事四:市場布局與業務拓展
泰科天潤在市場布局上采取了多元化的戰略,不僅深耕國內市場,還積極拓展國際市場。公司積極參與各類行業展會和論壇,與國內外客戶和合作伙伴建立了廣泛的聯系。同時,泰科天潤還根據不同行業的需求,推出了多套行業解決方案,進一步拓寬了市場應用領域。這些努力使得泰科天潤在碳化硅功率器件市場上占據了重要的位置。
故事五:超級充電站項目
泰科天潤不僅在產品研發和生產上取得了顯著成績,還在市場應用上進行了大膽嘗試。2023年7月,泰科天潤攜手瀏發集團打造的全國產碳化硅超級充電站正式投入運營。這是湖南縣級城市首座集“光伏發電、電池儲能、液冷超充”于一體的全碳化硅新能源汽車充電站。該項目的成功實施,不僅展示了泰科天潤在碳化硅充電技術上的創新實力,也為新能源汽車充電技術的發展提供了新的思路和解決方案。
在電子行業中,有許多偉大的企業(GREATECS公司,這里假設為泛指多個杰出電子企業)通過不同的路徑和策略實現了顯著的發展。以下是五個相關故事,每個故事均基于事實,旨在展示這些企業如何成長和壯大。
1. 通用電氣(General Electric, GE)的多元化擴張
通用電氣(GE)的故事始于1888年,由托馬斯·愛迪生創立,最初專注于電力和照明領域。隨著時間的推移,GE通過一系列的戰略并購和內部創新,逐漸擴展到電機、電動機制造、航空、醫療設備、核能等多個領域。在20世紀,GE成為全球最大的多元化企業之一,其業務遍布全球。特別是在杰克·韋爾奇擔任CEO期間(1981-2001),通過大規模的并購和擴張,GE的營業收入和市值顯著增長。然而,2008年金融危機后,GE面臨經濟困境,隨后進行了戰略調整,出售金融資產并重點發展核心業務,如今仍是全球領先的科技和工業公司之一。
2. 索尼(Sony)的創新之路
索尼公司成立于1946年,最初由井深大和盛田昭夫創立,起初是一家小型電子產品制造商。索尼的崛起得益于其持續的創新精神和對消費者需求的敏銳洞察。1958年,索尼推出了世界上第一臺便攜式晶體管收音機,開啟了便攜式電子產品的新時代。隨后,索尼又推出了Walkman便攜式音樂播放器、PlayStation游戲機等一系列革命性產品,這些產品不僅改變了人們的娛樂方式,也奠定了索尼在全球電子行業的領先地位。索尼的成功在于其不斷追求技術創新和產品質量,以及對市場趨勢的準確把握。
3. 三星電子的崛起
三星電子是韓國最大的電子企業,其發展歷程充滿了挑戰與機遇。起初,三星主要從事貿易和低端電子產品制造。然而,在20世紀80年代末至90年代初,三星決定實施“新經營”戰略,通過大規模投資研發、提升產品質量和品牌形象,實現了從低端制造商向高端科技企業的轉型。在半導體、智能手機、顯示面板等領域,三星取得了重大突破,成為全球市場的領導者。三星的成功在于其強大的研發能力、高效的供應鏈管理以及對市場變化的快速響應。
4. 英特爾(Intel)的芯片霸主地位
英特爾公司成立于1968年,最初是一家專注于半導體存儲器的初創企業。然而,隨著日本存儲器制造商的崛起,英特爾面臨了巨大的競爭壓力。在關鍵時刻,英特爾決定放棄存儲器業務,轉而專注于微處理器(CPU)的研發和生產。這一戰略轉型使英特爾迅速崛起為全球最大的CPU制造商,其“Intel Inside”計劃更是深入人心,成為個人電腦行業的標準配置。英特爾的成功在于其強大的技術創新能力、對市場需求的精準把握以及與全球合作伙伴的緊密合作。
5. 華為的技術突破與全球化戰略
華為作為中國電子行業的代表企業,其發展歷程充滿了傳奇色彩。起初,華為主要從事電信設備的研發和銷售。然而,隨著技術的不斷進步和市場需求的不斷變化,華為逐漸將業務擴展到智能手機、云計算、人工智能等多個領域。華為的成功在于其持續的技術研發投入、對全球市場的深入洞察以及靈活的市場策略。特別是在5G技術方面,華為取得了重大突破,成為全球領先的5G解決方案提供商。同時,華為還積極推動全球化戰略,與全球多個國家和地區的運營商建立了緊密的合作關系。
華銘智能是一家在ETC領域具有深厚技術積累的企業。為了推動ETC行業的發展,華銘智能積極尋求跨界合作的機會。公司與多家汽車制造商、智能交通系統提供商等建立了緊密的合作關系,共同研發和推廣ETC技術。通過跨界合作,華銘智能不僅拓展了自身的業務范圍,還推動了ETC技術在更多領域的應用。
迪一電子公司成立于2006年,最初只是一家規模較小的半導體電子元器件制造企業。在創業初期,公司面臨著資金緊張、技術落后和市場競爭激烈等多重困難。然而,創始人李政堅信半導體行業的發展潛力,帶領團隊不斷研發新產品,提高產品質量,逐漸在市場上贏得了一席之地。
艾邁斯(AMASS)公司創立之初,便專注于智能設備動力連接器領域。面對市場的激烈競爭和技術的不斷更新,公司創始人憑借深厚的行業經驗和前瞻性的眼光,帶領團隊攻克了一個又一個技術難關。他們深入市場調研,精準把握消費者需求,成功推出了一系列具有競爭力的連接器產品。這些產品不僅性能穩定、質量可靠,而且具有極高的性價比,迅速在市場上贏得了良好的口碑。
華潤微一直注重技術創新和研發投入。公司擁有一支高素質的研發團隊,致力于寬禁帶半導體(即第三代半導體)等領域的技術研發。通過不斷的努力和積累,華潤微在新技術研發方面取得了豐碩的成果,成為寬禁帶半導體領域的佼佼者。同時,公司也加大了對封裝測試技術的研發投入,不斷提升其封裝測試能力和技術水平。
經過前兩次的邊做邊學,我們已經創建并可以自由修改自己的平臺了,這次我平來補充一點理論知識,以便加深對CE生成過程的了解。在此之前,需要說明的是CE的目錄結構是很龐大而復雜的,在以后的工作中很多事情會取決于你對目錄結構的了解程度,在此, ...… 查看全部問答∨ |
之前在搞定這5個RC振蕩電路讓你的模擬設計順暢很多 里wangjiafu1985說文氏橋是經典中的經典,同時SOSO也建議對這個經典中的經典開個討論的專貼,因此開了此貼以供大家討論文氏橋震蕩電路。 下面我就拋磚引玉做個簡單介紹。 & ...… 查看全部問答∨ |
1. LD A, #$10 2. LD A, $10 3. LD A, ($10,SP) 4. LD A,($10,X) 第一個$10,是個立即數10H 第二個$10是內存地址10H 第三個$10是什么? 第四個$10應該是內存地址10H,還是數字10H? 感覺STM的文檔,沒有仔細說明語法.很難理解… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 英特爾被曝向臺積電下達 2nm 晶圓代工訂單,成為該制程首批客戶
- Akamai 研究發現:在亞太地區及日本,AI 驅動的應用程序遭受了 510 億次 Web 攻擊,年同比增長達 73%
- 汽車顯示屏——第1部分:TFT LCD、OLED和micro-LED顯示屏基本原理
- 英特爾首秀上海車展:以“芯”賦能,攜手合作伙伴推動全車智能化
- 中國首個高速L3商用解決方案!華為新一代ADS 4正式發布
- 增強自主移動機器人的安全性
- Cadence 推出業界首款 12800MT/s DDR5 MRDIMM Gen2 內存 IP 系統解決方案
- 消息稱英特爾本周內公布 20%+ 大裁員計劃
- 盤點慕尼黑電子展上那些火熱的機器人技術和產品
- AI算力狂飆下的能源困局,ST如何突圍?