首页 理论教育 一个强大的组合

一个强大的组合

时间:2022-02-09 理论教育 版权反馈
【摘要】:我想到的方法是使用一个数字键盘,在使用者输入一组秘密的按键组合之后,计算机才可以启动。这个门的另一个逻辑输入也是正的,因为它的前面有一个反相器,将使与门激活,使其输出变正。这个输出又通过一个反相器,反相器的输出是由高变低的。然后这个由高到低的跳变又送到被接成单稳态的555定时器的触发引脚上。如果第一个与门的输出在给第二个与门供电,那么这也将使第二个与门断开。

假定你想防止别人使用你的计算机。我想到有两种方法来实现这一点:使用软件,或者使用硬件。软件的方法就是使用某种启动程序,来拦截正常的启动步骤,要求使用者输入一个密码。你肯定可以这样做,但我认为用硬件来完成这个任务更为有趣,而且只有这样才跟本书的内容相关。我想到的方法是使用一个数字键盘,在使用者输入一组秘密的按键组合之后,计算机才可以启动。

保修问题

如果你从头到尾做这个实验项目,你会打开你的台式计算机,剪断一根导线,并且在机箱上钻一个孔。毫无疑问,这将使你的保修权利失效,如图4-81所示。如果这令你不安的话,可以考虑以下3种选择。

图4-81 注意:这样做可能会使你的保修权利失效

(1)在面包板上玩味这个电路,并且仅止于此。

(2)在某种其他设备上使用数字键盘。

(3)在一台旧计算机上使用这个电路。

以下是需要用到的东西。

□ 数字小键盘。如同本章开头的购物清单中所指定的那样,它必须有一个“公共端”或者说“共输出”。图4-82的电路原理图表达了我的意思。在键盘的内部,有一根导线(我特意将其绘制成红色以便同另一根相区别)将各个按钮的一侧全部连接在一起。这根导线对于所有这些按钮来讲是“共用的”。该导线是从小键盘底部的一组引脚(我特意用黄色将它们标出)中最边上的一个连接头开始的。

图4-82 实验20 所需的小键盘要求有一个公共端子连接到12 个按钮中每一个的一侧。图中从公共端子引出的导线被绘成红色,为的是更加容易辨识

□ 采用“矩阵编码”的小键盘是无法在我下面将要描述的电路中正常工作的。如果你找不到我所推荐的Velleman牌的小键盘,并且也找不到其他类似的小键盘,那么你可以使用12个独立的单刀单掷按钮。不过这将花费较多。

□ 74HC08逻辑芯片,它包含4个与门,数量:1个。

□ 74HC04逻辑芯片,它包含6个反相器,数量:1个。

□ 555定时器芯片,数量:1个。

□ 闩锁继电器,5 V,双刀单掷或双刀双掷、“2 form C”封装(即双刀C型触点的形式,其中一个常闭,一个常开,在常开触点闭合前先断开常闭触点),可以用松下的DS2E-SL2-DC5V或类似的。必须有两个独立的线圈(一个用于闩锁,一个用于解除闩锁),且都有独立的输入,数量:1个。

□ LED,5 mm 的基本型,颜色你自己确定,数量:3 个。

□ 带状电缆,至少要有6根导线,如果你想做出一个很整洁的产品,可以使用硬盘驱动用的那种电缆,从上面分出6根导线就可以了,也可以去eBay购买。

□ 打开计算机机箱用的工具,用来在机箱上钻4个孔,在孔之间锯开口子,为小键盘开出一个矩形的开口(如果你想从头到尾完成这个实验项目的话)。此外,在开口之后,还需要4个小螺钉来将小键盘固定在计算机的机箱上。

电路原理图

这一次我希望你先学习电路原理图,然后再搭建实际的电路。让我们先从图4-83所示的简化版本的电路开始。

图4-83 这个简化的电路原理图显示了组合锁电路的基本结构

