软件到底是怎样控制硬件的?

如题所述

首先,硬件是由各种“门”组成,“门”是个术语,不懂没关系,可以把一个“门”看成是一个多米诺骨牌,它被推倒后能把下一张骨牌推倒。
看过多米诺骨牌视频的都知道,骨牌的巧妙摆放再配合各种机关的话,在推倒后是可以实现许多种功能的,比如演奏音乐,控制灯光甚至开动汽车啦等等。
假设在一个大房间里,已经摆放了这样一堆堆的多米诺骨牌,每一堆骨牌被推倒后,都能实现出特定的功能,但人是不能进来这个房间的,这些骨牌只能靠房间里的一个机械手来推倒。
然后,在房间外面,摆放着有限的几块骨牌,人可以按照不同的排列组合推倒这些骨牌,然后房间里面就会有个机械手按照人的想法来推倒不同的骨牌,实现各种功能。
但是,有时候,人想实现的功能太复杂了,光靠控制机械手推倒骨牌的话,要推倒成千上万块骨牌,太累,那么一种思路是:在房间里事先摆放更多,更复杂的骨牌,这叫增加硬件,但这样很不灵活,只能解决部分问题。
另一种思路是:人每次都临时控制机械手在房间里摆放新的骨牌,然后这些骨牌被推倒后,就可以一次性触发更多的骨牌被推倒。
但实际上房间里并没有新的骨牌,房间里已经摆放了一大堆专用的骨牌,然后机械手只是重新修改了这些骨牌摆放的位置而已。
这个房间,就是一台电脑,那些已经摆放好的骨牌,就是硬件,按照你的意愿推倒一张骨牌,造成连锁反应,实现你想要的功能,叫做控制,通过机械手重新摆放的骨牌,就是软件。那一堆控制机械手的多米诺骨牌,就是你的鼠标键盘。
控制原理解析:
程序本身就是高低电平的组合;它通过在CPU上执行来模拟各种决策过程;同时,计算机就是一堆开关;那么,通过指令向某些地址写出数据(访问特定地址是通过各种寻址机制/指令完成的,归根结底也可以说是通过开关切换,改变了电路拓扑),就等于开启/关闭了对应地址上的某个开关;这个开关可以是类似CPU内部那样的一组三极管,也可以是通向另外一个继电器的信号线——这个信号就促使继电器闭合,于是电机导通。
就好象人开汽车一样,神经发出的微不足道的电脉冲经过肌肉放大,影响了涉及数百甚至数千马力的能量洪流的发动机/变速箱的运转,然后汽车就开走了。
计算机也一样:它通过向控制特定地址上的开关输出0/1(高低电平),就可以通过事先准备的物理设施驱动诸如航模电机、舵机等等机构,这就完成了航模控制。
完整的控制回路甚至可以是:
航模上的传感器采集飞行姿态、地形、位置等等数据(最终转换成高低电平构成的信号)----信号通过某些端口送到CPU-----CPU执行程序,程序读取传感器发来的信号,决定下一步的行动-----经过程序的智能判断后,通过控制特定地址上的开关(前面提过,向这个地址发一组高低电平构成的数据就行了),驱动诸如航模电机、舵机等等机构,完成航模控制。
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-05-10

用生动的示例来讲解,程序到底是如何控制硬件的

相似回答