单片机模拟电路接口的一些概念

集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路;左边的三极管为反相之用,使输入为“0”时,输出也为“0”。

对于图 1,当左端的输入为“0”时,前面的三极管截止,所以5v电源通过1k电阻加到右边的三极管上,右边的三极管导通;当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止。

我们将图1简化成图2的样子,很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载到地,那么输出端 的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。

图3中那个1k的电阻即是上拉电阻。如果开关闭合,则有电流从1k电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论,实际情况中开关电阻不为0,另外对于三极管还存在饱和压降),所以在开关上的电压为0,即输出电平为0。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的 漏电流),所以流过的电流为0,因此在1k 电阻上的压降也为0,所以输出端的电压就是5v了,这样就能输出高电平了。

但是这个输出的内阻是比较大的——即1k,如果接一个电阻为r的负载,通过分压计算,就可以算得最后的输出电压为5*r/(r+1000)伏,所以,如果要达到一定的电压的话,r就不能太小。如果r 真的太小,而导致输出电压不够的话,那我们只有通过减小那个1k的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值。另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。

如果我们将一个读数据用的输入端接在输出端,这样就是一个IO口了,51的IO口就是这样的结构,其中P0口内部不带上拉,而其它三个口带内部上拉。当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于P0口来说,就是高阻态了。

对于漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。

OC门主要用于3个方面:实现与或非逻辑,用做电平转换,用做驱动器。
开漏形式的电路有以下几个特点:
1.利用外部电路的驱动能力,减少IC内部的驱动,或驱动比芯片电源电压高的负载。
2.可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。
3.由于漏级开路,所以后级电路必须接一上拉电阻,上拉电阻的电源电压就可以决定输出电平。这样就可以进行任意电平的转换了。
4.源极开路提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起OC或者OD来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的OC或OD输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,AVR单片机的一些IO 口就是这种结构。
********************************************************************

单片机内部的逻辑经过内部的逻辑运算后需要输出到外面,外面的器件可能需要较大的电流才能推动,因此在单片机的输出端口必须有一个驱动电路。这种驱动电路有两种形式:

其中的一种是采用一只N型三极管——NPN或N沟道,以NPN三极管为例,就是e接地,b接内部的逻辑运算,c引出。b受内部驱动可以控制三极管是否导通,但如果三极管的c极一直悬空,尽管b极上发生高低变化,c极上也不会有高低变化,因此在这种条件下必须在外部提供一个电阻,电阻的一端接c(引出脚)另一端接电源,这样当三极管的b有高电压是三极管导通,c电压为低,当b为低电压时三极管不通,c极在电阻的拉动下为高电压。这种驱动电路有个特点:低电压是三极管驱动的,高电压是电阻驱动的——上下不对称,三极管导通时的ec内阻很小,因此可以提供很大的电流,可以直接驱动led甚至继电器,但电阻的驱动是有限的,最大高电平输出电流=(VCC-Vh)/r;

另一种是互补推挽输出,采用2只晶体管,一只在上一只在下,上面的一只是n型,下面为p型(以三极管为例),两只管子的连接为:NPN(上)的c连 VCC,PNP(下)的c接地,两只管子的ee,bb相连,其中ee作为输出(引出脚),bb接内部逻辑。这个电路通常用于功率放大点路的末级(音响),当bb接高电压时NPN管导通输出高电压,由于三极管的ec电阻很小,因此输出的高电压有很强的驱动能力,当bb接低电压时NPN截至,PNP导通,由于三极管的ec电阻很小因此输出的低电压有很强的驱动能力。简单的例子,9013导通时ec电阻不到10欧,以Vh=2.5v,VCC=5v计算,高电平输出电流最大=250MA,短路电流500ma,这个计算同时告诉我们采用推挽输出时一定要小心千万不要出现外部电路短路的可能,否则肯定烧毁芯片,特别是外部驱动三极管时别忘了在三极管的基极加限流电阻。推挽输出电路的形式很多,有些单片机上下都采用n型管,但内部逻辑提供互补输出,以上的说明仅仅为了说 明推挽的原理,为了更深的理解可以参考功率放大电路。
********************************************************************

