第2章 SRAM详解:工作原理、与DRAM的区别、嵌入式应用场景及选型参数
各位工程师朋友,咱们今天聊聊SRAM。说实话,SRAM这玩意儿在嵌入式系统里太常见了,但很多人对它又爱又恨。爱的是它速度快、使用简单,恨的是它贵、容量小。我刚开始做嵌入式那会儿,也踩过不少SRAM的坑,今天就把这些经验掰开了揉碎了讲给你听。
2.1 SRAM的工作原理
SRAM,全称是Static Random Access Memory,静态随机存取存储器。它为什么叫“静态”?说白了,就是只要不断电,数据就能一直保持,不需要像DRAM那样定时刷新。
SRAM的基本存储单元是触发器。一个典型的6管SRAM单元,由6个晶体管组成。嗯,这里要注意,这6个管子构成了一个双稳态电路。什么叫双稳态?就是它有两个稳定的状态,分别代表0和1。
核心要点:SRAM的存储单元是触发器结构,数据以锁存形式保存。只要供电稳定,数据就不会丢失。
我在项目中遇到过一个问题:某次用了一款SRAM芯片,上电后数据偶尔会乱掉。查了半天,发现是电源纹波太大,触发了存储单元的误翻转。从那以后,我对SRAM的电源质量就特别敏感。
SRAM的读写过程其实挺直观的:
- 读操作:先给地址,然后字线(Word Line)选通,位线(Bit Line)上的电压变化被读出放大器检测到,输出数据。
- 写操作:同样先给地址,字线选通,然后通过位线强制写入0或1。
你想想看,整个过程没有电容充放电,也没有刷新周期,所以速度能不快吗?
2.2 SRAM与DRAM的区别
很多新手会问:SRAM和DRAM到底有啥区别?我打个比方你就明白了:
- SRAM 就像你办公桌上的便签纸,随时写随时看,不用等,但一张纸只能写几个字,还贵。
- DRAM 就像一个大仓库,能存很多东西,但每次取东西都要翻半天,而且还得定期打扫(刷新)。
咱们用表格来对比一下:
| 特性 | SRAM | DRAM |
|---|---|---|
| 存储单元 | 6个晶体管(6T) | 1个晶体管+1个电容(1T1C) |
| 速度 | 极快(纳秒级) | 较快(几十纳秒级) |
| 密度 | 低(同样面积容量小) | 高(同样面积容量大) |
| 功耗 | 静态功耗较高 | 需要刷新,动态功耗高 |
| 是否需要刷新 | 不需要 | 需要(每64ms刷新一次) |
| 成本 | 高 | 低 |
| 典型应用 | Cache、寄存器、小容量缓冲 | 主内存、大容量存储 |
个人经验:我习惯在需要频繁读写、对延迟敏感的场合用SRAM。比如做高速数据采集时,用SRAM做FIFO缓冲区,效果比DRAM好太多了。
2.3 SRAM在嵌入式中的应用场景
SRAM在嵌入式系统里,主要用在以下几个地方:
- CPU内部Cache:这个你肯定知道,L1、L2 Cache基本都是SRAM做的。速度快,能跟上CPU的节奏。
- 实时系统变量存储:比如RTOS的任务栈、全局变量、中断向量表。这些数据需要快速访问,SRAM最合适。
- 高速数据缓冲:像ADC采样数据、图像处理的行缓冲、网络数据包缓存。我做过一个高速示波器项目,就是用SRAM做采样数据暂存。
- FPGA内部Block RAM:FPGA里的BRAM本质上就是SRAM。做数字信号处理时,经常用它做延迟线或查找表。
- 电池供电的RTC数据保持:有些低功耗SRAM可以在掉电后由电池供电,保持关键配置数据。
避坑指南:我曾经在一个低功耗项目里用了普通SRAM,结果发现待机电流高达几十毫安。后来换成低功耗SRAM(比如ISSI的IS62WV系列),待机电流降到了微安级。选型时一定要看数据手册里的待机电流参数!
2.4 典型型号与选型参数
市面上常见的SRAM型号,我整理了一下:
| 型号 | 容量 | 接口 | 速度 | 电压 | 封装 |
|---|---|---|---|---|---|
| IS62WV51216 | 512K×16位(8Mb) | 异步并行 | 45ns/55ns | 2.5V~3.6V | TSOP-44 |
| CY7C1041DV33 | 256K×16位(4Mb) | 异步并行 | 10ns | 3.3V | TSOP-44 |
| AS6C62256 | 32K×8位(256Kb) | 异步并行 | 70ns | 2.7V~5.5V | SOP-28 |
| MT45W8MW16 | 8M×16位(128Mb) | 同步/异步 | 70MHz | 1.7V~1.95V | BGA-48 |
选型时,我一般会关注这几个参数:
- 容量:够用就行,别贪大。SRAM贵,而且大容量SRAM的封装往往很大,占PCB面积。
- 速度:看你的系统时钟频率。比如STM32F4的FSMC总线,一般用55ns的SRAM就够了。如果跑高速DSP,可能需要10ns以内的。
- 工作电压:现在很多MCU是3.3V或1.8V的,选电压匹配的SRAM能省掉电平转换芯片。
- 封装:TSOP封装好焊接,适合样机。BGA封装省面积,但焊接麻烦。我习惯样机用TSOP,量产用BGA。
- 待机电流:电池供电项目一定要看这个参数。有些SRAM的待机电流只有1μA,有些却高达100μA。
选型口诀:容量够用就好,速度宁快勿慢,电压匹配优先,封装看工艺水平。
最后说一句,SRAM虽然贵,但在某些场合它是不可替代的。比如做实时控制时,DRAM的刷新延迟可能导致控制周期抖动,而SRAM就没有这个问题。所以,该用SRAM的时候别心疼钱,系统稳定性比那几块钱重要多了。
好了,SRAM的内容就讲到这里。下一章咱们聊聊DRAM,到时候会对比着讲,你就能更清楚什么时候该用SRAM,什么时候该用DRAM了。