在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32芯片內部的總線系統結構

科技綠洲 ? 來源:明解嵌入式 ? 作者:明解嵌入式 ? 2023-06-22 09:14 ? 次閱讀

一、前言

本篇介紹STM32芯片內部的總線系統結構,嵌入式芯片內部的總線和計算機總線類似,先來看一下通常定義下計算機總線定義,即計算機的總線是一種內部結構,它是cpu、內存、輸入、輸出設備傳遞信息的公用通道,主機的各個部件通過總線相連接,外部設備通過相應的接口電路再與總線相連接,從而形成了計算機硬件系統。在計算機系統中,各個部件之間傳送信息的公共通路叫總線,微型計算機是以總線結構來連接各個功能部件的。

圖片

圖1 計算機總線結構

計算機設備和設備之間傳輸信息的公共數據通道。總線是連接計算機硬件系統內多種設備的通信線路,它的一個重要特征是由總線上的所有設備共享,可以將計算機系統內的多種設備連接到總線上。如果是某兩個設備或設備之間專用的信號連線,就不能稱之為總線。

因此STM32這類嵌入式芯片的總線可概括理解為:是各種信號線的集合,總線可以劃分為數據總線、地址總線和控制總線,分別用來傳輸數據、數據地址和控制信號。

二、總線基礎知識概述

圖片

圖2 總線基礎知識

(1)、總線在芯片中的角色

ARM公司負責提供設計內核,而其他外設則為芯片商設計并使用,ARM收取其專利費用而不參與其他經濟活動,半導體芯片廠商拿到內核授權后,根據產品需求,添加各類組件,生產芯片售賣。圖3為STM32的組成示意圖,其中Cortex-M3內核、調試系統都是ARM公司設計,內部總線、外設、存儲、時鐘復位等都由ST公司開發。由圖3中可以明顯看出總線是cpu、內存、外設傳遞信息的公用通道,芯片上的各個部件通過總線相連接。

圖片

圖3 STM32芯片簡要結構圖

(2)、總線的類型

A、數據總線DB用來傳送數據信息,是雙向的。CPU既可通過DB從內存或輸入設備讀入數據,又可通過DB將內部數據送至內存或輸出設備。DB的寬度決定了CPU和計算機其他設備之間每次交換數據的位數。數據總線的位數是微型計算機的一個重要指標,通常與微處理的字長相一致。需要指出的是,數據的含義是廣義的,它可以是真正的數據,也可以是指令代碼或狀態信息,有時甚至是一個控制信息,因此,在實際工作中,數據總線上傳送的并不一定僅僅是真正意義上的數據。

B、地址總線AB用于傳送CPU發出的地址信息,是單向的。傳送地址信息的目的是指明與CPU交換信息的內存單元或I/O設備。存儲器是按地址訪問的,所以每個存儲單元都有一個固定地址,要訪問1MB存儲器中的任一單元,需要給出1M個地址,即需要20位地址(2^20=1M)。一般來說,若地址總線為n位,則可尋址空間為2^n字節。因此,地址總線的寬度決定了CPU 的最大尋址能力。

C、控制總線CB用來傳送控制信號、時序信號和狀態信息等,是雙向的。其中有的是CPU向內存或外部設備發出的信息,如讀/寫信號,片選信號、中斷響應信號等;有的是內存或外部設備向CPU發出的信息,中斷申請信號、復位信號、總線請求信號、設備就緒信號等。顯然,CB中的每一條線的信息傳送方向是一定的、單向的,但作為一個整體則是雙向的。所以,凡涉及到控制總線CB,均是以雙向線表示。

(3)、總線的指標

A、總線的位寬

總線的位寬指的是總線能同時傳送的二進制數據的位數,或數據總線的位數,即32位、64位等總線寬度的概念。總線的位寬越寬,每秒鐘數據傳輸率越大,總線的帶寬越寬。

B、總線的工作頻率

總線的工作時鐘頻率以MHZ為單位,工作頻率越高,總線工作速度越快,總線帶寬越寬。

C、總線的帶寬(總線數據傳輸速率)

總線的帶寬指的是單位時間內總線上傳送的數據量,即每秒鐘傳送MB的最大穩態數據傳輸率 。與總線密切相關的兩個因素是總線的位寬和總線的工作頻率,它們之間的關系:

總線的帶寬=總線的工作頻率*總線的位寬/8

或者 總線的帶寬=(總線的位寬/8)/總線周期

(4)、AHB和APB

