03.04 软件控制硬件的物理学原理是什么?

方法论哲学


硬件驱动的本质其实是电驱动,而软件代码编译之后其实全部是二进制数字——0和1,故要理解软件控制硬件的原理就要理解0和1如何在软件和硬件中运行

1.0和1的表示——逻辑电平

数字电路中,电压的高低用逻辑电平来表示。例如在TTL门电路中,

  • 大于3.5伏的电压规定为逻辑高电平——表示数字1
  • 小于0.3伏的电压规定为逻辑低电平——表示数字0

2.电路的基本元件——晶体管

晶体管,主要有二极管跟三极管。

  • 二极管,一种具有两个电极的装置,只允许电流由单一方向流过。
  • 三极管,是一种控制电流的半导体器件,作用是把微弱信号放大成幅度值较大的电信号。

3.电路的逻辑运算基础——三种几门逻辑门

下图为三种基本的逻辑门以及他们对应的晶体管电路图

三种门的基本运算称为布尔运算,逻辑与和或门接受两个电平,非门接收一个电平,经过逻辑门后电平变化如下图

其他诸如异或门、与非门等复杂门电路由几门电路组成。例如下图为一个一位加法器。

以一位加法器为基础,可以构建八位加法器

例如计算2+3为例

十进制数在数字电路中先ASCII编码成二进制说00000010和00000011,两者通过八位加法器进行加法运算和进位,最后输出00000101,再ASCII解码成十进制数5,输出。

4.指令集

芯片便是以加法器等其他指令为基础而构建而成的一个计算处理芯片。每个芯片所含有的所有逻辑运算统称为指令集。常见的指令集有电脑端使用的Intel的X86指令集,以及手机使用的ARM的ARM指令集,细分类不展开。这些指令集是嵌入在芯片中的

5.驱动程序

指令集嵌入在芯片中,人是无法调用的,则开发驱动程序,驱动程序的目的是向外给出一个接口,可以供外部其他部件调用本芯片的指令集进行运算处理。

6.软件编程

采用高级语言编写各种程序代码,比如java语言、C语言、C++语言等

7.程序编译

所编写的程序代码通过编译器编译成二进制0和1组成的一段指令,然后这些指令通过与驱动程序匹配,满足匹配条件后将指令传入指令集中进行运算,从而驱动硬件运行,如果还有输出,则再将由0和1的运算结果进行解码(与编码相对于的解码方式,如ASCII Unicode等),结果输出在显示器上,可以查看输出结果。


有初有终


一句话,没有真正的软件,所谓软件本质也是物理存在的,储存在磁盘上就是实实在在的磁场,储存在内存上就是实实在在的电荷。

整个计算机就是一个状态机,它可以在硬件设备也就是电路上记录状态,不同的状态遇到不同时间的不同的输入设备的硬件干预又产生不同的状态。

打个比方来说,假设两部完全一致的手机(指的是状态一致,比如内存啊,闪存啊,各个硬件组成部分,操作系统啊等等),很明显,两部刚刚买的同款新手机就符合这样的条件,两部手机启动时表现是一样的,但是遇到输入的干预(比如点击屏幕产生的信号)会改变机器的状态。输入不同,改变后的状态也不同。本质上来说计算机就是一个精心设计的状态机,而程序的工作就是响应各种输入然后改变状态,当然了再精心设计也无法完全设计所有的状态,这时候不可预见的状态就可能导致系统崩溃,比如Windows出现蓝屏死机。

从底层学习一下数字电路就理解了,精心设计的数字电路就是计算机。

不存在硬件软件之分,本质上都是实实在在的物理存在,软件操作硬件,在电路层面就是电信号操作电信号,软件操作硬件的结果就是电信号在电路中相互作用的结果。


一只漂流的鲸鱼


硬件也就是机器有它自己的语言,也非常的简单。因为机器的每个部件的功能都是固定的,所以要完成一个复杂的动作,需要把相关的部件按一定的规律有序完成才行,这其中有多复杂想想也应该知道。机器能接受的指令就只有有2个,固定一个动作,做或不做,在计算机中是以2进制标记的,也就是1和0,指令为1,就做该动作一次,指令为0,就不做该动作。大量固定的动作根据一定的规律有序的成功做完,就组成软件中所需要完成的一个功能。

在软件中,需要编程语言,这些编程语言都是高级语言,这些高级语言是为了我们更容易编译操作而编写的,硬件是看不懂的,是需要经过翻译,翻译成为机器语言,然后计算机才看的懂,进而执行简单的操作。无数简单的操作就成了软件所需要的功能,然后通过机器展示出来。

汇编语言是底层语言,直接与硬件接触。是非常麻烦的,代码量大,工作量也吓人,但是,功能和运行速度也强悍的吓人,任何高级语言都无法比拟,算是软件开发真正的核心技术所在。

我们现在所说的软件编程,用的就是比计算机语言高一层的语言,也就是高级语言,像如今流行的语言C/C++用这些高级语言几行代码展示的功能。

硬件是不可能完成你所有想要的功能的,软件可以作为一种翻译语言沟通我们人类的想法和机器,从而实现我们人类的想法。


银河密探


分割时间,将事件/任务排序。时间最小单元是硬件物理特性决定。


woodMq


软件经过编译最终变成有电(1)和无电(0),控制电路工作


分立元件


软件控制硬件的物理基础是多控开关的导通和截止顺序。也就多种功能开关对一个执行元件按照人的意愿进行接通和断开。


如影随形155663547


根本原理是:信息通信技术。

1,网络(无线,有线),硬件装有服务器,控制端安装软件客户端,发送指令。

2,蓝牙

3,红外

4,NFC

都是预先规约好通信协议,根据协议进行软件实现。


码向未来


软件首先是用高级语言写成的,高级语言表示的是软件的行为。语言会首先被翻译成汇编之后翻译成机器语言,所谓的机器语言就算01序列了。如果是对于具有CPU的系统来说,高级语言最终会被翻译分解成微指令,CPU会负责执行这些微指令,这些微指令包含了硬件的行为,包括读写等等。

物理学原理就是门电路的通断,通过复杂门电路之间的通断关系来执行微指令组成的指令序列,以此来保证软件命令被正确执行。


霜之哀伤Frost


软件接收到操作指令后将其转换成接口io操作,具体点就是控制接口线路电平发生高低变化,一般是用驱动程序来实现,也可以通过汇编直接操作io端口,硬件设备检测到接口电平变化后,放大信号,然后根据协议执行相应的操作,例如让机器人抬胳膊。由于设备速度比cpu速度慢很多,两者通常通过中断机制进行交互,能够有效提高工作效率!


带南的城市


在内置石英表的带动下,电信号在集成电路中不断跳动,因为电路有一定的记忆性,它可以修改通路结构,所以每次跳动得到不同的响应。前后之间具有逻辑性。因此就可以把结构逻辑变成过程逻辑。这就是计算机的自如性和操控性。。把其中任何一段,导出来,驱动的电动机构,就实现了控制硬件。

软件,是电路中的长期记忆部分。是长期记忆内容。参与调整通路的结构。

传播科学,提高智慧,很容易,老年人阻挡不了,老年人好好享福才好,共产党为人民服务!


分享到:


相關文章: