精华内容
下载资源
问答
  • 三极管的工作条件及工作状态判断 发布时间: 2013-05-23 07:24:25 来源: EDA中国 三极管的工作条件及工作状态判断 晶体三极管简称为晶体管,它由两个PN结有机地结合在一起构成半导体器件,晶体管内部可分为三个...

    三极管的工作条件及工作状态的判断

    发布时间: 2013-05-23 07:24:25 来源: EDA中国

    三极管的工作条件及工作状态的判断

    晶体三极管简称为晶体管,它由两个PN结有机地结合在一起构成半导体器件,晶体管内部可分为三个区域(NPN型硅管或PNP型锗管),从三个区域各引出一个电极,称为发射级(e)、基级(b)和集电极(C),利用晶体管可以放大信号、高低频振荡、无触点开关等。下面来对晶体管工作的条件及工作状态的判断作以较深入些的学习与理解,这里仅扼要把上述两个问题剖析一下。

    一、晶体管工作的条件

    1.集电极电阻Rc:

    在共发射极电压放大器中,为了取出晶体管输出端的被放大信号电压Use(动态信号),需要在集电极串接一只电阻Rc。这样一来,当集电极电流Ic通过时,在Re上产生一电压降IcRc,输出电压由晶体管c-e之间取出,即Usc=Uce=Ec-IcRc,所以Use也和IcRc —样随输入电压Ui的发生而相应地变化。

    2.集电极电源Ec(或Vcc):

    Ec保证晶体管的集电结处于反向偏置,使管子工作在放大状态,使弱信号变为强信号。能量的来源是靠Ec的维持,而不是晶体管自身。

    3.基极电源Eb:

    为了使晶体管产生电流放大作用,除了保证集电结处于反向偏置外,还须使发射结处于正向偏置,Eb的作用就是向发射结提供正向偏置电压,并配合适当的基级电阻Rb,以建立起一定的静态基极电流Ib。当Vbe很小时,Ib=O,只有当Vbe超过某一值时(硅管约0.5V,锗管约0.2V,称为门槛电压),管子开始导通,出现Ib。随后,Ib将随Vbe增大而增大,但是,Vbe和Ib的关系不是线性关系:当Vbe大于0.7V后,Vbe再增加一点点,Ib就会增加很多。晶体管充分导通的Vbe近似等于一常数(硅管约0.5V,锗管约 0.5V)。

    4.基极偏流电阻Rb:

    在电源Eb的大小已经确定的条件下,改变Rb的阻值就可以改变晶体管的静态电流Ib,从而也改变了集电极静态电流Ic和管压降Vce,使放大器建立起合适的直流工作状态。

    二、晶体管工作状态的判断

    晶体三极管工作在放大区时,其发射结(b、e极之间)为正偏,集电结(b、c极之间)为反偏。对于小功率的NPN型硅,呈现为Vbe≈0.7V,Vbc<0V(具体数值视电源电压Ec与有关元件的数值而定):对于NPN型锗管,Vbe≈0.2V,Vbc<0V;对于PNP型的晶体三极管,上述电压值的符号相反,即小功率PNP型硅管Vbe≈-0.7V,Vbc>0V,对于小功率 PNP型锗管,Vbe≈-0.2V,Vbc>0V。如果我们在检测电路中发现晶体三极管极间电压为上述数值,即可判断该三极管工作在放大区,由该三极管组成的这部分电路为放大电路。

    另外,在由晶体管组成的振荡电路中,其三极管也是工作在放大区,但由于三极管的输出经选频谐振回路并同相反馈到其b、C极之间,使电路起振,那么b、e极之间的电压Ube,对于硅管来说就小于0.7V 了(一般为0.2V左右)。如果我们检测出Vbe<0.7V,且用导线短接选频谐振电路中的电感使电路停振时Vbe0.7V,则可判断该电路为振荡电路。

    2.工作在截止区的判断:

    三极管工作在截止区时,发射结与集电结均为反偏,而在实际的电路中,发射结也可以是零偏置。这样对于小功率NPN型三极管,呈现为Vbe≤0,Vbc<0V(具体数值主要决定于电源电压Ec);对于小功率NPN型三极管,呈现为Vbe≥OV,Vbc≥0V,此时的 Vce≈Ec,如果我们检测出电路中晶体三极管间电压为上述情况,则可判断该三极管工作在截止区。

    3.工作在饱和区的判断:

    三极管工作在饱和区时,其发射结与集电结均为正偏。对于小功率NPN型硅管,呈现为Vbe多0.7V(略大于工作在放大区时的数值),Vbc>0V (不大于Vbe的值);对于小功率NPN型锗管,类似地有Vbe≥0.2V(略大于工作在放大区时的值),Vbc>OV (不大于Vbe的值)。对于PNP型的晶体管,上述电压值的符号相反,即小功率的PNP型硅管,Vbe≥-0.7V,Vb<0V(不小于Vbe的值;小功率PNP型锗管,Vbe≤-2V,Vbc<0V(不小于Vbe的值)。一般情况下,此时的Vce≈0.3V(硅管)或 Vce≈0.1V(锗管),如果我们检测出电路中的晶体三极管极间电压符合上述情况,则可判断该三极管工作在饱和区。

    需要指出一点的是:在有些电子电路中,如开关电路、数字电路等,三极管工作在截止区与饱和区之间相互转换,如附图所示。当A点为0V时,EB通过R1、R2分压使基极处于负电压,发射结反偏;同时集电结也是反偏的,那么三极管T截止;当A点输入为6V时,R1、R2分压使三极管发射结正偏,产生足够大的基极电流使三极管饱和导通,输出端L约为0.3V,此时集电结也为正偏。我们检测电路是否正常时,可以分别使A端输人0V与6V的电压,并分别测量两种情况下的三极管极间电压,看是否符合上述截止与饱和的情况,从而就可以判断该电路工作是否正常。


    三、小结

    晶体三极管有三个工作区,即放大区、截止区、饱和区。电路设计时,可根据电路的要求,让晶体管工作在不同的区域以组成放大电路、振荡电路、开关电路等,如果三极管因某种原因改变了原来的正常工作状态,就会使电路工作失常;电子产品出现故障,这时就要对故障进行分析,首要的工作就是按前述方法检查三极管的工作状态。

    为了对晶体管工作在三个区域的情况有一个较明确的认识,附表列出了有关具体情况,供参考理解。对于具体的检测工作,要注意两点问题:一是最好使用内阻较大的数字万用表进行测量,以减少测量误差,同时避免直接测量时因万用表的内阻小引起三极管工作状态的改变;二是最好分别测量晶体三极管各极对地的电压,然后计算出Ube.Ubc或Uce的值,避免诱发电路故障的可能性。

    展开全文
  • 判断线程运行状态的两种方法

    千次阅读 2016-07-29 16:42:53
    判断线程运行状态的两种方法 判断线程运行状态的方法有很多,如可以采用类似于对象计数器的方法等等,那么这里向你介绍两种判断线程运行状态的方法,希望对你有所帮助。 AD:51CTO 网+ 第十二期沙龙:大话数据之...

    判断线程运行状态的两种方法

    判断线程运行状态的方法有很多,如可以采用类似于对象计数器的方法等等,那么这里向你介绍两种判断线程运行状态的方法,希望对你有所帮助。

    AD:51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验

    判断线程运行状态的方法有很多,如可以采用类似于对象计数器的方法,所谓对象计数器,就是一个对象被引用一次,这个计数器就加1,销毁引用就减1,如果引用数为0,则垃圾搜集器就会对这些引用数为0的对象进行回收。

    判断线程运行状态方法一:线程计数器

    线程也可以采用计数器的方法,即为所有需要监视的线程设一个线程计数器,每开始一个线程,在线程的执行方法中为这个计数器加1,如果某个线程结束(在线程执行方法的最后为这个计数器减1),为这个计数器减1。然后再开始一个线程,按着一定的时间间隔来监视这个计数器,如是棕个计数器为0,说明所有的线程都结束了。当然,也可以不用这个监视线程,而在每一个工作线程的最后(在为计数器减1的代码的后面)来监视这个计数器,也就是说,每一个工作线程在退出之前,还要负责检测这个计数器。使用这种方法不要忘了同步这个计数器变量啊,否则会产生意想不到的后果。

    判断线程运行状态方法二:使用Thread.join方法

    join方法只有在线程结束时才继续执行下面的语句。可以对每一个线程调用它的join方法,但要注意,这个调用要在另一个线程里,而不要在主线程,否则程序会被阻塞的。

    个人感觉这种方法比较好。

    线程计数器方法演示:

    1. class ThreadCounter : MyThread  
    2. {  
    3. private static int count = 0;  
    4. private int ms;  
    5. private static void increment()  
    6. {  
    7. lock (typeof(ThreadCounter))  // 必须同步计数器  
    8. {  
    9. count++;  
    10. }  
    11. }  
    12. private static void decrease()  
    13. {  
    14. lock (typeof(ThreadCounter))  
    15. {  
    16. count--;  
    17. }  
    18. }  
    19. private static int getCount()  
    20. {  
    21. lock (typeof(ThreadCounter))  
    22. {  
    23. return count;  
    24. }  
    25. }  
    26. public ThreadCounter(int ms)  
    27. {  
    28. this.ms = ms;  
    29. }  
    30. override public void run()  
    31. {  
    32. increment();  
    33. Thread.Sleep(ms);  
    34. Console.WriteLine(ms.ToString()+"毫秒任务结束");  
    35. decrease();  
    36. if (getCount() == 0)  
    37. Console.WriteLine("所有任务结束");  
    38. }  
    39. }  
    40.  
    41.  
    42. ThreadCounter counter1 = new ThreadCounter(3000);  
    43. ThreadCounter counter2 = new ThreadCounter(5000);  
    44. ThreadCounter counter3 = new ThreadCounter(7000);  
    45.  
    46. counter1.start();  
    47. counter2.start();  
    48. counter3.start();  

    上面的代码虽然在大多数的时候可以正常工作,但却存在一个隐患,就是如果某个线程,假设是counter1,在运行后,由于某些原因,其他的线程并未运行,在这种情况下,在counter1运行完后,仍然可以显示出“所有任务结束”的提示信息,但是counter2和counter3还并未运行。为了消除这个隐患,可以将increment方法从run中移除,将其放到ThreadCounter的构造方法中,在这时,increment方法中的lock也可以去掉了。代码如:

    1. public ThreadCounter(int ms)  
    2. {  
    3. this.ms = ms;  
    4. increment();  

    运行上面的程序后,将显示如下图的结果。

    程序运行效果 

    使用Thread.join方法演示

    1. private static void threadMethod(Object obj)  
    2. {  
    3. Thread.Sleep(Int32.Parse(obj.ToString()));  
    4. Console.WriteLine(obj + "毫秒任务结束");  
    5. }  
    6. private static void joinAllThread(object obj)  
    7. {  
    8. Thread[] threads = obj as Thread[];  
    9. foreach (Thread t in threads)  
    10. t.Join();  
    11. Console.WriteLine("所有的线程结束");  
    12. }  
    13.  
    14. static void Main(string[] args)  
    15. {  
    16. Thread thread1 = new Thread(threadMethod);  
    17. Thread thread2 = new Thread(threadMethod);  
    18. Thread thread3 = new Thread(threadMethod);  
    19.  
    20.  thread1.Start(3000);  
    21.  thread2.Start(5000);  
    22.  thread3.Start(7000);  
    23.  
    24.  Thread joinThread = new Thread(joinAllThread);  
    25.  joinThread.Start(new Thread[] { thread1, thread2, thread3 });  
    26.  
    27. }  

    在运行上面的代码后,将会得到和图2同样的运行结果。上述两种方法都没有线程数的限制,当然,仍然会受到操作系统和硬件资源的限制。

    判断线程运行状态的两大方法就向你介绍到这里,希望对你了解和学习线程运行状态的判断有所帮助。

    展开全文
  • 如果一直没有,则说明surfaceflinger没有工作 SurfaceFlinger和powermanagerservice的屏幕状态不一样, SurfaceFlinger通过/sys/power/wait_for_fb_sleep和/sys/power/wait_for_fb_wake来判断  power...
    
    1.连上adb

    2.执行adb shell "echo   3> /sys/module/mali/parameters/mali_debug_level" 

    3.执行adb shell cat /proc/kmsg

    观察输出的log,确认有mali GP:xxxx job 或者 mali pp:xxx job 出现,表示gpu在处理任务。

    黑屏期间观察有无上述log出现,如果没有再尝试操作触摸屏,看看有无上述log出现。如果一直没有,则说明surfaceflinger没有工作


    SurfaceFlinger和powermanagerservice的屏幕状态不一样,

    SurfaceFlinger通过/sys/power/wait_for_fb_sleep和/sys/power/wait_for_fb_wake来判断

     powermanagerservice通过按键来判断

    SurfaceFlinger先调用了turnElectronBeamOn,powermanagerservice后调用了 turnElectronBeamOff 导致修改见红色部分

    status_t SurfaceFlinger::turnElectronBeamOnImplLocked(int32_t mode)
    {

        DisplayHardware& hw(graphicPlane(0).editDisplayHardware());
    /*  
     if (hw.canDraw()) {
            // we're already on
            return NO_ERROR;
        }
    */


    status_t SurfaceFlinger::turnElectronBeamOffImplLocked(int32_t mode)
    {
        DisplayHardware& hw(graphicPlane(0).editDisplayHardware());
        if (!hw.canDraw()) {
            // we're already off
            return NO_ERROR;
        }
        if (mode & ISurfaceComposer::eElectronBeamAnimationOff) {
            electronBeamOffAnimationImplLocked();
        }

        // always clear the whole screen at the end of the animation
        glClearColor(0,0,0,1);
        glDisable(GL_SCISSOR_TEST);
        glClear(GL_COLOR_BUFFER_BIT);
        glEnable(GL_SCISSOR_TEST);
        hw.flip( Region(hw.bounds()) );

       // hw.setCanDraw(false);//
        return NO_ERROR;
    }

    
    展开全文
  • #define PHY_LINKED_STATUS ((uint16_t)0x0004) /*!< Valid link established */ while (((phyreg & PHY_LINKED_STATUS) != PHY_LINKED_STATUS)); 如果phyreg的第三位是1的话,那么(1!=1)为假则跳出循环...
    #define PHY_LINKED_STATUS               ((uint16_t)0x0004)  /*!< Valid link established               */
    
    while (((phyreg & PHY_LINKED_STATUS) != PHY_LINKED_STATUS));

    如果phyreg的第三位是1的话,那么(1!=1)为假则跳出循环,若第三位为0则(0!=1)成立,则继续while循环。

    展开全文
  • 应用场景假设我有一个任务,任务一共需要 10 个小时就可以完成。...意思就是说,我们在 7 天之内,完成 10 个小时的工作量。所以,我们需要解决的是:在任务期间内,除掉 国家法定假期 和 周末 。 (下文将...
  • Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的...Linux进程状态:R (TASK_RUNNING),可执行状态。  只有在该状态的进程才可能在CPU上
  •   以前数电实验中有状态机控制系统工作状态变化的部分。虽然实验是基于FPGA,使用 Verilog 实现的,但是这可以为我使用C语言在NUCLEO单片机上实现状态机功能提供思路。其实开发语言并不重要,重要的是先做好状态机...
  • 数据分析工作中经常会涉及到的样本T检验一般有三种:单样本T检验、配对样本T检验和独立两样本T检验。可以这样理解这三种T检验: 单样本T检验: 回答的是样本均值"是这样么"的问题,例如食堂包子已经卖出去的情况下...
  • 1、【判断题】GB16899-2011《自动扶梯和自动人行道的制造与安装安全规范》规定:自动扶梯或自动人行道的待机状态是指自动扶梯或自动人行道在无负载情况下停止状态。(×) 2、【判断题】检修门、安全门和检修活板门...
  • 1、【判断题】TSG5002-2017《电梯维护保养规则》规定:使用单位可以将本单位电梯维保工作,交由持《特种设备作业证》的个人承包。(×) 2、【判断题】2:1绕绳,比1:1绕绳的电梯,钢丝绳用量大一倍。(√...
  • linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。 只有在该状态的进程才可能在CPU上运行。...
  • 目录 R --- TASK_RUNNING(可执行状态) S --- TASK_INTERRUPTIBLE(可中断的... T --- TASK_STOPPED或TASK_TRACED(暂停状态或跟踪状态) Z --- TASK_DEAD - EXIT_ZOMBIE(退出状态,进程成为僵尸进程) X ---...
  • 前言:在Linux系统上配置好Apache时,我们在windows主机的浏览器地址栏输入服务器的ip地址时,有时候会出现无法连接的情况,(正常状态应该是it works!),导致这样的结果一般都是由于对应的服务进程没有处于正在运行...
  • Linux进程状态解析之R、S、D、T、Z、X

    千次阅读 2013-08-13 10:33:47
    Linux进程状态解析之R、S、D、T、Z、XLinux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。Linux进程状态:R (TASK_RUNNING),可执行状态。只有...
  • 2020T电梯修理实操考试视频及T电梯修理考试软件,包含T电梯修理实操考试视频答案解析及T电梯修理考试软件练习。由安全生产模拟考试一点通公众号结合国家T电梯修理考试最新大纲及T电梯修理考试真题出具,有助于T电梯...
  • T电梯修理考试APP根据新T电梯修理考试大纲要求,安全生产模拟考试一点通将T电梯修理模拟考试试题进行汇编,组成一套T电梯修理全真模拟考试试题,学员可通过T电梯修理考试总结全真模拟,进行T电梯修理自测。...
  • linux CPU性能及工作状态查看指令

    万次阅读 2016-08-02 22:14:19
    本博客主要讲解了日常运维过程中,查看系统状态的一些指令mpstat,vmstat,iostat,sar,top0、准备知识1> 衡量CPU性能的指标:<1> 用户使用CPU CPU运行实时进程 CPU运行niced process CPU运行常规用户进程 <2> 系统...
  • 2020T电梯修理模拟考试及T电梯修理实操考试视频,包含T电梯修理模拟考试答案解析及T电梯修理实操考试视频练习。由安全生产模拟考试一点通公众号结合国家T电梯修理考试最新大纲及T电梯修理考试真题出具,有助于T电梯...
  • Linux进程的几种状态之R、S、D、T、Z

    千次阅读 2017-10-10 15:35:14
    前言:Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看...
  • 我们可以看到,输出特性曲线中,场管的工作区域分成了三个部分: 可变电阻区(对应三极管的饱和区) 恒流区(对应三极管的放大区) 夹断区,也叫截止区(对应三极管的截止区) 大家看到介于可变电阻区和...
  • SQL Server 性能调优(一)——从等待状态判断系统资源瓶颈 http://blog.csdn.net/dba_huangzj/article/details/7607844  通过DMV查看当时SQL SERVER所有任务的状态(sleeping、runnable或running) ...
  • Linux进程状态(ps stat)之R、S、D、T、Z、X 2012 年 03 月 11 日Posted by Jian Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 223,475
精华内容 89,390
关键字:

怎样判断t的工作状态