当前课程知识点:微机原理与接口技术 >  第9周 半导体存储器 >  第40讲 只读存储器ROM >  ROM_02

返回《微机原理与接口技术》慕课在线视频课程列表

ROM_02在线视频

ROM_02

下一节:半导体存储器扩展_1

返回《微机原理与接口技术》慕课在线视频列表

ROM_02课程教案、知识点、字幕

我们这门课里也带给大家

一个具体的EEPROM的型号

叫98C64A

它的容量也是8K×8位的

大家可以看到我们选择这些芯片的用心

大家的容量都是8K的

而且它都是乘8位的

所以这也就是和我们8088

这个CPU去对接的

因为它的原理都是类似的

8位 32位 64位

其实也就是像人一样长大了而已

眼睛还是眼睛 鼻子还是鼻子 对吧

有很多的基本的构件实际上变化不大

只是在上面不断的叠加了很多功能

就像一个婴儿是没有什么力气的

但是你作为一个小伙子

它力气就很大 是一样的

好 这样子的话 所以它对于这个芯片来讲

也有13根片内地址 8位数据信号

因为它可以在线的读 也可以在线的写

所以它有读允许#OE和写允许#WE

同样它有片选信号#CE端

跟我们6264或者EPROM比起来一样的

如果和6264去比

它又少 又多出一个端来

就是6264的CS2

所以这个芯片实际上它在引脚上

跟6264也是兼容的

那么少出来这个引脚是什么呢

是这样一个引脚

叫READY/#BUSY

这个引脚使得这个型号的芯片

它有一个非常独特的特点

这个芯片是半导体存储器

也就是说它属于主机系统的范畴

但是只有这个READ/#BUSY这个端

这个状态是要通过接口和系统连接的

所以我们也可以认为这个端

它属于一个外部设备的范畴

只有这个端处于READY状态

大家看READY上面是没有横杠的

也就是处于高电平状态的时候

我们才可以写

如果这一端位于低电平状态

也就是说BUSY状态

那么就表示它现在不可以写

因为你每写入 对于这种ROM型的芯片

每写入一个字节它有一个处理的过程

这个过程时间比较长

不能像RAM那样哗哗地写进去

所以它一旦处理的过程中

它是不允许再接受下一个字节的写入

它要呈现一个BUSY状态

因此呢 我们每一次的写状态

写操作我们都要去看这个READY端的眼色

看它是高电平我们才可以写

它不是高电平就不可以写

这个是这个芯片它的一个特点

由此我们就有了这样子的一个工作时序

也就是说大家看 最上边

就是13位的地址信号如果是有效

那么这个时候如果我们是写操作的话

#OE端就全程为高电平

那么#WE端是低电平

那么如果这个时候READY端

为高电平 也就是表示可以写的话

数据就写进去了

那么如果写完了以后呢

它要对这个数处理

所以紧接着这个READY/#BUSY端就呈现低电平

呈现一个忙状态

那么它就不能再写

所以#BUSY为低电平的时候

大家会看到对应的写允许信号也是无效的

这个就是又再次给大家呈现了

98C64A它的工作特点或者原理

所以对于EEPROM98C64A的应用是这样

我们用文字来总结一下就是可以通过程序

来实现对芯片的读或者写操作

当然读是谁没问题的

就是主要是对它进行可以通过

程序来在线进行写操作

但是呢 写要有条件

在写入的时候

READY端必须呈现为高电平

它才能够完成一字节的写入

对于98C64A它只具有

按字节写的这种方式

那么就是说在这个为高电平

它可以实现一字节的写

那么我们如何能够知道

这个是高电平还是低电平

也就是我们如何能知道

我们现在能不能写呢

我们有三种可以供你选择的方法

首先我们如果去买这一片98C64A

这个芯片它有相应的技术参数

这个参数里头其中有一条

就表示它每完成一次写操作

这样一个周期是100个微秒

这个是它的一个参数

所以这个参数就表示

你写一个字节需要100us才能写下一个字节

