标题：串行闪存
认识串行闪存
  串行闪存与并行闪存的区别随着消费者追捧更小,更薄,更便宜的产品,嵌入式系统设计工程师在寻找空间效益和成本效益都较高的闪存时面临的压力比以住任何时候都大.幸好,串行闪存为他们提供了所需的解决方案. 串行闪存是一种尺寸和功耗都很小的采用SPI(串行外设接口)总线的 NOR 闪存芯片. SPI 又叫"四线"串行总线,用于顺序数据缓存器.当被嵌入式系统用于代码或参数存储器时,串行闪存在印制电路板上需要的连线数量比并行闪存少,因为串行闪存是把数据串 行化,所需的输入/输出引脚比较少,每个时钟周期只传送一位数据.这些特性有助于降 低电路板空间,功耗和系统总体成本,这就是串行闪存在嵌入式系统设计社区不断升温的原因. 下面是串行闪存日益热销的一些具体原因: 
1.成本,很多ASIC 芯片受限于焊盘,这就是说,芯片的大小受到焊盘数量降低IC 成本的限制.去除焊盘可以让集成电路变得更小,更紧凑,这样,一片晶圆可以制作出 更多的裸片,从而降低了每颗裸片的成本.与并口闪存相比,减少外部引脚数量, 还能降低ASIC 和闪存的封装成本
2. 降低 PCB 空间 – 封装越小,引脚越少,在印刷电路板上占位也就越小. 
  串行闪存与数字产品小型化紧密相联3. 设计简易 – 引脚少的器件可简化印刷电路板的走线布局,有助于产品以更快的速度上市,使产品测试变得更易于操作. 
