电子禅国际__您我的精神家园
发新话题

【科普41】数字寄存器是怎么控制模拟电路的

本主题由 大象 于 2024-12-12 13:21 加入精华

【科普41】数字寄存器是怎么控制模拟电路的

寄存器是数字电路最常见的电路,它们用途很广,在数模混合集成电路中经常被用来控制模拟电路的状态。寄存器到底怎样控制模拟电路?这二者是怎样联系起来的呢?有人经常犯糊涂:寄存器编些代码怎么就能控制模拟电路?数字电路虽然一般情况下0代表低压,1代表高压。但是也不绝对,0有时也可能代表高压,而1也可能代表低压,而模拟电路如果多用了一级倒相器,那信号到底该是高还是低?标准都不统一,不就全乱套了吗?

本文尝试用几个最简单的例子说清楚这个问题。



1. 最简单的模拟电路举例

模拟电路千差万别,这里先就用最简单的倒相器来代表,来说明寄存器如何控制它们的工作状态。


图1 三种不同的倒相器

图1是三种不同的倒相器示意图。图中,A为常见的倒相器,当A_IN1=0时,A_OUT1=1,反之给它1它会输出0,电路具有倒相的功能;B为0使能的倒相器,只有当B_EN1=0时,最上面的P管导通,它才能把VDD接上,否则就供不上电,供电成功后B电路才能化简为A,与A的功能一致;同样,C电路为1使能的倒相器,只有当C_EN1=1时,最下面的N管才能导通,它才能把GND接上,才能完成一个倒相器的功能。

因此,通过给不同的使能端赋以不同的值,就可以通过数字电路控制模拟电路能不能加上电,或者能不能工作,更复杂的控制原理也是相通的。



2. 寄存器的基本原理

在数字电路中,把正在处理的二进制数据或代码暂时存储起来的操作叫做寄存,寄存器的种类繁多,包括但不限于:‌数据寄存器‌、‌变址寄存器‌、‌指针寄存器‌、‌段寄存器、‌‌指令指针寄存器‌等等。它们的特点就是快速临时存储,可读可写,掉电后信号才会消失,因此如果有需要,一般上电后系统会重新写一遍寄存器,让系统工作在正常的状态。

下图是一个简单的D触发器构成的寄存器原理图。


图2 寄存器基本原理示意图

图2是寄存器基本原理示意图。图中上半部分是一个简单的锁存电路原理示意图和符号图,通过CLK控制开关K1、K2,就可以把D端送来的信号锁存起来,并送到Q端,寄存器就是由多个锁存器构成的。

图中下半部分是一个锁存器阵列,R1、R2、R3是三个寄存器,由ADDR地址信号来选通操作哪个寄存器。



3. 二者是怎么联系起来的?

数字与模拟电路联系说起来也容易,如下图所示,三个模拟电路用三个寄存器控制。


图3 用寄存器控制模拟电路

图3是用寄存器控制模拟电路。图中用有三个寄存器R1、R2、R3分别控制A、B、C三个模拟模块。由于A模块没有控制端,所以无需控制,可以保留下来备用,B模块需要0使能,这时需要通过001地址,给R2寄存器写入一个0信号即可。C模块需要1使能,这时需要通过010地址,给R3寄存器写入一个1信号即可。

寄存器的定义就完成了,其列表如下:


寄存器描述

当然,这个例子只是简单示意说明,只有三个地址,只给两组电路赋值。实际电路中,可能用到的寄存器非常多,地址可能8位或16位,一组赋值就能给多个信号定义其或0或1电平。

一旦电路信号关系确定后,寄存器的地址和赋值就确定下来了,模拟电路只需要整理清楚,自己的模块哪些信号需要数字赋值,高电平有效还是低电平有效即可。

退一步说,就算赋值错误,比如模拟电路多加了一级倒相器,原来的1使能可能变成了0使能,这时只需要告诉数字设计人员更改寄存器赋值代码。数字电路在产品成型后也可以通过通讯端口I2C或者SPI修改寄存器赋值,只要线正确接出来到了寄存器,不用担心调试不出来。

正是寄存器的状态可读可写,为设计提供了更多的灵活性,数字电路设计中经常大量使用寄存器,希望本文让初学者对它们的原理有个简单的认识。

(大象韩20240907)
发新话题
最新文章
最佳文章
【封面】 【电子禅堂】 【电子禅手机图片展】 【电子禅趣小剧】 【电子禅最新】 【赞赏】
Since: 2001 站长:韩孝勇(大象) 共享版权:CC BY 4.0 法律顾问:薛永谦律师
中华人文学会有限公司【电子禅工作室】 地址:华藏世界海-娑婆世界-中国香港
关于我们 | 本站地图 | 免责条款 | 联系我们
电子禅国际 DIANZICHAN.COM