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

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

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

3天內不再提示

分析ARM外設flash及SDRAM的地址連接

電子設計 ? 2018-09-19 09:41 ? 次閱讀

先提一下位寬的概念,對于具體器件而言,它的位寬是一定的,所謂位寬,指的是“讀/寫操作時,最小的數據單元”──別說最小單元是“位”,一般設備上沒有單獨的“位操作”,修改位時通過把整個字節、字或雙字讀出來、修改,再回寫。AM29L800BB這種nor flash位寬是16位。K4S561632C這種SDRAM位寬是32位。

對于CPU來說,一個地址對應的是一個字節(8位),也就是說CPU的地址線(A0~A20)對應的最小數據單元是字節。

這里需要注意的是,不要把“外設的位寬”和“CPU的位數”這兩個概念混淆了。外設的位寬是讀寫外設的最小數據單元,CPU位數是CPU可以一次處理的字節數,32位CPU可以一次處理4字節數據。

好了,相信你也已經發現問題了吧。既然CPU最小數據單元是8位,flash位寬是16位,那在我們寫程序時會特意進行16位操作嗎?顯然不會,我們寫代碼時,可不管外設到底是多少位。這是如何實現的呢?原因在于存儲控制器(Memory Controller)這個中間層。

存儲控制器根據NOR FLASH的位寬,每次總是讀/寫16位數據。

以讀操作為例:

CPU進行8位操作時,它選擇其中的8位返回給CPU;

CPU進行16位操作時,它直接把這16位數據返回給CPU;

CPU進行32位操作時,它發起2次讀/寫,把結果組合成32位返回給CPU。

現在的連線是:CPU的(ADDR1-ADDR20)接到 16位的NOR FLASH (A0-A19),即CPU的ADDR0不接──這說明:不管ADDR0是0還是1,NOR FLASH接收到的地址是一樣的。

CPU發出地址0bxxxxxxxxx0、0bxxxxxxxxx1時,NOR FLASH看到的都是0bxxxxxxxxx,返回給存儲控制器的都是同一個16位數據。再由Memory Controller選擇其中的低8位或高8位給CPU。

存儲控制器會做以下事情:

軟件要讀取地址0上的8位數據時,硬件是這樣進行的:

① Memory Controller發出0b000000000000000000000的地址信號,NOR FLASH的A0-A19線上的信號是:0b00000000000000000000

② NOR FLASH在數據總線D0~D15上提供一個16位的“最小數據單元”的數據;

③ 存儲控制器讀入16位數據;

④ 存儲控制器把16位數據的低8位返回給CPU,就得到了一個8位數據。

軟件要讀取地址1上的8位數據時,硬件是這樣進行的:

① 存儲控制器發出0b000000000000000000001的地址信號,NOR FLASH的A0-A19線上的信號是:

0b00000000000000000000

② NOR FLASH在數據總線D0~D15上提供一個16位的數據,這是NOR FLASH中的第1個“最小數據單元”

③ 存儲控制器讀入這個16位數據

④ 存儲控制器把這個16位數據的高8位(注意,前面的低8位)返回給CPU,這就是一個8位數據。

所以:

外設位寬是8時,CPU的A0~AXX與外設的A0~AXX直接相連

外設位寬是16時,CPU的A1~AXX與外設的A0~AYY直接相連,表示不管CPU的A0是0還是1,外設看到的都是同一個地址,

對應16位的數據,存儲控制器對數據進行選擇或組合,再提供給CPU。

外設位寬是32時,CPU的A2~AXX與外設的A0~AZZ直接相連,表示不管CPU的A0A1是00,01,10還是11,外設看到的都是

同一個地址,對應32位的數據,“Memory Controller”對數據進行選擇或組合,再提供給CPU。

經過以上分析,我們應該知道了,為什么地址線要偏移幾位了。同樣的SDRAM因為是32位寬的,所以偏移2位。那為什么SDRAM要連ADDR2~ADDR14和ADDR24、ADDR25呢?同樣,我們先看下SDRAM的基本知識。

