NANDFlash上均匀损耗与掉电恢复在线测试

合集下载

FLASH掉电保护问题

FLASH掉电保护问题

来自网络的FLASH掉电总结原因:由于FLASH的擦除和写入的特性,如果在擦除中掉电或者写入时掉电,有可能会出现失败的情况,下次再上电读取就会出错;擦除的时候掉电,不能保证擦除完全,但是已经擦除的部分,肯定是0xff了。

写的时候掉电,已经写入的就是正确的,电平掉到最低极限工作电压附近时,写入的就无法保证了,地址无法保证,写入的值也无法保证。

没有写到的,肯定还是0xff。

解决方式:1.硬件方式解决—掉电保护机制⏹必须硬件电路上有相应的掉电警告中断,而且必须有足够的时间供软件响应。

⏹楼上还有一位兄弟说的对;掉电保存和上电恢复;需要以下:1)快速检测掉电信号;(太敏感了也不好,常常喊狼来了);2)要有足够的时间让你停下来保存现场;3)上电后可靠的复位;这些的关键是掉电信号\电源\复位信号三个怎么配合的事;软件怎么写应该大家都会;关键在硬件上;⏹掉电保护不是重新擦写那么简单,首先要有一个机制能知道发生了掉电事件,还要知道什么地方的数据是可能出错的,如果是新建文件还好一点,一般就是数据作废,如果是改写一个文件时发生掉电事故的话,还要有恢复机制,将数据恢复成改写以前的数据。

由于flash的先擦后写的特性,不会在原来位置重新写数据,一般都是把原位置的数据标记为无效,再在新位置写入数据,对于文件来说有一个存储位置的关系,这不同于文件系统的逻辑地址,每个逻辑地址要有对应的物理地址,要有一套逻辑-物理地址的转换映射关系在里面。

flash空间总是有限的,还要有垃圾回收的机制,系统要将无效数据的存储空间回收。

而nand的擦单元是写单元的2的n次幂(如32,64,128)倍,如果一个擦除单元内有有效数据的话,还要将有效的数据搬移到其它地方,要对相应的文件的地址映射进行更新维护。

擦写均衡的实现也是一件比较复杂的事情。

所以我们看到的U盘大小总是小于标定的大小,因为它内部要保留一定区间用来实现FTL的算法,保存FTL层的数据。

双BOOT电路介绍

双BOOT电路介绍
双BOOT电路介绍
- KR8210 Amanda
Date:2018/8/6
Jan. 2012
Agenda
NOR & NAND Flash介绍
-NOR & NAND Flash定义 -NOR & NAND Flash存放文件
双BOOT电路介绍
-双BOOT电路作用 -RAAA-HW15 客户对双BOOT电路要求及电路实现
3
4 1 2
此处设计可以满足客户RFQ中提到的第 二点:“系统复位启动时在NOR Flash & NAND Flash之间切换”。
10
Confidential Material for Internal Use Only
双Boot电路介绍
扩口芯片提供TRIGER_PRE_N D触发器电路
1
2
3
4
此处设计可以满足客户RFQ中提 到的第三点:“提供软件配置下 次启动设备接口、查询下次启动 设备接口。
7
双Boot电路介绍
上电第一次 RESET
上电第二次 RESET
RST_B_N
3.3V
RAAA-HW11上电启动后会有两次RESET,第一次为上电复位,第二 次为软件复位。两次RESET的作用就是为了检测Flash中的两个区是 否OK,一般以A区为主,B区为备份,第一次从A区启动;第二次启动 就会切换到B区,如果B区OK,就会正常启动,若不OK,则会切回A 区运行,且将A区文档覆盖到B区。
第二种是仅有一个NAND Flash:会在其中划一个区块出来放BOOT程 式,且这部分也会划分成A & B两个区块。 第三种是NOR Flash + NAND Flash:启动程序会放在这两个Flash中, 如果NOR Flash损坏,则会切换到NAND Flash启动,且会将BOOT程序 覆盖到NOR Flash中,重新切回NOR Flash启动,如果NOR Flash无法修 复,则会报错。比如RAAA-HW15项目。

TSM恢复测试报告

TSM恢复测试报告

2 TSM 异机异节点恢复测试.............................................................................................................. 3
2.1
恢复测试环境说明............................................................................................................ 3
Selective Backup function invoked.
Directory--> Directory--> Directory--> Normal File--> Directory--> Normal File--> Directory--> Normal File--> Directory--> Directory--> Normal File--> Directory--> Normal File--> Directory--> Normal File-->
3.3
在 B 地点恢复 A 地点的 TSM 备份服务器 .................................................................. 15
3.3.1 删除 B 地点 TSM 备份服务器的信息................................................................... 15
3.5.4 恢复 TSM 服务器 ................................................................................................... 22

ICT测试概念

ICT测试概念

[阅读: 5529].1 定义在线测试,ICT,In-Circuit Test,器件不良的一种标准测试手段。

它主要检查在线的单个元器件以及各电路网络的开、短路情况,具有操作简单、快捷迅速、故障定位准确等特点。

飞针ICT基本只进行静态的测试,优点针床式ICT可进行模拟器件功能和数字具,夹具制作和程序开发周期长。

1.2 ICT的范围及特点检查制成板上在线元器件的电气性能测量,对二极管、三极管、光藕、变压器、继电器、运算放大器、电源模块等进行功能测试,对中小规模的集成电路进行功能测试,如所有74系列、Memory 类、常用驱动类、交换类等IC。

它通过直接对在线器件电气性能的测失效或损坏,Memory类的程序错误等。

对工艺类可发现如焊锡短路,元件插错、插反、漏装,管脚翘起、虚焊,PCB短路、断线等故障。

