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