SDRAM的連接方式與上面FLASH的類似,但是要比其復雜些。因為SDRAM內部是一個存儲陣列,如同表格一樣將數據填進去,因此得先指定一個行,再指定一個列,才可以找到所需的單元格。這個表格被稱為邏輯Bank(L-Bank),一般有4個Bank。可以想象,對SDRAM的訪問分為以下4個步驟:

① CPU發出片選信號nSCS0有效,選中SDRAM芯片

② 選擇L-Bank,最開始說的ADDR24和ADDR25即此作用;

③ 進行統一行/列尋址;

根據SDRAM芯片的列地址線數目設置CPU相關存儲器后,CPU就會從32位的地址中自動分出L-Bank選擇信號、行地址信號、列地址信號,然后先發出行地址信號、列地址信號。L-Bank選擇信號在發出行地址信號的同時發出,并維持到列地址信號結束。在本例中,行地址、列地址公用ADDR2~ADDR14。K4S561632行地址13,列地址9,所以nSRAS信號有效時,ADDR2~ADDR14發出行地址,對應32位地址空間的bit[23:11];nSCAS有效時,ADDR2~ADDR10發出列地址,對應32位地址空間的bit[10:2]。而bank選擇位對應bit[25:24]。這樣就構成了64M地址空間,及30000000到33ffffff。


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

    關注

    134

    文章

    9193

    瀏覽量

    370172
  • SDRAM
    +關注

    關注

    7

    文章

    434

    瀏覽量

    55455
  • 存儲器
    +關注

    關注

    38

    文章

    7538

    瀏覽量

    164566
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10930

    瀏覽量

    213493