上拉电阻很大,提供的驱动电流很小,叫弱上拉;反之叫强上拉。

为什么要使用拉电阻:

上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用,下拉同理。上拉是对器件注入电流,下拉是输出电流,弱强只是上拉电阻的阻值不同,没有什么严格区分。
对于非OC、OD输出型电路提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
上拉电阻的主要应用:
1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,以提高输出高电平的值。
2、OC门电路要输出“1”时需要加上拉电阻,不加根本就没有高电平。
3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻,但在用OC门作驱动(例如:控制一个 LED)灌电流工作时就可以不加上拉电阻。
4、在COMS芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗,提供泄荷通路。
5、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰。
6、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。
上拉电阻阻值的选择原则包括:
1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。
2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。
3、对于高速电路,过大的上拉电阻可能边沿变平缓。
综合考虑以上三点,通常在1k到10k之间选取。对下拉电阻也有类似道理。

********************************************************************

高阻态时引脚对地电阻无穷,此时读引脚电平时可以读到真实的电平值。高阻态的重要作用就是I/O(输入/输出)口在输入时读入外部电平用。

一般门与其它电路的连接,无非是两种状态,1或者0,在比较复杂的系统中,为了能在一条传输线上传送不同部件的信号,研制了相应的逻辑器件称为三态门。三态门,除了有这两种状态以外还有一个高阻态,就是高阻抗(电阻很大,相当于开路)。相当于该门与和它连接的电路处于断开的状态。三态门是一种扩展逻辑功能的输出级,也是一种控制开关。主要是用于总线的连接,因为总线只允许同时只有一个使用者。通常在数据总线上接有多个器件,每个器件通过OE/CE之类的信号选通。如器件没有选通的话它就处于高阻态,相当于没有接在总线上,不影响其它器件的工作。

********************************************************************

准双向口只能有效的读取0,而对1则是采用读取非零的方式,就是读入的时候要先向IO上写1,再读。
真正的双向口正如其名,就是真正的双向IO不需要任何预操作可直接读入读出。

时间: 2024-10-18 21:06:49

单片机模拟电路接口的一些概念的相关文章

单片机入门指南系列(四) 模拟电路、传统数字电路与单片机

本文由PurpleSword(jzj1993)原创,转载请注明.原文网址 http://blog.csdn.net/jzj1993 大家都用过计算器,有没有想过它是怎么实现的呢?这里我不详述计算器的原理,而只对思路进行简单介绍.等我们学会了单片机,也可以亲手制作一个计算器.通过电路进行数学计算,应该怎么做呢?为了便于理解,下面我举个很简单的例子. 在这个电路中,电阻R1=R2,我给A.B两点分别接入3V和5V电压,这个时候,C点的电压则为(5+3)/2=4V.这个电路完成了一个求平均值的操作,如

模拟电路学习入门的建议(综合整理)

转载自:http://bbs.eetop.cn/viewthread.php?tid=170164 ”模拟电路学习入门“ "如何才算学好模电,数电"一帖引来大家的关注.这里把各位DX的意见整理了一下,便于大家参考.真正掌握一门技术不容易,大家从不同的侧面和经验谈谈自己的体会,对从事这行业的工程师会有点启迪. 找些實用線路集錦或電子製作書看看,有感興趣的就找找理論資料,然後動手練練,很快就是門內漢(or女)了! 先看基本书,再动手练习练习 Razav 如果有耐心看大头英文最好,翻译也很不

同一原理图中怎么区分数字电路和模拟电路

数字电路就是开关电路:器件工作状态:不是导通就是截止,一般信号电平只管高.低.高为“1”,低电平为“0”:工作状态是脉冲电量. 而模拟电路是放大电路,丝毫变化都要计较.考虑:是连续变化的电量. 仅从电路图不好说,要根据电路和元器件参数计算,才能知道它的工作状态是饱和导通还是截止?当然对于专业人员来说,这都不是难事. 从器件型号.电路结构.端子名称.电源电压三方面判断,一般情况下: 1.模拟电路的放大器图形是三角形,正.负双电源供电,电源电压大于5V,输入.输出之间有反馈电阻连接. 2.数字电路是