测试的故障直接定位在具体的元件、用程序控制的自动化测试,操作简单,测试快捷迅速,单板的测试时间一般在几秒至几十秒。

1。

3意义在线测试通常是生产中第一道测试工因故障定位准,维修方便,可大幅提高生产效率和减少维修成本。

因其测试项目具体,是现代化大生产品质保证的重要测试手段之一。

ICT测试理论做一些简单介绍1基本测试方法1.1模拟器件测试利用运算放大器进行测试。

由“A”点∵Ix = Iref∴Rx = Vs/ V0*RrefVs、Rref分别为激励信号源、仪器计若待测Rx为电容、电感,则Vs交流信1.2 隔离(Guarding)上面的测试方法是针对独立的器件,(Guarding)。

隔离是在线测试的基本技术。

在上电路中,因R1、R2的连接分流,位,R2中无电流流过,仍然有Ix=Iref,Rx的等式不变。

将G点接地,因F点虚地,两点电位相等,则可实现隔离。

实际实用时,通过一个隔离运算放大器使G与F等电位。

ICT测试仪可提供很多个隔离点,消除外围电路对测试的影响。

1.2 IC的测试对数字IC,采用Vector(向量)测试辑功能测试判断器件的好坏。

一种掉电安全的嵌入式文件系统设计方法

一种掉电安全的嵌入式文件系统设计方法

