谈谈计算机硬件类课程中的“低端”实验

时间:2022-03-24 03:19:58

谈谈计算机硬件类课程中的“低端”实验

文章编号:1672-5913(2008)08-0038-02

摘要:本文通过实例对大学计算机硬件类课程中缺乏“低端”实验这一问题进行了深入的探讨。

关键词:计算机硬件类课程;低端实验;实验;接口概念

中图分类号:G642

文献标识码:B

1计算机硬件类课程的不足

计算机硬件类课程主要包括“电子电路”、“计算机组成原理”、“微机原理与接口技术”、“单片机”、“计算机控制技术”等多门课程,这些课程不光是计算机专业的专业课,也是电子、机械、自动化及其他相关工科类专业的必修课程,这些课程都具有工程实践性强,应用技术含量高,课程内容枯燥难学的特点。因此,各学校在开设此类课程时,都把实验课作为重要的教学手段,有些学校甚至将实验课时比例提升到全部课时的50~60%以上。

经过我们多年对实验内容的研究并结合自身的教学体验发现,这些实验大都是一些在实验箱内直接使用芯片进行的实验,都是直接以芯片为研究对象或为主体,内容多是验证现成芯片功能和引脚特性或使用芯片进行硬件设计开发的实验。这种实验是在基本知识已经掌握,芯片内部工作原理已经精通的前提下进行的更高一层次的实验,在此我们谓之“高端”实验。很少有直接辅助基本教学,帮助理解基础知识的“低端”实验,这样的实验用来辅助说明某些知识点或特定概念,一般设计起来电路简单,功能也比较单一,层次较低,甚至用不上实验箱,所以在许多学校看来难登“大雅之堂”,因而对此忽视不见,众多实验教材在这方面也是一片空白。但我认为这是一个“误区”,因为任何课程都是由“低端”知识逐步过渡至“高端”的。那么,怎样创制设计“低端”实验?它们对于课程教学有哪些重要意义呢?

我们知道,计算机硬件类课程大都具有浓重的工程背景,具备丰富的可选实例,所以“低端”实验的创设并不缺乏素材。另外,还要注意实验内容的设计如何与课程知识有机衔接,在实际教学中如何巧妙引入。实际上,“低端”实验其意义并不“低端”,实验虽小却对重点、难点的理解掌握有着不容小视的“四两拨千斤”之功效。

2“低端”实验实例

下面介绍一个较典型的实例,权当抛砖引玉,希望对广大同行具有一定的启发意义。就以“微机接口技术”课程中令众多教师颇感头疼的“接口”概念的讲解为例。这一概念不仅抽象,而且所涉知识比较繁杂晦涩,学生学习效果很不理想。分析定义可以看出,接口就是位于微机与外设之间的硬件电路,作用就是让微机与外设间能进行信号交换,从而顺利完成检测与控制任务。但是光这样说有点苍白无力,学生还是不明就里。于是我们通过引入“低端”实验来辅助教学,具体说明接口到底是什么,为什么要用接口,它的主要功能有哪些,由此体会“低端”实验的优越之处。

我们先来设计一个电路(如图1所示),目的是通过计算机来检测开关K的状态(打开还是闭合)。相对于计算机系统,开关K就是一个外设。K打开时,A点为高电平1;K闭合时,A点为低电平0。这个0或者1可以通过数据总线最低位DB0被读入到CPU中,从而实现微机对外设状态的检测。但是如果像图1那样,把开关K和计算机系统中的DB0直接相连行不行呢?

图1 输入外设数据线直接接至数据总线

我们知道,在计算机系统中,数据总线还连接着CPU和存储器,并且在程序执行过程中,CPU与存储器之间要频繁地交换数据,因此数据总线上传输的数据是在不断变化的。如果此时又将其与外设直接相连(这里是将DB0直接连入A点),那么数据总线上外设数据和存储器数据就会因走同一线路而相互干扰。比如此时开关K闭合,A点为0,这个0会通过DB0传入CPU,若此时恰逢存储器通过DB0送来一个数据1,这样不但发生相互干扰,还会由于高低电平直接相连而引起电路损坏。

为解决这一问题,我们可以在A点与数据总线DB0间加一个带低电平选通端的缓冲器,缓冲器的选通端接一个带3个输入端的与门,其接线如图2所示。

图2 输入外设数据线经缓冲器接至数据总线

我们知道,只有当与门的3个输入端同时为0时,与门的输出端才为0,才会将缓冲器选通,缓冲器输入端的数据才能够到达缓冲器的输出端。要实现这一过程,我们可以执行如下指令:

