应用程序设计与实现.ppt

上传人:牧羊曲112 文档编号:4910585 上传时间:2023-05-23 格式:PPT 页数:52 大小:349KB
返回 下载 相关 举报
应用程序设计与实现.ppt_第1页
第1页 / 共52页
应用程序设计与实现.ppt_第2页
第2页 / 共52页
应用程序设计与实现.ppt_第3页
第3页 / 共52页
应用程序设计与实现.ppt_第4页
第4页 / 共52页
应用程序设计与实现.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《应用程序设计与实现.ppt》由会员分享,可在线阅读,更多相关《应用程序设计与实现.ppt(52页珍藏版)》请在三一办公上搜索。

1、第6章 应用程序设计与实现技术,6.1 程序设计技术 6.2 测量数据预处理技术 6.3 数字控制器的工程实现 6.4 系统的有限字长数值问题 6.5 软件抗干扰技术,软件是工业控制机的程序系统,它可分为系统软件和应用软件。所谓应用软件就是面向控制系统本身的程序,它是根据系统的具体要求,由用户自己设计的。软件设计的方法:利用计算机语言自己编制需要的应用程序;利用组态软件。,6.1 程序设计技术,6.1.1 模块化与结构化程序设计 6.1.2 面向过程与面向对象的程序设计 6.1.3 高级语言I/O控制台编程,6.1.1 模块化与结构化程序设计,一个完整的程序设计过程可以用左图来说明。首先要分析

2、用户的要求,这大约占整个程序设计工作量的10%;然后编写程序的说明,这大约也占10%;接着进行程序的设计与编码,这大约占30%左右,其中设计与编码几乎各占15%;最后进行测试和调试,这要花费整个程序设计工作量的40%以上。,1.模块化程序设计,(1)自底向上模块化设计 首先对最低层模块进行编码、测试和调试。这些模块正常工作后,就可以用它们来开发较高层的模块。这种方法是汇编语言设计常用的方法。(2)自顶向下模块化设计 首先对最高层进行编码、测试和调试。为了测试这些最高层模块,可以用“结点”来代替还未编码的较低层模块,这些“结点”的输入和输出满足程序的说明部分要求,但功能少得多。该方法一般适合用高

3、级语言来设计程序。,2.结构化程序设计,1966年,C.Bohm 和G.Jacopini证明了只用三种基本的控制结构就能实现任何单入口单出口的程序。这三种基本的控制结构是“顺序”、“选择”、“循环”。如右图所示。,6.1.2 面向过程与面向对象的程序设计,1.面向过程的程序设计及其局限性 过程式程序设计是面向功能的。首先要定义所要实现的功能,然后设计为实现这些功能所要执行的步骤。这些步骤就是过程。编写代码实际上等于分解这些步骤,使每一步直接对应一行代码。这就是过程式编程中的“逐步求精”的过程。这种方式不利于中大型软件的开发与维护,小部分数据或功能的改变会涉及到很多的相关程序。2.面向对象的程序

4、设计 以上两种方法在概念上存在以下主要区别:(1)模块与对象(2)过程调用和消息传递(3)类型和类(4)静态链接和动态链接,6.1.3 高级语言I/O控制台编程,对于PC总线工业控制机,我们以Turbo C为例来说明其访问I/O端口的编程。Turbo C通常有库函数,允许直接访问I/O端口,头文件conio.h中定义了I/O端口例程。例如:a=inportw(0 x210)b=inportb(0 x220)第一条指令表示将端口210H的16位二进制数(一个字)输入给变量a,第二条指令表示将端口220H的8位二进制数(一个字节)输入给变量b。在C语言中,0 x起头的是16进制数。又如:outpo