一种掉电安全的嵌入式文件系统设计方法凌特利,徐云松,沈沉,张荣良(许昌许继软件技术有限公司,许昌461000)摘要:提出一种适用于嵌入式系统的安全文件系统设计方法,该文件系统支持大容量,具有安全㊁高效特性,特别适用于e MM C等芯片㊂阐述了该文件系统适用的存储芯片㊁文件系统的具体设计方法㊁控制器驱动设计㊁设计实例和性能优化方法,最后给出了测试数据,说明该文件系统具有安全㊁高效特性㊂本设计方法简单实用,具有一定的借鉴价值㊂关键词:安全文件系统;F A T;大容量存储;e MM C中图分类号:T P333.5文献标识码:AD e s i g n M e t h o d o f S e c u r e F i l e S y s t e m o nE m b e d d e d S y s t e mL i n g T e l i,X u Y u n s o n g,S h e n C h e n,Z h a n g R o n g l i a n g(X u c h a n g X u j i S o f t w a r e T e c h n o l o g y L i m i t e d C o m p a n y,X u c h a n g461000,C h i n a)A b s t r a c t:I n t h e p a p e r,a d e s i g n m e t h o d o f s e c u r e f i l e s y s t e m o n e m b e d d e d s y s t e m i s i n t r o d u c e d.T h i s m e t h o d i s s e c u r e a n d h i g h p e r f o r m-a n c e,s u p p o r t s m a s s s t o r a g e,a n d i s s u i t ab l e f o r e MM Cc h i p p a r t i c u l a r l y.T h ede t a i l e d c o n t e n t i s d i s c u s s e d,i n c l u d i n g s t o r a g e c h i p a p p l i c a-b l e t o t h e f i l e s y s t e m,t h e d e t a i l e d d e s i g n m e t h o d,t h ec o n t r o l l e rd r i ve r d e s i g n,a d e s i g n e x a m p l e a n d t h e p e rf o r m a n c e o p t i m i z a t i o n m e t h-o d s.F i n a l l y,t h e t e s t d a t a i sg i v e n.I t i s s t a t e d th a t t hi s f i l e s y s t e m i s s e c u r e a n d h i g h p e r f o r m a n c e.T h e d e s i g n m e t h o d i s s i m p l e a n d p r a c-t i c a l,i t h a s c e r t a i n a p p l i c a t i o n s a n d r e f e r e n c e v a l u e.K e y w o r d s:s e c u r e f i l e s y s t e m;F A T;m a s s s t o r a g e;e MM C引言当前嵌入式系统的F L A S H存储芯片发展十分迅速,新类型芯片不断涌现,如e MM C等,技术标准也在不断升级,容量越来越大㊁性能越来越高㊂如何在嵌入式系统中使用这些大容量芯片,需要选择合适的文件系统㊂同时,嵌入式系统对文件系统的安全性要求高,突然掉电不能对文件系统产生不良影响,破坏文件系统,文件系统也不能对芯片做不当操作,防止芯片过早损坏㊂目前常用文件系统有多种类型,分别适用于不同的应用场合㊂机械硬盘在不断发展的过程中,诞生了多种文件系统,例如F A T㊁N T F S㊁E X T2㊁E X T3等㊂嵌入式系统通常采用F L A S H芯片作为存储设备㊂在F L A S H芯片发展早期,芯片容量小㊁速度慢,对芯片操作有条件限制,诞生了一些F L A S H专用文件系统,如Y A F F S㊁J F F S等㊂这些专用文件系统也是安全文件系统㊂当e MM C等新技术F L A S H芯片出现后,容量达到G B级别,读写速度达到M B级别,且芯片对外操作接口发生了变化㊂原来的F L A S H文件系统不再适用,需要寻找其他文件系统来管理这类芯片㊂针对上述问题,本文提出一种在嵌入式系统中适用于e MM C等芯片的安全文件系统设计方法,该方法基于F A T文件系统改造,在开源代码F a t F s的基础上实现,具有支持大容量㊁安全㊁易于实现的特点,是一种比较理想的解决方案㊂1F L A S H芯片经历了多年发展,当前嵌入式系统中的F L A S H存储芯片种类繁多㊂不同的嵌入式系统对F L A S H芯片的需求差别很大,一些类型比较古老的芯片如E E P R OM有稳定的应用场合,同时新技术芯片也在不断登场㊂F L A S H 芯片按有无内置控制器可分为R a w F L A S H和M a n a g e d F L A S H㊂R a w F L A S H可分为N O R F L A S H和N A N D F L A S H两大类㊂N O R F L A S H容量较小,常用容量为8~128M B,不易产生坏块,可片上执行,一般用来存储代码㊂N A N D F L A S H容易产生坏块,需要配合E C C使用,容量较大,一般用来存储数据㊂R a w F L A S H对外提供原始的操作接口,包括编程㊁擦除㊁读等操作㊂文件系统需要注意F L A S H操作细节问题,如F L A S H存储单元的擦除次数限制,编程前需要做擦除操作,N A N D F L A S H 以页为单位做编程和读操作㊂这些芯片需要使用F L A S H 文件系统,如Y A F F S ㊁J F F S 等㊂M a n a ge d F L A S H 是在N A N D F L A S H 的基础上增加内置控制器设计而成,如e MM C 芯片等㊂由于在N A N D F L A S H 基础上实现,具有容量大的特点,特别是M L C ㊁T L C 和多层堆叠技术的使用,成倍提高了芯片的容量;由于集成了控制器,芯片具有均衡磨损(W e a r l e v e l -i n g)㊁坏块管理㊁垃圾回收㊁E C C 等功能,使得文件系统不用再关心F L A S H 操作细节问题,可以像访问机械硬盘一样访问存储内容,还具有对外操作接口简单㊁性能高的特点㊂由于有相关标准规范,具有对外接口统一的特点㊂在设计适用于e MM C 芯片的文件系统时要注意以下问题:第一文件系统要支持大容量,应至少能支持256G B的容量;第二芯片本身具有一定的安全特性,文件系统不用再关心F L A S H 的操作细节以及芯片过早损坏问题,掉电安全问题还需要文件系统处理;第三在增加安全特性时,要应尽量减少性能损失㊂2 安全F A T 设计本文提出的嵌入式安全文件系统基于F A T 文件系统设计㊂原生的F A T 是一种用在W i n d o w s 操作系统上的文件系统,可以支持256G B 以上的大容量,单个文件大小可达4G B ㊂F A T 不是掉电安全的文件系统,突然掉电可能对文件系统造成破坏㊂因此F A T 文件系统需要经过改造处理才能成为在e MM C 芯片上使用的安全文件系统,方法是在其基础上增加掉电安全功能,并尽量减少由此带来的性能损失㊂F A T 文件系统由引导扇区(D B R )㊁F A T 表㊁根目录㊁数据区组成,图1为F A T 32的组织形式㊂图1 F A T 32的组织形式F A T 表和目录项是F A T 文件系统重要的概念㊂F A T 表以链表的形式存放文件或目录簇号,文件和目录内容都是以簇为单位存储的㊂目录项纪录文件或目录的名称㊁类型㊁时间㊁起始簇号等信息,一个目录项占用32字节,一个文件或目录有一个(短名称)或多个(长名称)目录项,目录项作为目录文件内容存放在数据区㊂掉电会对文件系统造成破坏,如果在写F A T 表或目录项时发生掉电,可能会产生不完整的操作,从而破坏文件系统㊂安全F A T 文件系统采用日志文件系统(J o u r n a -l i n g f i l e s ys t e m )的思想,当对F A T 表㊁目录项写操作时,操作前后都记日志㊂假如写F A T 表或目录项时发生了掉电,重新上电初始化时,文件系统可以通过日志信息作恢复操作,防止出现不完整的操作㊂另外,文件系统初始化增加了簇回收功能,可以回收异常簇㊂从图1中可以看出,F A T 1前有保留扇区,在保留扇区选择一个空闲扇区作为日志扇区㊂表1为日志扇区需要记录的内容㊂表1 日志扇区记录内容记录项记录信息刷新F A T 表刷新状态字段S f a t f㊁目标扇区号创建目录项目录项创建状态字段S r e gc ㊁目录项位置删除目录项目录项删除状态字段S r e gd ㊁目录项位置删除文件删除状态字段S de l f㊁起始簇号㊁目录项位置C R C (32b i t)前面所有字节的C R C 校验值图2 刷新F A T 表流程如果在刷新F A T 表的过程中发生了掉电,目标扇区可能会写不成功,导致F A T 表受到破坏㊂F A T 文件系统有2个F A T 表,使用双F A T 表互为恢复源,图2为增加日志后刷新F A T 表的流程㊂图3为上电初始化时日志扇区的字段S f a t f 检查流程㊂当文件占用多个目录项时,目录项可能会跨扇区,若操作跨扇区的目录项时发生了掉电,会导致数据不完整㊂以创建目录项(删除目录项和此相同)为例,说明操作目录项的流程,图4为增加日志后创建目录项流程㊂图5为上电初始化时日志扇区的字段S r e gc 检查流程㊂图3 字段S f a t f 检查流程删除文件时,需要删除目录项和簇链表,如果在操作过程中发生了掉电,会导致删除不完整㊂图6为增加日志后删除文件流程㊂图4 创建目录项流程图5 字段S r e gc 检查流程图7为上电初始化时日志扇区的字段Sde lf 检查流程㊂图6 删除文件流程图7 字段S d e l f 检查流程另外,掉电会导致F A T 表出现一些不可回收的簇,这些簇在F A T 表中表现为使用状态,但是根据目录项找不到这些簇㊂簇回收功能在文件系统初始化时检查这些簇并回收,本文采用耗时优先的方式把F A T 主表内容全部复制到内存中,遍历所有目录和文件,凡是能根据目录项找到的簇链表都在内存中删除,遍历完毕后,内存中没有被删除的簇都是不可回收的簇,在F A T 表中删除㊂每次写日志扇区前要刷新C R C 值,读日志扇区时根据C R C 值检查数据正确性㊂3 驱动设计e MM C 芯片一般连在S D 控制器上,S D 控制器一般在嵌入式处理器内部集成㊂下面以S D 控制器连接e M -M C 芯片为例,说明驱动的设计要点㊂表2列出了驱动程序需要对外提供的接口函数㊂表2 接口函数接口函数接口功能S d C a r d I n i t i a l i z e初始化S D 控制器和e MM C 芯片S d R e a d读扇区数据S d W r i t e 写扇区数据S D 控制器和e MM C 都需要在S d C a r d I n i t i a l i z e 函数中初始化,图8为其初始化流程㊂图8 S D 控制器和e M M C 初始化流程图读数据前,先设置D MA 搬运数据用的描述符,描述符描述了D MA 在内存中搬运数据的参数,然后发送C MD 18(读多块数据)命令,接着循环查询控制器的状态寄存器,等待读数据完成;写数据前,先设置描述符,然后发送C M D 25(写多块数据)命令,接着循环查询控制器的状态寄存器,等待写数据完成㊂另外,不能启用e MM C 芯片缓存,启用芯片缓存会导致突然掉电时日志扇区数据不能真正写入㊂图9 模块划分图4 设计实例本实例以开源代码F a t F s 为基础,采用上述掉电安全策略实现了掉电安全F A T 文件系统㊂图9为模块划分图㊂接口抽象层用于向上层提供标准文件调用接口,掉电安全F a t F s 是核心模块,实现了掉电安全策略,S D 控制器驱动用于访问存储芯片㊂F a t F s 在读F A T 表或目录项时,每次只读一个扇区㊂在实际运行中,重复读取一些扇区的频率很高,会影响整体读写速度㊂所以在驱动中增加了缓存机制,以扇区为单位,写操作时写缓存,并更新缓存;读操作时从缓存中读取数据,若没有命中,则从存储芯片中读取并更新缓存㊂5 测试数据在一款C o r t e x A 9内核的板卡上对该文件系统作了测试,表3列出了该板卡基本硬件信息㊂表3板卡基本硬件信息设备参数处理器X C7Z010,频率650MH z,S D控制器支持2.0标准内存D R AM,512M B存储设备e MM C(32G B),支持5.0标准在该硬件环境下做了读写速度测试㊁初始化耗时测试,并和原生F A T做了测试对比,表4列出了详细的测试数据㊂表4测试数据对比类型测试项目测试数据原生F A T 写文件速度5.52M B/s 读文件速度11.30M B/s 最大初始化耗时1s安全F A T 写文件速度5.47M B/s 读文件速度11.11M B/s 最大初始化耗时4s在掉电测试中,测试前用多层目录和小文件把存储空间基本占满(剩余约10%的可用空间),在对文件系统做创建㊁读写㊁删除等操作时随机掉电,一共掉电2万次,文件系统未出现异常㊂还做了拷机测试,运行32个任务不间断地并行操作文件系统,拷机180天,文件系统未出现异常㊂结语嵌入式系统的存储芯片技术更新越来越快,作为管理存储芯片的文件系统,也应该适应这种变化㊂本文提出的嵌入式安全文件系统支持大容量,安全得到保证,基本不降低读写性能,实用性强,是一个值得参考的设计方案㊂参考文献[1]郑文静,李明强,舒继武.F l a s h存储技术[J].计算机研究与发展,2010(4):716726.[2]顾宝根,顾喜梅.日志结构的嵌入式文件系统研究[J].计算机工程与设计,2004(6):915917.[3]王东,杨琼,杨静远.面向F l a s h存储器的F A T文件系统可靠性增强机制[J].航空计算技术,2017(3):8588. [4]刘可嘉,梁阿磊.实现实时F A T文件系统的一种简单方法[J].计算机工程与设计,2008(16):7072.[5]姚堃,张俊涛.提高F A T文件系统在N A N D存储器上可靠性的研究[J].微电子学与计算机,2010(4):7881. [6]谢琦,胡俊,王磊.F A T文件系统在N A N D F L A S H上的磨损均衡研究[J].微电子学与计算机,2011(7):3437. [7]李庆诚,孙明达.基于N A N D型闪存的嵌入式文件系统设计[J].计算机应用研究,2006(4):231233.[8]邓剑,杨晓非,廖俊卿.F A T文件系统原理及实现[J].计算机与数字工程,2005(9):105108.凌特利(工程师),主要研究方向为电力系统二次设备驱动;徐云松(高级工程师)㊁沈沉(工程师),主要研究方向为电力系统装置软件平台;张荣良(工程师),主要研究方向为电力系统二次设备通信㊂(责任编辑:薛士然收稿日期:2019-01-08)[6]晓琳,武键.如何定位圆头锁眼机中心针[N].中国服饰报,20110520(A23).[7]杨晓峰.圆头锁眼机的三维设计[D].洛阳:河南科技大学,2012.[8]武键.平头锁眼机跳针㊁断针故障处理[N].中国服饰报,20081219(B39).[9]方海祥,安琦.圆头锁眼机针杆复合凸轮的反求设计[J].机械设计与研究,2004(6):9,7981.[10]林建龙,赵罘,朱小平,等.电脑刺绣机针杆机构位移仿真方法的研究[J].计算机仿真,2004(6):6870,45.[11]赵延雯,刘朝辉.电脑绣花机针杆㊁挑线机构的分析[J].武汉科技学院学报,2000(3):5256.[12]熊永康.三自由度并联机器人轨迹规划及其控制实现[D].大连:大连理工大学,2014.[13]蒋璇.3P S S并联机器人工作空间分析与轨迹规划研究[D].芜湖:安徽工程大学,2013.[14]张运强.开放式并联机器人控制平台关键技术研究[D].哈尔滨:哈尔滨工业大学,2013.[15]王正武,祝本明,刘必标.圆头锁眼机控制系统设计与实现[J].现代电子技术,2014,37(13):122125.[16]郭超,辛世界,李玉胜.两种坐标空间中D e l t a机器人轨迹规划仿真[J].制造业自动化,2014,36(4):4951,93.[17]山健,胡文海.工业锁眼机主轴伺服电机控制原理分析[J].微电机,2013,46(5):6569.[18]胡峰,骆德渊,段栋栋.基于P r o/E与S i m u l i n k的D e l t a并联机器人运动仿真[J].机电工程,2012,29(8):982984,992.[19]赵毅忠,刘必标,杨奕昕.嵌入式平头锁眼机控制系统的设计[J].自动化与仪表,2012,27(4):4749.[20]韦洪兰.圆头锁眼机控制器的研究[D].长沙:中南大学,2010.[21]楼豪生,邹慧君,郭为忠.圆头锁眼机机构系统研究[J].机械设计与研究,1998(3):4950.[22]王晓华,杨涛,张蕾,等.服装裁片挂片机器人控制系统设计[J].纺织高校基础科学学报,2018,31(1):2530.王晓华(教授),主要研究方向为智能机器人及模式识别㊂(责任编辑:薛士然收稿日期:2018-12-13)。