AMBA(Advanced Microprocessor Bus Architecture)是ARM公司提出的一種開放性的SoC總線標準,現在已經廣泛的應用于RISC的內核上了。AMBA定義了一種多總線系統(multilevel busing system),包括系統總線和等級稍低的外設總線。 AMBA支持32位、64位、128位的數據總線,和32位的地址總線,同時支持byte和half-word設計。 它定義了兩種總線:

AHB(Advanced High-performance Bus)先進的高性能總線,也叫做ASB(Advanced System Bus)。APB(Advanced peripheral Bus)先進的外設總線 AHB和ASB其實是一個東西,是高速總線, AHB總線的強大之處在于它可以將微控制器(CPU)、高帶寬的片上RAM、高帶寬的外部存儲器接口、DMA總線、各種擁有AHB接口的控制器等等連接起來構成一個獨立的完整的SOC系統,不僅如此,還可以通過AHB-APB橋來連接APB總線系統。AHB可以成為一個完整獨立的SOC芯片的骨架。

APB是低速總線,主要負責外設接口 ,低速且低功率的外圍設備,用于低帶寬的周邊外設之間的連接,例如UART、SPI等,可針對外圍設備作功率消耗及復雜接口的最佳化。AHB和APB之間是通過Bridge(橋接器)連接的 。

圖片

圖4 AHB和APB連接關系

三、總線框架結構

圖片

圖5 總線框架結構內容

如圖6,以STM32F42XXX和STM32F43XXX器件總線系統架構為例。

圖片

圖6 STM32F42xxx和STM32F43xxx的總線系統架構

(1)、結構類型

STM32芯片是屬于哈佛架構,即數據和程序指令分別存儲,總線設計有一條指令總線(I-Bus)、一條數據總線(D-Bus),地址總線則與所有IO和外設相連,按照內核架構統一的存儲器映射表分配對應地址。

哈佛架構與馮諾依曼的最大區別在于:哈佛架構的數據總線,指令總線是分開獨立的,CPU通過Icode從Flash中取指令,再譯碼,得到數據的地址,再通過Dcode總線和SRAM進行數據交互。

哈佛架構的優勢:并行體系結構,將程序指令和數據存儲在不同的存儲空間中,每個存儲器獨立編址、獨立訪問。哈佛架構的微處理器通常具有較高的執行效率,其程序指令和數據指令分開組織和儲存的,執行時可以預先讀取下一條指令。

(2)、總線模塊

A、總線矩陣

圖6中S是主控總線,M是被控總線,總線矩陣用于主控總線之間的訪問仲裁管理,仲裁采用循環調度算法。有了總線矩陣,就可以讓主設備和從設備進行并行訪問,提升了訪問效率,同時也降低了功耗。

需要注意的是,雖然總線矩陣使得多個主設備可以并行訪問不同的從設備,但在一個定義的時間段內,只有一個主設備擁有總線矩陣的控制權,如果有多個主設備同時出現總線請求時就得進行仲裁。所以有了總線仲裁器,就能保證每個時刻只有一個主設備通過總線矩陣對從設備進行訪問。

因為總線矩陣的存在,使得多個主設備可以并行訪問不同的從設備,增強了數據傳輸能力,提升了訪問效率,同時也改善了功耗性能。為了確保每個主設備訪問從設備的延遲盡量短,在總線矩陣里實行循環調度優先級方案:

? 循環調度仲裁策略使總線帶寬合理分配。

? 限定最大延時。

? 循環調度以1次傳輸為單位。

圖中縱橫交錯的就是多層AHB總線矩陣,負責把上方主設備跟右邊從設備互聯起來。所謂AHB主設備是指CPU或DMA,由它們啟動總線訪問,即讀寫操作。那些響應主設備讀寫訪問的設備就是AHB從設備,比如存儲器、各類外設等。注意并非所有主設備訪問從設備都得經過總線矩陣,如圖中,有些主設備和從設備間有直通通道。

B、八條主控總線

CCM(Core Coupled Memory)是給F4內核專用的全速64KB RAM, 它們沒有經過總線矩陣, F4內核與之直接相連, 地址空間在0x1000_0000 ~ 0x1000_FFFF。可以用作堆棧以及高速運算的數據緩存;

I總線:此總線用于將 Cortex-M4F 內核的指令總線連接到總線矩陣。內核通過此總線獲取指令。此總線訪問的對象是包含代碼的存儲器(內部 Flash/SRAM 或通過 FSMC 的外部存儲器);