我希望这个电路由电池来供电,这样你就无需为它准备一个独立的电源,或试着从计算机的5 V 总线引出电源(这更糟糕)。电池供电意味着电路在大多数时间里都应该是“断开”状态,以防止电池消耗太快。由于小键盘有两个多余的按钮(星号和镑值符号),我将使用星号作为“电源接通”按钮。当你按下它的时候,电路原理图顶部的那个LED亮起,以确认一切正常,并且这个按钮将电力输送到两个逻辑芯片和555定时器。在你键入一个三位码来解锁计算机的时候,必须让星号按钮保持按下的状态。

我任意地挑选了1-4-7作为上述的三位码。让我们来跟踪一下,看当你输入这个序列时会发生什么事情(很自然,如果你搭建了这个电路,你就可以通过接线将其设成你自己喜欢的任意三位数字)。

按下按钮1时,将发送正电压到第一个与门的一个逻辑输入。这个门的另一个逻辑输入也是正的,因为它的前面有一个反相器,将使与门激活,使其输出变正。由于与门的输出通过一个二极管被接回到了它的开关输入端,因此与门将自锁。所以即使在你放开按钮1之后,这个门的输出也将维持高电平。

第一个与门的输出同时为第二个与门提供了一个逻辑输入。当你按下按钮4时,你就将一个正电压输送到了第二个与门的另外一个逻辑输入端,因此它的输出变高并自锁,就跟第一个与门的情况一样。

第二个与门的输出又馈送给第三个与门,因此当你按下按钮7时,第三个与门的输出从低变高。这个输出又通过一个反相器,反相器的输出是由高变低的。然后这个由高到低的跳变又送到被接成单稳态的555定时器的触发引脚上。

当555定时器的触发引脚由高变低时,定时器就通过其输出引脚3发出一个正脉冲。这个正脉冲将被送到闩锁继电器的上部线圈,同时还会点亮一个LED,表示代码已被接受,继电器已被激活。

该继电器中的两个触点则连接到计算机的加电按钮。稍后我将解释,这样做对于任何现代的计算机都将是安全的。

由于我们使用的是闩锁继电器,当它翻转到“on”状态后,就会保持这个状态,即使来自定时器的功率脉冲结束以后也是如此。现在你可以放开星号按钮,断开连接到组合锁的电池供电,并按下加电按钮来启动计算机了。

在你结束工作之后,你可以像往常一样关闭计算机,然后按下小键盘上的英镑按钮,这将使继电器翻转到其另一个位置,使组合锁回到初始的状态。

错误的输入

如果你输入了错误的代码将发生什么呢?如果你按下了1、4、7以外的任何其他按钮,那将把正电压输送到靠近电路原理图顶部的反相器上。这个正电压将克服通过下拉电阻器施加在反相器上的负电压的作用,使反相器输出一个负电压,这个负电压将施加在第一个与门的一个逻辑输入上。如果这个与门原来处于自锁导通状态,那么这个负输入将使其断开。如果第一个与门的输出在给第二个与门供电,那么这也将使第二个与门断开。

因此,在输入第一个、第二个或第三个秘密代码时若发生了任何的错误,都将使与门复位,迫使你从头开始重新输入这个代码序列。

如果你输入1、4、7的顺序不对会怎么样呢?电路不会做出反应。第三个与门需要由第二个与门提供一个高电平输入,第二个与门又需要由第一个与门提供一个高电平,因此你必须按正确的顺序来激活与门才行。

释疑

为什么要通过一个555定时器来将脉冲输送到继电器呢?因为与门的逻辑输出无法提供足够的电流。我本来也可以让其通过一个晶体管的,但是我更喜欢这样一个主意,就是用一个固定长度的脉冲来使继电器翻转,并让LED点亮大约1 s的时间,而不管使用者按下按钮7的时间有多么短暂。

为什么要用3个LED?因为当你按下按钮来解锁计算机的时候,你需要知道所发生的情况。电源接通LED可以让你确信电池还有电。继电器激活LED将告诉你系统当前是解锁的,这在你听不到继电器合上的声音时可以起到提醒的作用。系统重锁LED用来让你确信你已经锁好了计算机。

