欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文)(27页).doc

    • 资源ID:37063191       资源大小:252.50KB        全文页数:27页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文)(27页).doc

    -基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文)-第 27 页基于多功能单片学习机的NAND FLASH驱动的设计The design of NAND FLASH driver based on a Multifunction SCM learning machine摘 要基于多功能单片学习机的NAND FLASH驱动包括两部分:多功能单片学习机和NAND FLASH存储器。本论文首先介绍了多功能单片学习机的软/硬件设计,该学习机利用自动程序切换电路,使得同一片单片机既可以运行系统程序,又可以运行用户程序,实现程序代码的在线下载。学习机外部扩展了大量的硬件资源,丰富的系统硬件资源构成了各种实际应用电路,通过万能扩展接口可以很方便地仿真外部应用电路和扩展用户应用电路。然后,着重介绍了NAND FLASH扩展板的软/硬件设计,通过多功能单片学习机实现对NAND FLASH的读、写时序。关键字:多功能单片学习机 自动切换电路 NAND FLASH AbstractBased NAND FLASH multi-functional single-chip learning machine drive consists of two parts: a multi-functional single-chip learning machine and NAND Flash memory. This paper introduces the hardware / software design, multi-functional single-chip learning machine with automatic switch circuit, so with a microcontroller can either run the system program, you can run the user program, the online download of the program code. external learning machine expanse a lot of hardware resources, hardware system resources poses practical application circuit, through the universal expansion interface can easily simulate the external application circuit and extend the user application circuit. Then focuses on the the NAND FLASH expansion board hardware / software design, achieved through a multi-functional single-chip learning machine NAND FLASH read and write timing.Key word: Multifunction SCM learning machine;automatic switch circuit ;NAND FLASH; 目录摘 要IABSTRACTII第一章 绪论11.1国内外研究概况11.2本课题的主要目标和工作11.3全文结构2第二章 多功能单片学习机72.1多功能单片学习机的硬件设计72.1.1 单片机AT89S52电路82.1.2 数码显示电路112.1.3 外部存储器电路142.1.4 外部存储器的保护电路172.1.5 键盘输入电路172.1.6自动程序切换电路182.1.7 RS232通信电路192.1.8 电源电路192.2 多功能单片学习机的软件设计202.3本章小结20第三章NAND FLASH扩展板的设计223.1 NAND FLASH 扩展板硬件电路设计223.1.1 NAND FLASH接口电路223.1.2 控制器的工作原理243.2 NAND FLASH驱动253.2.1 NAND FLASH的工作原理263.2.2 NAND FLASH的读操作263.2.3 NAND FLASH的编程273.2.4 NAND FLASH的擦除293.3本章小结30第四章 NAND扩展板的调试314.1硬件仿真注意事项314.2编程中遇到的问题314.2本章小结32第五章 全文总结33参考文献34致谢35第一章 绪论1.1国内外研究概况新世纪嵌入式系统迅速,主要表现在市场发展、通信、消费电子产品和多媒体应用。在这些嵌入式系统中,存储设备的性能是决定整体系统性能的核心环节之一。相对于体积大、抗震性能差的硬盘等传统存储介质,Flash存储器具有容量大、速度快、成本低、性能佳等很多优点,适用于大量数据的存储,因此在嵌入式系统中的应用也越来越多,如在移动电话、PDA、数码相机、体积小巧的U盘、MP3播放器等多媒体消费类电子产品,正在迅速取代NOR FLASH。NOR 和NAND 是现在市场上两种主要的非易失闪存技术。Intel 于1988 年首先开发出NOR flash 技术,彻底改变了原先由EPROM 和EEPROM 一统天下的局面。紧接着,1989 年,东芝公司发表了NAND flash 结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。相“flash 存储器”经常可以与相“NOR 存储器”互换使用。但是经过了十多年之后,仍然有相当多的硬件工程师也搞不清楚NAND 闪存技术相对于NOR 技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR 闪存更适合一些。而NAND 则是高数据存储密度的理想解决方案。Nand-flash内存是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,NAND闪存是一种比硬盘驱动器更好的存储方案,这在不超过4GB的低容量应用中表现得犹为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,NAND正被证明极具吸引力。1.2本课题的主要目标和工作本设计通过对“基于多功能单片学习机的NAND FLASH驱动“的设计,可熟悉多功能单片学习机的软/硬件设计,NAND FALSH的基本工作原理及编程,熟悉硬件开发的基本流程,熟悉常用元器件的使用,熟悉单片机的硬件开发,常见接口电路设计,如NAND FLASH扩展电路、键盘输入电路,数码管显示电路,外部存储器电路、外部存储器的保护电路、自动切换程序电路、电源电路等。完成的电路板可以实现对NAND FLASH正确读,写操作,测试写入数据不少于1KBYTE。1.3全文结构第一章介绍课题背景,国内外研究概况及课题的主要目标与工作。第二章着重介绍了多功能单片学习机的硬件设计和软件设计,其中硬件设计包括单片机AT89S52电路,数码显示电路,外部存储器电路,外部存储器的保护电路,键盘输入电路,程序自动切换电路和电源电路等;软件设计包括上位机PC 软件和下位机软件。第三章是详细地分析了NAND扩展板的设计。NAND扩展板的设计主要从NAND扩展板硬件电路设计和驱动两方面阐述。第四章介绍了NAND扩展板的调试,对硬件设计和编程中遇到的问题进行了分析。第二章 多功能单片学习机多功能单片学习机利用自动程序切换电路,使得同一片单片机既可以运行系统程序,又可以运行用户程序,实现程序代码的在线下载。系统提供三种编程接口:系统小键盘编程接口、红外遥控器编程接口和微机编程接口,旨在提高使用者编程学习的灵活性。单片机外部扩展了大量的硬件资源:键盘、数码显示器、红外遥控接收器、蜂鸣器、RS232 通信接口、RS485 通信接口、电源中断接口以及一个万能扩展接口。丰富的系统硬件资源构成了各种实际应用电路,通过万能扩展接口可以很方便地仿真外部应用电路和扩展用户应用电路。图2-1为多功能单片学习机。图2-1 多功能单片学习机2.1多功能单片学习机的硬件设计学习机系统结构框图如图2-2所示。主要由供电电路、电源电压检测电路、电源中断电路、键盘电路、红外遥控电路、数码显示电路、扬声器电路、存储器电路、存储器写保护电路、程序自动切换电路、RS232 及RS485 通信接口电路、单片机电路等组成。图2-2 学习机系统结构框图2.1.1 单片机AT89S52电路AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。AT89S52的主要性能:与MCS-51单片机产品兼容;8K字节在系统可编程Flash存储器;32个可编程I/O口线;三个16位定时器/计数器;全双工UART串行通道;六个中断源;掉电后中断可唤醒和看门狗定时器等。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻 辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 端口引脚 第二功能:P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 INTO(外中断0) P3.3 INT1(外中断1)P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。图2-3 AT89S52单片机电路图2-3为设计中采用的单片机AT89S52的原理图,其中P0.0-P0.7是控制数码管显示端口,P1.0-P1.2是8位数码管的片选信号端口。P2.0-P2.7是控制PR2端口。2.1.2 数码显示电路1.段式数码管的原理常用的段式数码管有七段式和八段式,八段比七段多了一个小数点,其他的基本相同。所谓的几段就是指数码管里有相应的几个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形(见图2-4(a))。从各发光二极管的电极连接方式又可以分为共阳极和共阴极两种类型。共阴极则是所有的二极管的阴极连接在一起,而阳极是分离的(见图2-4(b));而共阳极就是所有二极管的阳极是公共相连,而阴极则是分离的(见图2-4(c))。学习机采用的是八段共阴极数码管。数码管与发光二极管的工作原理相同,共阳极时,所有正端接电源正极,当负端有低电平时,该段有电流流过,发光管亮,当负端为高电平时,该段无电流流过,发光管不亮。要显示什么数字,就使对应的段为低电平(见表2-1)。共阴极与共阳极的电平变化状态相反。当每个段的驱动电流为220mA,电流越大,发光越亮。图2-4 数码管内部结构图常用的七段式数码管的硬件驱动设计方法有:静态驱动与动态驱动。静态驱动即指每个数码管的数据线都有一个单独的数据锁存器,数据锁存器输入的数据由使能端控制,当使能端为高电平时,数据线上的数据(要显示的七段码)进入显示器,使能端与地址译码器的输出相连,要显示那位,则选通那位的地址,在软件设计上不要求程序循环,也不存在显示数字发生闪烁。但是这样会占用很多口线。动态显示是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而节省了口线,地简化了硬件电路。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。学习机采用的是动态扫描。动态扫描驱动数码管的优点:当显示位数较多时,采用动态显示方式比较节省I/O 口,硬件电路也较静态显示简单;缺点:其稳定度不如静态显示方式。而且在显示位数较多时CPU要轮番扫描,占用CPU较多的时间。总的来说,无论是动态还是静态显示,其显示更新的速率不能太快,如数据不停变化,太快则无法看清楚显示的内容,在软件设计是必须注意的。另外,在同等条件下动态显示的亮度比静态显示要差一些,所以在适当提高驱动电流,例如使用限流电阻,就应略小于静态显示电路中的,或者使用缓冲驱动芯片。表2-1显示的数字和七段码各位的对应关系表显示值0123456789七段共阴3FH06H5BH4FH66H6DH7DH07H7FH6FH七段共阳C0HF9HA4HB0H99H92H82HF8H80H90H2数码显示电路分析(1)芯片的介绍74HC138 是常用的3-8 线译码器, 即具有3 个输入端( 管脚1,2,3) 与8 个输出端( 管脚15,14、13, 12, 11,10,9,7),作用为完成3 位二进制数据到8 位片选的译码。也就是说,3 个输入端对应8 个二进制数据(000,001,010,011,100,101,110,111),对于每个输入的数据,输出端相应位输出低电平,其他7 位输出高电平。74HC138 具有2 个低电平使能端(管脚4,5)与1 个高电平使能端(管脚6), 当低电平使能端接低电平且高电平使能端接高电平时74HC138 才能正常工作,否则8 个输出端全部输出高电平。74HC138 的真值表如表2.2 所示:H 代表高电平,L 代表低电平,X 代表不定的状态。表2-2 74HC138的真值表 74HC273是8 D触发器,内部包含8个D触发器,它们使用公共的时钟脉冲和异步清零信号,触发方式为边沿触发。74HC273真值表如表2.3所示, 其中H表示高电平, L表示低电平,表示任意输入, 表示上升沿触发。表2-3 74HC273的真值表(2)电路原理图2-5为数码显示电路,显示电路中采用了8 只数码管,连接方式为八段共阴极数码管,显示方案为动态扫描。从图2-5中可以看出驱动数码管总共用了6个单片机I/O口,其中三个I/O口通过一片74HC138控制74HC273锁存器的时钟CLK来实现对数码管中的各段驱动,另三个I/0口通过控制另一片74HC138来实现对8个数码管中的公共端驱动;三极管Q1Q8工作在开关状态;2.1.3 外部存储器电路62256是32 K×8的高集成度的随机存取存储器,有28个引脚,采用单一+5V电源供电,双列直插式结构。它们的内部结构与6264类似,也是由存储器阵列、行列地址译码器以及数据输入输出控制逻辑组成。引脚功能和外部特性与6264基本相同,区别仅在于由于容量大,第26引脚为A13第1引脚为A14。62256是32K的低功能静态RAM存储器。用P0和P2来拓展外部ram(就是用P0和P2与62256对应的管教相连接),假设P2.7接WR,P2.6接RD,P2.5接CS,那么久可以确定外部RAM的一个地址,想往外部RAM的一个地址写一个字节时,地址可以定为XBYTE 0*8000,其中WR,CS为低,RD为高,那就是(也就是P2.7和P3.6输出了低电平,而P3.7输出了高电平,目的当然是要选通62256并且向62256写入数据),其它位的可以根据情况自己定(也就是其它位ushism不打紧,关键就是控制wr,cs,rd的那几个位要符合选通,读,写的规定就可以了),现在我们向62256中写个26进去就可以使用这天语句:XBYTE 0*8000= 26MCS-51单片机系统拓展时,一般使用P0口作为地址低8位(与数据口分时复用),而P2口作为地址高8位,它共有16跟地址总线,寻址空间为64KB。62256引脚功能A0 A14 地址总线D0 /D7 输入、输出口CS 端口选择WE 输入使能OE 输出使能VCC 电源使能VSS 接地图2-5 数码管显示电路图2-6 外部存储器电路2.1.4 外部存储器的保护电路存储器写保护电路在系统上电、掉电、电源电压低以及切换系统程序和用户程序时禁止存储器写操作,保护用户代码。由图2-7所示。R30和Q15检测单片机复位信号,R25、R26、Q14、R*组成电源检测电路。 图2-7 存储器写保护电路原理图2.1.5 键盘输入电路 图2-8为键盘输入电路,键盘电路使用一片74HC138扩展8 个按键。图2-8为键盘输入电路控制信号KSA、KSB、KSC通过74L138输出Y0Y7信号,然后在由K2K9按键控制,最后决定KSI信号是否导通。例如:若控制信号KSA、KSB、KSC为011,则Y3为低电平,如果K6按键按下,结果KSI导通。2.1.6自动程序切换电路如图2-9所示的程序自动切换电路是系统的关键部分,其作用是自动切换系统程序和用户程序,在切换程序的同时给单片机一个复位信号,使得切换程序后单片机都从0000地址开始执行程序。学习机系统程序在单片机片内,用户程序在片外,通过自动逻辑控制电路切换系统程序和用户程序。逻辑控制电路可以是纯数字逻辑电路或微电脑控制电路,其关键是必须在切换程序的时候给单片机复位信号,并且自动切换单片机的读、写、外部程序存储器的选通信号。其实现原理如下:(1) 复位信号的产生 若开始时EA为高电平,此时运行系统程序,若要切换到用户程序,则将K1闭合,EA为低电平,C21放电,Q13截止,C20 通过Q12的BE极和R16充电,Q12导通,产生复位高电平脉冲,若再要切换到系统程序,则将K1打开,EA为高电平,C21通过Q13的BE极充电,Q13导通,C20通过Q13的CE极放电,由于Q13导通后集电极为低电平,所以Q12也导通,同样产生复位脉冲。达到复位的目的。图2-9 自动程序切换电路原理图(2) 逻辑切换电路 若开始时EA为高电平,此时运行系统程序,外部程序存储器选通信号PSEN不能通过U11A而无效,读信号RD可通过U11D,由于U11A输出为高电平,所以RD信号通过U11D后又可以通过U6A,实现对外部存储器的读操作;写信号WR可通过U11B,WR和保护电路相或后实现对外部存储器的写操作。若EA为低电平,此时运行用户程序,PSEN有效,读写信号无效,即外部存储器为程序存储器,不能进行写操作。需要注意的是在切换程序时,必须启动一个存储器写保护电路,以防止此期间外存储器被意外写数据。从而破坏了用户程序。此外,在系统上电及掉电时,也需要对外存储器写保护。在电源电压不足时,为安全起见,也应该对外存储器写保护。2.1.7 RS232通信电路如图2-10所示,Q1、Q2相互连接,完成信号电平的反相,D2、C1、C2连接组成电源电路,D1连接Q2的基脚,是Q2的保护二极管,D4连接单片机RXD,是单片机RXD引脚的保护二极管。RS232通信接口电路为程序下载接口。图2-10 RS232通信电路2.1.8 电源电路如图2-11所示,电源输入电路有两个输入端,一个为直流9-12V 输入,可接受变压器输入;另一个为直流5V 输入,可以用4 节干电池供电。电压检测电路在电源电压不足时会给单片机一个中断信号,同时禁止存储器写操作。图2-11 电源电路2.2 多功能单片学习机的软件设计学习机软件由两部分组成: 上位机PC 软件和下位机软件。PC 机软件在Windows 环境下用Visual Basic 软件编写,完成程序下载及程序切换控制,包括文件操作部分、通信测试部分、通信协议处理部分、错误处理等辅助功能。下位机软件可以分为系统软件和应用软件两类,系统软件放置于系统单片机内,应用软件(也即用户程序)是无限增加的。比如AD/DA 实验程序、液晶显示器实验程序、USB 驱动实验程序、网络实验程序、编程器扩展应用程序、解码器、示波器等。学习机能够完成各种实验,这是由于其使用了执行外部程序加上扩展板的灵活结构。下位机系统软件的主要功能有:与上位机联合下载程序;单机独立工作,使用系统键盘或红外遥控器修改/ 查看程序代码,适合处理代码量少的情况; 具有频率计功能和脉宽测量功能;具有编程器功能。2.3本章小结本章中详细地介绍了多功能单片学习机的硬件设计,其中硬件设计包括单片机AT89S52电路,数码显示电路,外部存储器电路,外部存储器的保护电路,键盘输入电路,程序自动切换电路和电源电路等;然后,简要地介绍软件设计,软件设计包括上位机PC 软件和下位机软件。第三章NAND FLASH扩展板的设计基于多功能单片学习机的NAND FLASH驱动包括两部分:NAND FLASH控制器和NAND FLASH存储器。要访问NAND FLASH中的数据, 必须通过NAND FLASH控制器发送命令才能完成。所以,NAND FLASH相当于多功能单片学习机的一个外设。基于多功能单片学习机的NAND FLASH驱动的总体方案设计如图3.1所示,电路主要由多功能学习机中的单片机电路,键盘电路,数码管显示电路,扩展外部RAM电路以及扩展板NAND FLASH组成,其中NAND FLASH可选K9F2808U0B(16M X 8 BIT)、K9F1208U0B(64M X 8 BIT)。图3-1 基于多功能单片学习机的NAND FLASH驱动的总体方案3.1 NAND FLASH 扩展板硬件电路设计3.1.1 NAND FLASH接口电路K9F1208U0B是由131072行(页)*528列构成。它的编程和读操作是以页为基础执行,而擦除操作是以块为基础执行。在读页和页操作时,连到存储器的528字节的数据寄存器在I/O缓冲与存储器之间传递数据。3.6V电源通过5V电源连接两个可调电阻,从而获取3.6V的电压。NAND FLASH接口电路如图3-2所示。K9F1208U0B芯片有4个plane,每个plane有1024个Block,每个Block有32Page,每个Page有528Byte。1 Page=528 Byte1 Block=528 Byte *32 Pages=(16K+512)Byte1Device=528Bytes*32Pages*4096 Blocks=512Mbit+16Mbit=64MByte+2MByte合计:K9F1208U0B有4个Plane、4096个Block、32*4096=131072个Page。图3-2 NAND FLASH接口电路I/O0 I/O7-data inputs/outputs 通过这8个I/O引脚,可以输入命令,地址和数据,也可以在读操作时输出数据。CLE-command latch enable CLE输入控制了发送到命令寄存器的命令。CLE为高电平时激活,在WE的上升沿,命令通过I/O端口被锁存到命令寄存器中,结合datasheet的相关时序图来理解更为深刻。ALE-address latch enable ALE输入控制了地址发送到内部地址寄存器中,在WE的上升沿和ALE为高电平时,地址被锁存到地址寄存器中。CE-chip enable CE是设备选择控制引脚。 WE-write enable 写使能,在WE的上升沿,命令,地址和数据被锁存。WP -write protect 写保护,当此引脚为低电平激活,也即内部高压发生器复位。R/B-ready/busy output 就绪/忙输出引脚,通过这个引脚可以知道设备操作的状态。低电平时,表示编程或擦除或随机读操作在进行,并且根据完成情况来返回高状态3.1.2 控制器的工作原理图3-3 学习机引出的插座多功能学习机作为NAND FLASH的控制器,要访问NAND Flash 中的数据,必须通过NAND Flash 控制器发送命令才能完成。NAND Flash 控制器在其专用寄存器区( SFR)地址空间中映射有属于自己的特殊功能寄存器, 就是通过将NAND Flash 芯片的内设命令写到其特殊功能寄存器中, 从而实现对NAND Flash 芯片读、检验和编程控制。特殊功能寄存器有: NFCONF、NFCMD、NFADDR、NFDATA、NF STAT 、NFECC。图3-3为多功能学习机引出的插座。3.2 NAND FLASH驱动 开 始数据初始化数码管扫描是否有键输入Y数据写入键吗Y向NAND芯片存储数据校验数据是否正确写入LED显示操作结果N擦除键吗NN擦除NANDYNAND接口初始化图3-3 NAND FLASH驱动的主程序流程图NAND FLASH驱动的主程序流程图如图3-3所示。开始需要使数据初始化,然后使NAND接口初始化,再经数码管扫描后看是否有键输入,若无则返回到数码管扫描,若有,则向NAND芯片存储数据;再校检是否正确写入,然后通过LED显示操作结果,最后回到数码管扫描;如果没有数据写入,则判断是否要有擦除键按下,若无,则回到数码管扫描,如若擦除键按下,则擦除NAND回到数码管扫描。3.2.1 NAND FLASH的工作原理NAND FLASH的数据是以bit的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8个或者16个为单位,连成bit line,形成所谓byte(x8)/word(x16),这就是NAND FLASHDevice的位宽。这些Line会再组成Page,(NAND FLASH有多种结构,以三星K9F1208U0M为例,每页528 Bytes (512byte(Main Area)+16byte(Spare Area),每32个page形成一个Block(32*528B)。具体一片flash上有多少个Block视需要所定。k9f1208U0B具有4096个block,故总容量为4096*(32*528B)=66MB,但是其中的2MB是用来保存ECC校验码等额外数据的,故实际中可使用的为64MB。NAND FLASH以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以形成三类地址:(1)Column Address:Starting Address of the Register: 列地址,地址的低8位(2)Page Address :页地址(3)Block Address :块地址。对于NAND FLASH来讲,地址和命令只能在I/O7:0上传递,数据宽度是8位。擦除操作的最小单位是块 ,NAND FLASH芯片每一位只能从1变为0,而不能从0变为1,所以在对其进行写入操作之前一定要将相应块擦除(擦除就是将相应块的位全部变为1 ),NAND FLASH器件中存在坏块,坏块是随机分布的,NAND FLASH控制器需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。3.2.2 NAND FLASH的读操作功能: 读数据操作以页为单位, 读数据时首先写入读数据命令00H, 然后输入要读取页的地址, 接着从数据寄存器中读取数据, 最后进行ECC 校验。参数说明: block, 块号; page, 页号; buffer, 指向将要读取到内存中的起始位置; 返回值1, 读成功, 返回值0: 读失败。static int NF_ReadPage ( unsigned int block, unsigned int page,unsigned char * buffer) NF_RST ECC( ) ; / * 初始化ECC * /NF_nFCE_L( ) ; / * 片选NAND Flash 芯片* /NF_CMD( 0x00) ; / * 从A 区开始读* / * A0 A7( 列地址) * /NF_ADDR( 0) ;/ * A9A16( 页地址) * /NF_ADDR( blockPage& 0x ff) ;/ * A17A24, ( 页地址) * /NF_ADDR( ( blo ckPag e> > 8) &0x ff) ;/ * A25, ( 页地址) * /NF_ADDR( ( blo ckPag e> > 16)&0x ff) ;/ * 等待NAND Flash 处于再准备状态* /ReadPag e( ) ; / * 读整个页, 512 字节* /ReadECC( ) ; / * 读取ECC 码* /ReadOOB( ) ; / * 读取该页的OOB 块* / * 取消NAND Flash 选中* /NF_nFCE_H( ) ;/ * 校验ECC 码, 并返回* /Return ( checkEcc( ) )3.2.3 NAND FLASH的编程功能: 对页进行编程命令, 用于写操作。命令代码: 首先写入00h( A 区) / 01h( B 区) / 05h( C区) , 表示写入那个区; 再写入80h 开始编程模式( 写入模式) , 接下来写入地址和数据; 最后写入10h 表示编程结束。图3.4 为写程序流程图。参数说明: block, 块号; page, 页号; buff er, 指向内存中待写入NAND Flash 中的数据起始位置; 返回值0, 写错误, 返回值1, 写成功。图3-4 写程序流程st atic int NF_WritePage( unsigned int block, unsigned int page,unsigned char * buffer ) NF_RST ECC( ) ; / * 初始化ECC * /NF_nFCE_L( ) ; / * 片选NAND Flash 芯片* /NF_CMD( 0x0) ; / * 从A 区开始写* /NF_CMD( 0x80) ; / * 写第一条命令* / * A0 A7( 列地址) * /NF_ADDR( 0) ;/ * A9A16( 页地址) * /NF_ADDR( blockPage& 0x ff) ;/ * A17A24( 页地址) * /NF_ADDR( ( blockPage> > 8) &0xff) ;/ * A25( 页地址) * /NF_ADDR( ( blockPage> > 16)&0x ff) ;/ * 写页为512B 到NAND Flash 芯片* /WRDATA( ) ;/ * OOB 一共16 字节, 每一个字节存放什么由程序员自己定

    注意事项

    本文(基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文)(27页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开