5、rtw(0 x230,0 x3435)outportb(0 x240,0 x26)第一条指令表示将二字节数3435H输出到端口230H中,第二条指令表示将单字节数26H输出到端口240H中。,6.2 测量数据预处理技术,6.2.1 误差自动校准 6.2.2 线性化处理和非线性补偿 6.2.3 标度变换方法 6.2.4 越限报警处理,传感器把生产过程的信号转换成电信号,然后用AD转换器把模拟信号变成数字信号,读入计算机中。对于这样得到的数据,一般要进行一些预处理,其中最基本的处理有线性化处理、标度变换和误差自动校准。,6.2.1 误差自动校准,定义:系统误差是指在相同条件下,经过多次测量,误差的

6、数值(包括大小符号)保持恒定,或按某种已知的规律变化的误差。特点:在一定的测量条件下,其变化规律是可以掌握的,产生误差的原因一般也是知道的。方法:偏移校准在实际中应用最多,并且常采用程序来实现,称为数字调零。数字调零:在测量时,先把多路输入接到所需测量的一组输入电压上进行测量,测出这时的输入值为x1,然后把多路开关的输入接地,测出零输入时AD转换器的输出为x0,用x1减去x0即为实际输入电压x。除了数字调零外,还可以采用偏移和增益误差的自动校准。,1.全自动校准,采用这种方法测得的V与放大器的漂移和增益变化无关,与V和R的精度也无关。这样可大大提高测量精度,降低对电路器件的要求。,先把开关接地

7、,测出这时的输入值x0,然后把开关接VR,测出输入值x1,并存放x1、x0,在正式测量时,如测出的输入值为x,则这时的V可用下式计算,2.人工自动校准,人工自动校准只测一个标准输入信号yR,零信号的补偿由数字调零来完成。设数字调零后测出的数据分别为xR(接校准输入yR时)和x(接被测输入y时),则可按下式来计算y。,如果在校准时,计算并存放yRxR的值,则测量校准时,只需行一次乘法即可。人工自动校准特别适于传感器特性随时间会发生变化的场合。如常用的湿敏电容等湿度传感器。,6.2.2 线性化处理和非线性补偿,1铂热电阻的阻值与温度的关系 2热电偶的热电势与温度的关系 3孔板差压与流量的关系4气体

8、体积流量的非线性补偿,6.2.3 标度变换方法,在工业测控系统中,如,压力的单位为Pa,流量的单位为m3h,温度的单位为等,这些参数经传感器和AD转换后得到一系列的数码,这些数码值并不一定等于原来带有量纲的参数值,它仅仅对应于参数值的大小,故必须把它转换成带有量纲的工程值后才能运算、显示或打印输出,这种转换就是标度变换。标度变换有各种类型,它取决于被测参数的传感器的类型,应根据实际要求来选用适当的标度变换方法。1线性变换公式 2公式转换法 3其它标度变换法,1.线性变换公式 Y=(Ymax-Ymin)(X-Nmin)(Nmax-Nmin)+Ymin Y表示参数测量值,Ymax表示参数量程最大值

9、,Ymin表示参数量程最小值,Nmax表示 Ymax对应的AD转换后的输入值,Nmin表示量程起点Ymin对应的AD转换后的输入值,X表示测量值Y对应的AD转换值。2.公式转换法 可采用直接按解析式来计算。3.其它标度变换法 可采用多项式插值法,也可以用线性插值法或查表进行标度变换。,6.2.4 越限报警处理,越限报警是工业控制过程常见而又实用的一种报警形式,它分为上限报警、下限报警及上下限报警。如果需要判断的报警参数是xn,该参数的上下限约束值分别是xmax和xmin,则上下限报警的物理意义如下:(1)上限报警 若xnxmax,则上限报警,否则继续执行原定操作。(2)下限报警 若xnxmin

10、,则下限报警,否则继续执行原定操作。(3)上下限报警 若xnxmax,则上限报警,否则对下式做判别;xnxmin否?若是则下限报警,否则继续原定操作。根据上述规定,程序可以实现对被控参数y、偏差e以及控制量u进行上下限检查。,6.3 数字控制器的工程实现,6.3.1 给定值和被控量处理 6.3.2 偏差处理 6.3.3 控制算法的实现 6.3.4 控制量处理 6.3.5 自动/手动切换技术,数字控制器算法的工程实现中,应注意的问题,由以下五部分给出:,6.3.1 给定值和被控量处理,1.给定值处理 给定值处理包括选择给定值SV和给定值变化率限制SR两部分。通过选择软开关CLCR,可以构成内给定