收藏 人收藏

    評論

    相關推薦

    #硬聲創作季 #ARM ARM體系結構與接口技術-07 FS-MP1A外設連接

    arm連接
    水管工
    發布于 :2022年11月12日 14:48:41

    STM32F429Disco SDRAM簡單讀寫操作

    這幾天開始研究F429探索者開發板自帶的外設,初步調通了板載TFT彩屏和SDRAM,TFT彩屏花了我兩天時間進行官方例程拆解,而SDRAM則用了半天就搞定了。對于這幾天的研究,我發現了個有趣的規律
    發表于 03-05 12:25

    外設位寬為8、16、32時,CPU與外設之間地址線的連接方法

    NOR FLASH,它只按照A0-A19地址線,提供16位數據,才不管軟件要的是8位、16位,還是32位呢。③“Memory Controller”完成了這些位寬之間的數據選擇、合并。所以:外設位寬
    發表于 09-27 15:34

    關于SDRAM地址線復用

    個22位的地址(LADDR2--LADDR23),行地址對應LADDR2--LADDR14列地址對應LADDR15--LADDR23,然而我沒見到LADDR15--LADDR23連接
    發表于 10-09 11:06

    使用了C6713外設連接flashsdram,看門狗芯片及FPGA等器件沒有燒錄的原因是什么?

    我使用了C6713,外設連接flashsdram,看門狗芯片及FPGA等器件,但是沒有燒程序,在使用時,上電發現電流會變化,有時候上電電流為0.39,有時上電電流為0.44.測試了一
    發表于 07-31 13:43

    有關arm裸機SDRAM的相關知識介紹

    在系統中屬于SoC外接設備(外部外設。以前說過隨著半導體技術發展,很多東西都逐漸集成到SoC內部去了。現在還長期在外部的一般有:FlashSDRAM/DDR、網卡芯片如DM9000、音頻Codec
    發表于 05-16 14:15

    arm9片類flash啟動需要初始化sdram

    arm9片類flash啟動,如果把s3c2410當51來用,不接nand,norflash,就不用初始化sdram吧,直接在片類執行,這可以設置嗎om引腳來實現嗎?
    發表于 11-23 14:33

    ARM啟動代碼及地址映射

    ARM啟動代碼及地址映射
    發表于 02-11 11:00 ?104次下載
    <b class='flag-5'>ARM</b>啟動代碼及<b class='flag-5'>地址</b>映射

    ARM存儲器

    自己的需要使用不同的存儲管理策略。 在ARM體系結構中可使用的存儲管理策略包括: 多類型的存儲單元(可以使用SDRAMFLASH等); Cache; 寫緩存; 虛擬內存地址。 另外,
    發表于 10-18 13:24 ?1次下載

    指定了SDRAM卻燒寫到了Nand flash的詳細分析

    flash不一樣,Nor flash帶有RAM接口,有足夠的地址線進行尋址,所以CPU可以訪問Nor flash內部的每一個字節,程序可以在nor
    的頭像 發表于 12-21 18:14 ?7774次閱讀

    一文看懂ARM里的RAM和SDRAM有什么區別

    本文主要介紹的是ARM里的RAM和SDRAM有什么區別,首先介紹了RAM的類別及特點,其次對SDRAM做了詳細闡述,最后介紹了RAM和SDRAM的區別是什么。
    發表于 04-27 16:20 ?3.4w次閱讀

    FLASH編程與改變程序(代碼) 存儲地址的問題

    FLASH編程與改變程序(代碼)存儲地址的問題
    的頭像 發表于 03-20 14:07 ?3577次閱讀
    <b class='flag-5'>FLASH</b>編程與改變程序(代碼) 存儲<b class='flag-5'>地址</b>的問題

    SDRAM存儲器模塊的簡介

    SDRAMFlash不同,它不具有掉電保持數據的特性,但其存取速度大大高于 Flash存儲器,且具有讀/寫的屬性,因此 SDRAM在系統中主要用作程序的運行空間,數據及堆棧區。當系
    發表于 12-18 16:13 ?12次下載
    <b class='flag-5'>SDRAM</b>存儲器模塊的簡介

    RISC-V MCU將常量定義到指定的Flash地址

    Keil MDK開發ARM 內核的MCU時,將常量定義到指定的Flash地址中,使用 **_ *attribute* _( at(絕對地址) )** 即可。
    的頭像 發表于 02-15 11:47 ?1586次閱讀
    RISC-V MCU將常量定義到指定的<b class='flag-5'>Flash</b><b class='flag-5'>地址</b>

    RA Flash地址絕對定位

    RA Flash地址絕對定位
    的頭像 發表于 10-26 18:24 ?894次閱讀
    RA <b class='flag-5'>Flash</b><b class='flag-5'>地址</b>絕對定位
    主站蜘蛛池模板: 伊人小婷婷色香综合缴缴情 | dvd碟片色爱| 一级一级毛片免费播放 | 狠狠操天天操夜夜操 | 欧美黑人巨大xxx猛交 | 午夜爱爱毛片xxxx视频免费看 | 医生好大好硬好爽好紧 | hs网站免费 | 成人久久精品 | 天堂网在线.www天堂在线资源 | 欧美一区二区在线观看视频 | 午夜视频啪啪 | 五月天激激婷婷大综合丁香 | 日韩三级毛片 | 在线色网站 | 四虎最新网站 | 中文字幕 亚洲一区 | 在线你懂的视频 | 天天操天天看 | 年下攻高h好涨 | 天天操夜夜操美女 | 爱爱小视频免费看 | 欧美激情第一欧美在线 | 中文字幕一区在线播放 | h视频免费高清在线观看 | 成人在线91 | 久久精品久久久 | 日本亚洲一区二区 | 一级做a爱片特黄在线观看免费看 | 狠狠的日视频 | 我不卡午夜 | 国模最新私拍视频在线观看 | 69国产成人精品午夜福中文 | 韩国美女丝袜一区二区 | 国产免费一级高清淫日本片 | 欧美三级一区二区 | 久久人人爽爽爽人久久久 | 特黄十八岁大片 | 在线观看视频在线观看 | 婷婷激情在线 | 四虎精品成人a在线观看 |