基于多功能单片学习机的NAND FLASH驱动的设计_第1页
基于多功能单片学习机的NAND FLASH驱动的设计_第2页
基于多功能单片学习机的NAND FLASH驱动的设计_第3页
基于多功能单片学习机的NAND FLASH驱动的设计_第4页
基于多功能单片学习机的NAND FLASH驱动的设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于多功能单片学习机的基于多功能单片学习机的 NANDNAND FLASHFLASH 驱动的设驱动的设计计The design of NAND FLASH driver based on a Multifunction SCM learning machine总计 毕业设计(论文) 30 页 表 格 3 个 插 图 15 幅 I摘摘 要要基于多功能单片学习机的 NAND FLASH 驱动包括两部分:多功能单片学习机和 NAND FLASH 存储器。本论文首先介绍了多功能单片学习机的软/硬件设计,该学习机利用自动程序切换电路,使得同一片单片机既可以运行系统程序,又可以运行用户程序,实现程序代码的

2、在线下载。学习机外部扩展了大量的硬件资源,丰富的系统硬件资源构成了各种实际应用电路,通过万能扩展接口可以很方便地仿真外部应用电路和扩展用户应用电路。然后,着重介绍了 NAND FLASH 扩展板的软/硬件设计,通过多功能单片学习机实现对 NAND FLASH 的读、写时序。关键字:关键字:多功能单片学习机 自动切换电路 NAND FLASH IIAbstractBased NAND FLASH multi-functional single-chip learning machine drive consists of two parts: a multi-functional single-

3、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 progra

4、m 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 F

5、LASH 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; III目录目录摘摘 要要.IABSTRACT.II第一章第一章 绪论绪论.11.1 国内外研究概况.11.2 本课题的主要目标和工作.11.

6、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 接口

7、电路.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.1 国内外研究概况国内外研究概况新世纪嵌入式系

8、统迅速,主要表现在市场发展、通信、消费电子产品和多媒体应用。在这些嵌入式系统中,存储设备的性能是决定整体系统性能的核心环节之一。相对于体积大、抗震性能差的硬盘等传统存储介质,Flash 存储器具有容量大、速度快、成本低、性能佳等很多优点,适用于大量数据的存储,因此在嵌入式系统中的应用也越来越多,如在移动电话、PDA、数码相机、体积小巧的 U 盘、MP3 播放器等多媒体消费类电子产品,正在迅速取代 NOR FLASH。NOR 和NAND 是现在市场上两种主要的非易失闪存技术。Intel 于1988 年首先开发出NOR flash 技术,彻底改变了原先由EPROM 和EEPROM 一统天下的局面。

9、紧接着,1989 年,东芝公司发表了NAND flash 结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。相“flash 存储器”经常可以与相“NOR 存储器”互换使用。但是经过了十多年之后,仍然有相当多的硬件工程师也搞不清楚NAND 闪存技术相对于NOR 技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR 闪存更适合一些。而NAND 则是高数据存储密度的理想解决方案。Nand-flash内存是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点

10、,适用于大量数据的存储,NAND闪存是一种比硬盘驱动器更好的存储方案,这在不超过4GB的低容量应用中表现得犹为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,NAND正被证明极具吸引力。1 1.2 本课题的主要目标和工作本课题的主要目标和工作本设计通过对“基于多功能单片学习机的 NAND FLASH 驱动“的设计,可熟悉多功能单片学习机的软/硬件设计,NAND FALSH 的基本工作原理及编程,熟悉硬件开发的基本流程,熟悉常用元器件的使用,熟悉单片机的硬件开发,常见接口电路设计,如 NAND FLASH 扩展电路、键盘输入电路,数码管显示电路,外部存储器电路、外部存储器的保护第一章

11、绪论2电路、自动切换程序电路、电源电路等。完成的电路板可以实现对 NAND FLASH 正确读,写操作,测试写入数据不少于 1KBYTE。1.3 全文结构全文结构第一章介绍课题背景,国内外研究概况及课题的主要目标与工作。第二章着重介绍了多功能单片学习机的硬件设计和软件设计,其中硬件设计包括单片机 AT89S52 电路,数码显示电路,外部存储器电路,外部存储器的保护电路,键盘输入电路,程序自动切换电路和电源电路等;软件设计包括上位机 PC 软件和下位机软件。第三章是详细地分析了 NAND 扩展板的设计。NAND 扩展板的设计主要从 NAND 扩展板硬件电路设计和驱动两方面阐述。第四章介绍了 NA

