可编程中断控制器(PIC)革命

本帖最后由 能量海 于 2017-10-13 09:11 编辑


第十二章:基础电子学

可编程中断控制器(PIC)革命  

    多年来,能把电路放在一起、原型制造和测试的方法一直在进步。最初,用的是“阀门”或“真空管”,而这种电路要很多的电功率去运行。机械振动器或“干簧管”被用来产生直流转换成交流所需的切换。然后晶体管变成广泛应用,而晶体管取代了机械振动器干簧管,电路被称为“非稳态多谐振荡器”,并与两个晶体管背靠背连线组成(如第12章中所述)。接下来的是具有其“或非门”的数字集成电路,它也可以背靠背接线做成一个多谐振荡器。这项工作如此经常地完成是因为一个称为“555芯片”的特殊的集成电路,被设计成自行完成全部的工作。这种芯片已经取得了巨大成功,而且现在发现在各种不同的电路中,都非常容易使用、非常强大和非常便宜。出人意料的是,“555”芯片的主导地位正受到一种完全不同类型芯片挑战,其中一个实质上是——在单个芯片上的计算机,而它被称为“可编程中断控制器”(PIC)。


    这种新型芯片并不贵,易于使用,而且能在仅仅的几秒钟内转换执行不同的任务。它能起到一个多谐振荡器的作用。它能起到一个“除以N”芯片的作用。它是一种令人印象非常深刻的芯片,是非常有用的。我在这里提到它的原因是,因为它是围绕最快运行的特斯拉开关研究论坛的核心(“高能论坛”群)。该芯片是你需要了解的,因为它在未来几年肯定会引领越来越多的电路应用。

    这些处理器芯片有整个家族,但对这种类型我只会选择一个,而那将是一个正由“高能论坛”成员使用的一个,而我要感谢杰夫·威尔逊描述这个电路、编程和他使用的方法上的帮助。

    首先,然而, 一些关于这个芯片新设计的信息和使用它的方法。杰夫所用的的一种被称为“PICAXE-18X”,看起来就像这里显示的芯片。从中你能看到,尽管它有十八个管脚,但看起来就像其它任何芯片一样。强大的性能来自于它运行的方式。你可能熟悉“555”芯片,并理解它通过改变只是在其输出管脚中的一个脚(脚3)上的电压——从低压到高压——而运行。PIC芯片可以做到,而且甚至更好,它有多个输出引脚,它可以在这些引脚的任意一个上改变电压为高电压或为低电压,它能以任何顺序、以及用您选择的任何定时这样做。这使得它的确是一个非常多功能的芯片,而且是一个非常适用于特斯拉开关的测试环境的中央控制器。

image170.gif

    芯片通过以555芯片将被使用的同样的方式接入一个电路,除非PIC有它自己的内部定时时钟,并可以在千分之一秒——即,一毫秒的时间间隔运行。

image171.gif

    顶部的八个引脚是使得芯片运行的。接下来的两个是为芯片提供电力的。底部的八个引脚是独立的输出,其中任何一个都可以运行开关、计时器等,就像能从一个555芯片得到的输出一样。由电脑工作者命名,而不是像那些有理性的人会做的那样——八个输出引脚被从18编号,他们把它们从07编了号。

    这些输出引脚上的电压即可能高,也可能低。PIC开关可以用各种不同的自由能源设计。PIC芯片通常用插座、连接电缆和输送程序指令的芯片的来配备。输送一般来自一台普通的个人计算机。编程指令非常简单,任何人都可以在几分钟内学会使用。

    那么让我们看看杰夫测试他的原型电路时用过的电路。电路的第一部分用于将标准的个人电脑插座连接到PIC芯片,它看起来像这样:

