基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文).doc_第1页
基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文).doc_第2页
基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文).doc_第3页
基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文).doc_第4页
基于多功能单片学习机的NAND_FLASH驱动的设计毕业设计(论文).doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

基于多功能单片学习机的基于多功能单片学习机的 nandnand flashflash 驱动的设驱动的设 计计 the design of nand flash driver based on a multifunction scm learning machine i 摘摘 要要 基于多功能单片学习机的 nand flash 驱动包括两部分:多功能单片学习机和 nand flash 存储器。本论文首先介绍了多功能单片学习机的软/硬件设计,该学习机利用自动 程序切换电路,使得同一片单片机既可以运行系统程序,又可以运行用户程序,实现程 序代码的在线下载。学习机外部扩展了大量的硬件资源,丰富的系统硬件资源构成了各 种实际应用电路,通过万能扩展接口可以很方便地仿真外部应用电路和扩展用户应用电 路。然后,着重介绍了 nand flash 扩展板的软/硬件设计,通过多功能单片学习机实现 对 nand flash 的读、写时序。 关键字:关键字:多功能单片学习机 自动切换电路 nand flash ii abstract based 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; iii 目录目录 摘摘 要要i abstract.ii 第一章第一章 绪论绪论.1 1.1 国内外研究概况1 1.2 本课题的主要目标和工作1 1.3 全文结构2 第二章第二章 多功能单片学习机多功能单片学习机.7 2.1 多功能单片学习机的硬件设计7 2.1.1 单片机 at89s52 电路8 2.1.2 数码显示电路.11 2.1.3 外部存储器电路.14 2.1.4 外部存储器的保护电路.17 2.1.5 键盘输入电路.17 2.1.6 自动程序切换电路18 2.1.7 rs232 通信电路 19 2.1.8 电源电路.19 2.2 多功能单片学习机的软件设计.20 2.3 本章小结20 第三章第三章 nand flash 扩展板的设计扩展板的设计 .22 3.1 nand flash 扩展板硬件电路设计.22 3.1.1 nand flash 接口电路.22 3.1.2 控制器的工作原理.24 3.2 nand flash 驱动25 3.2.1 nand flash 的工作原理26 3.2.2 nand flash 的读操作26 3.2.3 nand flash 的编程27 3.2.4 nand flash 的擦除29 3.3 本章小结30 第四章第四章 nand 扩扩展板的调试展板的调试.31 4.1 硬件仿真注意事项31 4.2 编程中遇到的问题31 4.2 本章小结32 第五章第五章 全文总结全文总结.33 参考文献参考文献.34 致谢致谢.35 南昌工程学院本科毕业(论文)设计 1 第一章 绪论 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 1.2 本课题的主要目标和工作本课题的主要目标和工作 本设计通过对“基于多功能单片学习机的 nand flash 驱动“的设计,可熟悉多功能 单片学习机的软/硬件设计,nand falsh 的基本工作原理及编程,熟悉硬件开发的基本流 程,熟悉常用元器件的使用,熟悉单片机的硬件开发,常见接口电路设计,如 nand flash 扩展电路、键盘输入电路,数码管显示电路,外部存储器电路、外部存储器的保护 第一章 绪论 2 电路、自动切换程序电路、电源电路等。完成的电路板可以实现对 nand flash 正确读, 写操作,测试写入数据不少于 1kbyte。 1.3 全文结构全文结构 第一章介绍课题背景,国内外研究概况及课题的主要目标与工作。 第二章着重介绍了多功能单片学习机的硬件设计和软件设计,其中硬件设计包括单 片机 at89s52 电路,数码显示电路,外部存储器电路,外部存储器的保护电路,键盘输 入电路,程序自动切换电路和电源电路等;软件设计包括上位机 pc 软件和下位机软件。 第三章是详细地分析了 nand 扩展板的设计。nand 扩展板的设计主要从 nand 扩展板 硬件电路设计和驱动两方面阐述。 第四章介绍了 nand 扩展板的调试,对硬件设计和编程中遇到的问题进行了分析。 南昌工程学院本科毕业(论文)设计 7 第二章 多功能单片学习机 多功能单片学习机利用自动程序切换电路,使得同一片单片机既可以运行系统程序, 又可以运行用户程序,实现程序代码的在线下载。系统提供三种编程接口:系统小键盘编 程接口、红外遥控器编程接口和微机编程接口,旨在提高使用者编程学习的灵活性。单 片机外部扩展了大量的硬件资源:键盘、数码显示器、红外遥控接收器、蜂鸣器、rs232 通信接口、rs485 通信接口、电源中断接口以及一个万能扩展接口。丰富的系统硬件资 源构成了各种实际应用电路,通过万能扩展接口可以很方便地仿真外部应用电路和扩展 用户应用电路。图2-1为多功能单片学习机。 图2-1 多功能单片学习机 2.1 多功能单片学习机的硬件设计多功能单片学习机的硬件设计 学习机系统结构框图如图2-2所示。主要由供电电路、电源电压检测电路、电源中断 电路、键盘电路、红外遥控电路、数码显示电路、扬声器电路、存储器电路、存储器写 保护电路、程序自动切换电路、rs232 及rs485 通信接口电路、单片机电路等组成。 第二章 多功能单片学习机 8 图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”时,内部上拉电阻把端口拉高,此时可以作为输入 南昌工程学院本科毕业(论文)设计 9 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(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 闪存编程和程序校验的控制信号。 第二章 多功能单片学习机 10 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:振荡器反相放大器的输出端。 南昌工程学院本科毕业(论文)设计 11 e a/v p 31 x 1 19 x 2 18 r es et 9 r d 17 w r 16 in t 0 12 in t 1 13 t 0 14 t 1 15 p10 1 p11 2 p12 3 p13 4 p14 5 p15 6 p16 7 p17 8 p00 39 p01 38 p02 37 p03 36 p04 35 p05 34 p06 33 p07 32 p20 21 p21 22 p22 23 p23 24 p24 25 p25 26 p26 27 p27 28 pse n 29 a le /p 30 t xd 11 r xd 10 u 1 d 0 d 1 d 2 d 3 d 4 d 5 d 6 d 7 a 8 a 9 a 10 c 4 15 p c 5 15 p jt 12 m hz r ed i a e c 1910 u r 17 4.7k r st r st e a pse n 38 a 38 b 38 c k sc k sb k sa k si r d w r v cc a 11 a 12r xd t xd t xd r xd 1 2 3 4 j1in t 0 io t 0 io t 1 p2.5 g nd e a p2.6 p2.7 图 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, 第二章 多功能单片学习机 12 电流越大,发光越亮。 图 2-4 数码管内部结构图 常用的七段式数码管的硬件驱动设计方法有:静态驱动与动态驱动。静态驱动即指 每个数码管的数据线都有一个单独的数据锁存器,数据锁存器输入的数据由使能端控制, 当使能端为高电平时,数据线上的数据(要显示的七段码)进入显示器,使能端与地址 译码器的输出相连,要显示那位,则选通那位的地址,在软件设计上不要求程序循环, 也不存在显示数字发生闪烁。但是这样会占用很多口线。 动态显示是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有 效。这样一来,就没有必要每一位数码管配一个锁存器,从而节省了口线,地简化了硬 件电路。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管 的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。 学习机采用的是动态扫描。动态扫描驱动数码管的优点:当显示位数较多时,采用 动态显示方式比较节省 i/o 口,硬件电路也较静态显示简单;缺点:其稳定度不如静态 显示方式。而且在显示位数较多时 cpu 要轮番扫描,占用 cpu 较多的时间。总的来说, 无论是动态还是静态显示,其显示更新的速率不能太快,如数据不停变化,太快则无法 看清楚显示的内容,在软件设计是必须注意的。另外,在同等条件下动态显示的亮度比 静态显示要差一些,所以在适当提高驱动电流,例如使用限流电阻,就应略小于静态显 示电路中的,或者使用缓冲驱动芯片。 表 2-1 显示的数字和七段码各位的对应关系表 显示值 0123456789 七段共阴 3fh06h5bh4fh66h6dh7dh07h7fh6fh 七段共阳 c0hf9ha4hb0h99h92h82hf8h80h90h 2数码显示电路分析 南昌工程学院本科毕业(论文)设计 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), 当低电平使能端接低电 平且高电平使能端接高电平时 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 只数码管,连接方式为八段共阴极数 第二章 多功能单片学习机 14 码管,显示方案为动态扫描。从图 2-5 中可以看出驱动数码管总共用了 6 个单片机 i/o 口,其中三个 i/o 口通过一片 74hc138 控制 74hc273 锁存器的时钟 clk 来实现对数码管 中的各段驱动,另三个 i/0 口通过控制另一片 74hc138 来实现对 8 个数码管中的公共端 驱动;三极管 q1q8 工作在开关状态; 2.1.3 外部存储器电路 62256 是 32 k8 的高集成度的随机存取存储器,有 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= 26 mcs-51 单片机系统拓展时,一般使用 p0 口作为地址低 8 位(与数据口分时复用), 而 p2 口作为地址高 8 位,它共有 16 跟地址总线,寻址空间为 64kb。 62256 引脚功能 a0 a14 地址总线 d0 /d7 输入、输出口 cs 端口选择 we 输入使能 oe 输出使能 vcc 电源使能 vss 接地 南昌工程学院本科毕业(论文)设计 15 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 1 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 2 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 3 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 4 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 5 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 6 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 7 a 7 b 6 c 4 d 2 e 1 f 9 g 10 dp 5 c1 3 c2 8 m 8 s1s2s3s4s5s6s7s1s2s3s4s5s6s7s1s2s3s4s5s6s7s1s2s3s4s5s6s7s1s2s3s4s5s6s7s1s2s3s4s5s6s7s1s2s3s4s5s6s7s1s2s3s4s5s6s7 s1 s2 s3 s4 s5 s6 s7 a 1 b 2 c 3 e1 4 e2 5 e3 6 y0 15 y1 14 y2 13 y3 12 y4 11 y5 10 y6 9 y7 7 u3 74hc138 38a 38b 38c d0 d1 d2 d3 d4 d5 d6 d7 vcc s8 s8s8s8s8s8s8s8s8 q1 9012 q2 9012 q3 9012 q4 9012 q5 9012 q6 9012 q7 9012 q8 9012 d1 3 q1 2 d2 4 q2 5 d3 7 q3 6 d4 8 q4 9 d5 13 q5 12 d6 14 q6 15 d7 17 q7 16 d8 18 q8 19 c lk 11 c lr 1 u574hc273 vcc 4 5 6 u6b 1011 u9e 1213 u9f w r disp a 1 b 2 c 3 e1 4 e2 5 e3 6 y0 15 y1 14 y2 13 y3 12 y4 11 y5 10 y6 9 y7 7 u13 74hc138 gnd vcc p2.5 p2.6 p2.7 disp 图 2-5 数码管显示电路 第二章 多功能单片学习机 16 d0 3 q0 2 d1 4 q1 5 d2 7 q2 6 d3 8 q3 9 d4 13 q4 12 d5 14 q5 15 d6 17 q6 16 d7 18 q7 19 oe 1 le 11 u2 74hc373 d0 d1 d2 d3 d4 d5 d6 d7 d0 d1 d2 d3 d4 d5 d6 d7 a8 a9 a10 ae ea r wr a0 10 a1 9 a2 8 a3 7 a4 6 a5 5 a6 4 a7 3 a8 25 a9 24 a10 21 a11 23 a12 2 c s1 20 c s2 26 w e 27 oe 22 d0 11 d1 12 d2 13 d3 15 d4 16 d5 17 d6 18 d7 19 u8 vcc a11 a12 r oe r cs 11 12 13 u6d 1 2 3 u6a 56 u9c 4 5 6 u11b 8 9 10 u11c 11 12 13 u11d r am c r d w r 1 2 3 4 j8 r 282k vcc r 23 2k vcc r cs r oe r wr a0 a1 a2 a3 a4 a5 a6 a7 a14 1 a12 2 a7 3 a6 4 a5 5 a4 6 a3 7 a2 8 a1 9 a0 10 d0 11 d1 12 d2 13 vss 14 d3 15 d4 16 d5 17 d6 18 d7 19 c s 20 a10 21 oe 22 a11 23 a9 24 a8 25 a13 26 w e 27 vcc 28 u12 62256 vcc gnd a 1 b 2 c 3 e1 4 e2 5 e3 6 y0 15 y1 14 y2 13 y3 12 y4 11 y5 10 y6 9 y7 7 u13 74hc138 gnd vcc p2.5 p2.6 p2.7 1 2 3 u14a 74hc08 4 5 6 u14b 74hc08 8 9 10 u14c 74hc08 r am c 32ksr am c s 11 12 13 u14d 74hc08 psen r d 32ksr am oe w r aw r aw r 32ksr am c s 32ksr am oe a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 p2.5 p2.6 d0 d1 d2 d3 d4 d5 d6 d7 1 2 3 4 5 6 7 8 9 pr1 1 2 3 4 5 6 7 8 9 pr2 vcc vcc d0 d1 d2 d3 d4 d5 d6 d7 a8 a9 a10 a11 a12 p2.5 p2.6 p2.7 8 9 10 u6c 1 2 3 u11a psen pow c hk 图 2-6 外部存储器电路 南昌工程学院本科毕业(论文)设计 17 2.1.4 外部存储器的保护电路 存储器写保护电路在系统上电、掉电、电源电压低以及切换系统程序和用户程序时 禁止存储器写操作,保护用户代码。由图 2-7 所示。r30 和 q15 检测单片机复位信号, r25、r26、q14、r*组成电源检测电路。 d11 r25 r26 q14 12 u9a 34 u9b 8 9 10 u11c r27 vcc r30 q15 rst r* protect ramwr 图 2-7 存储器写保护电路原理图 2.1.5 键盘输入电路 图 2-8 为键盘输入电路,键盘电路使用一片 74hc138 扩展 8 个按键。 a 1 b 2 c 3 e 1 4 e 2 5 e 3 6 y 0 15 y 1 14 y 2 13 y 3 12 y 4 11 y 5 10 y 6 9 y 7 7 u 4 74h c138 k sa k sb k sc k 2k 7k 5k 8k 9k 3k 4k 6 k si v cc 图 2-8 为键盘输入电路 控制信号 ksa、ksb、ksc 通过 74l138 输出 y0y7 信号,然后在由 k2k9 按键 控制,最后决定 ksi 信号是否导通。例如:若控制信号 ksa、ksb、ksc 为 011,则 y3 为低电平,如果 k6 按键按下,结果 ksi 导通。 第二章 多功能单片学习机 18 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 也导通,同样产生复位脉冲。达到复位的目的。 c21 r19 r16 c19 r17 k1 r20 rst r18 ea vccvcc q12 q13 c20 11 12 13 u6d 1 2 3 u6a 56 u9c 1 2 3 u11a 4 5 6 u11b 8 9 10 u11c 11 12 13 u11d ramcs1 psen rd wr ramcs ramrd r21 d10 ramwr protect 图 2-9 自动程序切换电路原理图 (2)逻辑切换电路 若开始时 ea 为高电平,此时运行系统程序,外部程序存储器选 通信号 psen 不能通过 u11a 而无效,读信号 rd 可通过 u11d,由于 u11a 输出为高电平,所 以 rd 信号通过 u11d 后又可以通过 u6a,实现对外部存储器的读操作;写信号 wr 可通过 u11b,wr 和保护电路相或后实现对外部存储器的写操作。若 ea 为低电平,此时运行用户 程序,psen 有效,读写信号无效,即外部存储器为程序存储器,不能进行写操作。需要注意 南昌工程学院本科毕业(论文)设计 19 的是在切换程序时,必须启动一个存储器写保护电路,以防止此期间外存储器被意外写 数据。从而破坏了用户程序。此外,在系统上电及掉电时,也需要对外存储器写保护。 在电源电压不足时,为安全起见,也应该对外存储器写保护。 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 节干电池供电。电压检测电路在电源电压不足 时会给单片机一个中断信号,同时禁止存储器写操作。 第二章 多功能单片学习机 20 1 2 j3d 8 4007 c 10c 11 pj1 r 15 510 d 9 v in 1 gnd 2 +5v 3 u 10 v cc d 11 r 25 100k r 26 18k q 14 9013 1 2 j7 12 u 9a 34 u 9b r 27 510 c 6 470u in t 0 v cc c 12 c 13c 14c 16c 15 c 22 345 c 18 r * pow c hk 图 2-11 电源电路 2.2 多功能单片学习机的软件设计多功能单片学习机的软件设计 学习机软件由两部分组成: 上位机pc 软件和下位机软件。pc 机软件在windows 环 境下用visual basic 软件编写,完成程序下载及程序切换控制,包括文件操作部分、通 信测试部分、通信协议处理部分、错误处理等辅助功能。下位机软件可以分为系统软件 和应用软件两类,系统软件放置于系统单片机内,应用软件(也即用户程序)是无限增 加的。比如ad/da 实验程序、液晶显示器实验程序、usb 驱动实验程序、网络实验程序、 编程器扩展应用程序、解码器、示波器等。学习机能够完成各种实验,这是由于其使用 了执行外部程序加上扩展板的灵活结构。 下位机系统软件的主要功能有:与上位机联合下载程序;单机独立工作,使用系统键 盘或红外遥控器修改/ 查看程序代码,适合处理代码量少的情况; 具有频率计功能和 脉宽测量功能;具有编程器功能。 2.3 本章小结本章小结 本章中详细地介绍了多功能单片学习机的硬件设计,其中硬件设计包括单片机 南昌工程学院本科毕业(论文)设计 21 at89s52 电路,数码显示电路,外部存储器电路,外部存储器的保护电路,键盘输入电路, 程序自动切换电路和电源电路等;然后,简要地介绍软件设计,软件设计包括上位机 pc 软件和下位机软件。 第三章 nand flash 扩展板的设计 22 第三章 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)。 单单单单单 单单单at89s52单单单单单 74hc373 sram 62256 8*1 单单 nand flash a0-a7 a8-a15 d0-d7 74hc138 图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 所示。 南昌工程学院本科毕业(论文)设计 23 k9f1208u0b 芯片有 4 个 plane,每个 plane 有 1024 个 block,每个 block 有 32page,每个 page 有 528byte。 1 page=528 byte 1 block=528 byte *32 pages=(16k+512)byte 1device=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 写保护,当此引脚为低电平激活,也即内部高压 第三章 nand flash 扩展板的设计 24 发生器复位。 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 为多功能学习机 引出的插座。 南昌工程学院本科毕业(论文)设计 25 3.2 nand flash 驱动驱动 开 始 数据初始化 数码管扫描 是否有键输入 y 数据写入键吗 y 向 nand 芯 片存储数据 校验数据是否正 确写入 led 显示操作 结果 n 擦除键吗 n n 擦除 nand y nand 接口 初始化 图 3-3 nand flash 驱动的主程序流程图 nand flash 驱动的主程序流程图如图 3-3 所示。开始需要使数据初始化, 然后使 nand 接口初始化,再经数码管扫描后看是否有键输入,若无则返回到数 码管扫描,若有,则向 nand 芯片存储数据;再校检是否正确写入,然后通过 led 显示操作结果,最后回到数码管扫描;如果没有数据写入,则判断是否要 有擦除键按下,若无,则回到数码管扫描,如若擦除键按下,则擦除 nand 回到 数码管扫描。 第三章 nand flash 扩展板的设计 26 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: 读失败。 南昌工程学院本科毕业(论文)设计 27 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)

温馨提示

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

评论

0/150

提交评论