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