11、状态或外给定状态;通过选择软开关CASSCC,可以构成串级控制或SCC控制。(1)内给定状态 当软开关CLCR切向CL位置时,选择操作员设置的给定值SVL。这时系统处于单回路控制的内给定状态,利用给定值键可以改变给定值。,(2)外给定状态 当软开关CLCR切向CR位置时,给定值来自上位计算机、主回路或运算模块。这时系统处于外给定状态。在此状态下,可以实现以下两种控制方式。SCC控制:当软开关CASSCC切向SCC位置时,接收来自上位计算机的给定值SVS,以便实现二级计算机控制。串级控制:当软开关CASSCC切向CAS位置时,给定值SVS来自主调节模块,实现串级控制。(3)给定值变化率限制 为了

12、减少给定值突变对控制系统的扰动,防止比例、积分饱和,以实现平稳控制,需要对给定值的变化率SR加以限制。变化率的选取要适中,过小会使响应变慢,过大则达不到限制的目的。综上所述,在给定值处理中,共具有三个输入量(SVL,SVC,SVS),两个输出量(SV,CSV),两个开关量(CLCR,CASSCC),一个变化率(SR)。为了便于PID控制程序调用这些量,需要给每个PID控制模块提供一段内存数据区,来存储以上变量。,2.被控量处理,为了安全运行,需要对被控量PV进行上下限报警处理,即:当PVPH(上限值)时,则上限报警状态(PHA)为“1”;当PVPL(下限值)时,则下限报警状态(PLA)为“1”

13、。当出现上、下限报警状态(PHA,PLA)时,它们通过驱动电路发出声或光,以便提醒操作员注意。为了不使PHAPLA的状态频繁改变,可以设置一定的报警死区(HY)。为了实现平稳控制,需要对参与控制的被控量的变化率PR加以限制。变化率的选取要适中,过小会使响应变慢,过大则达不到限制的目的。被控量处理数据区存放一个输入量PV,三个输出量PHA、PLA和CPV,四个参数PH、PL、HY和PR。,7.4.2 偏差处理,偏差处理分为计算偏差、偏差报警、非线性特性和输入补偿四部分,如下图所示。1计算偏差:根据正反作用方式(DR)计算偏差DV,当DR=0,代表正作用,此时偏差DV=CPV-CSV;当DR=1,

14、代表反作用,此时偏差DV=CSV-CPV;2偏差报警:对于控制要求较高的对象,不仅要设置被控制量PV的上、下限报警,而且要设置偏差报警。当偏差绝对值|DV|DL时,则偏差报警状态DLA为“1”。,3输入补偿 根据输入补偿方式ICM状态,决定偏差DVC与输入补偿量ICV之间的关系,即 当ICM=0,代表无补偿,此时CDV=DVC;当ICM=1,代表加补偿,此时CDV=DVC+ICV;当ICM=2,代表减补偿,此时CDV=DVC-ICV;当ICM=3,代表置换补偿,此时CDV=ICV。利用加、减输入补偿,可以分别实现前馈控制和纯滞后补偿(Smith)控制。4非线性特性 为了实现非线性PID控制或带

15、死区的PID控制,设置了非线性区-A至+A和非线性增益K,非线性特性如图所示。即 当K=0时,则为带死区的PID控制;当0K1时,则为非线性PID控制;当K=1时,则为正常的PID控制。偏差处理数据区共存放一个输入补偿量ICV,两个输出量DLA和CDV,两个状态量DR和ICM,以及四个参数DL、-A、+A和K。,7.4.3 控制算法的实现,在自动状态下,需要进行控制计算,即按照各种控制算法的差分方程,计算控制量U,并进行上、下限限幅处理。以PID控制算法为例,当软开关DVPV切向DV位置时,则选用偏差微分方式;当软开关DVPV切向PV位置时,则选用测量(即被控量)微分方式。在PID计算数据区,