由于所有的LED 要么是直接由5 V 供电来驱动的,要么是由555定时器的输出来驱动的,因此没有必要采用低电流的LED,并且可以采用330 Ω 的电阻器与它们串联,这样它们会更好看、更明亮。

应该如何连接小键盘和电路呢?这就是使用扁平电缆的地方了。请小心地剥去每根导体端部的绝缘层,并将导体焊接在接触片上或者小键盘边缘的连接端上。将电缆另一端的导体插在面包板上(当你搭建测试电路时),或者将它们焊接到模型电路板上(当你在搭建永久性电路的时候)。在你的机箱上找一处方便的位置,来安装模型电路板,具体可以使用双面胶、小螺栓或任何其他方便的工具来进行安装。电路板上要带一个9 V 的电池盒,另外也不要忘记使用调压器来将电压降低到5 V。

面包板实现

毫无疑问,现在你已经发现面包板十分方便,在它上面可以快速地插入元件,并建立连接,但是面包板的导体布局使得你无法按照直觉的配置来安装元件。不过,只要你小心地比对图4-83所示的面包板电路原理图与图4-84的简化电路原理图,你就会发现二者的连接是相同的。

图4-84 重绘的组合锁电路原理图,用来说明如何在面包板上布置元件

为了帮助理解,我绘出了芯片内部的逻辑门。此外我还跟从前一样将供电电源绘成彩色的,以降低混淆的风险。电源的正端仅连接到小键盘的公共端,你必须按下星号键,以便沿着扁平电缆给芯片供电。

请注意,小键盘上“错误”的数字都是短接在一起的。在将来你想改变代码组合的时候,这将给你带来不便。我将在接下来的“功能增强”小节中建议另一种选择。就目前来讲,理想的办法就是从小键盘的每一个接头上接出一根导线,再连接到面包板上面的电路,并在面包板上用跳接线将“错误”的小键盘数字短接在一起。

如果你搭建了电路但却不明白为什么一切都不起作用,那么最大的可能就是你忘记了让星号按钮保持按下的状态。

另外你还要注意,当用万用表来测量与门的输入时,你的手指若接触到万用表的探针,那么这将足以触发灵敏的CMOS输入,从而给出一个错误的正输出。

一个小细节:计算机接口

老的计算机通常在背面有一个很大的开关,它安装在计算机内的一个很重的金属盒子上面,这个金属盒子将家用的交流转换成计算机所需的调整电压。大多数现代的计算机不再采用这种设计了,你只需将计算机插在家里的电源上,并轻按机箱上的一个按钮(如果是运行Windows的计算机)或者键盘上的一个按钮(如果是Mac计算机),它就会往主板发送一个低电压脉冲。

从我们的角度来看,这是完美的事情,因为我们不必和高电压打交道。你甚至无需考虑去打开上面安装有风扇、里面安放着计算机电源的金属盒子。你只需查找从“加电”按钮连接到主板的导线(对于运行Windows的计算机来讲,里面通常有两根导体)即可。

为了核实你找对了导线,请在确保你的计算机没有插上电源的前提下,将自己接地(因为计算机中包含CMOS芯片,它们对静电十分敏感),再十分小心地剪断导线的两根导体中的一根,然后再插上计算机的电源,并试着按下“加电”按钮。如果什么事情也没有发生,那么你也许剪断了正确的导线。即使你剪断的不是“加电”按钮的连线,但只要它能够阻止计算机启动,那它就是你要找的导线,我们就使用它了!请记住,我们不会在这根导线上引入任何的电压。我们只是把继电器作为一个开关,来将你剪断的导线重新连接起来。因此,只要你保持一种冷静平和的心态,去找出一根能够使计算机启动起来的导线,那么你做的事情就不会带来任何的问题。如果你真的十分害怕会出现错误的话,那么请在网上找出你的计算机的维修手册。

在你已经找到了所要的导线,并且剪断了其中一根导体之后,请再次拔下计算机的电源,并在下面的步骤中保持不插电源。

找到该导线连接主板的地方。通常这个位置有一个可拔插的接头。首先对它进行标记,以便你能够正确地将其插回去,在接下来的几步之中,要保持它断开。

