从模拟信号到数字信号

小孩子 我们都是小青蛙 2018-06-02

点击蓝字,关注我们


关注


本系列主要是《数字设计和计算机体系结构》和一些相关书籍的读书笔记,并没有专门为读者的阅读体验认真做设计,敬请谅解(时间不多),多谢各位~ 


模拟信号到数字信号的转变

我们前一篇文章唠叨了电以及使用COMS工艺制作出各种电路元件,我们通过改变元件的输入电压达到了改变输出电压的目的,我们可以将某些信息映射到对应的电压上,比方说5V的电压代表数字5,4V的电压代表数字4,电压的高低就成为信息传播的载体,我们也可以称为信号。我们把线路上的电压随时间变化的过程画下来的话,它其实是一个连续的过程,我们把这种连续的信号称为模拟信号,模拟信号容易受到杂讯的影响,信号被多次复制,或进行长距离传输之后,这些随机噪声的影响可能会变得十分显著,所以人们把模拟信号进行了一次抽象,一个信号不再可以表示多个值,比如5V代表5,4V代表4,3V代表3… 取而代之的是一个信号只能代表0或者1。怎么做到的呢?抽象的嘛!下边详细看下抽象过程。

逻辑电平噪声容限

假设系统里高压是5V,低压是0V,我们可以简单的规定3.5~5V之间的信号代表逻辑高电平,0~1.5V之间的信号代表逻辑低电平,可是电路电压可能受到一些噪声干扰,比方说温度、湿度、线路电阻啥的干扰,所以不能一杆子打死,所以对于某个元件来说,要求它的输入电压的范围比输出电压更大一些,如下图:


我们知道一个元件的输出可以作为另一个元件的输入,我们对输出更苛刻一些就意味着即使在传播过程中受到了一些噪声干扰,当信号到达另一个元件的输入时,由于输入电压的范围更大,所以可以允许传输过程中出现一些噪声,这个允许的噪声范围就是所谓的噪声容限。如图所示:

  • 逻辑高电平的噪声容限就是:VOH - VIH

  • 逻辑低电平的噪声容限就是:VOL - VIL

当然,如果噪声太大,超出了噪声容限,输入电压落到了禁止区域,那结果就变成错误的了。

基于此,我们可以把随时间连续变化的模拟信号转换为只有逻辑高电平和逻辑低电平的数字信号,分别用1和0表示。然后,我们就可以针对数字信号做进一步的抽象分析了。

基本的数字电路

我们已经把模拟电路用了一定手段抽象为数字电路了,接下来就得在数字电路这个层次做一些事情了,当我们谈到数字电路时,通常可以把它可以看作一个黑盒:

该数字电路可以由下边4部分组成:

  1. 一个或多个输入

  2. 一个或多个输出

  3. 描述输出和输入关系的功能规范

  4. 描述在什么时候输出响应输入的时序规范。

其中功能规范很容易明白,就是根据给定的输入应该有什么输出,时许规范可能让人疑惑,它描述了在何时输出响应输入的改变,这意味着可能输入改变了,输出可能不立即作出反应,至于为啥输入改变了输出还不立即改变我们后边唠。

下边我们描述一些基本的数字电路。

与门

真值表:

ABY
000
010
100
111

与门:当且仅当多个输入都为1时,输出才为1。

或门

真值表:

ABY
000
011
101
111

或门:只要有一个输入为1时,输出就为1。

非门(反相器)

真值表:

AY
01
11

非门:输出与输入相反。

缓冲器

从模拟电路角度看,可以放大电流,但是从数字电路角度看,跟导线没差别,输入是什么,输出就是什么。

异或门


真值表:


ABY
001
011
101
111


异或门:输入相同得1,不同得0。

与非门

真值表:

ABY
001
011
101
110

与非门:相当于先与后非。

或非门


真值表:

ABY
001
010
100
110

或非门:相当于先或后非。

基础逻辑门的组装

后边的电路全都指望这些基础的逻辑门,由它们可以组装成更多复杂的电路,来处理更复杂的问题。


    觉得不错,分享给更多人看到
    我们都是小青蛙 热门文章:

    java并发编程之原子性操作    阅读/点赞 : 0/0

    我们都是小青蛙,呱呱呱呱呱    阅读/点赞 : 0/0

    活跃性(死锁、饥饿、活锁)    阅读/点赞 : 0/0

    指令重排序    阅读/点赞 : 0/0

    InnoDB的Buffer Pool简介    阅读/点赞 : 0/0

    一些比较重要的数字电路模块    阅读/点赞 : 0/0

    抽象的艺术    阅读/点赞 : 0/0

    内存可见性    阅读/点赞 : 0/0

    存储程序(二)之存储函数简介    阅读/点赞 : 0/0

    线程间通信(下)    阅读/点赞 : 0/0

    我们都是小青蛙 微信二维码

    我们都是小青蛙 微信二维码