16、不仅要存放PID参数(KP或,TI,TD)和采控制周期T,还要存放微分方式DVPV、积分分离值,控制量上限限值MH和下限限值ML,以及控制量UK。为了进行递推运算,还应保存历史数据,如e(k-1)、e(k-2)和u(k-1)。,6.3.4 控制量处理,在输出控制量UK以前,还应经过各项处理和判断,以便扩展控制功能,实现安全平稳操作。1输出补偿:根据输出补偿方式OCM的状态,决定控制量UK与输出补偿量OCV之间的关系,即:当OCM=0,代表无补偿,此时Uc=Uk;当OCM=1,代表加补偿,此时Uc=Uk+OCV;当OCM=2,代表减补偿,此时Uc=Uk-OCV;当OVM=3,代表置换补偿,此时U

17、c=OCV.利用输出和输入补偿,可以扩大实际应用范围,灵活组成复杂的数字控制器,以便组成复杂的自动控制系统。,2变化率限制:为了实现平稳操作,需要对控制量的变化率MR加以限制。变化率的选取要适中,过小会使操作缓慢,过大则达不到限制的目的。3输出保持:当软开关FHNH切向NH位置时,现时刻的控制量u(k)等于前一时刻的控制量u(k-1),也就是说,输出控制量保持不变。当软开关FHNH切向FH位置时,又恢复正常输出方式。软开关FHNH状态一般来自系统安全报警开关。4安全输出:当软开关FSNS切向NS位置时,现时刻的控制量等于预置的安全输出量MS。当软开关FSNS切向FS位置时,又恢复正常输出方式。

18、软开关FSNS状态一般来自系统安全报警开关。控制量处理数据区需要存放输出补偿量OCV和补偿方式OCM,变化率限制值MR,软开关FHNH和FSNS,安全输出量MS,以及控制量CMV。,6.3.5 自动手动切换技术,在正常运行时,系统处于自动状态;而在调试阶段或出现故障时,系统处于手动状态。下图为自动/手动切换处理框图。1.软自动软手动 当软开关SASM切向SA位置时,系统处于正常的自动状态,称为软自动(SA);反之,切向SM位置时,控制量来自操作键盘或上位计算机,此时系统处于计算机手动状态,称为软手动(SM)。一般在调试阶段,采用软手动(SM)方式。,2.控制量限幅 为了保证执行机构工作在有效范

19、围内,需要对控制量Us进行上、下限限幅处理,使得MLMVMH,再经DA转换器输出010mADC或420mADC。3.自动手动 对于一般的计算机控制系统,可采用手动操作器作为计算机的后备操作。当切换开关处于HA位置时,控制量MV通过DA输出,此时系统处于正常的计算机控制方式,称为自动状态(HA状态);反之,若切向HM位置,则计算机不再承担控制任务,由运行人员通过手动操作器输出010mADC或420mADC信号,对执行机构进行远方操作,这称为手动状态(HM状态)。,4.无平衡无扰动切换 所谓无平衡无扰动切换,是指在进行手动到自动或自动到手动的切换之前,无须由人工进行手动输出控制信号与自动输出控制信

20、号之间的对位平衡操作,就可以保证切换时不会对执行机构的现有位置产生扰动。为了实现从手动到自动的无平衡操作无扰动切换,在手动(SM或HM)状态下,尽管并不进行PID计算,但应使给定值(CSV)跟踪被控量(CPV),同时也要把历史数据,如e(k-1)和e(k-2)清零,还要使u(k-1)跟踪手动控制量(MV或VM)。这样,一旦切向自动而u(k-1)又等于切换瞬间的手动控制量,这就保证了PID控制量的连续性。当然,这一切需要有相应的硬件电路配合。当从自动(SA与HA)切向软手动(SM)时,只要计算机应用程序工作正常,就能自动保证无扰动切换。当从自动(SA与HA)切向硬手动(HM)时,通过手动操作器电