12、ND 扩展板的调试,对硬件设计和编程中遇到的问题进行了分析。南昌工程学院本科毕业(论文)设计7第二章 多功能单片学习机多功能单片学习机利用自动程序切换电路,使得同一片单片机既可以运行系统程序,又可以运行用户程序,实现程序代码的在线下载。系统提供三种编程接口:系统小键盘编程接口、红外遥控器编程接口和微机编程接口,旨在提高使用者编程学习的灵活性。单片机外部扩展了大量的硬件资源:键盘、数码显示器、红外遥控接收器、蜂鸣器、RS232 通信接口、RS485 通信接口、电源中断接口以及一个万能扩展接口。丰富的系统硬件资源构成了各种实际应用电路,通过万能扩展接口可以很方便地仿真外部应用电路和扩展用户应用电路

13、。图2-1为多功能单片学习机。图2-1 多功能单片学习机2.1 多功能单片学习机的硬件设计多功能单片学习机的硬件设计学习机系统结构框图如图2-2所示。主要由供电电路、电源电压检测电路、电源中断电路、键盘电路、红外遥控电路、数码显示电路、扬声器电路、存储器电路、存储器写保护电路、程序自动切换电路、RS232 及RS485 通信接口电路、单片机电路等组成。第二章 多功能单片学习机8图2-2 学习机系统结构框图2.1.1 单片机 AT89S52 电路AT89S52 是一种低功耗、高性能 CMOS 8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器

14、技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52 在众多嵌入式控制应用系统中得到广泛应用。AT89S52 的主要性能:与 MCS-51 单片机产品兼容;8K 字节在系统可编程 Flash 存储器;32 个可编程 I/O 口线;三个 16 位定时器/计数器;全双工 UART 串行通道;六个中断源;掉电后中断可唤醒和看门狗定时器等。P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8 个 TTL逻 辑电平。对

15、 P0 端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下, P0 不具有内部上拉电阻。 在 flash 编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 南昌工程学院本科毕业(论文)设计9口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0 和 P

16、1.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”时,内

17、部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用 8 位地址(如 MOVX RI)访问外部数据存储器时,P2 口输出 P2 锁存器的内容。 在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p3 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口

18、写“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 口还接收一些用于 FL

19、ASH 闪存编程和程序校验的控制信号。第二章 多功能单片学习机10RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 FLASH 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE

20、操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。EA/VPP:外部访问允许,欲使 CPU 仅访问外部程序存储器(地址 0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存EA 端状态。如 EA 端为高电平(接 Vcc 端),CPU 则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V编程电压 Vpp。PSEN:程序储存允许(PSEN)输出是外部程序存储器的

21、读选通信号,当 AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。南昌工程学院本科毕业(论文)设计11E A/V P31X 119X 218R ES ET9R D17W R16IN T 012IN T 113T 014T 115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P

22、2223P2324P2425P2526P2627P2728PSE N29A LE /P30T XD11R XD10U 1D 0D 1D 2D 3D 4D 5D 6D 7A 8A 9A 10C 415 PC 515 PJT12 M HZR ED IA EC 1910 UR 174.7KR STR STE APSE N38 A38 B38 CK SCK SBK SAK SIR DW RV CCA 11A 12R XDT XDT XDR XD1234J1IN T 0IO T 0IO T 1P2.5G NDE AP2.6P2.7图 2-3 AT89S52 单片机电路图 2-3 为设计中采用的单片机 A

23、T89S52 的原理图,其中 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)) ;而共阳极就是所有二极管的阳极是公共相连

24、,而阴极则是分离的(见图 2-4(c)) 。学习机采用的是八段共阴极数码管。数码管与发光二极管的工作原理相同,共阳极时,所有正端接电源正极,当负端有低电平时,该段有电流流过,发光管亮,当负端为高电平时,该段无电流流过,发光管不亮。要显示什么数字,就使对应的段为低电平(见表 2-1) 。共阴极与共阳极的电平变化状态相反。当每个段的驱动电流为 220mA,第二章 多功能单片学习机12电流越大,发光越亮。图 2-4 数码管内部结构图常用的七段式数码管的硬件驱动设计方法有:静态驱动与动态驱动。静态驱动即指每个数码管的数据线都有一个单独的数据锁存器,数据锁存器输入的数据由使能端控制,当使能端为高电平时,