D總線:此總線用于將 Cortex-M4F 數據總線和 64 KB CCM 數據 RAM 連接到總線矩陣。內核通過此總線進行立即數加載和調試訪問。此總線訪問的對象是包含代碼或數據的存儲器(內部Flash 或通過 FSMC 的外部存儲器);

S總線:此總線用于將 Cortex-M4F 內核的系統總線連接到總線矩陣。此總線用于訪問位于外設或 SRAM中的數據。也可通過此總線獲取指令(效率低于 ICode)。此總線訪問的對象是112 KB、 64 KB 和 16 KB 的內部 SRAM、包括 APB 外設在內的 AHB1 外設、 AHB2 外設以及通過 FSMC 的外部存儲器;

S3,S4:DMA存儲器總線:此總線用于將 DMA 存儲器總線主接口連接到總線矩陣。DMA 通過此總線來執行存儲器數據的傳入和傳出。此總線訪問的對象是數據存儲器:內部 SRAM( 112 KB、 64 KB、 16 KB)以及通過 FSMC 的外部存儲器;

S5:DMA外設總線,此總線用于將 DMA 外設主總線接口連接到總線矩陣。DMA 通過此總線訪問 AHB 外設或執行存儲器間的數據傳輸。此總線訪問的對象是 AHB 和 APB 外設以及數據存儲器:內部SRAM以及通過 FSMC 的外部存儲器;

S6:以太網 DMA 總線,此總線用于將以太網 DMA 主接口連接到總線矩陣。以太網 DMA通過此總線向存儲器存取數據。此總線訪問的對象是數據存儲器:內部 SRAM( 112 KB、 64 KB和 16 KB)以及通過FSMC的外部存儲器;

S7: USB OTG HS DMA 總線,此總線用于將 USB OTG HS DMA 主接口連接到總線矩陣。USB OTG DMA 通過此總線向存儲器加載/存儲數據。此總線訪問的對象是數據存儲器:內部 SRAM(112 KB、 64 KB 和 16 KB)以及通過 FSMC 的外部存儲器。

C、七條被控總線

內部 FLASH ICode 總線:是內核與內部閃存存儲器(FLASH)指令接口之間的連接的總線,實現指令的預取功能;

內部 FLASH DCode 總線:將內核與內部閃存存儲器(FLASH)的數據接口連接起來的總線,實現數據讀取;

主要內部 SRAM1(112KB);

輔助內部 SRAM2(16KB);

輔助內部 SRAM3(64KB) (僅適用 STM32F42xx 和 STM32F43xx 系列器件);

AHB1外設和AHB2外設:不同時鐘頻率的用于高性能模塊(如CPU、DMA和DSP等)之間的連接總線;

FSMC可變靜態存儲控制器:是STM32系列采用的一種新型的存儲器擴展技術,FSMC能夠根據不同的外部存儲器類型,發出相應的數據/地址/控制信號類型以匹配信號的速度,從而使得STM32系列微控制器不僅能夠應用各種不同類型、不同速度的外部靜態存儲器,而且能夠在不增加外部器件的情況下同時擴展多種不同類型的靜態存儲器,滿足系統設計對存儲容量、產品體積以及成本的綜合要求。能夠與同步或異步存儲器和 16 位 PC 存儲器卡連接,STM32的 FSMC接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存儲器。

(3)、總線交互

指令總線和數據總線如6圖所示只會負責對應存儲地址范圍內的傳輸,剩下片內外設和外界設備則是需要通過系統總線(AHB)進行數據的傳輸,對于低速外設則是掛載在相對較慢的外設總線(APB)總線,APB總線通過一個橋接器最終還是會掛載到AHB總線上。

主設備和從設備通過各自的總線兩兩相交連接,圖6中兩條總線相交且為圓圈的地方,表示這兩條總線對應的主設備可以訪問從設備,如I總線(指令總線),只有跟 M0、M2和M6這三根被控總線交叉的時候才有圓圈,就表示I總線只能跟這三根被控總線通信,這樣就可以知道stm32f4的啟動有三種分別是FLASH、內部SRAM、外部存儲FSMC。

當多個AHB主設備試圖同時訪問同一個AHB從設備時,總線矩陣仲裁器介入以解決訪問沖突。在下面的例子中CPU和DMA1均試圖訪問SRAM1以讀取數據。

圖片

圖7 CPU和DMA1請求訪問SRAM1

