《单片机原理与应用技术》课件1第7章_第1页
《单片机原理与应用技术》课件1第7章_第2页
《单片机原理与应用技术》课件1第7章_第3页
《单片机原理与应用技术》课件1第7章_第4页
《单片机原理与应用技术》课件1第7章_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7.1单片机应用系统的抗干扰技术7.2单片机开发系统7.3单片机应用系统的总体设计7.4小结习题与思考题第7章单片机开发应用技术7.1单片机应用系统的抗干扰技术7.1.1软件抗干扰

1.指令冗余工业现场的干扰大体可以分成以下三类:

(1)场干扰,通过电磁场的辐射进入单片机系统。要克服此类干扰,可以使用电磁屏蔽、可靠接地或高频滤波来解决。

(2) I/O通道干扰,通过与单片机相连的系统I/O通道进入。

(3)供电电源波形或波形畸变干扰,由单片机的供电电源引起。当单片机受到后面两种干扰时,最严重的情况莫过于将操作数误当作指令操作码来执行,从而引起混乱。如果误当作条件转移指令的操作码,则程序将“自动转移”到人们不知道的地方。这种情况称为“跑飞”。如果程序跑飞到一条单字节指令处,它还能自动纳入正轨。如果程序跑飞到双字节或三字节指令处,那极有可能继续把另一操作数当作另一操作码执行,从而一直错误下去。由此看来,在编写程序时应当多使用单字节指令;或者在一些地方人为插入“NOP”指令;或者将有效单字节指令多重复写几次。这种使用“NOP”或重复单字节指令的方法称为指令冗余。在正常的程序中插入NOP指令或将单字节指令重复几次,是否会影响到程序的执行速度呢?事实上,NOP指令和单字节指令的执行是需要时间的,但它们需时都不长,通常仅为1个周期数。对于微控制领域所存在一些机械操作,这点时间是微不足道的。通常也只在正常程序中那些起关键作用的指令前或对系统工作状态产生重大影响的指令前,插入两条NOP指令,对整个程序并不会形成很大的负面影响。指令冗余技术已被广泛采用,虽然它能有效减少程序跑飞的次数,使程序在受到干扰后能很快恢复到正常轨道,但它并不能保证多字节指令失控时出现的差错,更不能保证程序恢复正常轨道以后不再出现新的差错。由于干扰的随机性,使得指令冗余在一些情况下部分或者全部失去作用。

2.数字滤波进入I/O通道上的噪声干扰,将会随机地叠加在被检测信号上,形成数据采集过程中的误差。数字滤波可以有效提高数据采集精度。数字滤波的实现又分硬件实现和软件实现。其中硬件滤波可靠性高,产品规范;软件滤波是一种算法,需要对采样值多次采样,取平均值或程序判断去掉大偏差值。

3.软件陷阱当数字滤波不能最终有效地抑止住干扰时,使用指令冗余承认了干扰的存在并希望程序跑飞以后能够安定下来,重新回到正确的运行轨道。但是,把这种良好的愿望变为现实需要满足两个条件:一个条件是跑飞的程序必须落在程序区内;第二个条件是必须执行到冗余指令。显然干扰的存在和满足这两个条件之间没有必然的联系,这就有了使用指令冗余但干扰依然防不胜防的问题。为了解决这一类问题,提出了软件陷阱技术,即使用一条引导指令强行将捕捉的程序引向一个指定地址,在该地址处设置有一条专用于处理程序出错的指令或一段专用处理程序。软件陷阱实质上是一条无条件转移指令,为了增加捕获效果,通常还在它的前面增加几条NOP指令。假设指定地址或专用处理程序入口地址为ERROR,软件陷阱由如下4条指令构成:NOPNOPNOPLJMPERROR其中第1条NOP指令使用了指令冗余技术,后3条指令是形成软件陷阱必不可少的。使用软件陷阱的一种有效方法是在非程序区采用拦截措施,当程序跑飞进入非程序区时,使其进入陷阱,并用LJMP#0000H使程序返回初始状态。要想达到此目的,可将LJMP#0000H指令填满非程序区。由于MCS-51系列单片机的指令最长为3个字节,这时,如果程序将NOP前面的一个数据当作3字节指令执行,在经过了2个NOP指令后,也会执行到LJMPERROR而返回。由此可见,51系列单片机的软件陷阱只需3条指令便可完成:2条NOP指令和1条LJMPERROR指令。而MCS-96系列单片机最长的指令有7个字节,LJMP指令之前应当至少有6条NOP指令。软件陷阱指令放置的地点应当是在EPROM区内未使用的单元,或未使用的中断向量区,或存储器表格区后正常程序执行不到的地方。这样,软件陷阱指令的设置不会影响正常程序的执行。