21、路,也能保证无扰动切换。从输出保持状态或安全输出状态切向正常的自动工作状态时,同样需要进行无扰动切换,为此可采取类似的措施,不再赘述。自动手动切换数据区需要存放软手动控制量SMV,软开关SASM状态,控制量上限限值(MH)和下限限值(ML),控制量MV,切换开关HAHM状态,以及手动操作器输出VM。,以上讨论了PID控制程序的各部分功能及相应的数据区。完整的PID控制模块数据区除了上述各部分外,还有被控量量程上限RH和量程下限RL,工程单位代码、采样(控制)周期等。该数据区是PID控制模块存在的标志,可把它看作是数字PID控制器的实体。只有正确地填写PID数据区后,才能实现PID控制系统。采用

22、上述数字控制器,不仅可以组成单回路控制系统,而且可以组成串级、前馈、纯滞后补偿(Smith)等复杂控制系统,对于后面两种系统还应增加补偿器运算模块。利用该控制模块和各种功能运算模块的组合,可以组成各种控制系统来满足生产过程控制的要求。,6.5 系统的有限字长数值问题,7.5.1 量化误差来源7.5.2 A/D、D/A及运算字长的选择,6.2.5 量化误差来源,1.量化误差 量化单位q,也就是机内数的最小单位。举例,8位和12位的A/D转换器,在05V时的q通过AD转换可计算出模拟电压x相当于多少个整量化单位,即:x=Lq+,式中L为整数,对于余数(q)可以用截尾或舍入来处理。所谓截尾就是舍掉数

23、值中小于q的余数(q),其截尾误差t为:t=xt-x,式中x为实际数值,xt为截尾后的数值。显然-qt0。所谓舍入是指,当被舍掉的余数大于或等于量化单位的一半时,则最小有效位加1;而当余数小于量化单位的一半时,则舍掉。这时舍入误差为r=xr-x,式中x为实际数值,xr舍入后的数值。显然,-q/2rq/2。,2.量化误差来源,从下图可以看出,产生量化误差的原因主要有以下几个方面:(1)A/D转换的量化效应(2)控制规律计算中的量化效应。(3)控制参数的量化效应(4)D/A转换的量化效应,6.2.6 A/D、D/A及运算字长的选择,1.A/D转换器的字长选择2.D/A转换器的字长选择3.运算的字长

24、选择,1.A/D转换器的字长选择,为把量化误差限制在所允许的范围内,应使A/D转换器有足够的字长。确定字长要考虑的因素是:输入信号x的动态范围和分辨率。(1)输入信号的动态范围 为转换当量(2)分辨率,2.D/A转换器的字长选择,执行机构的最大输入值为umax最小输入值为umin灵敏度为,3.运算的字长选择,由8位或12位A/D变换器采集数据之后,为了保证运算精度,在CPU内几乎毫无例外的至少采用16位字长运算。运算精度不仅取决于字长,而且还取决于采用定点数或浮点数。如果采用浮点数,运算精度可以大大提高。不管采用定点还是浮点数,输入标准数0至1对应A/D转换结果的全0至全1;输出标准数0至1对

25、应D/A转换器数字位状态的全0至全1。,6.4 软件抗干扰技术,1.测控系统软件的基本要求,(1)易理解、易维护,指软件系统容易阅读和理解,容易发现和纠正错误,容易修改和补充。,(2)实时性,要求系统及时响应外部事件的发生,并及时给出处理结果。,(3)可测试性,两方面含义:其一是比较容易制定出测试准则,并根据这些准则对软件进行测试;其二软件设计完成后,首先在模拟环境下运行,经过静态分析和动态仿真运行,证明正确无误后才可投入实际运行。,(4)准确性,算法选择、位数选择等要符合要求。,(5)可靠性,最重要的指标之一,两方面含义:第一是运行参数环境发生变化时,软件能可靠运行并给出准确结果,即软件应具

