吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于51與STM32單片機架構

科技綠洲 ? 來源:匯極星科技 ? 作者:匯極星科技 ? 2023-09-11 10:47 ? 次閱讀

單片機簡介

單片微型計算機簡稱單片機,簡單來說就是集CPU(運算、控制)、RAM(數據存儲-內存)、ROM(程序存儲)、輸入輸出設備(串口、并口等)和中斷系統處于同一芯片的器件,在我們自己的個人電腦中,CPU、RAM、ROM、I/O這些都是單獨的芯片,然后這些芯片被安裝在一個主板上,這樣就構成了我們的PC主板,進而組裝成電腦,而單片機只是將這所有的集中在了一個芯片上而已(一個集成封裝樣式的芯片就是一臺pc,不要把那個開發板電路板也算進去)。

圖片{這個就叫單片機}

我們先普及一個概念,單片機(即Microcontroller Unit;MCU) 里面有什么。一個人最重要的是大腦,身體的各個部分都在大腦的指揮下工作。MCU跟人體很像,簡單來說是由一個最重要的內核加其他外設組成,內核就相當于人的大腦,外設就如人體的各個功能器官。下面我們來簡單介紹下51單片機STM32單片機的結構。

一、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單片機。

  1. 外設
    我們在學習51的時候,關于內核部分接觸的比較少,使用的最多的是片上外設,我們在編程的時候操作的也就是這些外設。

編程的時候操作的寄存器位于SFR和RAM這個部分,其中SFR(特殊功能寄存器)占有 128字節(實際上只用了 26 個字節,只有 26 個寄存器,其他都屬于保留區),RAM占有 128 字節,我們在程序中定義的變量就是放在RAM中。其中SFR和RAM在地址上是重合的,都是在80~FF地址區間,但在物理區間上是分開的,所以51的RAM是有256個字節。

編寫好的程序是燒寫到ROM區。剩下的外設都是我們非常熟悉的IO口,串口、定時器、中斷這幾個外設。

【51單片機的CPU結構】

51單片機內部有一個8位的CPU,包含運算器,控制器及若干寄存器等。

圖片

注意上圖中這個外存儲器是在cpu虛線外面

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里面是沒有的。

  1. 外設

從結構框圖上看

, STM32比51的外設多得多,51有的串口、定時器、IO口等外設 STM32 都有。STM32還多了很多特色外設:如FSMC、SDIO、SPI、I2C等,這些外設按照速度的不同,分別掛載到AHB、APB2、APB1這三條總線上。

(隨著深亞微米工藝技術日益成熟,集成電路芯片的規模越來越大。數字IC從基于時序驅動的設計方法,發展到基于IP核復用的設計方法,并在SOC設計中得到了廣泛應用。在基于IP核復用的SoC(System on Chip的縮寫,稱為系統級芯片,也有稱片上系統)設計中,片上總線設計是最關鍵的問題。為此,業界出現了很多片上總線標準。其中,由ARM公司推出的AMBA片上總線受到了廣大IP開發商和SoC系統集成者的青睞,已成為一種流行的工業標準片上結構。AMBA規范主要包括了AHB(Advanced High performance Bus)系統總線和APB(Advanced Peripheral Bus)外圍總線。)

(中間這段內容我也看了一個大佬的內容然后覺得非常精煉,與其再組織語言去描述,不如直接copy過來供大家閱讀分析)

51單片機特性

1、從內部的硬件到軟件有一套完整的按位操作系統,稱作位處理器(CPU),處理對象不是字或字節而是位。不但能對片內某些特殊功能寄存器的某位進行處理,如傳送、置位、清零、測試等,還能進行位的邏輯運算,其功能十分完備,使用起來得心應手。

2、同時在片內RAM區間還特別開辟了一個雙重功能的地址區間,使用極為靈活,這一功能無疑給使用者提供了極大的方便,

3、乘法和除法指令,這給編程也帶來了便利。很多的八位單片機都不具備乘法功能,作乘法時還得編上一段子程序調用,十分不便。

STM32單片機特性

1、內核:ARM32位Cortex-M3CPU,最高工作頻率72MHz,1.25DMIPS/MHz,單周期乘法和硬件除法

2、存儲器:片上集成32-512KB的Flash存儲器。6-64KB的SRAM存儲器

3、時鐘、復位和電源管理:2.0-3.6V的電源供電和I/O接口的驅動電壓。POR、PDR和可編程的電壓探測器(PVD)。4-16MHz的晶振。內嵌出廠前調校的8MHz RC振蕩電路。內部40 kHz的RC振蕩電路。用于CPU時鐘的PLL。帶校準用于RTC的32kHz的晶振

4、調試模式:串行調試(SWD)和JTAG接口。最多高達112個的快速I/O端口、最多多達11個定時器、最多多達13個通信接口。

二、由PC的操作系統、內核聯想到MCU

操作系統是配置在計算機硬件上的第一層軟件,是對硬件系統的首次擴充。
操作系統定義:一組控制和管理計算機硬件和管理軟件資源,合理對各類作業進行調度,以及方便用戶使用的一組程序的集合(屬于軟件);
一、cpu:

cpu是central process unit的簡稱,是計算機的核心處理器。cpu的作用是運行機器語言指令。高級語言和匯編語言程序被編譯成cpu能理解的機器語言(二級制代碼)后,存入到內存中,cpu就會從內存中讀取并執行這些指令序列,完成程序功能。

包括控制器、寄存器、運算器、時鐘四個部分組成。

運算器是用來進行邏輯計算的,

寄存器是臨時存放中間數據以及指令的;包括程序計數器、指令寄存器、數據寄存器、地址寄存器等。寄存器是匯編語言所研究的對象,匯編語言通過對寄存器的控制(寫入,讀出,加),實現功能。程序計數器和內存的關系:程序計數器記錄了當前執行的指令在內存中年存儲的位置。

控制器是用來控制何時將內存的數據及指令讀入寄存器,何時將寄存器中的值輸出到內存。

時鐘是同步各個部件之間的步調;

二、內存RAM

內存又叫主存,與cpu的寄存器鏈接,用于將數據以及指令輸入到寄存器中;同時也可以接受寄存器的輸出。本質是作為磁盤與寄存器的中間件,起到緩沖作用。斷電后會丟失所有數據。

內存和磁盤的關系:由于磁盤的讀寫速度與cpu相差太大,如果cpu直接從磁盤中讀取數據,會造成cpu計算能力極大的浪費。為了解決這個問題,在磁盤與cpu之間加一個內存,將磁盤存儲的程序以及數據線讀入內存中,cpu直接與內存打交道。此外,由于內存的空間比磁盤小很多,會出現內存不夠用的情況,此時,會將一部分磁盤當做內存來使用,也就是虛擬內存。

三、磁盤ROM

存放數據的,容量比內存大,速度慢。
斷電不會丟失數據。

四、指令

指令是控制cpu按照一定功能運算的機器碼。每一種cpu有自己的一套指令集。高級語言編寫的程序最終也要編譯成可以讓cpu理解的一條條機器指令,才能被cpu執行。cpu除了可以計算數據以外,還可以控制硬件,方法是通過cpu寄存器與I/O端口進行數據交換。計算機中主機與外圍硬件的鏈接方式是通過I/O端口進行的(端口是用于主機寄存器與外圍設備交換數據時臨時存儲數據的寄存器)。所以,指令通過控制cpu的輸出和輸入位置,可以讓cpu寄存器向I/O端口寄存器發送數據,外圍設備通過與I/O寄存器交換數據,從而達到控制外圍設備的效果。而操作系統的作用是封裝一套指令序列,cpu通過執行這套指令序列,可以讓硬件完成一系列動作。而應用程序如果需要對硬件進行操作,只需要將操作系統的這套指令序列復制到自己的程序中即可。復制這套指令的方式就是API(API就是操作系統留給應用程序的一個調用接口,應用程序通過調用操作系統的 API 而使操作系統去執行應用程序的命令。)。從這個角度來看,操作系統就是封裝了控制硬件完成一系列動作的指令序列的集合,這套集合提供給應用程序以及計算機的使用者。從而達到了將人、應用程序與硬件隔離的效果。

五、操作系統的內核

操作系統內核(就是操作系統最核心最底層的一部分代碼(基礎代碼))

內核,是一個操作系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網絡系統,決定著系統的性能和穩定性。

“內核”指的是一個提供硬件抽象層、磁盤及文件系統控制、多任務等功能的系統軟件。一個內核不是一套完整的操作系統。一套基于Linux內核的完整操作系統叫作Linux操作系統,或是GNU/Linux。

現在主流的操作系統內核有四個:Unix、Linux、Windows、OS/2

其他很多各種各樣以及各個版本的系統都是建立在這四種內核的基礎上的。

所以不妨大膽去想MCU是集成版PC,所以操作系統等控制CPU的軟件程序指令就好比你燒錄到單片機里面的程序一樣(暫時這樣理解),那么指令又是如何控制CPU呢?

圖片

圖片

圖片

圖片

圖片cpu只能執行所支持的指令集里的指令,不同公司的產品對應有自己的指令集,cpu是出廠前預先設計制造好的電路,操作系統/軟件程序編寫肯定是要對照著相應產品cpu的指令集,這樣的程序編譯后才能讓cpu執行,也就是控制cpu;

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51188

    瀏覽量

    427284
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10904

    瀏覽量

    213026
  • 存儲
    +關注

    關注

    13

    文章

    4355

    瀏覽量

    86176
  • STM32單片機
    +關注

    關注

    59

    文章

    549

    瀏覽量

    58823
