单片机控制系统是由单片机与其他器件和装置适当连接起来的硬件,在软件的操作下协调运行以执行预定的测量或测量控制任务,这些硬件和软件的总体就是单片机测量和控制系统,简称单片机控制系统。顾名思义,单片机测量系统的功能是对某些参数进行测量;单片机控制系统的任务是对生产过程或某些物理量进行控制。要控制就必须要测量,因此,可以认为单片机测量系统是单片机控制系统的一个特例。
像一般的计算机系统一样,单片机的控制系统也是由硬件和软件组成的。硬件是指单片机、扩展的存储器、输入/输出设备、控制设备、执行部件等组成的系统,软件是各种工作程序的总称。硬件和软件只有紧密配合,协调一致,才能组成高性能的单片机控制系统。
1.单片机控制系统的硬件组成
1)单片机测量系统
单片机测量系统是以单片机为核心,单纯以“检测”或“测试”为目的的系统。它是单片机控制系统的一个特例。一般用来对被测过程中的一些物理量进行测量并获得相应的精确测量数据,因此,又称为数据采集系统,其基本组成框图如图1-5所示。
图1-5 单片机测量系统框图
被测参数经传感器转换成模拟信号,再由模拟输入通道进行信号调理和数据采集,转换成单片机要求的数据格式送入单片机进行必要的处理,再送到磁带机、打印机等数据记录器记录下来,这样就得到了供进一步分析和处理的测量数据记录。
为了对测量过程进行集中实时监视,模拟输出通道将单片机处理后的测量数据转换成模拟信号在示波器或图示仪等模拟显示器上显示出来。在某些对生产过程进行检测的场合,当被测参数超过规定限度时,单片机还将及时启动报警器发出报警信号。
目前,在野外现场广泛使用的各种存储式测试记录仪就属于这一类系统,只不过结构比较简单(一般只包括传感器、模拟输入通道、单片机和数据记录仪几部分)。
2)单片机开环控制系统
单片机开环控制系统是以单片机为核心,单纯以程序控制为目的的系统,其组成框图如图1-6所示。
图1-6 单片机开环控制系统框图
程序控制的基本思想是将被控对象的动作次序和各类参数输入单片机,单片机执行固定的程序,一步一步地控制被控对象的动作,以达到预期的目的,其实质上是一种顺序控制,如机床的单片机控制,预先输入切削量、裕量、进给量、工件尺寸和加工步骤等参数,运行时由单片机控制刀具的动作,最后加工出成品。
3)单片机闭环控制系统
单片机闭环控制系统是以单片机为核心的测控一体化系统,这种系统对被控对象的控制是依据对被控对象的测量结果而定的,其基本组成框图如图1-7所示。
图1-7 单片机闭环控制系统框图
图1-7左侧的输入、输出通道,称为过程通道,它是单片机与测控对象的连接通道,分为模拟量输入通道、模拟量输出通道、数字量输入通道和数字量输出通道,其中模拟量输入通道和数字量输入通道统称为前向通道,模拟量输出通道和数字量输出通道统称为后向通道。
2.单片机控制系统的软件组成
单片机控制系统的软件指的是它的全部程序,包括系统软件和应用软件两大类。
1)系统软件
购置的现成计算机,在计算机出厂之前,已把系统软件装入到 ROM 中,计算机的用户只需熟悉和使用,不能改变。对于自行设计的微机化智能系统,系统软件也需要自行设计,然后固化在EPROM等类似的存储器中。系统软件包括以下内容。
(1)监控(监督)程序或操作系统
监控(监督)程序是一种低级计算机的管理程序。它的功能是扫描键盘,实现人机对话,接收用户程序,显示、调试、修改用户程序,显示和修改存储器中的内容。通电后立即进入监控(监督)程序,各种程序均在监控程序控制下运行。一般在设计单片机智能化仪器、仪表及设备时要自己编制监控(监督)程序。同时在编制用户程序时,可以调用监控程序中的一些子程序,节省用户应用程序的存储空间。
操作系统是一种微型计算机的大型管理程序,是在监控程序的基础上进一步扩展许多控制程序而形成的,其主要功能是实现人机对话,管理微型机、存储器、操作台、外部设备(磁盘驱动器、CRT、打印机及其他外围设备)、文件和作业进程。它控制各种软件,例如,汇编程序、解释程序、编译程序、I/O 驱动程序、连接程序等。不同的计算机系统可能有不同的操作系统,如CP/M、CDOS等。
(2)汇编程序、解释程序和编译程序
汇编程序用于把汇编语言程序翻译为计算机能够识别和执行的机器语言程序(也称目标程序)。例如,MCS-51单片机仿真器里有MCS-51汇编程序,用户可以把自己用汇编语言编写的程序送入仿真器,然后把它变为机器语言程序,再把这些机器语言程序固化到 EPROM中,EPROM 中的程序就可以在用户系统中执行。解释程序能把用某种程序设计语言编写的源程序,翻译成机器语言的目标程序,此目标程序是可执行程序。解释程序翻译一句执行一句。编译程序能把用高级语言编写的源程序,编译成某中间语言或机器目标程序。
2)应用软件
单片机实时控制系统的应用软件是服务于实时控制的程序集合,由单片机实时控制系统的设计者编写。因控制系统的复杂程度和功能差别很大,所以应用软件的差别也很大。应用软件的设计应当留有余地、易于扩展和更改。为此,应用软件宜采用模块化结构,一个程序模块就是一个子程序。主程序的主要任务是调用这些子程序,总的来说,这些子程序可分为两类,分别为通用软件和专用软件。
(1)通用软件
不管控制规模有多大,按什么规律控制,也不管被控对象是什么,一般情况下,有些软件常会被用到,这些软件称为通用软件。例如,数制转换程序,包括二进制数与 BCD 码之间的相互转换程序;运算程序,包括加、减、乘、除、乘方、开方、函数运算等;数字滤波程序,用于对数据进行处理;工程量程序,在工程显示时往往用到这类程序;查表程序,如查找热电势对应的温度值;报警程序。
(2)专用软件
专用软件是针对某一具体控制系统和不同控制规律编制的程序,主要有数据采集程序、A/D 转换程序、D/A 转换程序、键盘扫描程序、显示程序、各种控制算法程序(如 PID 程序、纯滞后补偿算法程序、自适应控制程序等)。