MOV DX,开关地址;传送外设地址,地址译码端有效

IN AL,DX;执行I/O读操作,M/ 、 有效

这样,CPU的输出引脚(即与门的输入信号)M/ 、 及地址译码信号同时为0,使得与门输出为0,缓冲器被选通,开关K的状态才会被读入到CPU中。同时,为低电平的M/ 信号还会使CPU与存储器暂时隔开,从而避免了存储器数据的干扰;若CPU要与存储器进行数据交换,则M/ 变成高电平,使与门输出为1,缓冲器截止断开,又避免了外设数据的干扰。由此可以看出,经过这些电路添加之后,前面的问题顺利解决。实际上,这些后添加的电路就是该系统的接口电路,此处接口电路表现出来的功能是输入缓冲。

相类地,我们再设计第二个电路(如图3所示)。功能是让计算机控制发光二极管发光。此处二极管一端已固定接入5V高电平,另一端通过数据总线最低位DB0连至计算机系统。当CPU通过DB0输出为0时,发光二极管两端产生电位差,从而导通发光;如果CPU通过DB0输出为1,则发光二极管电路两端电位相同(都是高电平),发光二极管截止熄灭。我们以这种方式,实现微机对外设(此处为发光二极管)的控制功能。但是像图3那样,让发光二极管的B点与计算机系统中的DB0直接相连行不行呢?

图3 数据总线直接接至输出外设数据线

根据前面所述可知,数据总线上传输的数据是在不断变化的,不可能只保持为固定的0或1。虽然这个时刻为使发光二极管发光,可以通过执行输出数据指令从DB0向B点输出数据0,但在下个时刻存储器上过来的数据又会将其覆盖,如果后来的这个数据是1,就会使发光二极管熄灭掉。

怎样让发光二极管的状态得以保持呢?为解决这一问题,我们仍然需要添加电路,可在数据总线的DB0与发光二极管的B点间加一个由低电平触发的锁存器,锁存器触发端接一个带3个输入端的与门,电路如图4所示。

图4 数据总线经锁存器接至输出外设数据线

从该电路中可以看出,只有当与门的3个输入端同时为0时,与门的输出端才为0,才能给锁存器的触发端CLK加一个触发信号,锁存器的输出端Q才等于锁存器输入端D即DB0上的状态。当与门的输入端有一个为1时,与门输出就为1,由于锁存器为低电平触发,所以这个1不能触发锁存器,锁存器输出端Q(即B点的电平)就保持原态不变,从而使发光二极管的状态保持下来。这一过程我们可通过执行如下指令来实现:

MOV AL,0(或1);0使发光二极管亮,1使该二极管灭

MOV DX,发光二极管地址 ;传送外设地址,地址译码端有效

OUT DX,AL;执行I/O写操作,M/ 、 有效

这样,与门输入端M/ 、 及地址译码信号同时为0,使得与门输出为0,锁存器被打开,此时从寄存器AL中沿着DB0送出的0或1能够到达锁存器的输出端直至B点,致使发光二极管发光或熄灭。当CPU执行其他指令或者与存储器交换数据时,与门的三个输入端就不会同时为0,这样与门输出为1,锁存器的输出端Q(即B点的电平)就保持不变,发光二极管的状态便得以保持。

在这个例子中,我们后添加上去的那些电路也是接口电路,在此表现出来的功能是输出锁存。

3结束语

通过对上述实例的分析可以看出,我们在用“低端”实验解决实际问题的过程中已经不自觉地设计出了相应的接口电路,所需器材不多,所起的作用却不小。这两个接口电路一个用于完成系统检测,一个用于完成系统控制,正符合接口定义的外延。这样一来,学生既看见了实实在在的接口电路,又体会到了接口实实在在的“输入缓冲,输出锁存”的基本功能。有了这两个“着陆点”的帮助,“接口”这一概念还有什么不能让人理解的呢?这样的难点一个个地被灵巧的实验化为无形,整个微机接口课程还有什么难度可言呢?鉴于硬件类课程工程实践性强的普遍共性,“低端”实验这一利器不正好因势而生,大有可为吗?

参考文献

[1] 李芷. 微机原理与接口技术[M]. 北京:电子工业出版社,2007:188-192.

[2] 孙琦. 微机接口技术[M]. 北京:中央广播电视大学出版社,2000:4-8.

“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”

上一篇:“数据结构”课程中Floyd算法教学方法研究 下一篇:文科高职院校计算机相关专业校外实训基地建设...