所以我们马上就可以想到这样个办法

我们写完一个字节

我们定时100us我们再去写下一个字节

这个没问题

但是这里要提醒大家的一点的是

在实际的工程应用中

因为我们虽然这可能从一条流水线在一批次

生产出了这样一些芯片

但是它们在性能上还是存在一些微小的差别

就是说它在技术手册上

提供你100us完成一次写操作

但是它这是一个均值

不一定是绝对的

所以通常从工程应用的角度要打一些余量

这个余量通常为20%

那么也就是说我们可能需要定时120us

我们再写一个字节进去

那么这样子的话它的效率就会不是那么高

因为有可能有些芯片它大概说不定99us

它就完成了一次写操作

你是不是又浪费了那么21个微秒 是吧

但是这毕竟是一种办法

第二种办法呢

我们可以通过不断的去观察

或者说查询

这个READY端的状态

就像我们前边讲and text指令的时候

我们举过那个例子

我们说我们通过读取READY端的状态

然后去看一下

这一个状态到底是高还是低

如果是高电平我们就可以写

如果是低电平就不可以写

这就是另外一种工作方式

我们称为查询的工作方式

这种工作方式在下边

我们下一周讲接口的时候我们会

跟大家详细的解释这种工作方式

怎么样去实现

还有一种方式

不管是刚才我们说定时的方式查询的方式

实际上主导方都是CPU

也就是我自己定时100多个微秒

我去完成一次写

或者说我不断地问你

你好了没有 然后好了我再去写

这是两种

还有一种我不用管你

我自己做我自己的事情

等你的READY端为高电平时候

你来告诉我 对吧

这也是一种办法

这种方法我们称为中断的方法

也就是说当READY端呈现高电平的时候

它把这个高电平信号反馈给CPU

然后CPU看到它为高电平马上完成一次写操作

这是三种方法

这三种方法从刚才的描述上

大家其实已经能够感觉到

效率最低的就是第一种方法

其次是第二种方法

最好是第三种方法

当然后两种方法因为牵扯到接口控制

我们会在那些内容里头

我们再详细的解释

所以下边我们用第一种方法作为示例

来给大家介绍一下98C64A如何应用

这个例子是这样

将一片98C64A接到系统总线上

然后告诉你

要让它在整个地址空间的地址范围

是3E000到3FFFFH这样的一个范围

这个地址范围同样的

你去用计算机算一下

它也正好是8K个地址编码

说明用这一片芯片就可以了

现在要你要设计它的线路图

然后要编程

把每一个单元里都去写入

66H这样一个工作

我们同样把这个题目做一个简单的分析

我们首先要实现

将这个芯片和系统进行连接

按照我们上一讲所学到的那些

存储器芯片和系统连接的方法

总而言之 主要的就实现译码电路

第一步就是要把这个高位地址确定出来

然后我们再去设计相应的译码器

当然这硬件设计完了以后

按照题目的要求我们还需要编程

所以我们要做软件的设计

就是循环的将每一个单元里写入66H

这样 一共写多少次呢 一共8K个单元

所以写8K次就完了

按照我们刚才说的三种方法

我们用第一种方法定时写入的方法

这个芯片我们说了

它的技术参数里说100us写入一个字节

所以我们可以定时120个微秒

然后写入一个字节 一共写8K个字节

我们按照刚才题目给定的条件

我们来确定它的地址范围

从这个地址范围里

用二进制写出来就是这样一个地址范围

这个红颜色的就是它的高位地址

这个高位地址大家也看到

首地址尾地址它的高7位是一样的

那么高位地址一旦出来我们就知道了

A19要是低电平

A18是低电平

其他是高电平等等

那么下边的工作

就是把这些低电平高电平组合出来

产生一个低电平输出

这就是我们完成的这个译码电路的一个示例

再次说一下

译码电路的设计不是唯一的方法

你可以用我们现在这个

课件上看到的这个方式

你实际上也可以完全换一种方式

用其他的门电路来实现也可以

