1897年,英国物理学家汤姆生发现了电子,拉开了现代科技的开端和信息时代的序幕。
随后出现的电子三极管,让人们构造复杂的电子电路成为了可能。
1、电子三极管
电子三极管是一种真空的玻璃管,它的一端在高温下可以放出电子(负极),另一端是可以接收电子的金属板(正极)。
在管子的中间有一个栅极(基极),可以调节正负极之间的电子通量,从而影响电流的大小。
上图是简单的原理图:
- 电子三极管的灯丝一般是由在高温下很容易放出电子的金属制成。
- 电子在电压作用下飞向真空玻璃管的正极,所以它是可以单向导电的。
电子带负电,所以它只能飞向正极,而不能反着。
如果没有栅极,那么它就是个电子二极管。
- 加了栅极之后,栅极电压的微小变化,就可以影响正负极之间的电子通量,从而影响整个回路的电流,所以它也有信号的放大作用。
在晶体三极管发明之前,人们就是用这种三极管来制作电子电路的。
俄罗斯在电子管领域应该是很强的。
电子管设备的特点就是大,而且工作电压高,笨重。
据说,米格25的雷达功率大到可以烤熟兔子
2、晶体三极管
1947年,美国的肖克利发明了晶体管,让电子电路的体积重量都迅速变小。
从这之后,电子设备携带更方便,使用更广泛。
例如,过去老人们爱拿来听小说的收音机,也就一巴掌大小,它的核心元器件就是晶体三极管。
不过,这些电路都是模拟电路。
3、模拟电路
模拟电路的特点就是,功能很强大,但精度不一定多高。
如下图,一个电容卡在那里,就可以高通滤波!
电容的特点是通交流、阻直流,通高频、阻低频。
直流信号会被阻断,而低频信号和高频信号的容抗不一样,被削弱的程度也不一样。
所以,一个电容就可以把不同频率的信号分开。
要是写代码去滤波,至少也得写个快速傅立叶变换(FFT):
1)傅立叶变换之后,数字信号就从时域变到频域了,
2)然后,把需要的频率选出来,不用的频率对应的系数清零,
3)再变回时域,
4)反正要写几百行的代码,比一个电容一个电阻麻烦多了。
如果要低通滤波,就把电容和电阻的位置互换就行:
高频信号的容抗很小,都通过旁路电容流走了,剩下的低频信号通过电阻传递到下一级。
如果写代码去滤波,也要先FFT,然后把不用的频率清零,再反FFT变回时域,一样的麻烦。
所以,模拟电路的功能是很强大的,但是精度不够,因为单个元器件的精度受制于当前的工艺。
并且,精度越高的模拟电路,越容易受到导线长度的影响。
三极管的工作状态一旦漂移了,那调试起来肯定非常的酸爽
然后,人们就发明了数字电路。
4、数字电路
数字电路,只使用三极管的2个状态:导通和截止,不使用三极管的放大。
这样,三极管的状态就很难漂移了。
毕竟,三体问题很难搞,但二体问题还是很好搞的。
所以,数字电路的远比模拟电路更稳定,整个电路系统的正常工作范围更大,抗干扰能力更强。
如图:
1)三极管只要导通的时候,输出就是低电压,被认为是0,
2)三极管截止的时候,输出就是高电压,被认为是1,
3)三极管的基极与发射极之间的电压 Vbe > 0.7v 就导通,低于0.7v就截止。
在电子电路中,0.7v 是个很大的电压范围,它实际上就是电路状态的一个容错区间。
只要输入误差别大到跟 0.7v 是一个数量级,那么电路的状态就是正常的。
可以要求输入信号的电压波动范围只能是0.1v,也就是4.9-5为高电位,0-0.1为低电位,那么就算有点误差,三极管的状态也不至于就漂移了。
至于更复杂的功能,当然用更多组这样的电路累积出来。
这样,人们在设计电路时就突破了工艺的限制。
既然是数字电路,可以进行逻辑运算,那它当然是可编程的!
然后,软件就诞生了!
5、软件编程
数字电路可以编程,是它相较于模拟电路的一个巨大的优点。
想改功能的时候可以不用改硬件,只改代码就行了
这在灵活度上,远不是模拟电路可比的!
这时可以认为计算机和编程语言就出现了!
最早的编程语言,是在纸带上打孔的机器语言:有孔或没孔就表示0或1。
这种编程方式还是非常让人头疼的。
然后就有了汇编器,可以把简单的英文单词或数字转化成机器码:这就是汇编语言。
汇编语言比机器语言倒是有了很大的进步了,但一样让人头疼。
汇编语言只能用寄存器名字表示数据,没法给每个数据起个有明显含义的变量名字。
调过汇编代码的都知道,函数大了之后跟踪哪个寄存器里存的是哪个变量,非常的困难。
总之一句话,汇编代码的可读性很差。
然后,人们发明了很多高级语言,可以统称为C前语言!
pascal, basic, 都是C语言出现之前就有的编程语言,但是说实话,真不如C语言好用。
1970年,丹尼斯-里奇和肯-汤普森估计是受够了这些老语言了,他们发明了C语言!
“物理学的大厦建成了,后人所能做的只是修修补补。”