4. 扩展性 – 提高存储器密度,无需修改电路板布局.
串行闪存的使用正在成为存储器市场的一个发展潮流。从串行闪存的低廉成本和紧凑尺寸(小封装、引脚少、总线只有4条线)受益的各种应用是ST在串行闪存成功的关键因素。实际上，串行闪存采用四个信号(CS、CLK、MISO和MOSI)的公用SPI总线传输数据，因此串行闪存适合安装在尺寸紧凑的封装内，如8引脚的SO封装(根据存储密度和工艺技术，可以是宽型或窄型封装)。
串行闪存的最佳应用
1. 代码存储 
代码存储分大两大类： 
1.1. 标准性能:从外部闪存执行代码(XIP) 
对于没有严格的时间限制的应用，控制器可以直接从串行闪存执行代码，不过存取操作的时间较长。但是，在执行代码时，如果经常出现地址跳转命令，那么最好还是使用能够同时发送地址位和数据位的并行闪存，以改进数据传输时间(>40ns)。并行通信需要的引脚数量多，因此封装尺寸也就相对较大。 
1.2. 高性能:从RAM内存执行代码(代码映射技术) 
很多应用对性能要求很高，因此不能直接从闪存执行代码，只能从存取时间较短的RAM内存执行程序(>5ns)。因为RAM是易失性存储器，这些应用还需要一个非易失性存储器(闪存)在断电时保存代码，每次应用系统上电时还要把代码下载到RAM，这种方法叫做代码映射技术。 
因为数据从闪存下载到RAM是按照一定顺序的(无地址跳转)，所以从成本和紧凑性考虑，串行闪存是这种应用的最佳解决方案。代码映射技术还能压缩代码，降低对闪存的密度需求。 
串行闪存产品组合(M25Pxx系列的密度从512Kb到128Mb)，这些产品使很多利用代码映射技术的应用发生了革命性的变化，如硬盘驱动器、显卡、无线网卡、光驱、打印机、计算机(台式机或笔记本电脑的BIOS)、服务器、FPGA配置、液晶显示器、电视、数字电视、机顶盒、汽车收音机、POS机和游戏机等应用领域。无疑，串行外设接口(SPI)产品还将继续渗透到其它的代码映射技术应用领域。 
2.2.数据存储
任何一种特定应用还需要存储器保存数据，例如调整参数、查阅表、历史日志、测量信息等，因为系统上电后立即下载代码，数据可以与代码共用存储器，两者之间不会出现任何冲突。液晶显示器(用户配置)、PC主板(BIOS配置)等应用就属于这种情况。其它应用设备使用专用存储器保存数据，如应答机(语音信息)、测量工具(数值)、医疗设备(记录)、游戏机(用户配置和分数)。因为这些数据不要求很快的读取速度，所以串行闪存仍是最佳的选择。
串行闪存应用类别及实例
应用数据还可以分为两大类别： 
2.2.1粗存储粒度(大可擦除存储区块)
下面的应用我们建议使用粗存储粒度串行存储器：数据是在生产过程中被烧录进去或只是在应用中被读取,且不需要更新(调整参数、查阅表、语言表等)；数据在现场按字节写入,但是以区块为单元更新的(测量值、历史日志等)；还有一些数据是需要在应用中少量更新的,但是可以在更新前先备份(如在RAM内)同一区块内保存的其它数据,然后再和新数据一同写回闪存；此外还可通过EEPROM软件仿真方法来更新大区块内的少量参数数据。 
“EEPROM软件仿真方法” 
闪存可以按字节编程，但只能按块擦除(区块大小取决于闪存的种类)这种方法是通过在不同地址更新数据来实现的。每段数据都链接一个头信息以用来指示这段信息是否有效以及新的有效数据的地址。这种方法利用一个大区块来更新数据，每次更新只需要在新的地址编程即可，当这个区块存储满了之后再擦除。 这些粗存储粒度的应用数据可以采用64KB可擦除存储区块的标准串行来存储。 
2.2.2.细存储粒度(小可擦除存储区块) 
某些数据必须按照小区块更新，而且应用系统无法给EEPROM软件仿真方法分配额外的存储空间，无法备份存储块也不允许区块内部区域空闲。 
为满足这些应用需求，推出了第二个串行闪存产品家族M25PExx。该产品家族是世界上存储粒度最精细的闪存产品，可以按照256字节或4KB的块擦除存储器，具体哪一种取决于存储密度。此外，利用内部SRAM管理系统，用户能够用写指令只更新一个字节(类似于EEPROM)。
应用实例：PC主板 
如果你在寻找串行闪存的这种灵活性，不妨花些时间研究下面应用实例描述的两个方法： 
主板应用是典型的高性能应用，为了快速执行代码，需要把代码从BIOS闪存映射到DDR2内存中，因此现代计算机保存BIOS改用串行闪存，而不再使用过去的FWH固件中心存储器(PLCC32封装)。一般来说，计算机主板上能会用到一个或两个：BIOS串行闪存，千兆位以太网(GbE)或LAN串行闪存。BIOS串行闪存用于引导计算机启动，在台式机中，串行闪存可以和南桥芯片或SuperIO控制器连接；在笔记本电脑中，可以和嵌入式控制器连接。 
千兆位以太网(GbE)或LAN串行闪存用于千兆位以太网芯片组。某些解决方案(如英特尔)可以把两种应用代码存储在一个串行闪存内。 
主板是对更新灵活性要求最高的应用之一：BIOS开发工程师需要频繁更新闪存中代码，以验证不同的硬件配置[0]，从而需要最高的更新灵活性；制造和存储部门通常需要根据更新版或客户自定义代码来重新编程BIOS。因为BIOS受到破坏而返修是维修部门的一个不容忽视的问题。BIOS通常是现场更新，如果在更新的同时系统断电，就会破坏BIOS代码。 
有两种方法可满足这些灵活性要求： 
在系统中编程(ISP) 
特性:利用一个专用编程器更新焊接在应用设备上的BIOS存储器。当编程器与主板相连时，编程器就控制/隔离了主芯片，并可以更新串行闪存BIOS。 
优点: 
-整个闪存更新速度非常快(10-30秒之间) 
-更新灵活性高，因为只需要裸板(便于开发、制造、存储区更新或维修) 
要求: 
某些芯片组需要隔离以防止硬件冲突。 
备份启动闪存工具 
特性: 
当插到主板上时，备份启动闪存工具会自动禁用焊在主板上的BIOS存储器，然后芯片组会从存有正确代码的备份启动闪存工具启动这样，BIOS工程师就可以轻松尝试手动修改存储
器，或使用BBF工具更新备份BIOS。维修人员可以使用BBF工具通过正常的备份闪存启动故障计算机，在计算机启动后，运行计算机闪存工具软件更新焊接在主板上的BIOS主存储器。 
优点: 
成本低廉
适合市面销售的大多数主板，无需修改硬件(Hold引脚上拉) 
利用插槽修改串行闪存 
要求: 
必须启动主板(与系统内编程方法相比，更新时间长) 
启动需要一个完整的计算机环境(ATX电源、CPU、显示器等)