半导体的charge pumbing现象 -回复

半导体的charge pumbing现象 -回复

半导体的charge pumbing现象-回复半导体的charge pumping现象半导体材料是目前电子技术中不可或缺的一个组成部分。

在半导体器件中,电子和空穴的运动对于器件的性能和功能至关重要。

在这种环境下,半导体材料中的电荷泵现象是一个重要的现象,它能够有效地驱动电荷在半导体材料中的传输,为器件的正常工作提供了必要的支持。

在半导体器件中,电荷泵现象可以通过以下步骤来解释和理解。

第一步:介绍半导体材料和PN结我们首先来介绍一下半导体材料和PN结。

半导体材料是一种能够在某些条件下表现出导电性的材料,它的导电性介于金属和非金属之间。

而PN 结是一种由一块掺杂有P型(富电子)和N型(富空穴)半导体材料相接而成的结构。

PN结中存在一个电子浓度较高、呈正电荷的区域,即接近N型半导体的电荷泵区域,以及一个电子浓度较低、呈负电荷的区域,即接近P型半导体的电荷泵区域。

第二步:描述电荷泵现象的起因电荷泵现象的起因在于半导体材料中电子和空穴的输送过程。

当外加电场或电压作用于PN结时,P型半导体中的空穴会被迁移到N型半导体,而N型半导体中的电子会被迁移到P型半导体。