将你剪断的导线的两个端部的绝缘层剥去,在上面焊接一段两导体的导线,如图4-85所示,并用热塑管来保护焊点(这一点很重要)!

图4-85 通过剪断计算机“加电”按钮上引出的一根导体,焊接上延长线,并用热塑管来覆盖焊点,就可以将组合锁项目的电路连接到典型的台式计算机

将你新接上去的导线连接到闩锁继电器的一对触点上,并且要确保当解锁操作使继电器激磁时,这一对触点能够在继电器的内部闭合起来。你肯定不想犯下这样一类的错误:在你想要锁住计算机的时候却将其解锁了,或者反过来的情况。

将你从主板上断开的那个连接头重新接上,再插上计算机的电源,试着给计算机加电。如果什么也没有发生,那就有可能一切正常!现在在你的小键盘上输入那组秘密组合(同时要按住星号按钮让电池来供电),并倾听继电器闩锁时发出的嘀嗒声。然后再试着按“加电”按钮,这次一切都应该工作起来了。

功能增强

在任何项目结束的时候,你都会发现还有更多的事情可以做。

为了使这个装置更加安全,你可以去掉计算机机箱上常用的螺钉,代之以防拆螺钉。找个在线资源查找“防拆螺丝”(tamper-proof screw),例如到http://www.mcmaster.com上去查找。当然,你也需要有适合这种螺丝的特殊工具,以方便安装(或者在你的安保系统因为某种原因出现问题时能够将防拆螺丝去除)。

作为另一个功能增强,我们可以增加一个555定时器,由星号按钮来激活它,以便给其他芯片提供有限时间的供电(譬如说30 s),让你有足够的时间来解锁系统。这将使你在输入解锁码时,无需一直按住星号按钮。555定时器可以为所有其他芯片供电,因为这些芯片都用电不多。为了简单起见,在上面介绍的电路中我省去了这个功能。

如果你是一个特别担心安全的人,那么你可以考虑另外一个功能增强,就是使用4按钮的代码。毕竟74HC08芯片上还有一个未被使用的与门。你可以将其插入到现有的与门链中去,并将它连接到另外一个自己选定的小键盘按钮上。

还有另外一个增强就是在无需脱焊和重焊导线的情况下,更变代码。你可以使用我在实验18的项目中推荐的微型插座。这让你可以对来自小键盘的导线端部的连接进行交换。

如果你是一个极端的偏执狂的话,那么你可以将这个电路修改成这样:当输错代码的时候,就接通一个大电流的继电器,它提供巨大的过载电流,使你的CPU熔化,并往一个紧绕在你的硬盘上的磁性线圈里面通上巨大的电流脉冲,在一瞬间将硬盘中的数据变成垃圾(见图4-86)。实际上,如果你想要保护信息的话,与用软件来删除数据的方法相比,把硬件弄得一团糟的方法有很大的优点。它不仅更快,难以停止,而且破坏往往是永久性的。这样的话,当美国唱片工业协会的人来到你家里,要求你打开计算机以便他们可以检查里面有没有违法文件共享时,你只需不经意地给他们一个错误的解锁码,然后坐到远一点的地方,等着熔化的绝缘层发出刺鼻的气味。

图4-86 对于那些极端的偏执狂来讲,由一个秘密按键组合所控制的熔断/自毁系统可以给他们提供增强的保护,以防止数据被盗,或防止被美国唱片工业协会的调查员闯入家里提出一些关于文件共享之类的恼人问题

如果你要选择上面这个选项的话,那我肯定是不会为其后果负责的。

从更为现实的层面上来讲,没有任何系统是绝对安全的。硬件锁设备的价值在于,如果有人确实攻破过它的话(例如,想出办法卸下了你的防拆螺丝,或者干脆简单地用金属剪子将你的小键盘从计算机的机箱上拆下来),至少你知道发生了某些事情——特别是若你在螺丝上涂上少许的油漆,你就可以检查它们是否被搞混过。相反,如果你使用的是软件保护并且被人攻破了,那么你有可能永远也不知道自己的系统被暴露了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