25、数据线上的数据(要显示的七段码)进入显示器,使能端与地址译码器的输出相连,要显示那位,则选通那位的地址,在软件设计上不要求程序循环,也不存在显示数字发生闪烁。但是这样会占用很多口线。动态显示是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而节省了口线,地简化了硬件电路。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。学习机采用的是动态扫描。动态扫描驱动数码管的优点:当显示位数较多时,采用动态显示方式比较节省 I/O 口,硬件电路也较静态显示简单

26、;缺点:其稳定度不如静态显示方式。而且在显示位数较多时 CPU 要轮番扫描,占用 CPU 较多的时间。总的来说,无论是动态还是静态显示,其显示更新的速率不能太快,如数据不停变化,太快则无法看清楚显示的内容,在软件设计是必须注意的。另外,在同等条件下动态显示的亮度比静态显示要差一些,所以在适当提高驱动电流,例如使用限流电阻,就应略小于静态显示电路中的,或者使用缓冲驱动芯片。表 2-1 显示的数字和七段码各位的对应关系表显示值0123456789七段共阴3FH06H5BH4FH66H6DH7DH07H7FH6FH七段共阳C0HF9HA4HB0H99H92H82HF8H80H90H2数码显示电路分析

27、南昌工程学院本科毕业(论文)设计13(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), 当低电平使能端接低电平且高电平使能端接高电平时 74HC

28、138 才能正常工作,否则 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 只数码管,连接方式为八段共阴极数第二章 多功能单片学习机14码管,显示方案为动态扫描。从图 2-5 中可

29、以看出驱动数码管总共用了 6 个单片机 I/O口,其中三个 I/O 口通过一片 74HC138 控制 74HC273 锁存器的时钟 CLK 来实现对数码管中的各段驱动,另三个 I/0 口通过控制另一片 74HC138 来实现对 8 个数码管中的公共端驱动;三极管 Q1Q8 工作在开关状态;2.1.3 外部存储器电路62256 是 32 K8 的高集成度的随机存取存储器,有 28 个引脚,采用单一+5V 电源供电,双列直插式结构。它们的内部结构与 6264 类似,也是由存储器阵列、行列地址译码器以及数据输入输出控制逻辑组成。引脚功能和外部特性与 6264 基本相同,区别仅在于由于容量大,第 26