26、有自适应性;第二是工业环境极其恶劣,干扰严重,软件必须保证在严重干扰条件下也能可靠运行。,2.软件抗干扰研究的主要内容,(1)采用软件的方法抑制叠加在输入输出信号上噪声影响,如模拟输入信号的数字滤波技术;,(2)由于干扰而使程序发生混乱,导致程序乱飞或陷入死循环,采取使程序纳入正规的措施,如指令冗余、软件陷阱、“看门狗”技术等;,(3)发现程序失控后,解决系统恢复正常运行的方法,如重要信息的恢复,系统重入的条件等;,(3)数字滤波器可以根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活、方便、功能强的特点。,6.4.1 数字滤波技术,所谓数字滤波,就是通过一定的计算或判断程序减少干扰在有用

27、信号中的比重。故实质上它是一种程序滤波。,与模拟滤波器相比,有以下几个优点:,(1)数字滤波是用程序实现的,不需要增加硬设备,所以可靠性高,稳定性好。,(2)数字滤波可以对频率很低(如001HZ)的信号实现滤波,克服了模拟滤波器的缺陷。,主要数字滤波算法:算术平均值法、中位值滤波法、限幅滤波法、惯性滤波法,1.算术平均值法,第术平均值法是对输入的N个采样数据xi(i=1N),寻找这样一个y,使y与各采样值间的偏差的平方和为最小,使,由一元函数求极值原理可得:,例:某压力仪表采样数据如下:,序 号采样值,采样数据明显存在被干扰现象(彩色数据)。,采用算术平均值滤波后,其采样值为:,Y=(24+2

28、5+20+27+24+60+24+25+26+23)/10=28,干扰被平均到采样值中去了,3)平均值滤波法一般适用于具有周期性干扰噪声的信号,但对偶然出现的脉冲干扰信号,滤波效果尚不理想。,特点:,1)N值决定了信号平滑度和灵敏度。随着N的增大,平滑度提高,灵敏度降低。应该视具体情况选择N,以便得到满意的滤波效果。,2)对每次采样值给出相同的加权系数,即1/N。在不同采样时刻采集数据受到同样重视。实际上某些场合需要增加新采样值在平均值中的比重,可采用加权平均值滤波法。滤波公式为:Y=R0Y0+R1Y1+R2Y2+RmYm。,2.中位值滤波法,中位值滤波法的原理是对被测参数连续采样m次(m3)

29、且是奇数,并按大小顺序排列;再取中间值作为本次采样的有效数据。,特点:中位值滤波法对脉冲干扰信号等偶然因素引发的干扰有良好的滤波效果。如对温度、液位等变化缓慢的被测参数采用此法会收到良好的滤波效果;对流量、速度等快速变化的参数一般不宜采用中位值滤波法,中位值滤波法和平均值滤波法结合起来使用,滤波效果会更好。即在每个采样周期,先用中位值滤波法得到m个滤波值,再对这m个滤波值进行算术平均,得到可用的被测参数。也称为去脉冲干扰平均值滤波法.,例:某压力仪表采样数据如下:,序 号采样值,采样数据明显存在被干扰现象(彩色数据)。,采用去脉冲干扰平均值滤波后,其采样值为:25,对1、2、3次采样中位值滤波

30、后值:24对4、5、6次采样中位值滤波后值:27对7、8、9次采样中位值滤波后值:25,3.限幅滤波法,由于大的随机干扰或采样器的不稳定,使得采样数据偏离实际值太远,为此采用上、下限限幅,即 当y(n)yH时,则取y(n)=yH(上限值);当y(n)yL时,则取y(n)=yL(下限值);当yLy(n)yH时,则取y(n)。而且采用限速(亦称限制变化率),即 当|y(n)-y(n-1)|y0时,则取y(n);当|y(n)-y(n-1)|y0时,则取y(n)=y(n-1)。其中y0为两次相邻采样值之差的可能最大变化量。y0值的选取,取决于采样周期T及被测参数y应有的正常变化率。因此,一定要按照实际

