欢迎您光临机械网,如有问题请及时联系我们。

软件是如何做到控制芯片电路的闭合的?(完全控制芯片)

作者:机械网
文章来源:本站

  

软件是如何做到控制芯片电路的闭合的?(完全控制芯片)

  

软件是如何做到控制芯片电路的闭合的?(完全控制芯片)

  在芯片、电路的世界里只能识别0和1

  代码、软件、UI界面、图片、视频、文件、数据等等都是为了方便人看而存在的,但它们的本质还是0和1。

  芯片、电路如何表示0和1?

  芯片、电路是通过高电平和低电平来表示0和1的,比如5V电压时就表示0,那么0V电压时就表示为1。

  苹果英文叫做Apple,但不管我们叫它苹果还是Apple,它还是我们生活中的一种实物“苹果”,在中文里表示苹果,而在英文里用Apple来表示。这就是语言不同表示的形式不同,每种语言都有自己的规则,在0和1组成的世界里也有自己的一套规则,这套规则就是编码表,比如ASCII字符表,比如出现了“01001011”这串数字,那么CPU就会在编码表里找到这串数字所对应的“K”,然后在屏幕上把这个“K”显示出来。

  当我们放大一张黑白的图片时就会发现图片是由无数的小方块组成,这些小方块就是像素点,那么要用二进制来保存这些像素点,要么是“1”,要么就是“0”。所以图片的像素点二进制位数越多,图片所能表现的颜色也就越丰富,当一个像素点是8个二进制位的时候,这个图片的每个像素点都有256种颜色可以显示。视频和图片是同样的道理,只不过每秒钟的视频是由好几帧的图片组成。

  使用0和1表示声音的第一步就是对声音进行模拟采样,然后再经过量化的过程将原始波形变成二进制数。量化就好比100个人参加考试,有多少人是优秀、有多少人是良好、有多少人是不及格,并不能体现每个人的具体分数,所以二进制的数字声音和我们的原声还是会有很大的差别,这种差别就叫失真。

  我们都知道CPU的内部主要是由运算器和控制器组成的,如果再详细一点就会发现CPU的内部就相当于一个庞大的流水线,内存就相当于临时的仓库。

  当程序打开的时候,和这个程序相关的数据就会从硬盘中读取,传输到内存中。硬盘的磁头读取数据时,旁边的读取器可以识别磁性材料的不同极性,再还原成高电平和低电平,刚刚我们就提到了在芯片和电路中0和1是由高电平和低电平来表示。

  这些被临时存储的程序数据就在内存里面等着被CPU提取,内存是易失性存储设备,断电时所有的数据都会清空,通电时就能存储数据。比如当电子数量高于一个中间值时就表示0,低于中间值就表示1。

  内存里面准备的数据主要就是程序的指令和数据,数据就相当于马上要被加工的原材料,而指令就相当于客户的订单,订单上面就是对产品的要求,告诉CPU要怎么去做。刚刚提到内存是临时仓库,那么CPU内部就有负责取货的。第一个取货的是程序设计计数器,主要是告诉CPU即将要用到的原材料和仓库具体的位置;第二个取货的是地址寄存器,主要是负责记录正在提取的原材料在内存的具体位置,因为CPU的读取速度要比内存快很多;第三个取货的是数据寄存器,主要是负责整个CPU工厂数据的分发,从外面进来的数据和已经生产好的数据都是由数据寄存器负责。

  CPU准备好后,CPU内的指令寄存器就会从内存中提取指令,取完指令后就会对指令进行译码,看看订单有什么要求,计划一下后面生产过程中需要用到的工种、设备等等。随后操作控制器就会按照计划好的订单让所有要参与这次生产的设备准备好进行开工。开工的过程中,数据寄存器就会去内存中将处理的数据提取出来,传给算术逻辑单元。算术逻辑单元包含了累加寄存器、程序状态寄存器,累加寄存器就相当于草稿纸,运算过程中的一些数据和结果会临时保存在这个地方,而程序状态寄存器就专门负责记录运算有没有进位、溢出之类的信息。访存取数后的就是将结果取回最终通过内存再保存到硬盘中。当然这个过程中少不了时序发生器,时序可以精准地安排什么时候,什么人该干什么事。

  我们都知道三极管具有开关的特性,只要控制端电压满足一定的条件,就可以控制电路的通断。

  鉴于半导体的特性于是就有了门电路,它可以使输出信号与输入信号之间产生一定的逻辑关系。通过门电路的逻辑关系实现对信号的转换。比如下图的与门电路,只要当A、B两个开关都接通时灯泡才亮。

  与门的真值表如下图。除此之外还有或门电路,非门电路等,感兴趣的小伙伴们可以查找相关的资料。

  通过这些基本的门电路的组合就可以组成各种各样的运算法则,让芯片懂得什么是加减乘除。

  经过芯片加工过后的数据最终会通过芯片的引脚输出出来,这些数据最终是通过高、低电平来表示0和1,通过一些半导体开关元器件很容易实现硬件的打开和关闭。比如常用的继电器,只要控制端满足相应的条件,就能控制电路的开和关。同理芯片引脚输出的高、低电平就可以控制电路的开和关。

  以上个人浅见,欢迎批评指正。

  以往回答过类似问题,软件归根结底,就是二进制代码01,而在电路上的确是没有直接的01的,电路上只有高低电平,所谓的01,是通过显示器显示出来的一种给人看的,方便你理解的东西,电路上并没有什么0和1这个代码,本质上它在硬件电路上还是高低电平,比如可以规定TTL电路高电平是:2.4V-5.0V;而低电平是:0.0V-0.4V。也就是电路上的电压在某个数值范围代表1,某个数值范围代表0,请关注:容济点火器

  然后电路上的这些高低电平这些东西,一般是通过触发器这些电路来存储的,比如RS触发器,它是最基本的,可以通过阻容和三极管这些器件来组成,你在电脑上看到的所谓1或者0,在实际电路上它就是电压不同而已。

  然后多个触发器组合成移位寄存器这些,通过硬件的晶振发出脉冲来让这些寄存器移位,这样寄存器的状态就可以改变了,你在键盘上下某个命令,就相当于触发某个开关,开关导通了,当然会直接让某个电路状态变化,移位寄存器的01状态也跟着改动,这样电路上就会达到你需要的功能,然后电路状态变化后,又通过液晶这些,把这种变化的状态,显示出来所谓的01给你看,你看到的只是一个符号而已,实际上电路上变化的,还是电压。

  然后很多个寄存器再组合起来,就形成了所谓的芯片,讲白了,就是把这些硬件电路做得非常小,集成到一块硅片上去了。

  朋友们好,我是电子及工控技术,我来回答这个问题。我们在学习数字电路时曾经学习了两种电路,一种是逻辑电路,还有一种就是时序电路,对于数字电路中的时序电路来说它是具有记忆功能的,我们很多具有编程功能和存储功能的芯片里面都是有最小单元的时序电路构成的,比如在数字电路中最常见的是各类触发器,我们知道触发器是具有记忆功能的最小单元,它可以记忆“0”和“1”这两种状态。那么我们用软件是如何控制芯片输出“0”和“1”的呢?下面我来谈谈我对这个问题的理解,希望能给朋友们带来一些帮助。

  为了说明这个问题我们举一个单片机芯片的例子吧,我们知道单片机之所以能够起到控制作用,就是因为有软件的参与。当我们用C语言或者汇编语言编写控制程序时,单片机是没法直接控制的,它必须用编程软件生成单片机能够识别的二进制代码才可以。我们从单片机下载软件中可以看到这些代码都是按十六进制的方式组成的一系列代码,这些代码最终要以二级制(0和1)的方式输入到单片机内部的程序存储器里面。

  我们再看看单片机芯片里面的电路,这些电路里的最小单元都是由场效应管组成的各种触发器电路,比如常见的由RS触发器等电路。为了说明问题,我绘制了一个程序存储器里面的一个简易的单元电路图。我们知道,当我们编写的程序编译成0和1这些数字时,当这些“0”和“1”按照一个一个数的话,每一个就是一位,当按八位一组算的话就会组成一个字节。当由0和1组成的八位字节送到字线路时,被字线路选中的存储单元T1和T2晶体管就处于闭合导通状态了,这样就会使触发器与位线路相互导通了。这样就把位线路中的信息写入到触发器电路当中了,或者从触发器中读取已经被存储的信息,以上就是通过程序生产的二进制来控制芯片内部的场效应管,进而再控制由场效应管组成的触发器,这样就可以控制芯片内部电路的闭合与分断了。

  另外还有的控制芯片里可以用电容来存储信息,我们根据电容中有没有电荷的存在来判断它存储的是“0”或“1”,它们的工作过程可以从下面的简易图中看出,从图中可以看到当由八位0和1组成的字节被字线路选中时,存储单元的T1场效应管就处于打开状态,这样的话位线路就与电容的电极相通,这样就能够读取信息了。简易图中的场效应管T1我们叫它“传输门”,当位线上加载二进制数据时,电容就会通过T1和位线进行放电了,这样就会在位线上产生微小的电流,芯片通过检测微小的电流有无来确定读出的数据了。

  以上就是我对这个问题的理解与看法,欢迎朋友们参与讨论,敬请关注电子及工控技术,感谢点赞。

  纯手打微机原理了解一下????。

  除了没配图(纯手机码字配图要奔溃的),我觉得没毛病,哈哈。当然了,大神莫怪,我是想用尽可能通俗的语言去解释,毕竟这不是微机原理课,我也不是数电专家。

  1,程序从电路层面看,就是0和1而已。所以本质上,程序只是一串长长的0和1,所以存储程序就是存储0和1。那么在物理上,我们用电压高低表示0和1就可以了。想要存储起来,硬盘就是个好办法,我们可以用磁场的强和弱来表示01,或者用磁极南和北表示01,当然也可以用电场强弱表示0和1,于是科学家就发明了机械硬盘,它是基于磁场来存储的,后来又发明了固态硬盘,它是基于电场来存储的,存储电场高低最好的例子,就是电容。当我们想要读取程序时,就是读取0和1,也就是读取高低电压,或者叫电平,读取高低电平,你简单理解一下,就可以用一排电线,电线的一头连着一个神奇的元件,以机械硬盘为例(基于磁场存储0和1),这个元件可以根据磁盘中磁场的变化,转变成01这种高低电平的变化,然后这些变化的电平通过电线送到另一头的“电平处理机”——硬件。这样子就是读取程序了。

  2,那么,软件如何控制硬件呢?就是说,这些输送过去的0和1如何控制硬件呢?它通过另外一种神奇的东西“门电路”。首先,什么叫控制?控制就是我们希望,从程序里读取过来的0和1,能不能让它变成1和0,具体来讲就是01序列的变换,这个变换也是用门电路来实现。比方说,有个叫“与门”的电路,他有两个输入,一个输出。你给他输入两个1时,他就输出1,其他情况都输出0。像这样子的输入输出过程其实就是序列变换,也可以说你是在用软件控制硬件了。你可能要问,要输入10个1或0怎么办啊?那就把门电路组合起来呀,设法让门电路变成10个输入,甚至更多就可以了。

  3,那“门电路”是如何实现的呢,从物理的角度,他是用晶体管做成的,晶体管他是一种电子开关,这种电子开关就能做出各种各样的“门电路”,比如上面讲的“与门”。简单说,晶体管是利用硅(或锗)这类半导体的一个重要特性来实现门电路,就是硅的参杂特性,利用这个特性可以用一个小电流(或电压)来控制一个硅半导体的“通电”或“断电”,就达到了“电子开关”的目的(实际造电子开关的材料和方法还有很多种,这里是为了举例),而这个小电流就是控制信号。

  4,那么,为什么电路一闭合,程序就工作起来了呢?前面我们说了,程序控制硬件(或者叫硬件处理程序中的数据),就是把01序列不断地输入到硬件中去处理的过程(其实处理你硬盘上数据的东西,它本身也是个程序,软硬件本质上是一样的)。那么,数据到底是怎么输入的呢?试想一下,你搭建了一个闭合电路,开头是一个硬盘数据读取装置——》然后是导线——》硬件(电平处理机)——》输出装置,把变换后的序列显示出来(比如做了个加法,把结果显示出来)。这个电路在闭合时(或者是在断开时)会做一次加法,然后显示结果,但是之后他就一直显示那个结果,如果你想要做10次加法,也就是做个乘法怎么办呢?难道你要手动不停地“打开”和“闭合”电路吗?(也就是我们要不断产生控制信号,才能自动让电路开合,这里的开合理解成高低电平,并不是真的让电路断电,控制信号就像上文说的那个小电流),这时我们就需要另一种神奇的电路:振荡器,他会交替产生高低电平(这里边其实非常复杂,涉及到触发器,锁存器,上升沿下降沿等众多概念,不再展开)。振荡器的震荡快慢用频率表示,而频率高电路变化起来就快,就是说做10次加法的速度就快。这就是为什么你会听说很多时候,cpu频率越高运算速度就越快。

  4,接下来,既然我们造好了门电路,有了振荡器,就可以造各种各样的更复杂电路了,比如通过复杂的门电路组合起来,再加一些其他的基本电路,就可以做出来锁存器(或者叫锁存电路)。听说过CPU的缓存,还有寄存器吧,这些东西就可以用锁存器来造,锁存器相当于内存一样,可以高速存取数据,也就是存取0和1啦,但是计算机的内存并不是用锁存电路来造的,因为内存需要很大,大则几个G,十几个G,而cpu缓存只需要十几到几十M,或者更小,从工程和商业成本的角度,内存是用比cpu缓存速度更慢的元器件来造的。

  5,有了cpu,内存,硬盘,再来个主板,把这些硬件组合到一起就变成电脑咯~~

  我简单泛泛的谈一下。计算机是由晶体管构成,基本的电路原件就是三级管、二极管等等,这些基本原件只有两种状态1和0,1表示电路接通,0表示电路断开。由基本的三级管和二级管组成最小的存储单元,也就是1位,单位是BIT,这个存储位可以显示两种状态1和0,即电路开和关。由8个这样的位组成一个存储单元,这个存储单元称为字节(BYTE)。通过成千上万的1和0,由严谨的逻辑编排形成所谓的软件。举个例子,比如一副图片是怎样显示在显示器中?数字图片由成千上万个1和0组成,CPU从存储器提取这张图片中有规律的1和0,通过显卡投射到显示器的像素点上,从而把图片还原出来,显示器像素点就好比一个灯管,当接收到1(电路开)时像素点就亮,接收到0(电路关)时像素点就灭。同理,由1和0组成的高级软件就会控制电源的开或关,控制电脑关闭或启动诸如此类等等。楼主可能会问CPU为什么会进行加减乘除运算,CPU有一个控制单元,或者称它为逻辑单元(逻辑单元也是由基本的三极管和二极管组成),通过逻辑单元进行加减乘除运算,1(电路开)+0(电路关)=1(电路开),0+0=0(电路关),以此类推,通过二进制运算实现加减乘除。弄懂计算机硬件基本原理,你就不会有疑问了。

  芯片是通过半导体晶体管中的PN结实现电路开关状态变化的,存储程序是通过存储芯片对存储介质进行读写的。我们用的软件,在存储介质上其实就是磁针的不同状态(机械硬盘)或者浮置栅极存储的状态(SSD)。

  众所周知,芯片就是半导体材料做成上亿的晶体管排列组合而成。晶体管最重要的控制开关也就是PN结。由于PN结的存在,才有了半导体的说法。就是正向电压导通,反向电压断开。原理如下:

  ①、半导体的特性

  所谓的PN结就是采用不同的掺杂工艺,通过扩散作用,将P型半导体与N型半导体制作在同一块半导体基片上,在它们的交界面就形成空间电荷区称为PN结。PN结具有单向导电性:

  芯片上的晶体管正是利用这个特性来做的,比如:二极管、三极管、场效应管。

  ②、计算机芯片执行程序

  计算机芯片我们看起来很聪明,但追踪到二进制层面,其实它只是做简单的数学运算(加减乘除)。其他操作都是通过转化成数学运算来实现的。在晶体管里面是如何实现的呢?它就是通过CMOS电路中的与非门电路来实现的。我们都知道与非门可以实现以下功能:

  以上是三个最基本的逻辑运算和晶体管组成的与非门的关系。更多的运算都是通过这三种基本运算组合而来。

  我们购买回来的计算机通常包含了CPU、内存、主板、硬盘、外设等。这些硬件里面都内置了控制硬件的微码。

  有了这些微码程序,计算机硬件就是非常顺畅地协同工作了。当我们接通电源,并按下开机按钮,计算机主板的启动电路会触发主板开始按照微码工作。当自检各硬件正常后,按顺序加载硬盘启动分区的数据,操作系统就放置在这里。操作系统也就顺利被载入内存,开始工作。后面就不多说了,大家都清楚。

  软件在计算机看来就是0和1组成的数据。我们现在用的很多都是固态硬盘,但早年用的是机械硬盘。他们存储数据的方式有些许不同。

  ①、机械盘存储读写数据

  机械硬盘由电机、磁头、盘片和控制电路组成。控制电路负责和主板进行通讯,包括接收请求、读写缓存等。盘片上布满微小的磁针,它是存储数据的最小颗粒,磁针指向北就是1,磁针不指向北就是0。 磁头就是磁感应头,电机负责盘体的转动和磁头的移动。

  ②、SSD盘存储读写数据

  SSD盘主要有主控制器、存储单元、缓存等组成。主控制器有嵌入式处理器,负责做ECC校验、磨损平衡、坏块映射、缓存控制、垃圾回收等等。存储单元主要采用的是NAND闪存,NAND存储数据的方式就是通过控制器对浮置栅极存储进行加压,当浮置栅极存储电荷增多,达到4V以上,则表示已编程,当没有充电或者电压阀值低于4V时,就表示已擦除。同时,已编程的单元,又以相位状态不同或者电压高低不同来表示数据的0,1。

  因为SSD盘不需要机械转动,速度比机械盘快了很多。所以,现在更多人使用的是SSD盘。

  总之,软件在计算机底层就是0和1组成的指令集合。而0和1的指令集合是通过CPU芯片里面的晶体管来实现运算和控制的。晶体管最重要的组件就是半导体PN结,它帮计算机实现了各种逻辑运算。至于存储数据,无论是机械盘还是SSD,最终都是将数据0和1对应物理介质的磁针状态或者浮置栅极存储状态来对应表示。

  感谢阅读!我是数智风,用经验回答问题,欢迎关注评论。

  运行程序的机器处理器拥有自己的指令集,由微程序与之对应,微程序存储在处理器的控制器单元的存储模块。软件代码被编译为机器指令指令,执行机器指令时由操作系统控制送入内存,并等待送入处理器执行。当指令被读入处理器,通过译码指令的操作码部分找到该机器指令对应的微程序入口地址,微指令通过处理器中控制器的微程序控制器译码执行,执行过程中控制器对处理器的算数逻辑单元、内存等硬件芯片发出高低电平信号,配合处理器时钟脉冲信号在逻辑电路的与或非中完成一条指令的执行。软件的执行就是在操作系统的控制下很多条指令的执行。//@过去与今天:代码怎么来驱动电路内部的开或者关呢

  晶圆上的电路是有格式的。有许多按井字型排列的与非门阵列,是按照可编程逻辑阵列烧写过的。

  如上图,这些通路既可以连接、也可以断开,这叫做熔丝技术。用电压控制。烧写器负责执行电路烧写工作。按照事先编写的程序,实现哪些电路是连接的,哪些电路是断开的。这样就形成了不同逻辑的线路。早期的烧写是一次性的,不能更改,现在有了可擦除技术,可以随时更改。

  芯片工作时,根据指令集的指挥,建立起电信号和与非门列阵的联系,按软件的工作指令,控制通路的连接和断开,实现运算。

  一堆人都没回答到要点上,软件是无法控制芯片电路闭合的,软件只是控制芯片电路的闭合顺序,电路的闭合都来自于初始电脉冲,它可以是鼠标点击和移动产生的电信号,也可以是无线电磁波,也可以来自声卡,或者内部计时器,一个程序的运行就是一个初始电脉冲控制第一个晶体管电平变化开始,程序内容则是所有晶体管的动作顺序和逻辑

  大家都知道在数字电路中都是高低电平的,在实际控制中也是一样的,只有两种状态,举个简单例子,当三级管工作在截止和饱和状态时,就相当于一个开关,通过控制集电极的电平即可控制三极管的状态;在数字电路中有个叫做数模转换器的元器件,即输入数字量可以转换成你想要的模拟量。如下图

来源:文章来源于网络,如有侵权请联系我们及时删除。本文由机械网转载编辑,欢迎分享本文!