都没有关系 只要逻辑上正确就可以了

这里就提示一点

就是这里的读写控制信号

一定要作为译码器的输入信号

这里的#MEMW #MWMR

这样子做

一个是作为一种可靠性

也就是说只有在对这个芯片

进行读或者写操作的时候

它后续的芯片才允许被选中

也就是说译码器才允许工作

如果你不对它读也不对它写

也就是CPU自己在自己肚子里

做加减乘除的时候

那你这个译码器就不能工作

也就是说那个芯片就不能被选中

所以这是从一个可靠的角度

还有呢对于某一些性质的芯片

当你这个读写控制信号

不作为译码器输入的时候

有可能这个芯片根本就不可能工作起来

这个在我们后续讲接口的时候

我们会用一个具体的示例

来为大家解释

硬件设计完了

我们下边就是软件的编程了

这就是我们循环写入8K个单元

每个单元里都写66H的一个程序

我们首先完成的是

将段基地址写入到DS里

刚才根据我们的地址范围

是3E0000到3FFFF

所以呢 我们简单的就认为

3E00H就是段地址了

因为它的片内地址

对于这一个具体的芯片来讲

第一个单元的片内地址肯定是13位0

最后一个片内地址肯定是13位1

所以这个就是段基地址

然后呢 我们从0开始写

写8K个单元 8K的十进制数等于多少呢

就是8192

就是写8192次 是吧

然后我们就开始把66H

一个一个地循环写进去

每写一个字节

一定要去定时至少100us

刚才我们说

从工程应用的角度要定时120us

所以要去调用一个定时子程序

调用完了以后

好 回来 如果没有写完的话

我们再去写下一个字节

当然这个时候就要修改指针了

所以这个程序如果我们现在想

把这个66H写入到SRAM6264里头

这个程序该怎么改呢

大家考虑一下

就对比一下这样一个芯片

8K个单元里每个单元里都写66H

和6264芯片每个单元里也写66H

它们在软件程序设计上

区别在哪里

把问题留给大家

如果答不上来 我们论坛上来讨论

好 这个就是有关EEPROM芯片

我们用这个案例来介绍就到这里

最后我们简单的说一下

我们所谓的闪速存储器也就是Flash

这是我们今天真正人人

都整天手边都具有的一种半导体存储器

我们所有的U盘 包括我们的数码相机

我们的手机里边的存储卡等等

都属于这种Flash性质的存储器芯片

这种芯片实际上它的本质

属于EEPROM类型的芯片

那么为什么单独作为一种类型叫Flash

Flash的意思就是闪速 为什么闪速

就意味着它快 对吧

那么它的快在哪里呢

除了它一些半导体芯片

这个本身性质上的一些区别之外

在同时代的Flash里头

它的很重要的一点

就是它每一次不是通过刚才

我们说的READY/#BUSY端的状态

来决定能不能去写

我们刚才说98C64A那个READY端的状态

到底是高电平还是低电平

实际上是通过接口读进来的

那么一旦通过接口速度就慢的很多了 对吧

因为它就变成了一个外部设备的范畴

那么Flash芯片呢 我们决定它能不能写呢

我们不是通过这样的接口

去读取它当前的状态

而是通过读取它内部的状态寄存器的

状态来确定它能不能写

Flash芯片呢

它内部通常是用一个状态寄存器来反映

它现在到底可不可以写操作的

那么这个状态寄存器的状态

是CPU通过CPU总线直接读进来的

而不需要通过接口

这样的话速度就快的很多了

那么读进来以后

它去看这个状态寄存器

相应的那一位的状态

好 确定它可以

接着它再去发布相应的写操作命令

就已经进行写操作了

这个就是Flash它能之所以叫Flash

一个最核心的一个原因

Flash芯片它可以在线

它既然属于EEPROM

所以它也可以在线的写在线的读

那么它和SRAM的区别在哪里

主要的当然是它掉电以后信息不丢失

这是它和所以RAM型芯片的主要的区别

另外呢 它的写电压要相应的要高一点

和普通EEPROM芯片的主要的区别

就是它不是通过读取 通过接口

去读取READY端的状态来确定能不能写操作的

而是通过读取状态寄存器的状态来写操作

同样的我们也可以把这样一个芯片

它的工作方式简单的说一下

它有读出

有编程写入

有擦除这样三种

这个是和所有ROM芯片都是一样的

它的读操作除了和普通EEPROM芯片一样

具有读内存单元的内容之外

它还可以要读状态寄存器

因为它必须确定能不能进行写操作

另外呢 它还要可以读出它的一些厂家标记

都可以在里头读

它的写操作呢

可以写数据 这没问题

同时呢它还多了一样

可以实现软件的写保护

就是以防止意外的进行写操作了

这是我们现在有的U盘里

旁边有一个推的这个暗扣

推上去就不可以进行写操作了

这就是这个意思

那么它的擦除呢

EEPROM跟EPROM比较起来已经有了进步了

EPROM我们说光照 紫外光照射擦除

所以一擦就整个芯片就被擦光了

而EEPROM因为它可以在线的擦除

所以它可以一个单元一个单元擦

而Flash芯片呢

除了按字节来擦

它可以分块来擦 它也可以整片来擦

除此之外 它还可以擦除挂起

也就是说擦到中间它可以暂停的意思

这个就是Flash

Flash芯片因为它今天的发展很快

它的很多的新型的型号都非常的多

我们就不再这里做更详细的解释了

它的基本原理

和我们的EEPROM有类似的地方

另外它读状态寄存器

根据状态寄存器的状态

来决定是不是进行写操作

有关状态寄存器这些概念

我们会在后边的可编程接口里也会借用过来

给大家解释

所以那部分学完后

大家再回来去理解Flash

也就没有什么特别惊奇的东西了

所以有关Flah芯片

如果大家未来做设计需要具体的还要使用的话

可以去参照一些具体的技术手册

就是说你选哪一个型号

你看它的手册上具有哪些性质

你去直接去用就可以了 在我们这里

给大家一些简单的普适性的介绍

科普性的介绍就到这里

好 有关我们只读存储器的学习

今天就到这里

微机原理与接口技术课程列表:

第1周 微型计算机基础概论

-第1讲 关于本课程

--关于本课程

-第2讲 微型计算机系统

--微机系统_01

--微机系统_02

-第3讲 微型计算机一般工作过程

--微机的一般工作过程_01

--微机的一般工作过程_02

-第4讲 数制与编码

--常用计数制及其转换

--计算机中的编码

-第5讲 计算机中数的表示与运算

--数的表示

--符号数的表示

--数的表示与运算

-第6讲 基本逻辑运算与逻辑电路

--基本逻辑运算与逻辑门

--常用逻辑运算及电路

-第7讲 本周小结

--本周小结

-第1周 微型计算机基础概论--第一周单元测验

第2周 8088微处理器

-第8讲 8088微处理器

--8088 CPU_01

--8088 CPU_02

-第9讲 8088 CPU主要引线及机构

--8088 CPU主要引线

--8088 CPU内部结构

--8088 CPU内部寄存器

-第2周 8088微处理器--第二周单元测验

第3周 实模式存储器寻址与总线

-第10讲 实模式存储器寻址

--实模式存储器寻址_01

--实模式存储器寻址_02

--实模式存储器寻址_03

-第11讲 8088系统总线

--8088系统总线

-第12讲 微处理器小结

--微处理器小结

-单元测验--作业

第4周 数据传送指令

-第13讲 指令概述

--指令概述

-第14讲 寻址方式

--寻址方式

-第15讲 通用数据传送指令

--通用数据传送指令_01

--通用数据传送指令_02

--通用数据传送指令_03

-第16讲 地址传送指令

--地址传送指令

-第17讲 输入输出指令

--输入输出指令

-第4周 数据传送指令--第四周单元测验

第5周 算术运算、逻辑运算与移位操作指令

