软件是怎样控制硬件的(代码是如何控制硬件的)
admin
2023-06-24 13:12:11

看了别人的解答,可以说没有一个能说的明白也让别人听的明白的。是,软件是通过处理器控制硬件的,处理器里有各种各样的功能,这样软件就可以控制硬件了?说来说去都只是说了个寂寞。让我来说一个容易懂点的版本吧。

首先,要理解二进制就得先提一个设备就是电报,我们在电影里都看到过,滴滴答答的一串信号发射出去对方就知道你要干什么了,当然这需要发射端和接收端有一个同样的密码本,有了密码本再有数字就可以得到文字和语句就知道要干什么了。这个容易理解吧,比如一串数据发射出去了,对号之后后方就知道了你发过去敌人的名单,或者知道坐标点,命令后方向敌方坐标开火!

其实计算机技术很多地方都是源自电报,只不过是CPU固化了更强大的密码表和功能表,这样在接收到相应的指令CPU就可以按照指令做出相应的动作。也就你买处理器时经常会提到的“指令集”,键盘上每一个键位都对应一个数字,输入这些数字组成一串数字就可以找到处理器里面的某一个零件,然后再输入这个零件可以执行的指令让这个零件替你办事。打个比方,就好比你在手机上输入正确的电话号码就可以找到你想找的那个人,然后那个人留言不跟你说话,人家说:“查话费请按1,交话费请按2,购买流量包请按3…)说白了最简单的软件控制硬件就是指令对照过程,有了指令和指令集处理器就知道你想干什么,比如命令处理器里的某一个部件工作,数字的加减乘除运算,图像的上下左右移动…。

计算机相比电报增加了步进和语句循环功能,这个怎么比喻?就好比你一个命令一个命令的下发效率比较低,所以你干脆把你全套的命令一行一行的全部都写在纸上(相当于硬盘里),这样接受端(处理器)就会逐一的读取并执行命令,比如控制小车向前先走5米,向左转90度,再走5米,再向左转90度,然后加一个语句循环,这样小车就可以围着一个5米的方框无限转圈圈。

当然处理器里除了指令集还集成有各种各样的功能电路,比如数字的加减乘除运算比较电路,影音处理显示电路,微积分电路,读写控制电路…。这些功能电路都对应指令集里面的号码,随时等待指令点到自己的名字,指令招呼张三,张三喊“到”,指令让张三隔0.5秒输出一个高电平(数字1),张三说好嘞!然后张三的输出引脚接了一个指示灯就会一闪一闪的工作…。

当然处理器里不只有一个张三,还有李四,王五,麻子六…比百家姓上面的姓氏还多,他们各有各的本领,有了指令就可以指挥这些电路协同有序的进行工作。上百亿个晶体管组成了庞大的功能各异的队伍,这些部队协同作战完成程序和操作者下达的命令。从而实现软件控制硬件的过程。

我觉得你是想问,软件是怎么控制一个设备,如机器人、数控机床,让它们执行设定的动作的。不论怎么变化,软件控制硬件,都离不开计算机的中央处理器CPU,或者单片机MPU。因为只有处理器才能把控制软件的指令,传递到接口电路,最终控制目标设备的动作。

以下介绍几种我用过的控制方式。

通过I/O口进行控制

CPU有GPIO接口,MPU有P0~P4及更多的IO接口。这些接口,可以通过软件设置,做为输出、输入口。

软件是怎样控制硬件的(代码是如何控制硬件的)图1

从CPU,MPU出来的控制信号,一般不能直接控制目标对象,比如最简单的LED灯,电机等,必须经过一些锁存芯片、光电隔离芯片、继电器、接触器、信号驱动等电路,才能控制目标的动作。一些成熟的电机驱动器,也可直接接收从处理器出来的输出信号,只要用一些芯片进行信号转换即可。

软件是怎样控制硬件的(代码是如何控制硬件的)图2

通过内存扩展地址,用可编程芯片如PLC,CPLD,FPGA等对目标进行控制。

有的控制对象需要几十、几百个控制点,这样P口就不够用了。

解决的方法,就是用扩展外部存储器地址的方法,如使用E200H,E300H......这样的扩展地址线,通过PLC、CPLD、FPGA等可编程器件,可以扩展出需要数量的控制输出。

软件是怎样控制硬件的(代码是如何控制硬件的)图3

很多硬件从业者,很擅长用PLC、CPLD、FPGA等芯片,以至于单片机最直接的P口被束之高阁,只完成看门狗Watchdog最简单的监视作用。

软件是怎样控制硬件的(代码是如何控制硬件的)图4

通过CAN,EtherCAT,ISA,PCIE等总线接口传递控制指令

随着外部控制器件的日益智能化、处理器化,各种总线应运而生。

如上位机为高速的PC机,下位机为控制各种动作的单片机,那么PC104的ISA总线接口、PCIE接口、CAN总线接口等,就是最好的选择。或者下位机直接就是一个支持EtherCAT总线的电机驱动器。

软件是怎样控制硬件的(代码是如何控制硬件的)图5

通过这些总线接口,可以快速地传递上位机的控制信号到控制单元中。

软件是怎样控制硬件的(代码是如何控制硬件的)图6

总结:软件对硬件的控制,有很多种实现方式,IO直接控制;扩展地址外加PLC,CPLD,FPGA可编程芯片控制;CAN,EtherCAT,ISA,PCIE等总线接口控制方式。根据需要,灵活运用。

我们国家自动控制的实力还是很历害的,控制系统也是非常可靠智能的,相信你的所有想法都会通过控制系统变为现实。

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...