如上述示例總線訪問請求同時發生的情況下,就需要總線矩陣仲裁。為了解決這種問題,需要應用循環調度策略:如果本次最后贏得總線控制權的主設備是CPU,則在下一次訪問中DMA1將贏得總線控制權并首先訪問SRAM1。CPU隨后方可有權訪問SRAM1。

這就表明,一個主設備的傳輸延時取決于其它等待請求訪問AHB從設備的主設備數量。下面的例子是五個主設備試圖同時訪問SRAM1的情形:

圖片

圖8 五個主設備請求SRAM

DMA1再次獲得總線矩陣訪問權并訪問SRAM1的延時等于其它等待請求的所有主設備的執行時間之和。

我們再來看看進行總線矩陣仲裁可能導致的DMA傳輸延時最差情況。主設備DMA端口進行一次數據傳輸會遭遇的延時取決于其它主設備的傳輸類型和長度。比如,我們結合上面的DMA1 & CPU的例子,它們并行訪問SRAM。DMA傳輸延時將隨著CPU數據傳輸事務長度而變化。如果總線訪問首先給予CPU且不是執行單次數據加載/存儲,DMA訪問SRAM的等待時間可能從一個AHB周期(單次數據加載/存儲時間)延長為N個AHB周期,這里N為CPU數據傳輸事務中數據的數量。

CPU鎖定AHB 總線以保持其訪問總線的所有權,減少了多次加載/ 存儲操作過程中的延時以及進入中斷的延時。這提高了固件的響應能力,但是可能導致DMA數據傳輸事務的延遲。

DMA1與CPU并行訪問SRAM的延時取決于傳輸類型:

? 中斷(上下文保護)發起的CPU傳輸:8個AHB周期;

? LDM/STM 指令發起的CPU傳輸:14個AHB周期;

---在多達14 個寄存器與存儲器之間進行傳輸;

圖片

圖9 中斷發起的傳輸帶來的DMA傳輸延時

上圖詳細描述了一個因中斷進入而導致DMA多周期傳輸延遲的情形。DMA存儲器端口被觸發,發出存儲器訪問請求。經過仲裁, AHB總線未授權DMA1存儲器端口訪問,而由CPU來訪問總線。可以看到在服務DMA請求之前有一段額外的延時。這段中斷發起的CPU傳輸,耗時為8個AHB周期。

不難理解,當同時對一個從設備進行尋址且數據傳輸事務長度不是一個數據單元時,其他主設備(如DMA2,USB_HS, Ethernet…)也會碰到類似情形。所以,為了提高DMA對總線矩陣的訪問性能,要盡量回避總線競爭。

四、總結

本篇對STM32芯片內部的總線機制進行了一系列的介紹,部分信息來源自STM32的官方資料中對芯片系統架構的介紹。通過對總線概念的闡述可以去更好的為進一步認識STM32內部總線框架提供基礎,從STM32的總線框架中,可以了解到STM32芯片內部總線的設計模型和基本的工作原理,從而對STM32的芯片總線內部結構有一個初步的認知。

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

    關注

    0

    文章

    38

    瀏覽量

    4382
