草庐IT

CMOS与TTL(下):TTL、CMOS

Wu_ShF 2023-11-20 原文

如果只看一个芯片的外观,是无法区分TTL和CMOS的。因为它们是按照芯片的制作工艺来分类的。
CMOS内部集成的是MOS管,而TTL内部集成的是三极管。

TTL

晶体管-晶体管逻辑(英语:Transistor-Transistor Logic,缩写为TTL)

最开始的是RTL
Resistor–transistor logic:电阻三极管逻辑。

RTL速度慢且不稳定,又过了几年,德州仪器的TTL逻辑电路后来居上。
它的核心是由三极管和三极管组成。它的作用与上面说的RTL一样,但更加稳定,频率也更高。

图中,当T4截止,T5导通时,Y输出为低电平,T5的CE极之间的饱和压降大约为0.3V。

当T5截止,T4导通时,输出电压大约为3.6V。

输入输出特性

输入电压准位:

  • Hi输入电压:2.0V以上
  • Low输入电压:0.8V以下

输出电压准位:

  • Hi输出电压:2.4V以上
  • Low输出电压:0.4V以下

由以上规范可以算出:前一级输出至次一级输入电压准位间,可以容忍的噪声边际电压是0.4V。
由于TTL电路种类很多,就要取输出高电平最小的一种(2.4V)。就像木桶效应一样。

为什么TTL的输入高电平要大于2.0V呢?

当两个输入同时大于等于2.0V时,这三个晶体管可以完全导通,能输出期望的低电平。

如果有一个输入小于0.8V,E点电压就会被拉低,此时T5截止,T4导通,输出3.6V的高电平。

在稳定状态下,T4和T5只能有一个导通。
图中的两个二极管起到了钳位的作用,它既可以抑制输入端出现的负极性脉冲,又能限制电流,起到保护作用。
TTL电路的优点是速度快,但有一个缺点是它无法大规模集成,那就是三极管的静态电流损耗非常大。

小电流撬动大电流

如果要用单片机控制LED灯的开关。
一般小功率LED灯流过的电流差不多5mA,所以单片机引脚就可以直接点亮LED灯。
如果要用单片机控制大功率LED灯。
比如这个LED灯的工作电流是100mA,正向压降为2V,这时候单片机肯定是不能直接点亮LED灯的。因为单片机所有引脚可流过的电流也就20mA。所以它肯定不能直接驱动100mA的LED灯。
如果要驱动这个大功率LED灯,就需要用到三极管。
它有小电流撬动大电流的本领。比如给它输入一个很小的电流,就能输出很大的电流,这样单片机就可以用小电流去控制这个LED灯了。

还有一个问题,就是这两个电阻的阻值该选多大的呢。
设上方的电阻为R2,要想知道它的阻值,就要知道流过它的电流和加在它身上的电压。因为R2和LED灯是串联关系,所以流过R2的电流也是100mA。电压是用12V减去LED灯和CE极的压降,就是电阻R2身上的电压。LED灯的正向压降是2V,但是三极管CE极的压降是多少呢?这个很容易得到,因为这个三极管现在在充当开关的作用,所以它处于饱和状态。这样我们就能在这个型号的三极管数据手册中查到它的CE极压降。

由这个曲线可以看出,当流过100mA电流时,CE极饱和压降差不多接近0.2V,所以R2身上的压降是9.8V。
所以R2的阻值为98Ω。
然后就是R1的阻值,方法也是一样的,它身上的电压是用5V减去三极管BE极压降,这个压降一般取0.7V,所以R1身上的电压是4.3V。
那它身上的电流怎么算呢,这时候可以用C极电流反向推导。因为C极电流是100mA,我们只需要知道此时三极管的增益,就能反向求出B极电流,这个增益也可以从数据手册上查到。

在C极电流为100mA时,它的增益为30,由此可以求出流过B极的电流为3.3mA(100/30),所以R1的阻值应该为1300Ω。
这样当我们单片机只需要输出3.3mA的电流,就能控制LED灯输出100mA的电流。

多发射极三极管

本质是一个与门。

右侧集电极C始终为高电平1,基极B也始终为高电平1,当左侧集电极有一个为低电平0零时,就可以导通,会产生很小的压差。Vo等效于低电平。
下图中AB与Y是“与”的关系,Y与T’是“非”的关系。Y上加横线读作Y bar,bar就是横线的意思。

CMOS

互补式金属氧化物半导体(英语:Complementary Metal-Oxide-Semiconductor,缩写作 CMOS;简称互补式金氧半导体)