31、情况来确定y0、yH及yL,否则,非但达不到滤波效果,反而会降低控制品质。,4.惯性滤波法,RC滤波器的传递函数是 其中Tf=RC,它的滤波效果取决于滤波时间常数Tf。因此,RC滤波器不可能对极低频率的信号进行滤波。为此,人们模仿上式做成一阶惯性滤波器亦称低通滤波器。即将上式写成差分方程 稍加整理得 其中,称为滤波系数,且01,Ts为采样周期,Tf为滤波器时间常数。根据惯性滤波器的频率特性,若滤波系数越大,则带宽越窄,滤波频率也越低。因此,需要根据实际情况,适当选取值,使得被测参数既不出现明显的纹波,反应又不太迟缓。,6.4.2 开关量的软件抗干扰技术,2.开关量(数字量)信号输出抗干扰措施

32、在软件上,最为有效的方法就是重复输出同一个数据。只要有可能,其重复周期尽可能短些。输出设备是电位控制型还是同步锁存型,对干扰的敏感性相差较大。前者有良好的抗“毛刺”干扰能力,后者不耐干扰,当锁存线上出现干扰时,它就会盲目锁存当前的数据,也不管此时数据是否有效。,1.开关量(数字量)信号输入抗干扰措施 干扰信号多呈毛刺状,作用时间短,利用这一特点,我们在采集某一开关量信号时,可多次重复采集,直到连续两次或两次以上结果完全一致方为有效。,6.4.3 指令冗余技术,CPU受干扰后,往往将操作数当作操作码执行,造成程序混乱。,当程序弹飞到一单字节指令上时,便自动纳入正轨;,当程序弹飞到一双字节指令上时

33、(操作码、操作数),有可能落到操作数上,从而继续出错;,当程序弹飞到一三字节指令上时(操作码、操作数、操作数),因其有两个操作数,从而继续出错机会更大。,应多采用单字节指令,并在关键地方人为插入一些单字节指令,或将有效单字节指令重复书写,提高弹飞程序纳入正轨的机会,这便是指令冗余。,实现方法:,在一些对程序流向起决定作用的指令之前插入两条NOP指令,以保证弹飞的程序迅速纳入正确的控制轨道。这些指令有:RET、RETI、LCALL、LJMP、JZ/JNZ、JC/JNC、JB/JNB、JBC、CJNE、DJNZ等。,如:利用减法比较两无符号数的大小程序(数放A、B中):,无指令冗余程序:,CLRC

34、SUBBA,BJCBBIGBBIG:NOP.,有指令冗余的情况:,CLRCSUBBA,BNOPNOPJCBBIGBBIG:NOP.,指令冗余缺点:降低指令执行效率,指令冗余特点:,1.降低正常程序执行的效率;,2.可以减少程序弹飞的次数,使其很快纳入程序轨道,使CPU按“操作码、操作数”方式运行,但不能保证失控期间不干坏事,更不能保证程序纳入正常轨道后太平无事。因为弹飞的程序已经偏离正常顺序,做了不该做的事。解决这个问题还要靠软件容错技术,减少或消灭程序误动作。,3.指令冗余使弹飞程序安定下来是有条件的,首先弹飞的程序要落到程序区,其次必须执行到冗余的指令。当程序弹飞到非程序区时,或弹飞的程序碰到冗余指令前已形成死循环,都会使冗余指令失去作用。,6.4.4 软件陷阱技术,所谓软件陷阱,就是一条引导指令,强行将扑获的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序。,软件陷阱由三条指令构成:NOPNOPLJMP ERR;ERR错误处理程序入口,软件陷阱安排在下列四种地方:,1)未使用的中断向量区2)未使用的大片ROM区3)表格区尾部4)程序区,本章节课程到此结束!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号