EPROM中未使用单元的初始值为0FFH,该值恰好是传送指令MOVR7,A的机器码,程序跑飞一旦落入这个区域,将依次重复执行该指令直至EPROM最后一个单元。因此,在该区域内每隔一段若干单元设置一处软件陷阱,就能锁定跑飞的程序并正确返回。软件陷阱指令还应该在未使用的中断向量区内设置,这是因为干扰有可能激活未开放的中断而误引起中断申请。在中断服务程序执行过程中,程序也可能受到干扰而跑飞,此时因中断激活标志已经被置位,不能响应同一级中断或低一级中断。为了解决这个问题,可启动软件陷阱捕获程序,将跑飞的程序转入清除中断激活的专用处理程序。设入口地址为ERROR,程序如下:为了提高跑飞程序的捕获率,程序存储器芯片选择信号在地址译码时采用全译码法,避免地址重叠区,固定未用空间,就可以有效利用软件陷阱捕捉跑飞程序。此外,在不增加存储芯片成本的情况下,尽量选用大容量的EPROM,这样在程序ROM存储容量空间足够大时,就可以在每条跳转指令后面设置软件陷阱指令:7.1.2硬件抗干扰

1.采用隔离技术抑制通道干扰在输入/输出通道中采用隔离技术,除了能抑制噪声外,还能有效抑制尖脉冲。常用隔离器件有光电耦合器、纵向扼流圈、隔离变压器等。其中光电耦合器使用最多。光电耦合器能将单片机系统与各种开关、传感器、执行机构隔离开来,由于与其它用电设备隔开,避免了电气上的直接联系,这样其它设备在输入/输出通道上产生的干扰信号将有效被阻止住。光电耦合器适宜模拟通道。对于数字通道,用继电器隔离输出较好,因为继电特性更加符合数字传输的实际。隔离部件通常设置在信号源、传感器、模/数转换、数/模转换装置附近,这种场合下的隔离效果比较明显。

2.采用滤波技术抑制高频干扰硬件电路增加RC低通滤波器,将它接入低频放大器中,能够有效抑制高频干扰信号。

3.采用屏蔽技术抑制电磁场干扰用金属屏蔽罩或金属外壳包装整机或部分元器件,再将金属屏蔽罩或金属外壳接地,能有效抑制电磁场干扰。在单片机系统内,CPU工作时产生的电磁辐射有可能影响系统内其它电路,因此有必要对CPU芯片采用屏蔽措施。

4.采用良好接地抑制噪声单片机应用系统内有各种接地线:数字地(数字电路的公共线)、模拟地(模拟电路的公共线)、交流地、信号地和屏蔽地(仪器外壳与金属件的屏蔽接地线)。各种性质不同的地线要分开布置,各自连成一线并在一点上与电源地连接。接地线要有足够宽度,印刷电路板上的地线应接成网状。强信号地线和弱信号地线要分开。仪器外壳与金属件的屏蔽接地线应当与电源插头座的保护接地连接起来。7.1.3看门狗技术

1.看门狗的看门功能“看门狗”是英文“WatchDog”的中文译名,全称为“WatchDogTimer”,即看门狗定时器,又可译为监视定时器。看门狗有以下3个运行特征:

(1)定时时间固定不变,一旦定时时间到,将发出中断申请脉冲或溢出脉冲。

(2)监视定时器正常工作时,如果定时器时间未到就将其清零,定时器会重新开始,但不产生中断申请信号或溢出脉冲。这一过程称为刷新。

(3)看门狗既可以使用硬件实现,又可以使用软件实现,但硬件实现时离不开运行软件,软件实现时离不开单片机内已有的定时计数器硬件电路。当单片机系统的看门狗电路设计好了以后,或者给单片机已有的定时计数器设计了一个看门狗程序以后,在程序正常运行的过程中,要注意不能在看门狗定时时间间隔内将看门狗清零并重新定时。因为这种“清零并重新定时”将使得程序正常执行完毕后,看门狗不会发出中断申请或溢出信号。有了看门狗后,程序一旦跑飞出现偏离,定时时间一到,将产生中断申请信号,因而利用中断服务程序就可以让程序返回到起始位置。如果产生的是溢出信号,则依靠溢出脉冲能使单片机复位,同样也能让程序返回到起始位置。