初级模拟电路:1-1 半导体材料

几乎所有的模电教材,第一章都会写PN结与二极管,但是能写到让人完全读懂的却不多.我当年学模电的时候,曾经卡在这里很长时间,一些概念貌似看明白了,但一深究就会觉得有些地方解释不通,解释不通的地方书本上又语焉不详.直到很多年后才知道,这个其实涉及到蛮复杂的半导体材料学和量子力学机制,如果不是专门做模拟IC设计,一般搞分立元件电路的人其实并不需要搞明白其中的详细原理与机制,只要知道其伏安曲线,再知道一些其他非线性特性,就可以设计电路了.所以,很多教科书都在这里稍微描述一下,也不指望读者去深入理解.我这

初级模拟电路:2-2 二极管实现逻辑门

回到目录 二极管可以实现简单的数字电路中的 与门(and gate)和 或门(or gate)逻辑.优点是电路简单,成本低:缺点是功耗比较大.事实上,我们一般不会真正用二极管去构造逻辑电路,因为这么简单的一个逻辑门功能,要消耗这么大功耗实在不划算.这里仅仅是作为一种概念电路,用来说明二极管也是可以实现门电路的,还有就是在万不得已情况下偶尔用一下. 1.   或门 根据TTL电平信号规定,对于输出信号,输出电平大于2.4V属于高电平,一般代表逻辑1:输出电平小于0.4V的属于低电平,一般代表逻辑0

初级模拟电路:3-1 BJT概述

回到目录 1.   名称由来 BJT的全称是双极性结型晶体管(Bipolar Junction Transistor),国内俗称三极管.其实,在英语中,三极管(triode)特指以前的真空电子管形式的三极管,而不是我们现在普遍使用的半导体三极管.“tri-”的意思是“三”,“ode”的意思是“极”,当年的电子管一般都封装在一个圆柱形的真空玻璃管中,所以中文翻译在后面加了个“管”. 早在二战以前,电子技术和电子元器件的应用就已经很发达了,在1930年代,全球电子管的年产量就已经达到1亿支以上.在那

初级模拟电路:3-8 BJT数据规格书(直流部分)

回到目录 本小节我们以2N4123通用型BJT硅基晶体管为例,来介绍如何阅读BJT的数据规格书,点此链接可以阅读和下载2N4123的数据规格书. 1. 总体性能 打开datasheet后,首先看标题: 图3-8.01 可以看到,这是2N4123.2N4124共用的一个datasheet,而且是通用型NPN硅基三极管.然后在在第一页的右侧,厂家给出了管脚识别方法和管体上的文字标记含义: 图3-8.02 在第一页的主体篇幅,数据规格书列出了这个BJT晶体管的所有极限性能,好让使用者先对这个器件有一个

初级模拟电路:3-9 BJT三极管实现逻辑门

回到目录 BJT晶体管可以实现逻辑门,事实上,在场效应管被发明用于集成电路以前,各种逻辑门芯片中的电路就是用BJT晶体管来实现的.最早人们使用二极管与BJT组合来实现逻辑门,这个称为二极管-晶体管逻辑(Diode-Transistor Logic),简称DTL:后来改进为全部用BJT晶体管来实现逻辑门,这个称为晶体管-晶体管逻辑(Transistor-Transistor Logic),简称TTL.早期广为人知的TTL电平,就是基于这种用BJT晶体管实现的逻辑门.TTL的优点是响应速度比较快,缺

使用electron开发一个h5的客户端应用创建http服务模拟后台接口mock

使用electron开发一个h5的客户端应用创建http服务模拟后端接口mock 在上一篇<electron快速开始>里讲述了如何快速的开始一个electron的应用程序,既然electron是可以直接使用node环境编写程序的,那么我们就可以有很多可以处理的事,比如我们可以做个可视化的前端构建工具,或者我们可以建一个后台的管理系统.基于这两天,我简单的做了一个模拟后端接口的http服务. 它可以完成如下功能: 它可以创建http本地服务 它可以模拟后端的多种请求方式,如get.post.pu