衡阳派盒市场营销有限公司

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

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

3天內(nèi)不再提示

分析ARM外設(shè)flash及SDRAM的地址連接

電子設(shè)計 ? 2018-09-19 09:41 ? 次閱讀

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

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

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

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

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

以讀操作為例:

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

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

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

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

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

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

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

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

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

③ 存儲控制器讀入16位數(shù)據(jù);

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

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

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

0b00000000000000000000

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

③ 存儲控制器讀入這個16位數(shù)據(jù)

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

所以:

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

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

對應(yīng)16位的數(shù)據(jù),存儲控制器對數(shù)據(jù)進行選擇或組合,再提供給CPU。

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

同一個地址,對應(yīng)32位的數(shù)據(jù),“Memory Controller”對數(shù)據(jù)進行選擇或組合,再提供給CPU。

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

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

① CPU發(fā)出片選信號nSCS0有效,選中SDRAM芯片

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

③ 進行統(tǒng)一行/列尋址;

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


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

    關(guān)注

    134

    文章

    9169

    瀏覽量

    369243
  • SDRAM
    +關(guān)注

    關(guān)注

    7

    文章

    430

    瀏覽量

    55371
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7528

    瀏覽量

    164350
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10905

    瀏覽量

    213032
收藏 人收藏

    評論

    相關(guān)推薦

    STM32F429Disco SDRAM簡單讀寫操作

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

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

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

    關(guān)于SDRAM地址線復用

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

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

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

    有關(guān)arm裸機SDRAM的相關(guān)知識介紹

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

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

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

    ARM啟動代碼及地址映射

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

    ARM存儲器

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

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

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

    一文看懂ARM里的RAM和SDRAM有什么區(qū)別

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

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

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

    SDRAM存儲器模塊的簡介

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

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

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

    RA Flash地址絕對定位

    RA Flash地址絕對定位
    的頭像 發(fā)表于 10-26 18:24 ?867次閱讀
    RA <b class='flag-5'>Flash</b><b class='flag-5'>地址</b>絕對定位
    网上百家乐官网能作弊吗| 百家乐官网庄闲桌子| 亚洲百家乐官网博彩的玩法技巧和规则| 属狗的和虎的做生意好吗| 龍城百家乐的玩法技巧和规则| 六合彩公式| 百家乐官网推筒子| 百家乐视频官方下载| 大发888优惠| 最好的百家乐官网娱乐场| 做生意忌讳什么颜色| 百家乐博牌规| 百家乐官网游戏发展| 百家乐最低下注| 大发888博彩官方下载| 百家乐官网网上赌博网| 申博百家乐下载| 鸿运娱乐城| 24山向水法吉凶断| 大发888游戏平台| 神人百家乐官网赌场| 万龙百家乐的玩法技巧和规则| 折式百家乐官网赌台| 百家乐庄家胜率| 百家乐注册| 百家乐官网群到shozo网| 大发888娱乐场东南网| 百家乐官网皇室百家乐官网| 夜总会百家乐的玩法技巧和规则| 真人百家乐官网网西陆| 百家乐2号机器投注技巧| 格尔木市| 百家乐游戏怎么刷钱| 金宝博滚球| 百家乐破解的办法| 皇冠百家乐| 百家乐开户优惠多的平台是哪家 | 百家乐官网投注技巧公式| 申请百家乐会员送彩金| 百家乐官网是哪个国家| 真人百家乐娱乐场开户注册|