TTL静态电流损耗太大,鉴于此,发明了速度相对较慢,但静态电流为0的CMOS逻辑电路。
Complementary Metal-Oxide-Semiconductor,缩写作 CMOS;简称互补式金氧半导体。
互补是因为N型MOS和P型MOS同时出现在了电路中。
常用于金氧半场效应管的电路符号有多种形式,最常见的设计是以一条垂直线代表沟道(Channel)两条和沟道平行的接线代表源极(Source)与漏极(Drain)左方和沟道垂直的接线代表栅极(Gate),如下图所示。有时也会将代表沟道的直线以虚线代替,以区分增强型(enhancement mode,又称增强式)金氧半场效应管或是耗尽型(depletion mode,又称耗尽式)金氧半场效应管。
由于集成电路芯片上的金氧半场效应管为四端器件,所以除了源极(S)、漏极(D)、栅极(G)外,尚有一基极(Bulk或是Body)。金氧半场效应管电路符号中,从沟道往右延伸的箭号方向则可表示此器件为n型或是p型的金氧半场效应管。箭头方向永远从P端指向N端,所以箭头从沟道指向基极端的为p型的金氧半场效应管,或简称PMOS(代表此器件的沟道为p型);反之则代表基极为p型,而沟道为n型,此器件为n型的金氧半场效应管,简称NMOS。在一般分布式金氧半场效应管器件中,通常把基极和源极接在一起,故分布式金氧半场效应管通常为三端器件。而在集成电路中的金氧半场效应管通常因为使用同一个基极(common bulk),所以不标示出基极的极性,而在PMOS的栅极端多加一个圆圈以示区别。

PMOS
NMOS
JFET增强型MOSFET增强型MOSFET(省略基极)耗尽型MOSFET

输入输出特性

(VCC=5V)
输入:

  • 高:>=3.5V
  • 低:<=1.5V

输出:

  • 高:>=4.45V
  • 低:<=0.5V

满幅输出

这是一个CMOS与非门,它的作用与上面的TTL与非门完全相同。


CMOS与非门中的半导体器件都是MOS管,MOS管的静态功耗接近于0,所以它可以在芯片里面大规模集成。
当输入同时为高电平时,MOS管的导通情况是这样的:此时输出的电平接近0V。

只要有一个输入为低电平时,Y就可以输出高电平。这时T1导通,由于T1的导通阻抗非常低,我们可以认为输出的电平为5V,这就是CMOS的满幅输出输出特征

可直接驱动TTL

我们使用的单片机是CMOS器件,而与电脑通讯的却是TTL转USB。
CMOS器件能直接通讯TTL吗?当然可以!
CMOS输出的高电平接近5V,低电平接近0V,而TTL的输入高电平大于2V,低电平小于0.8V。这样看CMOS是可以直接驱动TTL的。