这种电子和空穴的迁移过程可以形象地比作一种泵动的作用,将电荷从一边“抽”到另一边,从而形成了电荷泵现象。

第三步:解释电荷泵现象的机制半导体中的电荷泵现象是由两个关键的机制驱动的:耗尽层和隧道效应。

耗尽层是PN结中电子和空穴在电场作用下发生扩散过程的一个关键环节。

当外加电场作用于PN结时,电子和空穴会在P-N接面处形成一个耗尽层。

在这个耗尽层中,电子和空穴的浓度迅速下降,形成了一个电场强度很大的区域。

这个电场会对电子和空穴有一个加速的作用,使它们迁移到对方所在的区域。

隧道效应则是在PN结中电子和空穴之间的输运过程中起作用的一个关键因素。

在PN结正向偏置时,电子和空穴通过穿越PN结的耗尽层,以隧道的方式相互传输。

这种通过耗尽层的隧道传输过程,使得电子和空穴能够有效地在PN结中传输,从而形成电荷泵现象。

FLASH测试方法

第二步测试地址线开路,首先将地址线由低位(I=2)到高位(I=22)依次逐一拉低病 与最高位地址 0x7ffffc 相异或,向上述地址内写入数据 0x55555555;然后向地址空间 0x7ffffc 写入数据 0x00。任何一根地址线开路的话,其地址将变为 0x7ffffc,其内容将被后写入的 0x00000000 所覆盖,不能再读出 0x55555555。
需要特别注意的是,数据线的测试务必选择比较特殊的寄存器,如上述寄存器地址。这 样可以避免与后面的地址线的测试地址发生冲突,引起测试失败或者还得增加擦除块的操 作。而块擦除时间是比较长的。
以 32 位的数据总线系统中的 FLASH 芯片测试为例,FLASH 芯片数据线测试流程图见 图 3:
第 4 页 共 8页
一般来说flash芯片的质量应该由供应商来保证我们仅对生产过程中可能出现的故障进行测试因此建议使用快速测试这可使测试效率提高大约1特别说明的是由于数据线地址线的短路或者开路有时也会造成程序无法启动的现象此时可根据现象观察来进行判断
FLASH 测试方法
1 FLASH 测试方法概述
1.1 概述
z 根据测试需求不同:有的侧重于测试全面性,有的侧重于测试速度; z 根据不同的 FLASH 芯片,其擦除方法也不同,增加了芯片类型判断; z 该文档主要参照 intel flash28xxx 系列芯片进行叙述和整理,其他类型的 flash 的具
I=2
I=I+1
ptr=(0x01)<<I;
读出偏移地址为 ptr 地址空间 内容 X
N (X==0x55555555) ?
Y Y
(I<N)?
N
第 7 页 共 8页
FLASH 测试方法

嵌入式系统实验箱使用手册