2.软件看门狗纯软件看门狗程序的编制十分简单。例如,占用单片机内定时计数器T1作定时用,定时时间设定为10ms,主频为12MHz,T1工作于方式1,计数初值为0D8F0H,则看门狗程序如下:与此同时,将T1定时溢出中断设置为高级中断,程序一旦跑飞,定时时间一到,产生溢出中断将夺去CPU对总线的控制权,从而退出死循环。溢出中断处理程序实际上是一条LJMPERROR指令,可迅速将系统复位。

3.硬件看门狗纯软件看门狗的缺点是占用了单片机系统的定时计数器资源,为此在很多情况下使用硬件看门狗电路。硬件看门狗电路有两种实现方法:一种是利用通用集成电路芯片实现与单片机的接口,这些通用集成电路毫无例外地要接成定时器;另一种是专用定时器芯片定时电路。

1)用通用集成电路芯片实现

8253/8254是一种可编程的定时计数器芯片,片内16位计数器在工作方式0之下能用作看门狗,它和8031的接口如图7-1所示。图7-18253/8254作看门狗程序一旦跑飞,定时时间到,OUT0输出高电平经微分后得正脉冲送至RESET,使单片机复位。除可编程定时计数器集成芯片外,不可编程的多位N进制计数器芯片和单稳态触发器芯片也可以用作看门狗电路。图7-2画出了振荡脉冲源、二进制计数器看门狗电路。现以10位二进制计数器为例,控制脉冲信号源的计数脉冲频率就控制住了二进制计数器计满归零时的进位脉冲。在计数器未计满时,从单片机主程序不断地通过P1.0(P0~P3口任一引脚均可)向计数器发出复位信号,让计数器尚未计满便从头开始计数。只有在单片机的程序跑飞且无法从P1.0输出复位信号时,才让计数器计满输出正阶跃信号,经微分电路送至RESET使单片机复位。常用的计数器芯片有74LS90、CD4060等。74LS90这一类计数器片内无脉冲源,需外接振荡源作计数脉冲;CD4060这一类计数器片内有时钟产生器,只需外接电阻和电容。图7-2二进制计数器作看门狗

2)专用定时器芯片定时电路单稳态触发器看门狗也可以用两类不可编程芯片组成:一类是可重触发的单稳态电路,如74LS123;一类是通用电路芯片,如555时基电路,该集成电路芯片不仅可接成单稳态触发器,还可接成双稳态触发器、多谐振荡器等。使用555时基芯片的单稳态看门狗如图7-3所示。图7-3555看门狗7.2单片机开发系统7.2.1单片机开发系统的结构单片机应用系统的硬件结构十分简单,很多系统连键盘和显示器都不需要。没有键盘,编制好的应用程序无法写入到片内、外ROM中,也无法判断写入的程序是否正确,发生了错误也不知道如何去修改,怎样去运行,运行的结果也无从观察。单片机自身已经做成了一个芯片,光从外观上看,无论如何也看不出芯片内部指令流是如何流动的。为此,必须在应用之前对单片机的硬件资源和软件资源进行开发。帮助单片机完成研制开发的工具称为单片机的开发系统。对单片机应用系统而言,开发系统不是可有可无的工具,而是必需的不可缺少的工具。没有开发系统,就没有单片机应用系统。

1.单片机开发系统的作用原理单片机开发系统的作用原理可用图7-4来说明。图中8031是需要应用的单片机,74LS373是地址锁存器,RAM和ROM是存储器,微型计算机系统是具有键盘和显示器的能独立输入、调试、运行程序的系统,S是双向拨动开关,可将+5V接通微机系统,又可以接向单片机。首先将S接至微机系统一侧,存储器用RAM,这时相当于微机系统在片外扩展了一片数据RAM(假设是Intel6116,2K×8位)。用微机系统的键盘输入单片机应用程序到6116中,输入的方法因微机系统的计算机而异:如果是PC机,可直接输入各类指令;如果是单片机或单板机,则应输入机器码(用人工汇编方法完成)。图7-4单片机开发系统原理在微机系统上将单片机的应用程序送入RAM6116并调试准确无误后,将开关S合向8031一边,这样单片机系统就按6116中存放的应用程序工作。如果单片机和6116的工作正常,再将6116中的应用程序写入到EPROM中(EPROM可用2716),将2716取代6116的位置,就构成了单片机应用系统。以上所述就是开发的过程。事实上能用作微机系统的计算机种类很多,既可以用PC机,也可以用单板机,还可以用单片机,目前比较流行的开发装置事实上就是一套完整的包含键盘、显示器在内的单片机应用系统。