30、 引脚为 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 写入数据),其它位的可以根据情况自己定(也就是其它位

31、 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 接地南昌工程学院本科毕业(论文)设计15A7B6C4D2E1F9G10DP5C13C28M 1A7B

32、6C4D2E1F9G10DP5C13C28M 2A7B6C4D2E1F9G10DP5C13C28M 3A7B6C4D2E1F9G10DP5C13C28M 4A7B6C4D2E1F9G10DP5C13C28M 5A7B6C4D2E1F9G10DP5C13C28M 6A7B6C4D2E1F9G10DP5C13C28M 7A7B6C4D2E1F9G10DP5C13C28M 8S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1S2S3S4S5S6S7S1

33、S2S3S4S5S6S7A1B2C3E14E25E36Y015Y114Y213Y312Y411Y510Y69Y77U374HC13838A38B38CD0D1D2D3D4D5D6D7VCCS8S8S8S8S8S8S8S8S8Q19012Q29012Q39012Q49012Q59012Q69012Q79012Q89012D13Q12D24Q25D37Q36D48Q49D513Q512D614Q615D717Q716D818Q819C LK11C LR1U574HC273VCC456U6B1011U9E1213U9FW RDISPA1B2C3E14E25E36Y015Y114Y213Y312Y41

34、1Y510Y69Y77U1374HC138GNDVCCP2.5P2.6P2.7DISP图 2-5 数码管显示电路第二章 多功能单片学习机16D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274HC373D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7A8A9A10AEEAR WRA010A19A28A37A46A55A64A73A825A924A1021A1123A122C S120C S226W E27OE22D011D112D213D315D416D517D618D719U8VCCA11A12

35、R OER CS111213U6D123U6A56U9C456U11B8910U11C111213U11DR AM CR DW R1234J8R 282KVCCR 232KVCCR CSR OER WRA0A1A2A3A4A5A6A7A141A122A73A64A55A46A37A28A19A010D011D112D213VSS14D315D416D517D618D719C S20A1021OE22A1123A924A825A1326W E27VCC28U1262256VCCGNDA1B2C3E14E25E36Y015Y114Y213Y312Y411Y510Y69Y77U1374HC138GN

36、DVCCP2.5P2.6P2.7123U14A74HC08456U14B74HC088910U14C74HC08R AM C32KSR AM C S111213U14D74HC08PSENR D32KSR AM OEW RAW RAW R32KSR AM C S32KSR AM OEA0A1A2A3A4A5A6A7A8A9A10A11A12P2.5P2.6D0D1D2D3D4D5D6D7123456789PR1123456789PR2VCCVCCD0D1D2D3D4D5D6D7A8A9A10A11A12P2.5P2.6P2.78910U6C123U11APSENPOW C HK图 2-6 外部

37、存储器电路南昌工程学院本科毕业(论文)设计172.1.4 外部存储器的保护电路存储器写保护电路在系统上电、掉电、电源电压低以及切换系统程序和用户程序时禁止存储器写操作,保护用户代码。由图 2-7 所示。R30 和 Q15 检测单片机复位信号,R25、R26、Q14、R*组成电源检测电路。D11R25R26Q1412U9A34U9B8910U11CR27VCCR30Q15RSTR*PROTECTRAMWR 图 2-7 存储器写保护电路原理图2.1.5 键盘输入电路 图 2-8 为键盘输入电路,键盘电路使用一片 74HC138 扩展 8 个按键。A1B2C3E 14E 25E 36Y 015Y 1

38、14Y 213Y 312Y 411Y 510Y 69Y 77U 474H C138K SAK SBK SCK 2K 7K 5K 8K 9K 3K 4K 6K SIV CC图 2-8 为键盘输入电路控制信号 KSA、KSB、KSC 通过 74L138 输出 Y0Y7 信号,然后在由 K2K9 按键控制,最后决定 KSI 信号是否导通。例如:若控制信号 KSA、KSB、KSC 为 011,则 Y3为低电平,如果 K6 按键按下,结果 KSI 导通。第二章 多功能单片学习机182.1.6 自动程序切换电路如图 2-9 所示的程序自动切换电路是系统的关键部分,其作用是自动切换系统程序和用户程序,在切换

39、程序的同时给单片机一个复位信号,使得切换程序后单片机都从0000 地址开始执行程序。学习机系统程序在单片机片内,用户程序在片外,通过自动逻辑控制电路切换系统程序和用户程序。逻辑控制电路可以是纯数字逻辑电路或微电脑控制电路,其关键是必须在切换程序的时候给单片机复位信号,并且自动切换单片机的读、写、外部程序存储器的选通信号。其实现原理如下:(1)复位信号的产生 若开始时 EA 为高电平,此时运行系统程序,若要切换到用户程序,则将 K1 闭合,EA 为低电平,C21 放电,Q13 截止,C20 通过 Q12 的 BE 极和 R16 充电,Q12 导通,产生复位高电平脉冲,若再要切换到系统程序,则将

40、K1 打开,EA 为高电平,C21 通过 Q13 的 BE 极充电,Q13 导通,C20 通过 Q13 的 CE 极放电,由于 Q13 导通后集电极为低电平,所以 Q12 也导通,同样产生复位脉冲。达到复位的目的。C21R19R16C19R17K1R20RSTR18EAVCCVCCQ12Q13C20111213U6D123U6A56U9C123U11A456U11B8910U11C111213U11DRAMCS1PSENRDWRRAMCSRAMRDR21D10RAMWRPROTECT图 2-9 自动程序切换电路原理图(2)逻辑切换电路 若开始时 EA 为高电平,此时运行系统程序,外部程序存储器

41、选通信号 PSEN 不能通过 U11A 而无效,读信号 RD 可通过 U11D,由于 U11A 输出为高电平,所以 RD 信号通过 U11D 后又可以通过 U6A,实现对外部存储器的读操作;写信号 WR 可通过U11B,WR 和保护电路相或后实现对外部存储器的写操作。若 EA 为低电平,此时运行用户程序,PSEN 有效,读写信号无效,即外部存储器为程序存储器,不能进行写操作。需要注意南昌工程学院本科毕业(论文)设计19的是在切换程序时,必须启动一个存储器写保护电路,以防止此期间外存储器被意外写数据。从而破坏了用户程序。此外,在系统上电及掉电时,也需要对外存储器写保护。在电源电压不足时,为安全起

42、见,也应该对外存储器写保护。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 节干电池供电。电压检测电路在电源电压不足时会给单片机一个中断信号,同时禁止存储器写操作。第二章 多功

43、能单片学习机2012J3D 84007C 10C 11PJ1R 15510D 9V in1GND2+5V3U 10V CCD 11R 25100KR 2618KQ 14901312J712U 9A34U 9BR 27510C 6470UIN T 0V CCC 12C 13C 14C 16C 15C 22345C 18R *POW C HK图 2-11 电源电路2.2 多功能单片学习机的软件设计多功能单片学习机的软件设计学习机软件由两部分组成: 上位机PC 软件和下位机软件。PC 机软件在Windows 环境下用Visual Basic 软件编写,完成程序下载及程序切换控制,包括文件操作部分、通

44、信测试部分、通信协议处理部分、错误处理等辅助功能。下位机软件可以分为系统软件和应用软件两类,系统软件放置于系统单片机内,应用软件(也即用户程序)是无限增加的。比如AD/DA 实验程序、液晶显示器实验程序、USB 驱动实验程序、网络实验程序、编程器扩展应用程序、解码器、示波器等。学习机能够完成各种实验,这是由于其使用了执行外部程序加上扩展板的灵活结构。下位机系统软件的主要功能有:与上位机联合下载程序;单机独立工作,使用系统键盘或红外遥控器修改/ 查看程序代码,适合处理代码量少的情况; 具有频率计功能和脉宽测量功能;具有编程器功能。2.3 本章小结本章小结本章中详细地介绍了多功能单片学习机的硬件设

45、计,其中硬件设计包括单片机南昌工程学院本科毕业(论文)设计21AT89S52 电路,数码显示电路,外部存储器电路,外部存储器的保护电路,键盘输入电路,程序自动切换电路和电源电路等;然后,简要地介绍软件设计,软件设计包括上位机 PC 软件和下位机软件。第三章 NAND FLASH 扩展板的设计22第三章 NAND FLASH 扩展板的设计基于多功能单片学习机的NAND FLASH驱动包括两部分:NAND FLASH控制器和NAND FLASH存储器。要访问NAND FLASH中的数据, 必须通过NAND FLASH控制器发送命令才能完成。所以,NAND FLASH相当于多功能单片学习机的一个外设

46、。基于多功能单片学习机的NAND FLASH驱动的总体方案设计如图3.1所示,电路主要由多功能学习机中的单片机电路,键盘电路,数码管显示电路,扩展外部RAM电路以及扩展板NAND FLASH组成,其中NAND FLASH可选K9F2808U0B(16M X 8 BIT)、K9F1208U0B(64M X 8 BIT)。单单单单单单单单AT89S52单单单单单74HC373SRAM 622568*1 单单NAND FLASHA0-A7A8-A15D0-D774HC138图3-1 基于多功能单片学习机的NAND FLASH驱动的总体方案3.1 NAND FLASH 扩展板硬件电路设计扩展板硬件电路

47、设计3.1.1 NAND FLASH 接口电路K9F1208U0B 是由 131072 行(页)*528 列构成。它的编程和读操作是以页为基础执行,而擦除操作是以块为基础执行。在读页和页操作时,连到存储器的 528 字节的数据寄存器在 I/O 缓冲与存储器之间传递数据。3.6V 电源通过 5V电源连接两个可调电阻,从而获取 3.6V 的电压。NAND FLASH 接口电路如图 3-2 所示。南昌工程学院本科毕业(论文)设计23K9F1208U0B 芯片有 4 个 plane,每个 plane 有 1024 个 Block,每个 Block有 32Page,每个 Page 有 528Byte。1

48、 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

49、 输入控制了发送到命令寄存器的命令。CLE 为高电平时激活,在 WE 的上升沿,命令通过 I/O 端口被锁存到命令寄存器中,结合 datasheet 的相关时序图来理解更为深刻。ALE-address latch enable ALE 输入控制了地址发送到内部地址寄存器中,在 WE 的上升沿和 ALE 为高电平时,地址被锁存到地址寄存器中。CE-chip enable CE 是设备选择控制引脚。 WE-write enable 写使能,在 WE 的上升沿,命令,地址和数据被锁存。WP -write protect 写保护,当此引脚为低电平激活,也即内部高压第三章 NAND FLASH 扩展板的

50、设计24发生器复位。R/B-ready/busy output 就绪/忙输出引脚,通过这个引脚可以知道设备操作的状态。低电平时,表示编程或擦除或随机读操作在进行,并且根据完成情况来返回高状态3.1.2 控制器的工作原理图 3-3 学习机引出的插座多功能学习机作为NAND FLASH的控制器,要访问NAND Flash 中的数据,必须通过 NAND Flash 控制器发送命令才能完成。NAND Flash 控制器在其专用寄存器区( SFR)地址空间中映射有属于自己的特殊功能寄存器, 就是通过将 NAND Flash 芯片的内设命令写到其特殊功能寄存器中, 从而实现对 NAND Flash 芯片读

51、、检验和编程控制。特殊功能寄存器有: NFCONF、NFCMD、NFADDR、NFDATA、NF STAT 、NFECC。图 3-3 为多功能学习机引出的插座。南昌工程学院本科毕业(论文)设计253.2 NAND FLASH 驱动驱动 开 始数据初始化数码管扫描是否有键输入Y数据写入键吗Y向 NAND 芯片存储数据校验数据是否正确写入LED 显示操作结果N擦除键吗NN擦除 NANDYNAND 接口初始化图 3-3 NAND FLASH 驱动的主程序流程图NAND FLASH 驱动的主程序流程图如图 3-3 所示。开始需要使数据初始化,然后使 NAND 接口初始化,再经数码管扫描后看是否有键输入

52、,若无则返回到数码管扫描,若有,则向 NAND 芯片存储数据;再校检是否正确写入,然后通过LED 显示操作结果,最后回到数码管扫描;如果没有数据写入,则判断是否要有擦除键按下,若无,则回到数码管扫描,如若擦除键按下,则擦除 NAND 回到数码管扫描。第三章 NAND FLASH 扩展板的设计263.2.1 NAND FLASH 的工作原理NAND FLASH的数据是以bit的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8个或者16个为单位,连成bit line,形成所谓byte(x8)/word(x16),这就是NAND FLASHDevic

53、e的位宽。这些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)Colu