2.2.1 开机进入 BIOS 模式 .............................................................................................. 20 2.2.2 安装 USB 下载驱动 .............................................................................................. 21 2.2.3 功能主菜单说明 .................................................................................................... 25 2.3 linux 系统搭建.............................................................................................................. 26 2.3.1 图解安装 Centos 5.3............................................................................................. 26 2.3.2 安装开发所需交叉编译工具 ............................................................................... 46 2.3.3 解压安装源代码及其他工具................................................................................ 48 第三章实验 ............................................................................................................................. 51 实验一 Makfile 和 Hello word .......................................................................................... 51 实验二 4X4 键盘实验 ....................................................................................................... 55 实验三 A/D 数据采集实验 ............................................................................................... 57 实验四直流电机控制实验 ................................................................................................. 61 实验五步进电机控制实验 ................................................................................................. 65 实验六串口通信实验 ......................................................................................................... 71 实验七 UDP 通信实验 ...................................................................................................... 80 实验八 TCP 通信实验....................................................................................................... 85 实验九简单的 linux 驱动实验........................................................................................... 92 实验十步进电机驱动实验 ................................................................................................. 96

效率源Flash闪存数据恢复大师数据恢复案例

数据恢复案例1效率源Flash闪存数据恢复大师数据恢复案例:SM321QF-HY27UU08AG5A- 1-1-1 [复制链接]查看:9319回复:1091#发表于 2009-08-07 09:35 |只看楼主故障U盘基本信息主控型号:SM321QF Flash芯片型号:HY27UU08AG5A 芯片数:1 通道数:1-1 下面用效率源最新推出的Flash数据恢复大师恢复故障U盘中的数据。

前面的案例中已经详细介绍了从U盘中取出Flash芯片,以及Flash芯片在数据恢复大师架俱上的放置方法,在此不再赘述。

Step 01 双击Flash数据恢复大师应用程序图标,启动FLASHEXP.EXE 程序,单击"装入"按钮,如下图所示。

Step 02 在打开的对话框的"查找范围"下拉列表框中设置项目文件所在的位置,在其下的列表框中选择项目文件"Project.ini",单击"打开"按钮,如下图所示。

提示:此处打开的项目文件是之前读取过的Flash芯片中的项目信息。

若我们从某个故障U 盘(或CF卡、SD卡、记忆棒)中取出Flash芯片进行第一次读取,需要先将芯片放置在效率源数据恢复大师的架俱上,启动FlashEXP.exe程序,在"项目管理"工作界面中的"项目信息"栏中填写故障U盘的设备型号,即Flash芯片是属于U盘、CF卡、SD卡还是忘记棒的;然后填写主控型号,一般主控芯片上都有标明;再选择故障设备中Flash芯片的个数,数据恢复大师最大支持4个芯片的闪存设备。

设置好这些信息后单击"自动获取芯片参数"按钮,程序自动获取存储芯片的信息,单击"保存"按钮即可将设置和获取到的故障设备的信息默认保存为"Project.ini"项目文件。

ICT在线测试原理

ICT在线测试原理摘要:本文介绍在线测试的基本知识和基本原理。

1 慨述1.1 定义在线测试,ICT,In-Circuit Test,是通过对在线元器件的电性能及电气连接进行测试来检查生产制造缺陷及元器件不良的一种标准测试手段。

它主要检查在线的单个元器件以及各电路网络的开、短路情况,具有操作简单、快捷迅速、故障定位准确等特点。

飞针ICT基本只进行静态的测试,优点是不需制作夹具,程序开发时间短。

针床式ICT可进行模拟器件功能和数字器件逻辑功能测试,故障覆盖率高,但对每种单板需制作专用的针床夹具,夹具制作和程序开发周期长。

1.2 ICT的范围及特点检查制成板上在线元器件的电气性能和电路网络的连接情况。

能够定量地对电阻、电容、电感、晶振等器件进行测量,对二极管、三极管、光藕、变压器、继电器、运算放大器、电源模块等进行功能测试,对中小规模的集成电路进行功能测试,如所有74系列、Memory 类、常用驱动类、交换类等IC。

它通过直接对在线器件电气性能的测试来发现制造工艺的缺陷和元器件的不良。

元件类可检查出元件值的超差、失效或损坏,Memory类的程序错误等。

对工艺类可发现如焊锡短路,元件插错、插反、漏装,管脚翘起、虚焊,PCB短路、断线等故障。

测试的故障直接定位在具体的元件、器件管脚、网络点上,故障定位准确。

对故障的维修不需较多专业知识。

采用程序控制的自动化测试,操作简单,测试快捷迅速,单板的测试时间一般在几秒至几十秒。

1.3意义在线测试通常是生产中第一道测试工序,能及时反应生产制造状况,利于工艺改进和提升。

ICT测试过的故障板,因故障定位准,维修方便,可大幅提高生产效率和减少维修成本。

因其测试项目具体,是现代化大生产品质保证的重要测试手段之一。

ICT测试理论做一些简单介绍1基本测试方法1.1模拟器件测试利用运算放大器进行测试。

由“A”点“虚地”的概念有:∵Ix = Iref∴Rx = Vs/ V0*RrefVs、Rref分别为激励信号源、仪器计算电阻。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

N A N D F l a s h上均匀损耗与 掉电恢复在线测试■同济大学 胡一飞 徐中伟 谢世环 摘 要NAND Flash以其大容量、低价格等优势迅速成为嵌入式系统存储的新宠,因此其上的文件系统研究也日益广泛。

本文简要介绍了常用的NAND Flash文件系统YAFFS,并针对YAFFS在均匀损耗和掉电恢复方面进行在线测试。

在给出测试结果的同时,着重研究嵌入式软件测试方案和方法;对测试结果进行分析,并提出改进方案和适用环境。

 关键词NAND Flash 均匀损耗 软件测试 YAFFS引 言随着嵌入式技术在各种电子产品中的广泛应用,嵌入式系统中的数据存储和管理已经成为一个重要的研究课题。