收藏 人收藏

    評論

    相關推薦

    stm32內部Flash加密使用單總線加密芯片容易被破解嗎?

    現在使用STM32做了個產品,stm32內部Flash加密已設置,沒有做唯一ID的算法加密想選擇使用DS28E01,或者AT88SA102S這一類的單總線加密
    發表于 09-07 09:35

    時鐘系統內部結構四個驅動單元

    功耗。特別是對手持式設備、利用電池供電的設備都功耗要求比較高。一、時鐘系統內部結構四個驅動單元Cortex-M3內核ICode總線(I-bus).DCode總線(D-bus).和
    發表于 08-06 08:05

    STM32F407芯片內部結構是如何構成的

    STM32F407芯片的特性是什么?STM32F407芯片內部結構是如何構成的?
    發表于 09-24 12:49

    STM32F103系列芯片總線結構是由哪些部分組成的

    AMBA是什么?AHB總線和APB總線的作用是什么?STM32F103系列芯片總線結構是由哪些部分組成的?
    發表于 11-03 08:10

    stm32f10xx系統結構的相關資料下載

    stm32f103研發應用時,必須對其系統資源分配有個總體的印象,然后在學習其他類型的芯片時,也可根據此結構進行擴展或對比以幫助加深印象(通過此結構
    發表于 12-10 08:02

    STM32系統結構

    ,最近梳理了一下,下面我就自己所理解的給大家力爭詳細地講解一下,如有疏漏或不足,請大家多多指教!一、STM32系統結構上圖為STM32系統
    發表于 12-13 07:10

    STM32芯片系統結構四個驅動單元

    STM32芯片系統結構四個驅動單元 Icode、Dcode、System、DMA指令總線 Icode數據
    發表于 12-14 07:39

    內部總線包括

    內部總線,將處理器的所有結構單元內部相連。它的寬度可以是8、16、32、64或128位。本視頻主要詳細闡述了內部
    的頭像 發表于 11-24 10:43 ?1.1w次閱讀
    <b class='flag-5'>內部</b><b class='flag-5'>總線</b>包括

    STM32-(26):RCC內部結構與原理分析

    功耗。特別是對手持式設備、利用電池供電的設備都功耗要求比較高。一、時鐘系統內部結構四個驅動單元Cortex-M3內核ICode總線(I-bus).DCode總線(D-bus).和
    發表于 11-26 10:51 ?7次下載
    <b class='flag-5'>STM32</b>-(26):RCC<b class='flag-5'>內部結構</b>與原理分析

    STM32學習(1)-資料查找,STM32簡介,STM32選型以及芯片內部結構

    STM32學習(1)-資料查找,STM32簡介,STM32選型以及芯片內部結構
    發表于 11-26 19:51 ?82次下載
    <b class='flag-5'>STM32</b>學習(1)-資料查找,<b class='flag-5'>STM32</b>簡介,<b class='flag-5'>STM32</b>選型以及<b class='flag-5'>芯片</b><b class='flag-5'>內部結構</b>圖

    STM32芯片系統結構

    STM32芯片基于ARM公司的Cortex-M3內核,由ST公司設計生產,內核與總線矩陣之間有I(指令)、S(系統)、D(數據)三條信號線。內核通過
    的頭像 發表于 04-02 15:59 ?5892次閱讀

    STM32芯片內部架構的詳細介紹

    之外的部件被稱為核外外設或片上外設,如 GPIO、USART(串口)、I2C、SPI 等。 芯片內部架構示意圖 ????芯片內核與外設之間通過各種總線連接,其中驅動單元有 4 個,被動
    的頭像 發表于 07-05 18:01 ?8435次閱讀

    STM32芯片系統結構

    STM32芯片基于ARM公司的Cortex-M3內核,由ST公司設計生產,內核與總線矩陣之間有I(指令)、S(系統)、D(數據)三條信號線。內核通過
    的頭像 發表于 07-06 16:55 ?2946次閱讀

    淺談STM32芯片的存儲結構

    芯片售賣。圖1為STM32的組成示意圖,其中Cortex-M3內核、調試系統都是ARM公司設計,內部總線、外設、存儲、時鐘復位等都由ST公司
    的頭像 發表于 04-19 11:36 ?2536次閱讀
    淺談<b class='flag-5'>STM32</b><b class='flag-5'>芯片</b>的存儲<b class='flag-5'>結構</b>

    STM32芯片的存儲結構

    組件,生產芯片售賣。圖1為STM32的組成示意圖,其中Cortex-M3內核、調試系統都是ARM公司設計,內部總線、外設、存儲、時鐘復位等都
    的頭像 發表于 06-22 09:20 ?1891次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>芯片</b>的存儲<b class='flag-5'>結構</b>
    主站蜘蛛池模板: 日本怡红| 久久黄色精品视频| 国产亚洲综合色就色| 一本大道高清在线视频 视频| 国产精品天天干| 伊人玖玖| 黄色短视频免费观看| 狠狠干狠狠爱| 一级黄色毛片免费看| 国产一区二卡三区四区| 国产真实乱在线更新| 一级黄色日本| 国产成人精品亚洲| 午夜影院7cdy| 天天色影院| sihu免费观看在线高清| www天天操| 天堂福利视频在线观看| www.成人av.com| 91大神在线观看精品一区| 日韩精品一区二区三区免费视频| 夜夜穞狠狠穞| 青青草99热久久| 久草色在线| 成人剧场| 三级在线网址| 四虎h789fcom| www.色涩| 丁香婷婷色综合| 57pao强力打造免费高清高速| 全国男人天堂网| 久久v| 四虎影院最新地址| 天天色天天爽| 种子在线搜索| 99色婷婷| 狠狠色噜噜狠狠狠狠97| 国产伦子一区二区三区| 中文字幕在线观看一区| 久久亚洲视频| 久久影视免费体验区午夜啪啪 |