-第18讲 算术运算指令

--加法运算指令

--减法指令

--乘除运算指令

-第19讲 逻辑运算指令

--逻辑运算指令_01

--逻辑运算指令_02

-第20讲 移位操作指令

--移位操作指令

-第5周 算术运算、逻辑运算与移位操作指令--第五周单元测验

第6周 串操作指令

-第21讲 关于串操作指令的说明

--串操作指令说明

-第22讲 串传送与串比较

--串传送与串比较

-第23讲 串扫描指令

--串扫描指令

-第24讲 串装入与串存储指令

--串装入与串存储指令

-第六周单元测验--作业

第7周 程序与处理器控制

-第25讲 程序控制指令说明

--程序控制类指令说明

-第26讲 转移类指令

--无条件转移指令

--条件转移指令

-第27讲 循环控制指令

--循环控制指令

-第28讲 过程调用指令

--过程调用指令

-第29讲 中断指令

--中断指令

-第30讲 处理器控制指令

--处理器控制指令

-第31讲 指令系统小结

--指令系统小结

-第7周 程序与处理器控制--第七周单元测验

-第7周 程序与处理器控制--第七周作业

第8周 汇编语言程序设计

-第32讲 汇编语言源程序

-- 汇编语言源程序_01

-- 汇编语言源程序_02

-第33讲 伪指令

--数据定义伪指令

--符号与段定义伪指令

--汇编语言源程序结构例

--其它伪指令

-第34讲 系统功能调用

--系统功能调用_01

--系统功能调用_02

-第35讲 汇编语言程序设计示例详解

--程序设计示例1

--汇编语言程序设计示例_02

-第36讲 汇编语言程序设计小结

--汇编语言程序设计小结

-第8周 汇编语言程序设计--第八周单元测验

-第8周 汇编语言程序设计--第八周作业

第9周 半导体存储器

-第37讲 半导体存储器概述

--半导体存储器概述

-第38讲 内存单元编址

--存储单元编址

-第39讲 随机存取存储器RAM

-- RAM_01

--RAM_02

-第40讲 只读存储器ROM

--ROM_01

--ROM_02

-第九周单元测验--作业

第10周 半导体存储器扩展技术

-第41讲 半导体存储器扩展

--半导体存储器扩展_1

--存储器扩展_2

--半导体存储器扩展_3

-第42讲 半导体存储器小结

--半导体存储器小结

-第十周单元测验--作业

-第十周作业--作业

第11周 输入输出与中断技术

-第43讲 基本I/O接口

--I/O系统概述_01

--I/O系统概述_02

-第44讲 简单接口芯片

--简单接口芯片

-第45讲 基本输入输出方法

--基本I/O方法

-第46讲 简单I/O控制系统设计

--简单I/O控制系统设计1

--简单I/O控制系统设计2

-第47讲 中断技术

--中断技术1

--中断技术2

-第48讲 输入输出与中断技术小结

--本周小结

-第十一周单元测验--作业

第12周 可编程并行数字接口

-第49讲 可编程定时计数器

--可编程定时计数器8253_01

--可编程定时计数器8253_02

--可编程定时计数器8253_03

-第50讲 可编程并行接口

--可编程并接口8255_01

--可编程并行接口8255_02

--可编程并行接口8255_03

-第51讲 可编程接口小结

--本周小结_01

--本周小结_02

-第十二周单元测验

第13周 模拟量的输入输出

-第52讲 模拟量的输入输出

--模拟量的输入输出

-第53讲 D/A转换器

--D/A转换器_01

--D/A转换器_02

-第54讲 A/D转换器

-- A/D转换器_01

--A/D转换器_02

-第十三周单元测验--作业

第14周 系统综合设计示例详解

-第55讲 I/O接口系统综合设计示例详解I

--综合设计示例详解I_01

--综合设计示例详解I_02

-第56讲 综合设计示例详解II

--综合设计示例详解II_01

--综合设计示例详解II_02

-第57讲 结束语

--结束语

ROM_02笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。