Flash存储器具有速度快、容量大、成本低等很多优点,因此在嵌入式系统中被广泛用作外存储器件。

嵌入式系统中的Flash存储器需要有自己的文件系统,而不能直接移植通用文件系统,主要有两个原因:第一,嵌入式系统的应用条件恶劣,电源电压不稳定,突发性断电以及非法插拔都容易造成灾难性的影响,通用文件系统对于可靠性的设计考虑不足;第二,通用文件系统的记录信息(如FA T表)需要被多次修改,而记录信息放在Flash存储器固定的区块中,将导致该区块的频繁操作,从而缩短Flash 器的使用寿命。

这样就对软件技术提出了更高的要求。

为了管理复杂的存储硬件,同时提供可靠高效的存储环境,出现了基于NAND和NOR的文件系统。

目前主流的FFS(Flash File System)有如下3种:TrueFFS、J FFSx以及YAFFS。

YAFFS(Yet Another Flash File Sys2 tem)是专门为NAND Flash设计的嵌入式文件系统,适用于大容量的存储设备。

它是日志结构的文件系统,提供了损耗平衡和掉电保护等机制,可以有效地减小上述原因对文件系统一致性和完整性的影响。

本文正是基于这样的前提,介绍了关于嵌入式YAFFS文件系统测试方案,针对文件系统中损耗平衡和掉电保护两个重要的系统性能指标进行实时在线的测试与分析,不同的应用环境使用该文件系统应进行相应的修改。

1 Y AFFS文件系统概述YAFFS文件系统类似于J FFS/J FFS2文件系统。

不同的是,J FFS1/2文件系统最初是针对NOR Flash的应用场合设计的,而NOR Flash和NAND Flash本质上有较大的区别。

尽管J FFS1/2文件系统也能应用于NAND Flash,但由于它在内存占用和启动时间方面针对NOR的特性做了一些取舍,所以对NAND来说通常并不是最优的方案。

1.1 NOR和NAND的比较基本上NOR比较适合存储程序代码,其容量一般较小(比如小于32MB),且价格较高;而NAND容量可达1G B以上,价格也相对便宜,适合存储数据。

一般来说, 128MB以下容量NAND Flash芯片的一页大小为512字节,用来存放数据,每一页还有16字节的备用空间(Spare Data),充当OOB(Out Of Band)区域,用来存储ECC (Error Correction Code)校验/坏块标志等信息;再由若干页组成一个块,通常一块为32页(16K B)。

与NOR相比,NAND不是完全可靠的。

每块芯片出厂时允许有一定比例的坏块存在,对数据的存取不是使用线性地址映射,而是通过寄存器的操作串行存取数据。

1.2 Y AFFS数据在NAND上的存储方式YAFFS根据NAND闪存以页为单位存取的特点,将文件组织成固定大小的数据段。

利用NAND闪存提供的每页16字节的备用空间来存放ECC检验信息和文件系统的组织信息,不仅能够实现错误检测和坏块处理,而且能够提高文件系统的加载速度。

YAFFS 将文件组织成固定大小(512字节)的数据段。

每个文件都有一个页面专门存放文件头,文件头保存了文件的模式、所有者id 、组id 、长度、文件名等信息。

为了提高文件数据块的查找速度,文件的数据段组织成树形图1 Y AFFS 文件系统 数据的存储布局结构。

YAFFS 在文件进行改写时,总是先写入新的数据块,然后将旧的数据块从文件中删除。

YAFFS 使用存放在页面备用空间中的ECC 进行错误检测,出现错误后会进行一定次数的重试;多次重试失败后,该页面就被停止使用。

以(512+16)字节为一页的NAND Flash 芯片为例,YAFFS 文件系统数据的存储布局如图1所示。

2 Y AFFS 文件系统测2.1 测试总体说明YAFFS 文件系统是开源的,测试基于白盒测试。

在所关心的代码段中,插入测试代码。

为保证测试代码不对原代码造成影响,测试后可立即恢复为原代码,所有测试代码(包括测试用变量和函数)均嵌入到#define FS_TEST 宏定义中。

2.2 模拟文件的生成嵌入式环境下对文件系统进行大量、长时间的测试存在很多问题,不易实现,对测试代码的插入和数据的监视也比较困难。

这里采用PC 模拟测试的形式,用文件的读/写模拟NAND 器件,并在PC 上对模拟文件监视,以达到测试的目的。

代码定义了各种NAND 器件的类型,以适应不同的器件。

模拟器件时,也用这些信息生成相应的模拟文件。

指明要模拟的NAND 器件的大小(FIL E_SIZE_IN_MEG )和结构(BLOCKS_PER_MEG ,BLOCK_SIZE )后,按照相应的大小和结构生成文件g_filedisk 。

3 均匀损耗测试3.1 测试目的NAND Flash 器件每个Block 区块的擦写次数有限。

在需要实时记录的应用环境中,为保证器件寿命,应尽量使每个区块的擦写次数相对平均,以最大程度地延长NAND Flash 器件的使用寿命。

此项测试记录每个Block区块的擦写次数,以测试YAFFS 文件系统在均匀损耗方面的性能。

3.2 测试方法测试代码在器件模拟文件的每一页的Spare 区后,增加了字节,用于记录该页的擦写次数。

由于擦写是以Block 为单位进行的,因此每个Block 各页的擦写记录数是相同的。

在以后的测试中,可以只使用第一页的该Block 空间记录擦写次数,其他空间作其他测试用。

