一种基于nandflash的电子盘及其运行控制方法

文档序号:6470384阅读:166来源:国知局

专利名称::一种基于nandflash的电子盘及其运行控制方法
技术领域
:本发明涉及电子盘,更具体地说,涉及一种基于NANDFLASH的电子盘及其运行控制方法。
背景技术
:普通硬盘的工作机理是电机带动硬盘盘片高速旋转,通过磁头臂的摆动读取盘片数据。在工业控制和军事领域应用中,由于机械振动、粉尘、温度变化等的影响,硬盘很容易出故障而不能正常使用。而且普通硬盘接口复杂,体积大。
发明内容本发明要解决的技术问题在于,针对现有技术的普通硬盘防机械振动、粉尘、温度变化性能差,以及接口复杂,体积大等缺陷,提供一种基于NANDFLASH的电子盘及其运行控制方法。本发明解决其技术问题所采用的技术方案是构造一种基于NANDFLASH的电子盘,包括NANDFLASH芯片和FPGA控制器,其中,FPGA控制器用于实现ISA总线与NANDFLASH芯片之间的数据交换,以及ISA总线对NANDFLASH的读写控制;计算机操作系统固化在NANDFLASH芯片中。在本发明所述的基于NANDFLASH的电子盘中,所述FPGA控制器包括ISA总线接口,用于读取ISA总线发送的数据和控制信号,同时向ISA总线发送NANDFLASH芯片的数据和状态信息;扩展R0M,用于存储扩展的BIOS数据;读写控制器,用于根据NANDFLASH芯片的控制时序,向NANDFLASH芯片提供控制信号,并读取NANDFLASH芯片的状态信息。在本发明所述的基于NANDFLASH的电子盘中,所述读写控制器包括写操作模块,用于将ISA总线发送的数据写入NANDFLASH芯片,并反馈写操作状态;读操作模块,用于读取NANDFLASH芯片发送的数据,并反馈读操作状态;块删除模块,用于根据ISA总线发送的控制信号,删除NANDFLASH芯片中相应的块地址内的存储单元;ID识别模块,用于读取NANDFLASH芯片的ID号;在本发明所述的基于NANDFLASH的电子盘中,所述读写控制器还包括错误控制模块,用于发现和纠正NANDFLASH芯片中数据的比特错误。在本发明所述的基于NANDFLASH的电子盘中,所述读写控制器还包括坏块管理模块,用于实现NANDFLASH芯片内逻辑块和物理块间的有效映射,以便各逻辑块对应到无缺陷的物理块。根据本发明的另一个方面,提供一种基于NANDFLASH的电子盘的运行控制方法,3包括以下步骤SI:系统上电,BIOS搜索ROM扩展码,如果搜索到,进入步骤S2,否则,进入步骤S5;S2:执行NANDFLASH芯片的启动信息代码;S3:将INT13H的中断向量改为NANDFLASH芯片的中断向量;S4:调用NANDFLASH芯片的INT13H的中断处理程序,对NANDFLASH芯片进行读写控制;S5:结束。在本发明基于NANDFLASH的电子盘的运行控制方法中,所述步骤S2包括S21:将NANDFLASH芯片的驱动代码搬移到与大小相配合的存储器执行空间;S22:释放NANDFLASH芯片的映射空间。在本发明基于NANDFLASH的电子盘的运行控制方法中,在所述步骤S3中还包括保存INT13H的原中断向量。在本发明基于NANDFLASH的电子盘的运行控制方法中,在所述步骤S4中的读写控制包括对NANDFLASH芯片进行ID识别、读操作、写操作、块管理、块检测和块删除。实施本发明的基于NANDFLASH的电子盘及其运行控制方法,具有以下有益效果在工业控制和军事领域应用中,能有效地防止机械振动、粉尘、温度变化等的影响,而且该电子盘采用简化的ISA接口,体积小,直接焊接到系统电路板,接触可靠,便于嵌入式工控的应用,由于该电子盘采用半导体制成,与普通硬盘相比其寿命大大提高,另外,将本发明的电子盘应用于工业计算机系统时,由于操作系统是固化在NANDFLASH芯片中,当有病毒入侵系统时,不能对操作系统进行任何修改,有效地防止了病毒的侵入。下面将结合附图及实施例对本发明作进一步说明,附图中图1是本发明基于NANDFLASH的电子盘的电路原理框图2是本发明基于NANDFLASH的电子盘的运行控制方法的流程图3是本发明基于NANDFLASH的电子盘的映射电子的示意图。具体实施例方式近年来,随着NANDFLASH闪存芯片技术的进步,NANDFLASH芯片的价格不断走低,单芯片容量目前可以做到4GB甚至更高;基于NANDFLASH的电子盘(DOC)由于其防振动、体积小、低功耗等固有的优点,在工业控制、移动多媒体等应用方面完全可以取代硬盘等存储媒体。本方案采用FPGA实现NANDFLASH控制器,配合BIOS扩展程序一起实现电子盘(DISKONCHIP,DOC)的功能,取代硬盘完成各种计算机的启动、运行和数据存储处理功能。如图1所示,在本发明的基于NANDFLASH的电子盘中,包括NANDFLASH芯片和FPGA控制器,其中,计算机操作系统固化在NANDFLASH芯片中,该FPGA控制器包括ISA总线接口、扩展ROM、读写控制器;该读写控制器又包括、写操作模块、读操作模块、块删除模块、ID识别模块、错误控制模块和坏块管理模块;FPGA控制器在DOC系统中是底层的执行单元,它要实现的功能为接收/发送ISA总线数据、实现对NANDFLASH芯片的写操作、实现对NANDFLASH芯片的读操作、块删除操作、坏块识别、读NANDFLASH芯片的ID、对NANDFLASH芯片的复位。主机通过ISA总线访问电子盘,该电子盘采用FPGA芯片实现ISA总线接口、扩展ROM和读写控制器;ISA总线接口读写控制命令译码,扩展BIOS程序存储在扩展ROM内。FPGA控制器的功能为a、DOC复位,由于ISA接口未提供复位信号,向命令寄存器写OOH,复位读写控制器;b、NANDFLASH芯片复位,向命令寄存器写06H,复位NANDFLASH芯片;c、读NANDFLASH芯片的ID码,向命令寄存器写05H,读ID寄存器值;d、擦除NANDFLASH芯片的块,向命令寄存器写03H,向地址寄存器内写入NANDFLASH芯片的块地址,向地址结束码寄存器写入地址结束码,读状态寄存器,BIT6二l时BITO二O,擦除成功,BITO二l,擦除失败;e、读NANDFLASH芯片,向命令寄存器写02H或22H(用此命令读SLC芯片的备用区域数据),向地址寄存器内写入NANDFLASH芯片的地址,向地址结束码寄存器写入地址结束码,读状态寄存器,BIT6=1时,依次读出各个字节,读完数据后向读写数据结束寄存器发送读结束命令;f、写NANDFLASH芯片,向命令寄存器写01H,向地址寄存器内写入NAND的FLASH芯片的地址,向地址结束码寄存器写入地址结束码,向数据寄存器依次写入数据,写完数据向读写数据结束寄存器发送读结束命令,读状态寄存器,BIT6=1时BITO=O,写成功,BITO=l,写失败。另外,读写控制器的寄存器包括命令寄存器(偏移地址1FF0):主机通过ISA总线写命令,用以控制DOC;地址寄存器(偏移地址1FF1):主机通过ISA总线写NANDFLASH芯片的地址;地址结束码寄存器(偏移地址1FF2):地址码发送完成码,SLC和MLC的NANDFLASH芯片有不同的结束码;数据寄存器(偏移地址1FF4):读写NANDFLASH芯片的数据;读写数据结束寄存器(偏移地址1FF5):完成数据读写;NANDFLASH芯片的状态寄存器(偏移地址1FF6):操作状态寄存器;ID寄存器1(偏移地址1FF7):厂家ID;ID寄存器2(偏移地址1FF8):器件ID;ID寄存器3(偏移地址1FF9):器件内部描述;ID寄存器4(偏移地址1FFA):器件内部描述。ISA接口是NANDFLASH芯片与ISA总线间的桥梁,它负责获取来自ISA的数据与控制信号,并将数据及控制信号传给FPGA控制器的内部模块;同时也负责将来自FPGA控制器的内部的数据与状态信息送到ISA总线。其接口定义信号如下表1:名称方向描述ADD_DOC(12downtoO)输入DOC地址输入Data—DOC(7downto0)输入/输出DOC的数据输入/输出WE—DOC输入DOC的写信号OE—DOC输入DOC的读信号CE—DOC输入DOC的片选信号表1扩展ROM在上位机启动时工作,其中ROM—共有8K,BIOS在上位机启动时来读取这8K的数据,其信号如下表2:<table>tableseeoriginaldocumentpage6</column></row><table>表2读写控制器是按照NANDFLASH芯片的控制时序,给外接的NANDFLASH芯片提供控制信号,并从NANDFLASH芯片获取状态信息,从而实现对NANDFLASH芯片的各项操作。读写控制器内部包括六个独立的子模块,它们分别为a、写操作模块,该模块负责将PC传送来的数据写入NANDFLASH芯片中,并负责向上位机传回写操作状态。b、读操作模块,该模块负责从NANDFLASH芯片中读取数据,并向上位机传回读操作状态,将数据通过其它模块送给上位机。c、块删除操作模块,该模块负责将上位机指定的块地址内的存储单元内容全部删除掉,删除后块地址内所有存储单元内容均为"FF"。d、ID识别模块,该模块负责读取NANDFLASH芯片的ID号,以便判别NANDFLASH芯片的种类。e、错误控制模块,该模块用于发现和纠正NANDFLASH芯片中数据的比特错误。f、坏块管理模块,该模块用于实现NANDFLASH芯片内逻辑块和物理块间的有效映射,以便各逻辑块对应到无缺陷的物理块。读写控制器的信号如下表3:<table>tableseeoriginaldocumentpage6</column></row><table><table>tableseeoriginaldocumentpage7</column></row><table>表3该基于NANDFLASH的电子盘的运行控制方法,包括以下步骤SI:系统上电,BIOS搜索ROM扩展码,如果搜索到,进入步骤S2,否则,进入步骤S5;S2:执行NANDFLASH芯片的启动信息代码;S3:将INT13H的中断向量改为NANDFLASH芯片的中断向量;S4:调用NANDFLASH芯片的INT13H的中断处理程序,对NANDFLASH芯片进行读写控制;S5:结束。其中,步骤S2包括S21:将NANDFLASH芯片的驱动代码搬移到与大小相配合的存储器执行空间;S22:释放NANDFLASH芯片的映射空间。在步骤S3中还包括保存INT13H的原中断向量。在步骤S4中的读写控制包括对NANDFLASH芯片进行ID识别、读操作、写操作、块管理、块检测和块删除。在具体工作中,根据BIOS的规范可知所有的扩展ROM只能放在C8000HFOOOOH的区间内BIOS才能引导,扩展ROM有自己规范,即扩展ROM的前2个字节必须是0XAA55,然后是扩展ROM的长度,长度是以512个字节为单位,接着是ISA—FLASH驱动部分,这些部分总共加在一起的字节和要为0。电子盘作为机器的一个ISA设备,其驱动在BIOS程序看来就是一个扩展ROM,因此,计算机启动过程中将电子盘的驱动程序以只读方式自动导入PC内存,它在PC的扩展BIOS中安排了8kB的存储区域,其映射地址为0D8000H到0D9FFF的区域,其实现机制如图3所示。计算机开机自检后,电子盘作为PC的BIOS标准操作的一部分,BIOS搜寻ROM扩展码,找到后BIOS执行相应的初始代码,此码将驱动程序首先搬移到内存的可用区域继续执行,并完成修改中断向量表等一系列操作,如图2。完成上述操作后电子盘将被标识为系统的一个磁盘,如磁盘A。计算机启动后,BIOS首先进入地址0D8000H处搜寻ROM扩展码,判断是否存在0XAA55,若存在则读取驱动代码长度并继续执行;否则BIOS会自动到其他映射空间搜寻是否存在ROM扩展码。待BIOS检测完ROM扩展码后,程序跳至显示电子盘启动信息代码处继续执行。由于电子盘8K的映射空间只能用做数据交换区,而不能用作应用程序的运行空间。接下来电子盘的驱动将执行一段驱动程序自我搬移的代码,将驱动代码由地址0D8000H处搬移到9E800H至OAOOOOH处,其中的起始地址9E800H并非固定值,只要保证其起始地址与OAOOOOH的空间大小等于代码长度即可。待程序代码搬移完毕后,修改IP寄存器和CS寄存器的值,跳转到驱动程序搬移后那段存储器空间继续执行,此时电子盘8K的映射空间便被释放出来用作数据交换区。HOOK_INT13程序的作用是保存原INT13H的中断向量7并把INT13H的中断向量更改为电子盘所用的中断向量,修改INT13H中断向量的地址为0000H:004CH,此时INT13H的中断便被电子盘所接管。此后每次调用INT13H的中断都会进入电子盘的所建立的新中断服务程序中,在该中断服务程序里,首先对寄存器DL的值进行比较(与OOH比较),若该参数反映的是电子盘,则会进一步查找功能函数表,从而调用电子盘的INT13H的中断处理程序,其中包括对电子盘的ID识别、读操作、写操作、块管理、块检测、块删除等处理,待相应的操作处理完毕后便进行中断返回(IRET);倘若寄存器DL的值反映的不是电子盘而是硬盘,则会将INT13H中断向量恢复成电子盘接管INT13H前的状态。HOOK_INT13程序执行完毕后,接着就要修改常规内存容量,其修改地址是0000H:0413H,在该地址的内容里减去驱动的大小,以1024个字节为单位。应用程序每次调用INT13H中断服务程序后便会判断是否调用成功,若成功则会正常返回(RETF),否则需要进行错误处理。通过实际测试,使用本电子盘的读写误码率小于IOE-IO,使用ECC纠错算法误码率小于10E-12。另外,通过PCI-ISA桥和DOC结合将DOC可以设计为PCI插卡方式。本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。权利要求一种基于NANDFLASH的电子盘,其特征在于,包括NANDFLASH芯片和FPGA控制器,其中,FPGA控制器用于实现ISA总线与NANDFLASH芯片之间的数据交换,以及ISA总线对NANDFLASH的读写控制;计算机操作系统固化在NANDFLASH芯片中。2.根据权利要求l所述的基于NANDFLASH的电子盘,其特征在于,所述FPGA控制器包括ISA总线接口,用于读取ISA总线发送的数据和控制信号,同时向ISA总线发送NANDFLASH芯片的数据和状态信息;扩展R0M,用于存储扩展的BIOS数据;读写控制器,用于根据NANDFLASH芯片的控制时序,向NANDFLASH芯片提供控制信号,并读取NANDFLASH芯片的状态信息。3.根据权利要求2所述的基于NANDFLASH的电子盘,其特征在于,所述读写控制器包括写操作模块,用于将ISA总线发送的数据写入NANDFLASH芯片,并反馈写操作状态;读操作模块,用于读取NANDFLASH芯片发送的数据,并反馈读操作状态;块删除模块,用于根据ISA总线发送的控制信号,删除NANDFLASH芯片中相应的块地址内的存储单元;ID识别模块,用于读取NANDFLASH芯片的ID号。4.根据权利要求13任一所述的基于NANDFLASH的电子盘,其特征在于,所述读写控制器还包括错误控制模块,用于发现和纠正NANDFLASH芯片中数据的比特错误。5.根据权利要求4所述的基于NANDFLASH的电子盘,其特征在于,所述读写控制器还包括坏块管理模块,用于实现NANDFLASH芯片内逻辑块和物理块间的有效映射,以便各逻辑块对应到无缺陷的物理块。6.—种针对权利要求5所述的基于NANDFLASH的电子盘的运行控制方法,其特征在于,包括以下步骤51:系统上电,BIOS搜索ROM扩展码,如果搜索到,进入步骤S2,否则,进入步骤S5;52:执行NANDFLASH芯片的启动信息代码;53:将INT13H的中断向量改为NANDFLASH芯片的中断向量;S4:调用NANDFLASH芯片的INT13H的中断处理程序,对NANDFLASH芯片进行读写控制;S5:结束。7.根据权利要求6所述的运行控制方法,其特征在于,所述步骤S2包括521:将NANDFLASH芯片的驱动代码搬移到与大小相配合的存储器执行空间;522:释放NANDFLASH芯片的映射空间。8.根据权利要求7所述的基于NANDFLASH的电子盘,其特征在于,在所述步骤S3中还包括保存INT13H的原中断向量。9.根据权利要求7所述的基于NANDFLASH的电子盘,其特征在于,在所述步骤S4中的读写控制包括对NANDFLASH芯片进行ID识别、读操作、写操作、块管理、块检测和块删除。全文摘要本发明涉及一种基于NANDFLASH的电子盘及其运行控制方法,该系统包括NANDFLASH芯片和FPGA控制器,其中,FPGA控制器用于实现ISA总线与NANDFLASH芯片之间的数据交换,以及ISA总线对NANDFLASH的读写控制;计算机操作系统固化在NANDFLASH芯片中。本发明的基于NANDFLASH的电子盘及其运行控制方法,在工业控制和军事领域应用中,能有效地防止机械振动、粉尘、温度变化等的影响,而且该电子盘采用简化的ISA接口,体积小,直接焊接到系统电路板,接触可靠,便于嵌入式工控的应用,由于该电子盘采用半导体制成,与普通硬盘相比其寿命大大提高,另外,将本发明的电子盘应用于工业计算机系统时,由于操作系统是固化在NANDFLASH芯片中,当有病毒入侵系统时,不能对操作系统进行任何修改,有效地防止了病毒的侵入。文档编号G06F13/16GK101751978SQ20081021775公开日2010年6月23日申请日期2008年12月1日优先权日2008年12月1日发明者王玉章,马先明申请人:研祥智能科技股份有限公司;北京市研祥兴业国际智能科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1