微机内存扩充卡.docx
《微机内存扩充卡.docx》由会员分享,可在线阅读,更多相关《微机内存扩充卡.docx(13页珍藏版)》请在冰豆网上搜索。
微机内存扩充卡
课程设计说明书
课程设计名称:
微机原理与接口技术A课程设计
课程设计题目:
微机内存扩充卡
学院名称:
信息工程
专业:
计算机科学与技术班级:
学号:
姓名:
评分:
教师:
叶水生周卫民
2012年6月29日
微机内存扩充卡
1设计选题及功能说明
设计题目:
微机内存扩充卡
课题要求与功能说明:
(1)通过ISA总线设计内存扩充卡,假设微机内存空间C8000H-EFFFFH为保留空间,现在要求用SRAM扩充64K内存,本次设计扩充的是D0000H-DFFFFH的空间。
(2)测试程序根据用户的输入选中本扩充卡中某个存储器芯片,然后往其中写入数据,最后读出并且与输入的数据比较,判断是否出了错误。
2硬件电路设计
电路采用Protel99进行设计。
2.1芯片介绍与选择
6264
本次课设要扩充64KB的容量,需要用到8片6264来字扩展;
6264有两个片选信号(20脚的/CS1和26脚的CS2),这里/CS1接到了74LS138的相应译码输出端,CS2接了高电平;
6264还有两个特殊的信号,即/OE和/WE,它们分别是6264的输出使能端和写使能端,这里将它们分别接到了ISA接口的/MEMR和/MEMW;
6264还有其他的引脚,如D0~D7数据线、A0~A19地址线等等。
74LS138
74LS138是3-8译码器,因为这里要扩充的地址范围为D0000~DFFFF,A19至A16都固定了,而6264片内有13位地址,因而74LS138的3个地址输入端分别接了A15、A14、A13,至于其他的G1、/G2A、/G2B则由固定地址部分和相应ISA总线的信号经逻辑组合而成,具体见原理图。
ISA总线
本次课设要用到ISA总线的引脚信号如下:
D0~D7DB
A0~A19AB
AEN地址允许信号
/MEMR存储器读信号
/MEMW存储器写信号
VCC电源
GND接地
2.2电路设计
该部分由小组成员设计,以下做出相关说明:
本课设使用74LS138译码选中不同的6264,从而实现基于ISA总线接口的64KB的内存扩充,其地址范围为D0000~DFFFF:
(1)/CS1片选信号接74LS138的译码输出端,CS2为高电平有效,又因为当CS2为高电平与CS1为低电平时,才可控制6264正常读写,故应使CS2一直保持其高电平;
(2)/OE接ISA总线的/MEMR,/WE接ISA总线的/MEMW,用来实现读写控制。
(3)A0-A12与D0-D7分别接ISA总线上的相应信号。
(4)主要对使能端进行控制。
说明:
(1)74LS138的地址输入信号A、B、C分别接了ISA地址线A13、A14、A15。
这三个信号对8个6264进行选择,当选中000-111时,分别为第0个6264到第7个6264。
(2)74LS138的G1、/G2A、/G2B分别连的是ISA地址线和一些控制线的组合信号,因为起始地址为D000,所以只有当A19、A18、A17、A16为1101且AEN为0时才能选中本内存扩充卡;
(3)74LS138的译码输出端分别接8个6264的片选信号/CS1;
设计原理图
2.3PCB电路板设计
该部分内容由我完成印刷电路图如下:
TopLayer:
ButtomLayer:
完整图
连线步骤:
74LS081A19A12
2A18A13
374LS08:
5
4A16A15
674LS138:
6
7GNDB1
874LS138:
5
9/MEMRB12
10/MEMWB11
14VCCB3
othersnothing
74LS321A17A14
2AENA11
374LS138:
4
7GNDB1
14VCCB3
othersnothing
74LS1381A13A18
2A14A17
3A15A16
8GNDB1
16VCCB3
156264:
20
14same
13same
12same
11same
10same
9same
7same
626414GNDB1
26VCCB3
28VCCB3
10A0A31
9A1A30
8A2A29
7A3A28
6A4A27
5A5A26
4A6A25
3A7A24
25A8A23
24A9A22
21A10A21
23A11A20
2A12A19
22/MEMRB12
27/MEMWB11
11D0A9
12D1A8
13D2A7
15D3A6
16D4A5
17D5A4
18D6A3
19D7A2
1.先将6264的所有引脚(除1、14、20、28)用红线连起来
2.然后用蓝线连接,至此完成6264的连接
3.74LS08、74LS32、74LS138内部连线
4.74LS138和所有6264的连接(20)
5.74LS08、74LS32、74LS138和ISA接口的连接
6.6264和ISA接口的连接
7.电源和地的连接(14、26、28)
3测试程序
测试程序根据用户的输入选择往哪个6264中写入哪些数据,之后又会从中读取数据,判断是否出错,具体程序如下:
DSEGSEGMENT
TS0DB"你想访问几号6264(0~7)?
",0DH,0AH,"$"
TS1DB"输入你想用于测试的数据(字节):
",0DH,0AH,"$"
TS2DB"测试成功!
",0DH,0AH,"$"
TS3DB"存储器读写错误!
",0DH,0AH,"$"
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG
START:
MOVAX,DSEG
MOVDS,AX
MOVAX,0D000H;ES为存储卡的段地址,即D000H
MOVES,AX
INPUT:
MOVDX,OFFSETTS0
CALLSHOW
MOVAH,1;输入想访问的6264编号
INT21H
CMPAL,'0';比0小或比7大则重新输入
JBINPUT
CMPAL,'7'
JAINPUT
ANDAL,0FH;转换为数字,放在AX中
XORAH,AH
MOVCL,3;循环右移3次将数字转换为要访问的6264的起始偏移地址
RORAX,CL
MOVBX,AX;BX中存放了要访问的6264的起始偏移地址
MOVDX,OFFSETTS1
CALLSHOW
MOVAH,1;输入用于数据测试的字节型变量,在AL中
INT21H
MOVCX,1FFFH;填满某个6264
MOVDI,0
WRITER:
MOVES:
[BX+DI],AL;写6264
INCDI
LOOPWRITER
MOVCX,1FFFH
MOVSI,0
READR:
MOVAH,ES:
[BX+SI];读6264
INCSI
CMPAH,AL
JNZERROR
LOOPREADR
JMPOK
OK:
MOVDS:
OFFSETTS2
CALLSHOW
JMPEXIT
ERROR:
MOVDS:
OFFSETTS3
CALLSHOW
JMPEXIT
EXIT:
MOVAH,4CH
INT21H
SHOWPROC
MOVAH,9
INT21H
RET
SHOWENDP
CSEGENDS
ENDSTART
说明:
本程序的功能为:
使用户自行选择一个6264存储器并输入一个字节来进行测试,该字节会写入6264的所有字节单元(8K)。
待输入完成后,读取其中的内容,并与输入时进行比较。
如果相等,则程序提示测试成功。
反之,程序提示存储器读写错误。
重复以上步骤,可测试8个6264是否都可正常工作。
4小结
通过本次课程设计,我对微机原理的知识有了更加实际的体会,而不再是局限于课本上的理论阶段。
总的来讲,内存卡的扩充并不难,由于设计过程中没有现成的62126和62256所以采用了6262芯片,由于6264是8K的静态存储器,完成64k的扩充需要8片。
然后使用74Ls138实现译码,在连接到总线上。
本次设计过程中的主要问题就是isa总线,刚开始找不到这个插槽,后来是无法完成封装布线,最终采用手工绘制pcb电路图,绘制pcb电路板要有其细心小心,一不小心的话就可能连接错误。
参考文献
1、秦业Protel99SE实战详解与技巧机械工业出版社2009年7月
2、戴梅萼史嘉权微型计算机技术及应用(第3版)清华大学出版社2003年5月
3、胡景春实践优秀作品选编东南大学出版社2010年2月
4、胡景春刘洪微机原理\单片机应用实验指导(第二版)南昌航院计算机系2004年2月