我們先普及一個概念,單片機(即Microcontroller Unit;MCU)里面有什么。一個人最重要的是大腦,身體的各個部分都在大腦的指揮下工作。MCU跟人體很像,簡單來說是由一個最重要的內核加其他外設組成,內核就相當于人的大腦,外設就如人體的各個功能器官。下面我們來簡單介紹下51單片機和STM32單片機的結構。
1. 51系統結構
51系統結構框圖
我們說的51一般是指51系列的單片機,型號有很多,常見的有STC89C51、AT89S51,其中國內用的最多的是STC89C51/2,下面我們就以STC89C51來講解,并以51簡稱。
1. 內核
51單片機由一個IP核和片上外設組成,IP核就是上圖中的CPU,片上外設就是上圖中的:時鐘電路、SFR和RAM、ROM、定時/計數器、并行I/O口、串行I/O口、中斷系統。IP核跟外設之間由系統總線連接,且是8bit的,速度有限。
51內核是上個世紀70年代Intel公司設計的,速度只有12M,外設是IC廠商(STC)在內核的基礎上添加的,不同的IC廠商會在內核上添加不同的外設,從而設計出各具特色的單片機。這里Intel屬于IP核廠商,STC屬于IC廠商。我們后面要講的STM32也一樣,ARM屬于IP核廠商,ARM給ST授權,ST公司在Cortex-M3內核的基礎上設計出STM32單片機。
2. 外設
我們在學習51的時候,關于內核部分接觸的比較少,使用的最多的是片上外設,我們在編程的時候操作的也就是這些外設。
編程的時候操作的寄存器位于SFR和RAM這個部分,其中SFR(特殊功能寄存器)占有 128字節(實際上只用了 26 個字節,只有 26 個寄存器,其他都屬于保留區),RAM占有 128 字節,我們在程序中定義的變量就是放在RAM中。其中SFR和RAM在地址上是重合的,都是在80~FF地址區間,但在物理區間上是分開的,所以51的RAM是有256個字節。
編寫好的程序是燒寫到ROM區。剩下的外設都是我們非常熟悉的IO口,串口、定時器、中斷這幾個外設。
2. STM32系統結構
STM32系統結構框圖
1. 內核
在系統結構上,STM32和51都屬于單片機,都是由內核和片上外設組成。只是STM32使用的Cortex-M3內核比51復雜得多,優秀得多,支持的外設也比51多得多,同時總線寬度也上升到32bit,無論速度、功耗、外設都強于51。
從結構框圖上看,對比51內核只有一種總線,取指和取數共用。Cortex-M3內部有若干個總線接口,以使CM3能同時取址和訪內(訪問內存),它們是:
指令存儲區總線(兩條)、系統總線、私有外設總線。有兩條代碼存儲區總線負責對代碼存儲區(即FLASH外設)的訪問,分別是I-Code總線和D-Code總線。
I-Code用于取指,D-Code用于查表等操作,它們按最佳執行速度進行優化。
系統總線(System)用于訪問內存和外設,覆蓋的區域包括SRAM,片上外設,片外RAM,片外擴展設備,以及系統級存儲區的部分空間。
私有外設總線負責一部分私有外設的訪問,主要就是訪問調試組件。它們也在系統級存儲區。
還有一個DMA總線,從字面上看,DMA是data memory access的意思,是一種連接內核和外設的橋梁,它可以訪問外設、內存,傳輸不受CPU的控制,并且是雙向通信。簡而言之,這個家伙就是一個速度很快的且不受老大控制的數據搬運工,這個在51里面是沒有的。
2. 外設
從結構框圖上看, STM32比51的外設多得多,51有的串口、定時器、IO口等外設 STM32 都有。STM32還多了很多特色外設:如FSMC、SDIO、SPI、I2C等,這些外設按照速度的不同,分別掛載到AHB、APB2、APB1這三條總線上。
責任編輯:lq
-
mcu
+關注
關注
146文章
17019瀏覽量
350375 -
STM32
+關注
關注
2266文章
10876瀏覽量
354932 -
51單片機
+關注
關注
273文章
5699瀏覽量
123230
原文標題:51單片機與STM32單片機架構的區別
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論