2.单片机开发系统的基本结构单片机开发系统的基本结构如图7-5所示。它的各部分功能如下:

(1)开发系统主计算机:用于输入、调试单片机应用程序。

(2)在线仿真器:具有与所要开发的单片机应用系统相同的单片机芯片,用于仿真应用系统的工作状态。

(3) EPROM写入器:用于向EPROM写入在开发系统上调试好的程序。

(4)硬、软磁盘:存放各种调试工具或软件。

(5) CRT、打印机:输出设备,观察调试结果。图7-5单片机开发系统的基本结构7.2.2仿真器仿真器是一个带有仿真头的单片机系统,这个系统内也有1个单片机,与所要开发的单片机相同,例如都是8031。仿真器的功能是进行仿真,即用仿真器上的单片机芯片代替待开发的单片机应用系统中的单片机,示意图如图7-6所示。如果单片机应用系统的线已接好,但因无法调试而不能使用,则可将插座上的单片机芯片拔掉,插上仿真器的仿真头,这样就可以利用仿真器对系统进行调试。仿真器的仿真头是一个40脚的插头,它的插件引脚同8031的引脚,如果把它插在单片机系统的单片机插座上,在线仿真器和单片机应用系统就共用1片8031。这样在开发系统上通过仿真器就能调试单片机应用系统,查看应用系统程序的运行情况,还可以使用单步调试、设置断点等多种手段追踪用户程序。图7-6仿真调试完毕,拔下仿真头插件,在单片机应用系统的单片机插座上插入单片机8031。单片机应用系统就能使用了。在应用系统中,除了单片机插座外,还有存储器插座,这就意味着存储芯片也可以拔掉,让在线仿真器中的存储器“代替”应用系统中的存储芯片存放调试程序,代替的条件是两个存储器具有相同的地址空间。仿真器的研制与生产已经专业化,并成为单片机产业的一个重要部门,有专门的研究机构和专业化的生产厂家,产品在不断更新。仿真器的种类繁多,型号各异,性能和价格相差较大。从结构上看,大体可以划分为HOOKS仿真器和Bondout仿真器两类。

HOOKS仿真器通过I/O引脚分时复用的方法重构单片机的P0、P2口,使用硬件支持将复用P0、P2口扩展为独立的仿真总线和用户P0、P2口。这种仿真器的优点是不需专用仿真器,使用普通的MCS-51单片机就能对同型号单片机或硬件资源兼容的单片机予以仿真。仿真过程简单,只要实时输入单片机资料,换上同型号单片机就能仿真新的单片机。不足之处在于,因使用硬、软件资源模拟单片机的P0、P2口,与实际的P0、P2口必然有差别。

HOOKS仿真器由Philips公司开发,国内厂商已通过授权转让方式从Philips公司引进了该项技术,并开发了自己的产品。例如,广州周立功单片机发展有限公司研制了TSK—HOOKS系列产品,通过更换仿真头内的CPU,可以仿真Philips公司的P89系列单片机产品。

Bondout仿真器使用专用仿真芯片,仿真特定的单片机系统,一种专用仿真芯片只能仿真一种单片机。这种仿真方法的优点是针对性强;缺点是通用性差,仿真开发产品落后于单片机问世产品。因为只有新型号单片机问世以后,开发商才能根据市场需求设计相应的仿真器。显然,这种仿真器更新换代的速度较慢。仿真器除了从结构上划分外,还可以从用途上分为专用和通用两大类别。专用仿真器的典型产品如南京伟福公司的K51系列以及E51系列仿真器,只能仿真MCS-51系列单片机。通用仿真器的通用性在于仿真头可以更换,使用不同的仿真头能仿真不同的单片机系列。南京伟福公司的通用产品E2000系列和E6000系列,能仿真Intel公司的MCS-51系列单片机、Philips公司的8XC5X系列单片机及Microchip公司的PIC系列单片机,仅使用不同的仿真头。专用仿真器的价格低于通用仿真器,在选择仿真器的时候,除了考虑价格因素外,更重要的是所购仿真器能仿真哪种系列的单片机。7.2.3单片机开发系统的功能单片机开发系统至少应当具有仿真、调试、辅助程序设计和EPROM写入固化等功能。