收藏 人收藏

    評論

    相關推薦

    STM32單片機架構詳解

    今天打算繼續總結stm32單片機的基礎知識,鞏固基礎。這里呢,聲明一下,《stm32單片機基礎知識總結》主要基于stm32f1及
    發表于 06-12 16:43 ?7123次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機架構</b>詳解

    51單片機STM32單片機架構的區別在哪

    要的內核加其他外設組成,內核就相當于人的大腦,外設就如人體的各個功能器官。下面我們來簡單介紹下51單片機STM32單片機的結構。1. 51
    發表于 07-01 08:09

    STM32單片機架構

    STM32單片機架構首先問一個問題,“1+1等于幾?”很明顯,你一定能知道這個答案——2那么現在,我們來思考這個答案作為你這個人類來說是怎么處理的?第一是看到這個問題(眼睛)第二信號傳輸到大腦進行
    發表于 01-05 07:56

    stm3251單片機的區別

    單片機的區別 架構 STM32單片機采用了Cortex-M系列的處理器架構,而51
    發表于 11-20 13:18

    51架構51系列單片機概述

    2-1. 51單片機概述2-2. 51架構2-3. 8051引腳功能表述2-4. 常見51系列單片機
    發表于 03-23 12:07 ?62次下載

    51單片機STM32單片機有哪些區別

    大部分朋友可能都知道51單片機stm32單片機也知道一般入門會先學習51單片機在學習
    發表于 08-13 17:32 ?17次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>和<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>有哪些區別

    STM3251單片機如何選擇

    STM32是性價比非常高的32位單片機,片上資源豐富、性價比高、性能不錯;而C51單片機是8位的單片機,應用廣泛、資料眾多,很多人的
    的頭像 發表于 03-08 11:27 ?1.9w次閱讀

    stm32單片機51單片機區別是什么

    單片機也就是單片微型計算機,和集CPU、RAM、ROM、輸入輸出設備、中斷系統在同一個芯片上的器件。 stm32單片機 stm32
    的頭像 發表于 08-19 18:21 ?2.9w次閱讀

    單片機學習】STM3251 區別

    單片機學習】STM3251 區別
    發表于 11-14 15:36 ?18次下載
    【<b class='flag-5'>單片機</b>學習】<b class='flag-5'>STM32</b> 和 <b class='flag-5'>51</b> 區別

    51單片機STM32單片機區別在那里

      ?大部分朋友可能都知道51單片機stm32單片機也知道一般入門會先學習51單片機在學習
    發表于 11-15 15:51 ?76次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>和<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>區別在那里

    51單片機STM32單片機架構的區別

    要的內核加其他外設組成,內核就相當于人的大腦,外設就如人體的各個功能器官。下面我們來簡單介紹下51單片機STM32單片機的結構。1. 51
    發表于 11-17 16:21 ?7次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>與<b class='flag-5'>STM32</b><b class='flag-5'>單片機架構</b>的區別

    詳解STM32單片機51單片機的區別

    分享本文,簡單分析STM3251單片機的區別與取舍之處。
    的頭像 發表于 04-18 10:45 ?3.9w次閱讀

    入門單片機選擇51還是STM32

    入門單片機選擇51還是STM32
    發表于 12-22 09:30 ?6836次閱讀

    全方位對比STM32單片機51單片機

    萌新初入單片機領域,常會遇到STM3251單片機兩大種類,無法選擇其一來提升技術,也不確定哪個單片機更適合后續技術進階提升和發展,今天這篇
    發表于 03-02 14:18 ?3.1w次閱讀
    全方位對比<b class='flag-5'>STM32</b><b class='flag-5'>單片機</b>和<b class='flag-5'>51</b><b class='flag-5'>單片機</b>

    stm3251單片機的區別是什么

    架構差異: STM32是基于ARM Cortex-M系列內核的32位微控制器,具有更高效的處理能力和更豐富的外設。 51單片機是基于8051內核的8位微控制器,處理能力相對較低,外設也
    的頭像 發表于 09-02 09:33 ?916次閱讀
    视频百家乐是真是假| 香港六合彩官方| 克拉克百家乐下载| 做生意门口怎么摆放| 百家乐官网真钱送彩金| bet365手机版| 百家乐娱乐平台官网网| 属鼠做生意办公桌摆貔貅好不好| 百家乐官网博乐城| 赌百家乐官网容易的原| 赌百家乐官网的心得体会| 百家乐官网出千技巧| 百家乐官网怎样捉住长开| 利来国际娱乐网| 大发888移动版| 网络博彩群| 大发888玩法| 大发888通宝| 博彩网站源码| 渭源县| 亿酷棋牌世界官网| 金龙博彩网| 88利来| 168棋牌游戏| 大发888更名网址62| 百家乐桌布无纺布| 真人百家乐视频| 百家乐群sun811| 威尼斯人娱乐场 新世纪| 迷你百家乐的玩法技巧和规则| 缅甸百家乐赌博有假吗| 百家乐最佳注码法| 百家乐投注怎么样| 新濠百家乐娱乐场| 星空棋牌舟山清墩| 博彩乐百家乐官网平台| 至尊百家乐官网贺一航| 博彩网百家乐官网全讯网| 欧洲百家乐官网的玩法技巧和规则 | 百家乐官网平投注法| 真人百家乐官网体验金|