有关CMOS与TTL(下):TTL、CMOS的更多相关文章

  1. mongodb - 为集合中的过期数据设置 TTL - 2

    是否有使用officialmongodriver按键配置数据自删除的正确方法??我在Mongo-driver模块中找到的唯一方法是ExpireAfterSeconds,但我不确定如何正确使用它。这是repository与目前准备好的东西。 最佳答案 你需要在n秒后需要删除的字段上创建一个ttl索引。在下面的代码片段中,创建了一个可以设置ttl的expirationTime字段。在记录中设置的expirationTime60秒后,记录将被删除。以下是创建TTL索引的代码:varttl*int32*ttl=60keys:=bsonx.D

  2. php - 对于存储在 DynamoDB 中的 PHP Session,我可以使用具有自动 TTL 功能的 "expires"字段吗 - 2

    在DynamoDB中存储PHPsession非常酷。https://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-dynamodb-session-handler.html我在DynamoDB引入新的自动TTL功能之前就开始使用它。在我看来,AWSSDK存储在每个session记录中的“expires”字段对于TTL功能使用的属性来说看起来完美。我试着用这个属性启用TTL并做了一些“将过期的项目的预览”,事情看起来很合理。但在我打开它并打破它之前,我想知道是否还有其他人更熟悉DynamoDB中的PHPsession、对此的SDK支持以

  3. php - Varnish 缓存不缓存 PHP 与 session 除非后端 TTL 改变 - 2

    我是VarnishCache的新手,有一个问题希望能得到一些帮助。我有一个非常简单和基本的设置,但它没有按照我的理解工作它应该出于某种原因。这与Varnish不缓存使用cookie的PHP页面有关。这是我的设置:1)对于我的default.vcl,我有一个简单的后端backenddefault{.host="127.0.0.1";.port="80";}2)我有一个简单的PHP文件,只有这两行:session_start();echotime();3)当我正确调用此页面时,它不会缓存因为我没有添加所需的vcl规则4)所以根据我对我添加的文档的理解在这两条规则中subvcl_recv{u

  4. php - 将消息 TTL 设置为一小时 RabbitMQ - 2

    如何设置消息TTL(不是队列)Exchange(交换发送到多个队列)消息(发布消息时)队列(在队列本身上,但同样这是消息TTL而不是队列TTL)我正在运行RabbitMQ3.x、Symfony2.1.x和RabbitMqBundle.我尝试过的:当我从RabbitMQ管理UI创建队列时设置消息TTL我将消息属性设置为'x-message-ttl'=>3600000。在RabbitMQ配置中,它看起来像这样:{"name":"blah_queue","vhost":"foobar","durable":true,"auto_delete":false,"arguments":{'x-me

  5. java - 如何在 Cassandra Java Driver QueryBuilder 中传递 TTL? - 2

    我正在使用CassandraJava驱动程序中的QueryBuilder来插入一些数据。似乎没有简单的选项可以在我插入的行上设置TTL。DataStax站点上的示例均未显示TTL示例。我怀疑它与using()有关,但再一次,代码中的示例为零且文档最少... 最佳答案 终于想通了,你必须在QueryBuilder本身上传入静态ttl()方法:.using(ttl(30)); 关于java-如何在CassandraJavaDriverQueryBuilder中传递TTL?,我们在StackO

  6. hadoop - TTL 行为 - HBase - 2

    我们在HBase表中有很多数据。我是这个NoSQL世界的新手。我们希望仅在固定时间内保留数据。我们应该编写单独的清理脚本还是可以依赖TTL配置?我浏览了可用的文档,但不理解确切的行为。 最佳答案 HBasedocumentation明确表示早于TTL的数据将被HBase自动删除。 关于hadoop-TTL行为-HBase,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/217205

  7. php - 可以将 memcached 键的生存时间 (TTL) 设置为无限大吗? - 2

    我在基于PHP-MySQL的应用程序中实现了内存缓存,它会定期从后端进程进行更新。由于这个原因,一些数据与过期时间和其他后端进程发生冲突,所以我想出了一个解决方案,但为此我必须使TTL=无限。 最佳答案 简单-只需在此处写入0。expireExpirationtimeoftheitem.Ifit'sequaltozero,theitemwillneverexpire.YoucanalsouseUnixtimestamporanumberofsecondsstartingfromcurrenttime,butinthelatterca

  8. java - volley中的entry.softTtl和entry.ttl有什么区别? - 2

    在HttpHeaderParser类中:publicstaticCache.EntryparseCacheHeaders(NetworkResponseresponse){longnow=System.currentTimeMillis();Mapheaders=response.headers;longserverDate=0;longserverExpires=0;longsoftExpire=0;longmaxAge=0;booleanhasCacheControl=false;StringserverEtag=null;StringheaderValue;headerValue

  9. java - 如何在 Java 中获取 UDP 数据包的 TTL? - 2

    我正在使用Java应用程序将UDP数据包发送到Android设备。我有另一个Java应用程序接收这些UDP数据包并显示其数据-非常简单。现在我正在研究一些路由算法-因此,如果知道UDP数据包自发送以来经过了多少跳,那将是一件好事。我的想法是只读出数据包的TTL(生存时间)值并显示它。您知道纯Java是否可行吗?类(class)DatagramPacket根本没有给出任何提示。我猜这是不可能的,因为这些信息可能已经在较低层被删除,但我只是想确定一下。:-) 最佳答案 TTLfield如您所知,是底层IP协议(protocol)(​​使

  10. CMOS与TTL(下):TTL、CMOS - 2

    如果只看一个芯片的外观,是无法区分TTL和CMOS的。因为它们是按照芯片的制作工艺来分类的。CMOS内部集成的是MOS管,而TTL内部集成的是三极管。TTL晶体管-晶体管逻辑(英语:Transistor-TransistorLogic,缩写为TTL)最开始的是RTLResistor–transistorlogic:电阻三极管逻辑。RTL速度慢且不稳定,又过了几年,德州仪器的TTL逻辑电路后来居上。它的核心是由三极管和三极管组成。它的作用与上面说的RTL一样,但更加稳定,频率也更高。图中,当T4截止,T5导通时,Y输出为低电平,T5的CE极之间的饱和压降大约为0.3V。当T5截止,T4导通时,输

随机推荐