测试代码插入到CheckInit ()和yaffs_FEEraseBlock 2InNAND ()(yaffs_fileem.cpp )中,在初始化器件模拟文件时,生成(新模拟文件)或读取(己有模拟文件)擦写次数;并在程序执行擦写函数时,对擦写次数进行累加和保存。

测试程序用到的测试变量:记录擦写次数的数组2g_ersNumArray[FIL E_SIZE_IN _MEG 3BLOCKS_PER_MEG]、指向擦写的最大值2g_p ErsMax 和指向擦写的最小值2g_p ErsMin 。

测试程序用WireOut0.log 和WireOut1.log 两个文件记录每个Block 区块的擦写次数,查看这两个文件,可以看到每个区块的擦写次数以及最大/最小值。

两个文件是等同的,因测试时间比较长,取两个文件以避免系统在写记录文件时出错,而丢失所有的记录;两个文件轮流写,保证至少有一个文件的内容是系统出错前最近的记录。

3.3 测试结果YAFFS 文件系统按“顺序”使用未分配的空间用于新的写入操作,并以同样“顺序”擦除废弃的区块。

写入和擦除操作,均按顺序在未分配的空间或废弃的空间中进行。

当系统未用空间小于某一预设值后,系统将对存在废弃页的区块进行回收。

这种写入和擦除策略在一定程度上保证了损耗的均匀性。

这种机制虽然在一定程度上满足均匀损耗的要求,但还是存在问题,并不适用于所有的嵌入式应用环境。

假设在一块16MB 的NAND 器件上,有10MB 空间用来存放相对固定、不经常修改的数据文件,则经常修改的文件只能在剩下的6MB 空间上重复擦写,在这6MB 空间上做到“均匀损耗”。

对整个器件来说,系统并没有合适的搬移策略对固定文件进行搬移,整个器件做不到均匀损耗。

在实时记录信息量比较大的应用环境中,应编写相应的搬移策略函数,对固定文件进行定期的搬移,以确保整个NAND 器件的均匀损耗。

4 掉电恢复性能测试4.1 测试目的文件系统应能保证在系统突然断电的情况下,最大限度地恢复(保护)有用数据。

如果在修改一个文件时掉电,那么掉电后的文件保护方式根据实际情况可分为3种:①用旧文件完全代替新写文件,新写文件(没写完)被忽略。

这种保护方式应用比较多,比如在更新设置时掉电,使用掉电前的设置,用户是可以接受的。

②用新文件完全代替旧文件(新文件写了多少就保留多少)。

这种保护方式适合应用于文本的情况,比如短信。

新短信虽然不完整,但根据情况用户可以得到部分信息,如果发送方信息完整或属于可猜测的情况,则可以要求发送方重发。

③己写部分用新文件,未写部分用老文件,所谓“新加旧”的保护方式。

这种保护方式可以应用在动态更新的文件上。

但是,对于使用偏移量进行的文件读写操作,采用这种保护方式,会产生乱码。

4.2 测试方法测试代码随机产生掉电消息,模拟一次掉电行为。

测试代码插入到yaff s _FEWriteChunk ToNAND ()(yaff s _fileem.cpp )中,在写Data 区和Spare 区时分别产生随机掉电位置,模拟掉电行为。

掉电后,程序重新挂接文件系统,并读取掉电时正在更新的文件,与原文件相比给出判定结果。

程序用到的测试变量:掉电类别2g_t st PowerOff ,1为Data 区掉电,2为Spare 区掉电。

在完全模拟时,掉电类别随机产生。

程序用TestLog.log 记录掉电后判定的结果。

TestLog.log 为增加方式打开,新记录写在最后,不影响原有的记录结果。

4.3 测试手段模拟一次“掉电”行为,需要进行特殊的处理。

实际的掉电行为在电源重新供给后,整个系统会重新开始,包括重新启动文件系统。

掉电前系统的所有参数、系统堆栈以及现场均失效。

在测试中模拟掉电行为有一定的难度,直接断电既不安全,也不现实,可用exit ()函数中止程序来模拟。

在执行写操作时,写入随机的字节数后,用exit ()函数立即中止程序的运行;再重新启动程序,读取掉电时写入的文件,分析文件以检查文件系统新的掉电保护功能。

上述测试手段不适用于自动测试,也不可能手工进行大量的测试。

笔者在该项测试中,巧妙地使用了try{}和catch{}结构,既模拟了实际的掉电行为,又保证了自动测试的顺利进行。

模拟掉电行为的核心代码如下:#ifdef FS_TEST //测试代码段switch (rand ()%5){//随机产生20%的掉电率case 0://无掉电情况case 1:case 2:case 3:write (g_filedisk ,localData ,512);break ;case 4://模拟掉电行为,随机产生掉电时//己写的字节数write (g_filedisk ,localData ,rand ()%512);close (g_filedisk );//己掉电,关闭磁盘模拟文件initialised =0;//为防止文件系统出差,置初始化//标志为未初始化//抛出异常,直接返回到文件系统加载处,跳过函数正//常返回的过程t hrow int (0x01);//exit (0);break ;}#endif主控程序代码如下:yaff s_StartUp ();yaff s_mount ((signed char 3)"/Root");poCode =0;try {//修改一个文件(在写文件时,每页会有20%的掉电率)modify_in_a_file ("/Root/File");}catch (int i_code ){poCode =i_code ;}//模拟掉电结束后重新挂接系统,并测试掉电文件的正确性yaff s_StartUp ();yaff s_mount ((signed char 3)"/Root");copy_out_a_file ("File.poff",(signed char 3)"/Boot/File");yaff s_unmount ((signed char 3)"/Root");//以下检测File.poff 的正确性…4.4 测试结果YAFFS NAND 文件系统,只提供上述的②和③两种文件保护方式。

相关文档
最新文档