1)仿真功能“仿真”是单片机开发系统最基本、最主要的功能。在线仿真时,开发系统内的仿真器能将自身的单片机、存储器供单片机应用系统使用,使应用系统在仿真环境中与脱机运行完全一致。没有仿真功能,就不会有单片机开发系统。

2)调试功能开发系统本身的硬件、软件资源构成了一个完整的微型计算机系统,它的输入/输出配置能够有效控制用户的编辑、汇编、连接和调试。在调试过程中,能让人们方便地随机浏览并修改各类存储器、寄存器的内容,编辑程序存储器各单元的值,随机修改程序计数器PC的内容,能够浏览并修改片外RAM的值。除此以外,微机系统所具有的连续、跟踪、单片执行、灵活方便设置或取消断点的功能,处理中断或异常的功能,都给调试用户程序带来了极大的方便。

3)辅助设计功能开发系统通常都能提供仿真开发软件汇编器,能让用户使用PC机的编辑程序。源程序编辑操作方式类似于用户熟知的字处理软件,能够在MCS-51单片机汇编指令助记符与80X86通用微机指令系统助记符之间实现沟通;允许用户使用PC机的编辑程序编写汇编程序、生成源文件;允许用户利用开发系统提供的交叉汇编或编译系统,在PC机上将源程序编译成可运行的目标程序。

4) EPROM写入功能开发系统的“EPROM写入器”用于将应用系统的程序固化到EPROM中,这一工作是在系统调试结束、使用仿真器单片机和存储器的应用系统完全正常工作之后。考虑到EPROM写入时的控制电平与TTL不兼容,因此EPROM写入器必须提供写入要求的全部电平值。7.3单片机应用系统的总体设计单片机主要用于工业环境的实时控制、智能化仪器仪表、家用电器等各个不同的领域。不同领域对单片机的使用有不同的要求,诸如环境温度、湿度、电源波动、电磁场扰动、噪声、冲击等等,都直接影响着单片机应用系统的总体设计。无论哪一种单片机应用系统,在总体设计中都必须把工作环境的制约当作重要因素对待。在考虑了实际工作环境后,各种单片机应用系统在总体设计的方法和开发步骤上基本相同。总体设计的一般步骤如下:

(1)分析系统组成。

(2)设计电路并调试。

(3)编制程序并调试。

(4)进行可靠性设计。

(5)联机调试。设计单片机应用系统没有一种固定的模式,单片机应用范围广泛,针对不同的应用对象,有不同的系统组成。即便是一个特定的应用对象,也有几种不同的方案,没有标准答案,求解一个问题的系统组成不是惟一的。系统组成结构虽然千差万别,但总会经历如下几个阶段:

1)分析信息处理的对象信息技术研究的三大环节(信息的产生——传感器技术,信息的传送——通信技术,信息的处理——计算机技术)中,作为计算机的单片机应用,无疑首当其冲的是对信息处理的对象进行透彻的分析。在考查单片机应用系统工作环境的基础上,明确被处理信息的种类、数量、产生并传送的环境,建立应用系统量化的技术指标。

2)确定硬、软件的职责与分工对于处理信号,硬、软件缺一不可,但要做的是硬、软件如何分工,各自承担哪些任务。在很多场合中硬件电路和软件程序有一定的互换性,为了降低成本及减少日后维修工作量,应尽量多用软件。

3)硬、软件设计硬件电路设计要用到筛选集成电路芯片并完成它们的接口。在选用集成电路芯片时,首先选择合适的单片机芯片;其次要选择片外其它芯片,按需要设置锁存器、存储器、I/O接口芯片,并确定它们各自的地址。软件程序的设计力求程序分段合理,主程序简练,整个程序的执行时间通常越短越好。很多情况下不能兼顾程序简练和执行时间短的矛盾,应当按照具体情况取舍。

4)可靠性设计在单片机应用系统的硬件电路原理图中,以及在编程的初始化程序和工作程序中,都还没有考虑到可靠性问题。一旦原理图拿出来,源程序编制完毕,可靠性问题就提上了日程。一个应用不可靠的系统是无法使用的。可靠性设计要从硬件抗干扰和软件抗干扰两个方面同时着手。硬件电路抗干扰的有效措施通常有以下两种:

(1)提高元件和整机的质量。从元器件方面看,尽量选用质量好、噪音低的电子元器件,选用有信誉厂家的产品,不贪图便宜购买质量低劣的元器件。插接件是仪器设备在运行中最容易出故障的地方,一定要使用性能优良的插接件。印刷电路板的布局要合理,接地要符合相应的标准,必

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论