54、mn 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 N

55、AND FLASH 的读操作功能: 读数据操作以页为单位, 读数据时首先写入读数据命令00H, 然后输入要读取页的地址, 接着从数据寄存器中读取数据, 最后进行ECC 校验。参数说明: block, 块号; page, 页号; buffer, 指向将要读取到内存中的起始位置; 返回值1, 读成功, 返回值0: 读失败。南昌工程学院本科毕业(论文)设计27static int NF_ReadPage ( unsigned int block, unsigned int page,unsigned char * buffer) NF_RST ECC( ) ; / * 初始化ECC * /NF_nF

56、CE_L( ) ; / * 片选NAND Flash 芯片* /NF_CMD( 0 x00) ; / * 从A 区开始读* / * A0 A7( 列地址) * /NF_ADDR( 0) ;/ * A9A16( 页地址) * /NF_ADDR( blockPage& 0 x ff) ;/ * A17A24, ( 页地址) * /NF_ADDR( ( blo ckPag e 8) &0 x ff) ;/ * A25, ( 页地址) * /NF_ADDR( ( blo ckPag e 16)&0 x ff) ;/ * 等待NAND Flash 处于再准备状态* /ReadPa

57、g 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 表示

58、编程结束。图3.4 为写程序流程图。第三章 NAND FLASH 扩展板的设计28参数说明: 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(

59、 0 x0) ; / * 从A 区开始写* /NF_CMD( 0 x80) ; / * 写第一条命令* / * A0 A7( 列地址) * /NF_ADDR( 0) ;/ * A9A16( 页地址) * /NF_ADDR( blockPage& 0 x ff) ;/ * A17A24( 页地址) * /NF_ADDR( ( blockPage 8) &0 xff) ;/ * A25( 页地址) * /NF_ADDR( ( blockPage 16)&0 x ff) ;/ * 写页为512B 到NAND Flash 芯片* /南昌工程学院本科毕业(论文)设计29WRDAT

60、A( ) ;/ * OOB 一共16 字节, 每一个字节存放什么由程序员自己定义, 在Byte0 Byte2 存ECC 检验码, Byte6 存放坏块标志* /WRDATA( ) ; / * 写该页的OOB 数据块* /CMD( 0 x10) ; / * 结束写命令* /WAITRB( ) ; / * 等待NAND Flash 处于准备状态* / * 发送读状态命令给NAND Flash * /CMD( 0 x70) ;if ( RDDAT A( )&0 x1) / * 如果写有错, 则标示为坏块, 取消NAND Flash 选中* /M arkBadBlock( block) ;return 0; else / * 正常退出, 取消NAND Flash 选中*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论