12以MCU为核心的嵌入式系统的设计与调试

上传人:dja****22 文档编号:242971725 上传时间:2024-09-13 格式:PPT 页数:36 大小:781KB
返回 下载 相关 举报
12以MCU为核心的嵌入式系统的设计与调试_第1页
第1页 / 共36页
12以MCU为核心的嵌入式系统的设计与调试_第2页
第2页 / 共36页
12以MCU为核心的嵌入式系统的设计与调试_第3页
第3页 / 共36页
点击查看更多>>
资源描述
,第二级,第三级,第四级,第五级,第12章 以MCU为核心的嵌入式系统的设计与调试,第12章 以MCU为核心的嵌入式系统的设计与调试,单片微型计算机与接口技术,内 容 提 要,嵌入式系统开发与开发工具,嵌入式系统的抗干扰技术,单片机应用系统举例电子显示屏,小结,12.1 嵌入式系统开发与开发工具,12.1,嵌入式系统开发与开发工具,以MCU为控制核心的嵌入式系统是嵌入式系统的一种,它是以单片机为核心构成的计算机应用系统,是最具代表性和使用最广泛的嵌入式系统。以下简称它为单片机应用系统。,(一)典型嵌入式应用系统的构成,一个典型的,MCU,为核心的嵌入式系统硬件构成如图,12.1,所示,通常由单片机、片外,ROM,、,RAM,、扩展,I/O,口及对系统工作过程进行人工干预和结果输出的人机对话通道等组成。,单片机常用的输入、输出设备有键盘、LED、LCD显示器、打印机等;用于检测信号采集的输入通道一般由传感器、信号处理电路和相应的接口电路组成;向操作对象发出各种控制信号的输出通道, 通常包括输出信号电参量的变换、通道隔离和驱动电路等;与其它计算机系统或智能设备实现信息交换的通信接口,一个完整的嵌入式系统的设计,一般涵盖以上部分。,图12.1,(二) 嵌入式应用系统的构成方式,由于设计思想和使用要求不同,应用系统的构成方式也有所不同。,1.专用系统,这是最典型和最常用的构成方式,它的最突出的特征是系统全部的硬件资源完全按照具体的应用要求配置,系统软件就是用户的应用程序。专用系统的硬、软件资源利用得最充分,但开发工作的技术难度较高。,2.模块化系统,由图,12.1,可见,单片机应用系统的系统扩展与通道配置电路具有典型性,因此有些厂家将不同的典型配置做成系列模板,用户可以根据具体需要选购适当的模块板组合成各种常用的应用系统。它以提高制作成本为代价换取了系统开发投入的降低和应用上的灵活性,。,3.单机与多机应用系统,一个应用系统只包含一块MCU或MPU,称为单机应用系统,这是目前应用最多的方式。,如果在单机应用系统的基础上再加上通信接口,通过标准总线和通用计算机相连,即可实现 应用系统的联机应用。在此系统中,单片机部分用于完成系统的专用功能,如信号采集和对 象控制等,称为应用系统。通用计算机称为主机,主要承担人机对话、大容量计算、记录、 打印、图形显示等任务。由于应用系统是独立的计算机系统,对于快速测控过程,可由其独 立处理,大大减轻了总线的通信压力,提高了运行速度和效率。,在多点多参数的中、大型测控系统中,常采用多机应用系统。在多机系统中,每一个单片机相对独立地完成系统的一个子功能,同时又和上级机保持通信联系,上级机向各子功能系统发布有关测控命令,协调其工作内容和工作过程,接收和处理有关数据。多机应用系统还可以以局部网络的方式工作。,12.1.2,嵌入式应用系统的设计原则,1.单片机机型的选择,单片机是嵌入式系统的心脏,其机型选择是否合适,对系统的性能优劣、构成繁简,开发工作的难易,产品的价格等方面影响较大。选择单片机首先考虑单片机的功能和性能满足应用系统的要求,其次要考虑供货渠道是否畅通,开发环境是否具备,对于熟悉的机型,无疑将提高开发的效率。,2.应充分利用单片机内的硬件资源,简化系统的扩展,利于提高系统的可靠性。,3.,单片机和服务对象往往结合成一个紧密的整体,应了解服务对象的特性,进行一体化设计,在性能指标上应留有余地。,4.在保证系统的功能和性能的前提下,不要过份追究单片机或其他器件的精度,如八位单片 机满足要求就无需选十六位单片机,以降低成本,增加竞争优势。总之,单片机用于产品的 设计,要求性价比高,开发速度快,这样就能赢得市场。,5.软件采用模块设计,便于调试、链接、修改和移植,对于实时性较强的采用汇编语言编程 比较合适,对复杂的计算或实时性要求不高的,对C语言比较熟悉,采用C语言编程比较合适 。,6.,应考虑应用系统的使用环境,采取相应的措施,如抗干扰等。,12.1.3,嵌入式系统的开发工具,对嵌入式系统的设计、软、硬件调试称为开发。嵌入式系统本身无开发能力,必须借助开发工具。,单片机的开发工具有电脑、编程器和仿真机。如果使用,EPROM,作程序存贮器,,还需一台紫外线擦除器。其中最基本的、必不可少的工具是电脑和编程器。仿真机和编程器通过串行接口和电脑的串行口,COM1,或,COM2,相连,借助电脑的键盘、监视器及相应的软件完成人机的交流。,1.编程器,编程器,(,又称烧写器、下載器,),,通过它将调试好的程序烧写到程序存贮器中,(,单片机内程序存贮器或片外的,EPROM,、,EEPROM,或,FLASH),,不同档次的编程器价格相差很大,从几百元几千多元不等,档次的差别在于烧写的可编程芯片的类型多少,使用界面是否方便及是否还有其他功能等,目前市面编程器型号很多,根据应用对象及单位经济实力进行选择。通常专用编程器应具备以下功能:对多种型号单片机,(MCU),、,E(E)PROM,、,FLASH,、,ROM,、,PLD,、,FPGA,等进行读取,擦除、烧写、加密等操作,高档的编程器可独立于电脑运作。编程的方法可以脱机编程或在系统编程。,2.仿真机,仿真机又称为在线仿真机,英文为,In Cricuit Eluatior(,简称,ICE),,它是以被仿真的微处理器,(MPU),或微控制器,(MCU,如单片机,),为核心的一系列硬件构成,使用时拔下用户,MPU,或,MCU,,换插,ICE,插头,(,称为仿真头,),,这样用户系统就成了,ICE,的一部分,原来由,MPU,或,MCU,执行程序由仿真机来执行,利用仿真机的完整的硬件资源和监控程序,实现对用户目标码程序的跟踪调试,,观察程序执行过程中的单片机寄存器存贮器的内容,根据执行情况随时修改程序。,12.1.4,嵌入式系统的调试,当嵌入式应用系统设计安装完毕,应先进行硬件的静态检查,即在不加电的情况下用万用表等工具检查电路的接线是否正确,电源对地是否短路。加电后在不插芯片情况下,检查各插座引脚的电位是否正常,检查无误以后,再在断电的情况下插上芯片。静态检查可以防止电源短路或烧坏元器件,然后再进行软硬件的联调。,嵌入式系统的调试有两种方法:,由图可见,这种方式是通过反复的上机试用和反复插、拔芯片和擦除、烧写完成开发的,对于有经验的工作人员,在正确后,也可以一次烧写成功。如果在烧写前先进行软件模拟调试,待程序执行无误后再烧写,是可以提高开发效率的。,另一种是在系统编程(,ISP,),这需要使用,ISP,型的单片机,并有相应编程电路。本教材实验指导书中的开发板用,ISP,型的,51,单片机89S52,实现在系统烧写功能并可立即执行,实现了编程器和实验台双重功能。,这种开发方式优点是所需的投资少,一般教学单位或小公司乃至个人,均会有,PC,电脑,所需购买的只是编程器,且一个实验室只需购买一、两台即可。模拟仿真软件网上可以下载或向商家索取。缺点是无跟踪调试功能,只适用于小系统开发,开发效率较低。,图12.4,12.2 嵌入式系统的抗干扰技术,在嵌入式系统中,系统的抗干扰性能直接影响系统工作的可靠性。干扰可来自于本身电路的噪声,也可能来自工频信号、电火花、电磁波等,一旦应用系统受到干扰,程序跑飞,即程序指针发生错误,误将非操作码的数据当作操作码执行,就会造成执行混乱或进入死循环,使系统无法正常运行,严重的可能损坏元器件。,单片机的抗干扰措施有硬件方式或软件方式。,12.3.1 软件抗干扰,1.数字滤波,当噪声干扰进入单片机应用系统叠加在被检测信号上时,会造成数据采集的误差,为保证采集数据的精度,可采用硬件滤波,也可采用软件滤波,对采样值进行多次采样,取平均值或程序判断剔除偏差较大的值。,2.设置软件陷阱,在非程序区设置拦截措施,当PC失控进入非程序区时,使程序进入陷阱,通常使程序返回初始状态。例如用“LJMP #0000H填满非程序区。,如果在程序存贮器空间有足够的富裕量,且对系统的运行速率要求不高,可在每条指令后加空操作指令,NOP,,如果该指令字长为,n,字节,则在其后加,n-1,个字节的,NOP,指令,这样即使指令因干扰跑飞,只会使程序执行一次错误操作后,又回到下一条指令处,如果跑到别的指令处,,因别的指令也作了如此处理,后面的指令还可以一条一条往下执行。,12.2.2,硬件抗干扰,1.良好的接地方式,在任何电子线路设备中,接地是抑制噪声防止干扰的重要方法,地线可以和大地连接,也可以不和大地相连。接地设计的基本要求是消除各电路电流流经一个公共地线,由阻抗所产生的噪声电压,避免形成环路。,单片机应用系统中的地线分为数字电路的地线,(,数字地,),和模拟电路的地线,(,模拟地,),,如有大功率电气设备,(,如继电器、电动机等,),还有噪声地,仪器机壳或金属件的屏蔽地,这些地线应分开布置并在一点上和电源地相连。每单元电路宜采用一个接地点,地线应尽量加粗以减少地线的阻抗。,2.采用隔离技术,在单片机应用系统的输入、输出通道中,为减少干扰,普遍采用了通道隔离技术。用于隔离的器件主要有隔离放大器、隔离变压器、纵向扼流圈和光电耦合等,其中应用最多的是光电耦合器。,光电耦合器具有一般的隔离器件切断地环路、抑制噪声的作用,此外,还可以有效的抑制尖峰脉冲及多种噪声。光电耦合器的输入和输出间无电接触,能有效地防止输入端的电磁干扰以电耦合的方式进入计算机系统。光电耦合器的输入阻抗很小,一般为,100,1k,,噪声源的内阻通常很大,因此能分压到光耦输入端的噪声电压很小,。,12.2.3 “,看门狗,”,技术,看门狗英文为,“Wacth dog Timer”,即看门狗定时器,实质上是一个监视定时器,它的定时时间是固定不变的,一旦定时时间到,产生中断或产生溢出脉冲,使系统复位。在正常运行时,如果在小于定时时间间隔内对其进行刷新,(,即重置定时器,称为喂狗,),,定时器处于不断的重新定时过程,就不会产生中断或溢出脉冲,利用这一原理给单片机加一看门狗电路,在执行程序中在小于定时时间间隔内对其进行重置。而当程序因干扰而跑飞时,因没能执行正常的程序而不能在小于定时时间内对其刷新。当定时时间到,定时器产生中断,在中断程序中使其返回到起始程序,或利用溢出产生的脉冲控制单片机复位,。,1.复位功能,手动复位:当接在,MR,引脚上的按键按下,,MR,接收低电平信号,,RESET,变为高电平,延时时间为,200ms,,使,8XX51,复位。当电源电压降至,4.4V,以下,内部的电压比较器使,RESET,变为高电平使单片机复位,直到,Vcc,上升到正常值,。,2.看门狗功能,MAX706P的内部看门狗的定时器的定时时间为1.6秒,如果在1.6秒内WDI引脚保持为固定电平(高电平或低电平),看门狗定时器输出端WDO变为低电平,二极管导通,使低电平加到MR端,MAX706产生RESET信号使8XX51复位,直到复位后看门狗被清零WDO才变为高电平。当WDI有一个跳变沿(上升沿或下降沿)信号时,看门狗定时器被清零。如图将DI接到8XX51的某根并行口线上,在程序中只要在小于1.6秒时间内将该口线取反一次,即能使定时器清零而重新计数,不产生超时溢出,程序正常运行。当程序跑飞 ,不能执行产生WDI的跳变指令,到1.6 秒WDO因超时溢出而变低,产生复位信号 使程序复位。,看门狗定时器有三种情况被清零,发生复位;,WDI,处于三态;和,WDI,检测到一个上升沿或一个下降沿。,3.电压监控功能,当电源电压(如电池)电压下降,监测点小于1.25V(即PFI1.25V),PFO变为低 电平,产生中断请求,在中断服务中,可以采用相应的措施。,p,监控器的型号很多,选择时应注意是高电平复位还是低电平复位,要和自己选择的机型匹配。美国,Xicor,公司的,X25043(,低电平复位,),,,X25045(,高电平复位,),霵监控器,有电压检测和看门狗定时器,还有,5128,位的串行,EEPROM,,且价格低廉,对提高系统可靠性很有利。,12.2.3.2 89S51/52,单片机的看门狗,不少单片机内带有看门狗定时器。看门狗定时器也可以用软件的方式构成,这需要单片机内有富裕的定时,/,计数器。由于软件运行受单片机状态的影响,其监控效果远不及硬件看门狗定时器好。软件看门狗仅在环境干扰小或对成本要求高的系统中采用。在,ATMEL,的,89S51/52,系列的单片机中内设有看门狗定时器,,89S51,与,89C51,功能相同。指令兼容。,HEX,程序无需任何转换可以直接使用。,89S51/52,比起,89C51/52,除可在线编程外,就是增加了一个看门狗功能。,89S51/52,内的看门狗定时器是一个,14,位的计数器,每过,16384,个机器周期看门狗定时器溢出,产生一个,98/f,osc,的正脉冲加到复位引脚上,使系统复位。使用看门狗功能,需初始化看门狗寄存器,WDTRST,(地址为,0A6H,),对其写入,01EH,,再写入,0E1H,,即激活看门狗。在正常执行程序时,在必须在小于,16383,个机器周期内需进行喂狗,即对看门狗寄存器,WDTRST,(地址为,0A6H,)再写入,01EH,,和,0E1H,。,看门狗具体使用方法如下:,在程序初始化中向中先,WDTRST EQU 0A6H,ORG 0000,LJMP STAR,.,STAR: MOV WDTRST,#01EH ;,激活看门狗先送,1EH,MOV WDTRST,#0E1H ;,后送,E1H,DOG:,MOV WDTRST,#01EH ;,先送,1EH,喂狗指令,MOV WDTRST,#0E1H ;,后送,E1H,LJMP DOG,在,C,语言中要增加一个声明语句。,在,reg51.h,声明文件中,sfr WDTRST = 0xA6;,main(),WDTRST=0x1e;,WDTRST=0xe1;/,初始化看门狗。,while (1),WDTRST=0x1e;,WDTRST=0xe1;/,喂狗指令,注意事项:,1,89S51,的看门狗必须由程序激活后才开始工作。所以必须保证,CPU,有可靠的上电复位。否则看门狗也无法工,2,看门狗使用的是,CPU,的晶振。在晶振停振的时候看门狗也无效。,3,89S51,只有,14,位计数器。在,16383,个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为,12M,时每,16,个毫秒以内需喂狗一次。,12.3,单片机应用系统举例,电子显示屏,电子显示屏广泛用于火车站显示火车到站时刻表,银行利率显示,股市行情显示等公众信息场合,仔细观察可以发现,它是由成千上万个发光二极管(LED)组成,为方便安装,将若干个LED组合在一个模块上,若干个模块再组成大屏幕。,市售的模块按,LED,的排列有,57,,,58,,,88,等几种类型;,LED,的直径也有大有小,有,1.9,、,3.0,、,5.0,;点阵模块按颜色分有单色,(,红色,),或双色,双色的,LED,在一个玻璃管中有红和绿两个,LED,,如果红绿同时发亮,即可显示黄色,因此双色实际上可显示红、绿、黄三色。,如图,12.9,所示的是一个,88,的单色,LED,点阵模块图,型号为,LMM2088DX,。由图可见,,LED,排列成点阵的形式,同一行的,LED,阴极连在一起,同一列的阳极连在一起,仅当阳极和阴极的,电压被加上,使,LED,为正偏的,LED,才发亮,对于双色的,LED,模块,同一行的红管和绿管阴极连在一起控制,阳极分别控制。,图12.10,如果采用行循环扫描法,即左块第一行亮,右块第一行亮,然后左块第二行亮,右块第二行亮。对于列而言,一列只一个亮点,而对一行而言有多个LED同时发亮,一个LED亮需 1020ma的电流。因此在行线上加上行驱动三极管,列上只用了锁存器而省去了列驱动。,15,行的行选由,2,个,273,完成,地址分别为,FCFFH,和,FDFFH,,,16,根列选也由,2,个,273,完成,,由于列线分为红、绿两色共需,4,片,273,控制、,红色的列选地址为,FAFFH,和,FBFFH,。按照,“1”,亮的规则,,一个,1616,的汉字点阵信息,(,字模编码,),需占,32,个字节,一个,“,中,”,的汉字字模,编码显示在图,12.11,中,按照从左到右从上到下,的原则顺序排列,存放于字模编码表,(,数组,),中。,行选轮流选通,列选查表输出,一个字循环扫描多次,就能看到稳定的汉字。,下面的程序在小显示屏上轮流显示,“,我爱中华,”,四个绿色汉字,四个字模编码占,128,个字节,,存放于,buff,128,数组中,每字循环扫描显示,1000,遍,再换下一汉字,根据行、列序号,利用公式计算字模编码在数组中的位置,为消除拖尾,显示间有清屏,显示和清屏的延时由定时器,T0,控制,程序清单如下,:,#include ,#include ,#define red1 XBYTE,0xf8ff,/*,第一红色,273,地址,*/,#define red2 XBYTE,0xf9ff,/*,第二红色,273,地址,*/,#define green1 XBYTE,0xfaff,/*,第一绿色,273,地址,*/,#define green2 XBYTE,0xfbff,/*,第二绿色,273,地址,*/,#define hang1 XBYTE,0xfcff,#define hang2 XBYTE,0xfdff,/*,行,273,地址,*/,#define uchar unsigned char,#define uint unsigned int,void delay(unint t);,void clr(void);,void display(uint b);,uchar code buff128=0x04,0x80,0x0e,0xa0,0x78,0x90,0x08,0x90,0x08,0x84,0xff,0xfe,0x08,0x80,0x08,0x90,0x0a,0x90,0x0c,0x60,0x18,0x40,0x68,0xa0,0x09,0x20,0x0a,0x14,0x28,0x14,0x10,0x0c,0x00,0x78,0x3f,0x80,0x11,0x10,0x09,0x20,0x7f,0xfe,0x42,0x02,0x82,0x04,0x7f,0xf8, 0x04,0x00,0x07,0xf0,0x0a,0x20,0x09,0x40,0x10,0x80,0x11,0x60,0x22,0x1c,0x0c,0x08,0x01,0x00,0x01,0x00,0x01,0x04,0x7f,0xfe,0x41,0x04,0x41,0x04,0x41,0x04,0x41,0x04, 0x7f,0xfc,0x41,0x04,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x04,0x40,0x04,0x48,0x08,0x58,0x08,0x60, 0x18,0xc0,0x29,0x40,0x4a,0x44,0x08,0x44,0x09,0x3c,0x01,0x00,0xff,0xfe,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,/* “,我爱中华,”,字模,*/,main(), char m;,for(;), ,for(m=0;m=96;m=m+32),clr();,display(m); /* 显示 */,clr(); /* 清屏 */,delay(10); /* 延时 */,void display(uint b) /* 显示函数 */,uchar i,j,k,n=1;,uint c;,for(c=0;c1000;c+),clr();,for(k=0;k2;k+) /* k用以选择两个左右不同的273 */,for(i=0;i8;i+) /* i选择不同行 */,green1=buffb+16*k+2*i; /* 查字模表,并取反 */,green2=buffb+16*k+2*i+1;,if(k=0),hang1=n;hang2=0xff;,else,hang2=n;hang2=0xff; /* K=0,选上面一个273,同时关闭下半屏显示*/,hang1=0xff;hang1=0xff;n=n*2;,n=1;,void delay(uint t) /* 延时子程序,延时t*10ms */,uint i;,for(i=0;it;i+), TMOD=0x11;,TL0=-10000%256; TH0=-10000/256;,TR0=1;,do,while(TF0!=1);,TF0=0; ,void clr(void) /* 清屏子程序 */,uchar xdata *ad_drl;,ad_drl=,hang1=0xff;hang2=0xff;,red1=0xff;red2=0xff;,*ad_drl=0xff;,ad_drl+;,ad_drl=0; ,读者修改程序不难变换显示颜色及跑马式显示等各种显示方式,如改换显示的汉字可从汉字库中提取字模,提取汉字字模的方法可以查阅有关资料。,12.4 小 结,本章介绍了以,MCU,为核心的嵌入式系统的设计方法、调试方法以及实际应用中应注意的问题,并以小型电子显示屏作为应用设计的实例、读者只要自己实践,就会感到设计一个小型嵌入式系统是不困难的。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!