课程设计说明书
课程设计名称: 微机原理与接口技术课程设计
课程设计题目:
加密卡
学 院 名 称:
信息工程学院
专业:计算机科学与技术 班级: 070612
学号: 07061213
姓名: 何沛浓
评分:
教师:
20 10 年 7 月 8 日
1
一、课设选题及功能说明
1.1 课程设计题目:加密卡
1.2 课程设计任务
(1) 通过微机 ASI 总线,对设计的“机密卡”进行软件加密信号比较,
实现对软件使用权的保护。
二、原理图设计
2.1 原理设计
首先在 2732 中,主要有 8 根数据线和 12 根片内地址线,这些线要接到
ISA 插槽 中的 相应 的数 据线 和地 址线 上。 对于 2732 的控 制线 ,OE#和
CE#接到 74LS138 的 Y0#,用来实现芯片选择。低电平有效。
芯片译码部分。根据要求,这里地址范围选择的是 E8000H-EFFFFH,
根据所选的 2732 芯片为 4K*8 位的,因此需要 12 根地址线作为片内地址,
即 A0-A11。而根据地址范围,A19、A18、A17、A15 为高电平,A16 为低
电平,故使 A19、A18、A17、A15 四根地址线通过 3 片与门和一片非门连
接到译码器的 E1 使能端上。因为 A16 为低电平,则把它通过一片非门接到
译码器的 E2 使能端。因为 SMEMW 为低电平,ANE 为高电平,则通过一
片非门和一片与门接到译码器的 E3 使能端。对于剩下的 A14、A13、A12
三根地址线连接到 74LS138 译码器的 A、B、C 端,通过这三根地址线的变
化来选中相应的芯片。
2.2 原理图如下:
本设计要求通过 ISA 总线设计加密卡,电路原理图如图 1 所示:
1
图 1
三、印刷电路图设计
3.1 印刷电路图设计
根据电路原理图设计印刷电路板图,设计中涉及:ISA 总线,译码器
74LS138,EPROM 芯片 2732。在确定了电路和元件之后,就可以开始设计印
刷电路图了。设计的基本方法和步骤如下:
(1) 确定印刷电路板尺寸大小。根据 ISA 总线的尺寸、元器件的数量和
预计布线的复杂度等初步确定印刷电路板尺寸。
(2) 确定印刷电路层次。由于 ISA 设计插卡,ISA 插座信号分为 A、B
两面,所以采用双面板。
(3) 印刷电路板和外部信号连接。一是严格按照 ISA 总线连接,二是从
2732 中的数据流出。
(4) 元器件布局。各组件排列,分布要均匀和合理。不仅要从美观,整
齐和结构严谨的工艺要求,而且要从抗干扰的角度仔细考虑磁场兼
2
容性、走线短、交叉少和取耦等方面处理。
(5) 信号连接。由于本次实验元器件很少,故采用的是手动布线方法设
计。布线中应该注意以下原则:
○1 同一层面信号线不能短路。如果会出现交叉的情况,可用穿孔的办
法解决。
○2 两个层面布线纵横相交。在顶层用竖线,底层就尽力选择横线,这
样便于检查。
○3 线条宽窄和线条间距要适中。孔与线。。线与线要有一定的距离。
3.2 印刷电路图如下:
经过多次设计修改,本加密卡的 PCB 图如图 2 所示:
图 2
四、调试分析
4.1 硬件测试
3
(1)问题:在实现芯片译码时,A19、A18、A17、A15 为高电平,与 E1#
连 接 , 但 是 用 了 三 个 与 门后 , 直 接 与 E1#连 接 了 , 导 致 地 址 范 围 不是
E8000H-EFFFFH。
解决:加一个非门,这样地址范围就是实验所要求范围了。在 74LS138
的 E2#也是低电平有效,故与此连接的地址线也应该是低电平。
(2)问题:在设计 PCB 板的时候,由于芯片的位置摆放不合理,故在布局
之后的布线不是很整齐和结构也不是很严谨。
解决:重新按照印刷电路图设计要求,合理布局。
4.2 软件测试
(1)问题:在 ADD SI,2 指令中,由于 2732 是只有 8 位数据线,一次读出
的是一个字节,而不是一个字(16 位)。
解决:修改为 ADD SI,1。每一次从 2732 读出数据均为 8 位。
(2)问题:设计 2732 中存储的数据时候,从 E8000H 开始的空间存储的
是"0BYEBYE$",但在 MOV CX,7.少计算了$.
解决:用将其改为 MOV CX,8.循环的次数为 8 次。这样用 9 号功能
的时候才正确能显示出从 2732 中读出的数据。
五、用户使用说明
该加密卡设定其目的是为保护软件版权。用户在购买软件时,会附带对
应的加密卡。在运行该软件的时候,只需将其加密卡插入电脑主板的空余
ISA 插槽,软件即可正常运行。
六、小结
在过本次课程设计中,通过一个实际的 ISA 总线插卡设计和调试,
对课本知识进行了实际的运用。例如 2732,74LS138,,ISA 总线等。在最初
拿到题目的时候,因为从来没有做过软件和硬件结合的课设,感到有点无从
下手。最后在老师的知道下,通过查阅资料,独立完成了电路原理图,PCB
4
图,验证程序的设计。本次课设的主要收获有:
1、 通过自学,熟悉和掌握了 Protel 99se 的是用;
2、 对 ISA 总线有了更深入的理解;
3、 理解了汇编语言编程和硬件结合的基本方法;
虽然是一次简单的加密卡电路设计,也没有遇见很多复杂的问题,但是通过
小组合作,独立完成了一次较为完整的软件和硬件的设计,很有成就感。
附录一:
加密卡电路原理图 3:
图 3
附录二:
加密卡 PCB 图
5
图 4
附录三:
图 5
6
附录四:
源程序
加密卡验证程序
DATA SEGMENT
;定义菜单选项
MENV
DB "1. 欢迎光临 2.谢谢再次光临"
DB “3.您好,老朋友,0 再见!”
DB
" 请选择:$"
ERRMSG DB
"选择有误,请重新选择!$" ;定义出错时候的显示
信息
SEL
SEL0
SEL1
SEL2
SEL3
DB
DB
DB
DB
DB
100dup(?)
100dup(?) ;保存从 2732 中 E8000H 读出对应数据
100dup(?) ;保存从 E8008H 读出的对应数据
100dup(?) ;保存从 E8011H 读出的对应数据
100dup(?) ;保存从 E8019H 读出的对应数据
DATA
CODE
ENDS
SEGMENT
ASSUME DS:DATA,CS:CODE
START MOV AX,DATA
MOV DX,AX
AGAIN
LEA DX,MENV
;显示菜单
MOVE AH,9
INT
21H
MOV AH,1
INT
21H
CMP AL,'0'
;用户非法输入,在 0-3 以外的数
JB
ERROR
7