image172.gif

    一个标准的9针电脑插座以其引脚2连接到PIC的引脚2,引脚3连接到PIC的引脚3——通过一个10K/22K的分压器电阻对(从而降低进来的信号电压),而引脚5连接到PIC的引脚5。这是输送信息进入PIC芯片所需要做的一切。

    芯片由一个12伏电池供电,但因为它需要一个5伏电源,100/150欧姆(2瓦)的电阻器对用来把12伏降至约7伏,然后将5.1伏的齐纳二极管锁定电压在5.1伏,这刚好是芯片需要的。微型的10nF(0.01微法)电容器在这里是捕获任何电压尖峰的——如果从某些外界影响拾取到的话。最后,按钮开关用来在引脚45之间短路,用来擦除PIC内的程序,准备加载一个新程序。

    实际编程并不难,而输送进芯片内是通过芯片提供的程序来处理的,而这是运行在您的家庭计算机上的。让我们举个例子。假设我们想在引脚10上的输出起一个时钟信号的作用。制造芯片的人希望那个管脚在程序中被称为“输出4”。请不要问我为什么它不在程序中被称为“10”,因为我除了“一种米养百种人”,就没有答案给你了。

    好吧,假定我们想要产生像运行在50赫兹的一个555芯片的输出信号。我们选择我们的其中一个输出引脚,比如说,实际引脚10,那是在芯片底部右手的引脚上。如你可从上示芯片引脚图看到的,引脚10在一组命令里称为“输出4”,或简称为“4”以便于打字。程序可以是:

    Main:
           high 4
           pause 10
           low 4
           pause 10
     goto Main


    哇——真的是很难的东东!只有天才才能做到程序编制!好吧,我们来看看我们是否能够勉为其“难”。

    开始的“Main:”(主函数)是一个可以跳转的“标签”,而它是通过“goto Main”(跳转主函数)命令完成的,它向芯片发送返回无限循环的命令(或直到芯片断电)。

    第二行“high 4”(高4)告诉芯片把尽可能高的电压放到“输出4”上——即芯片的实际针脚10。芯片立即无时滞地这样做。

    如果我们想要输出给出一个50Hz的输出信号,那么在我们所选择的输出针脚上的电压将必须走高、暂停、走低、暂停然后再次走高,每秒50次。因为一秒钟里1000毫秒,而芯片的时钟以1毫秒的时间刻度运行,那么我们需要我们的“上、暂停、下、暂停”的完整周期在这些1,000的时钟刻度里发生50次。那就是,每20个滴答一次,所以每个延迟会有10个时钟滴答长。

    第三行“pause 10”(暂停10)告诉芯片按兵不动,在其内部时钟(即每秒滴答1,000次)的下一个10个滴答里什么都不做。

    第四行的“low 4”(低4)告诉芯片,在其“输出4”(在现实生活中的引脚10)上降低输出电压至其最小值。

    第五行“pause 10”(暂停10)告诉芯片在做其任何事情之前先等待10毫秒。

    最后一行“goto Main”(跳转到主函数)告诉计算机返回到标签“Main:”(主函数),并继续遵循那个标签的任何指示。这把芯片放进了一个“无限循环”,这将使它连续产生那个输出波形。输出看起来像这样:

image173.gif

    这给出了一个均等的波形,也就是,一个具有50:50的脉冲间隔或50%的占空因数的波形。如果我们想要同样的脉冲速率,但只有25%的占空比,则程序将是:

    Main:
       high 4
       pause 5
       low 4
       pause 15
   
goto Main

    它导致了这个波形:

image174.gif

    如果你想要“输出7”(实际引脚13)在同一时间去翻转它——即,当输出4变高时,我们要输出7走低——反之亦然,那么,20%占空比的程序将是:

    Main:
           high 4
           low 7
           pause 4
           low 4
           high 7
           pause 16
      
goto Main

    于是这些输出电压以与在一个555芯片的脚3上的输出电压、或任何与非门的输出、霍尔效应传感器芯片、施密特触发器、或其它诸如此类的完全相同的方式使用。如果设备供电需要很小的电流,那么最简单的方法是将负载直接连接到输出脚。

    如果,正如最常见的情形一样,设备需要大量电流供电来使其运行,则输出电压用于给晶体管供电,也许像这样:

image175.gif

    这里,引脚10走高进,电阻“R1”限制输送的电流进入晶体管的基极,但允许晶体管有足够的电流充分切换导通,给负载供电。输出引脚10走低时,电阻“R”确保晶体管完全关闭。所示电路限制装载某些只用5伏就能运行的设备,那么一个替代的电路可以是:

image176.gif

    这使得负载需要的任何电压施加给负载,而PIC芯片在其正常的5伏电源上维持运行。然而,设备的供电未必能有一个连接PIC的公共零电压。为了解决这个问题,可以像这样使用光隔离芯片:


image177.gif

    这里,PIC芯片的引脚10上的点亮了光隔离芯片里的发光二极管,造成另两个引脚之间的电阻的严重下降。这导致由电阻“R”控制的电流被馈送进入晶体管的基极,切换它导通,并为负载供电。


    最近,引进了一种非常流行的可编程芯片。这就是所谓的“Arduino”,它快速而用途多多,很受实验人欢迎。关于Arduino芯片有一套广泛的英语视频教程,杰瑞米·布鲁姆的第一个系列是:
XMjQ1NzIzNTE2NA==.html

    电路板看起来像这样:

image179.gif

上一篇:一个除以二十五的电路

下一篇:电容器