《单片机原理接口及应用以MCU为核心的嵌入式系统的设计与调试.ppt》由会员分享,可在线阅读,更多相关《单片机原理接口及应用以MCU为核心的嵌入式系统的设计与调试.ppt(82页珍藏版)》请在三一办公上搜索。
1、单片机原理、接口及应用-嵌入式系统技术基础,第12章 单片机应用系统的设计与开发,12.1单片机系统的设计开发过程 12.1 单片机典型应用系统 12.2 单片机应用系统开发过程 12.2单片机系统的可靠性技术 12.3单片机系统设计开发应用举例,一个完整的单片机应用系统由单片机最小应用系统、前向通道、后向通道、人机交互通道与计算机相互通道组成。,单片机最小系统,8031最小应用系统(外扩ROM),最小应用系统具有最简单配置的单片机系统,8051和8751最小应用系统,是单片机实现外部信息的输入的通道,主要是数据采集单元、信号调理单元等,前向通道,是单片机实现外部信息的输出通道,主要有DA转换
2、电路、输出驱动电路等。,后向通道,为对应用系统进行干预或了解系统运行状态所设置的交互通道。主要有键盘、显示器等接口电路。,人机对话通道,是解决计算机系统之间信息交换目的而建立的数据传输通道,主要为串行口方式。,相互通道,12.1单片机系统的设计开发过程 12.1 单片机典型应用系统 12.2 单片机应用系统开发过程 12.2单片机系统的可靠性技术 12.3单片机系统设计开发应用举例,对于一个实际的课题和项目,从任务的提出到系统的选型、确定、研制直至投入运行要经过一系列的过程。,单片机本身无开发能力,必须借助开发工具开发应用软件。,独立型仿真结构,配备有EPROM读出/写入器、仿真插头和其它外设
3、,通过USB接口与计算机相连。,方法1:通用型单片机开发系统,方法2:软件模拟开发系统,基于Proteus(Keil)仿真软件的设计与开发工具,12.1单片机系统的设计开发过程12.2单片机系统的可靠性技术 12.3单片机系统设计开发应用举例,12.2 嵌入式系统的抗干扰技术,干扰可来自于本身电路的噪声,也可能来自工频信号、电火花、电磁波等,一旦应用系统受到干扰,程序跑飞,即程序指针发生错误,误将非操作码的数据当作操作码执行,就会造成执行混乱或进入死循环,使系统无法正常运行,严重的可能损坏元器件。单片机的抗干扰措施有硬件方式或软件方式。12.2.1 软件抗干扰 1.数字滤波当噪声干扰进入单片机
4、应用系统叠加在被检测信号上时,会造成数据采集的误差,为保证采集数据的精度,可采用硬件滤波,也可采用软件滤波,对采样值进行多次采样,取平均值或程序判断剔除偏差较大的值。,2.设置软件陷阱在非程序区设置拦截措施,当PC失控进入非程序区时,使程序进入陷阱,通常使程序返回初始状态。例如用“LJMP#0000H填满非程序区。如果在程序存贮器空间有足够的富裕量,且对系统的运行速率要求不高,可在每条指令后加空操作指令NOP,如果该指令字长为n字节,则在其后加n-1个字节的NOP指令,这样即使指令因干扰跑飞,只会使程序执行一次错误操作后,又回到下一条指令处,如果跑到别的指令处,因别的指令也作了如此处理,后面的
5、指令还可以一条一条往下执行。,12.2.2 硬件抗干扰,1.良好的接地方式在任何电子线路设备中,接地是抑制噪声防止干扰的重要方法,地线可以和大地连接,也可以不和大地相连。接地设计的基本要求是消除各电路电流流经一个公共地线,由阻抗所产生的噪声电压,避免形成环路。单片机应用系统中的地线分为数字电路的地线(数字地)和模拟电路的地线(模拟地),如有大功率电气设备(如继电器、电动机等)还有噪声地,仪器机壳或金属件的屏蔽地,这些地线应分开布置并在一点上和电源地相连。每单元电路宜采用一个接地点,地线应尽量加粗以减少地线的阻抗。,2.采用隔离技术在单片机应用系统的输入、输出通道中,为减少干扰,普遍采用了通道隔
6、离技术。用于隔离的器件主要有隔离放大器、隔离变压器、纵向扼流圈和光电耦合等,其中应用最多的是光电耦合器。光电耦合器具有一般的隔离器件切断地环路、抑制噪声的作用,此外,还可以有效的抑制尖峰脉冲及多种噪声。光电耦合器的输入和输出间无电接触,能有效地防止输入端的电磁干扰以电耦合的方式进入计算机系统。光电耦合器的输入阻抗很小,一般为1001k,噪声源的内阻通常很大,因此能分压到光耦输入端的噪声电压很小。,12.2.3“看门狗”技术,看门狗英文为“Wacth dog Timer”即看门狗定时器,实质上是一个监视定时器,它的定时时间是固定不变的,一旦定时时间到,产生中断或产生溢出脉冲,使系统复位。在正常运
7、行时,如果在小于定时时间间隔内对其进行刷新(即重置定时器,称为喂狗),定时器处于不断的重新定时过程,就不会产生中断或溢出脉冲,利用这一原理给单片机加一看门狗电路,在执行程序中在小于定时时间间隔内对其进行重置。而当程序因干扰而跑飞时,因没能执行正常的程序而不能在小于定时时间内对其刷新。当定时时间到,定时器产生中断,在中断程序中使其返回到起始程序,或利用溢出产生的脉冲控制单片机复位。,1.复位功能手动复位:当接在MR引脚上的按键按下,MR接收低电平信号,RESET变为高电平,延时时间为200ms,使8XX51复位。当电源电压降至4.4V以下,内部的电压比较器使RESET变为高电平使单片机复位,直到
8、Vcc上升到正常值。,2.看门狗功能MAX706P的内部看门狗的定时器的定时时间为1.6秒,如果在1.6秒内WDI引脚保持为固定电平(高电平或低电平),看门狗定时器输出端WDO变为低电平,二极管导通,使低电平加到MR端,MAX706产生RESET信号使8XX51复位,直到复位后看门狗被清零WDO才变为高电平。当WDI有一个跳变沿(上升沿或下降沿)信号时,看门狗定时器被清零。如图将DI接到8XX51的某根并行口线上,在程序中只要在小于1.6秒时间内将该口线取反一次,即能使定时器清零而重新计数,不产生超时溢出,程序正常运行。当程序跑飞,不能执行产生WDI的跳变指令,到1.6 秒WDO因超时溢出而变
9、低,产生复位信号 使程序复位。看门狗定时器有三种情况被清零,发生复位;WDI处于三态;和WDI检测到一个上升沿或一个下降沿。,3.电压监控功能当电源电压(如电池)电压下降,监测点小于1.25V(即PFI1.25V),PFO变为低 电平,产生中断请求,在中断服务中,可以采用相应的措施。p监控器的型号很多,选择时应注意是高电平复位还是低电平复位,要和自己选择的机型匹配。美国Xicor公司的X25043(低电平复位),X25045(高电平复位)监控器,有电压检测和看门狗定时器,还有5128位的串行EEPROM,且价格低廉,对提高系统可靠性很有利。,12.2.3.2 89S51/52单片机的看门狗,在
10、ATMEL的89S51/52系列的单片机中内设有看门狗定时器,89S51与89C51功能相同。指令兼容。HEX程序无需任何转换可以直接使用。89S51/52比起89C51/52除可在线编程外,就是增加了一个看门狗功能。89S51/52内的看门狗定时器是一个14 位的计数器,每过16384个机器周期看门狗定时器溢出,产生一个98/fosc的正脉冲加到复位引脚上,使系统复位。使用看门狗功能,需初始化看门狗寄存器WDTRST(地址为0A6H),对其写入01EH,再写入0E1H,即激活看门狗。在正常执行程序时,在必须在小于16383个机器周期内需进行喂狗,即对看门狗寄存器WDTRST(地址为0A6H)
11、再写入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;后送E1HLJMP DOG,在C语言中要增加一个声明语句。在reg51.h声明文件中sfr WDTRST=0 xA6;main()WDTRST=0 x1e;WDTRST=0 xe1;/初始化看门狗。while(1)WDTRST=0 x1e;WDTRST=0 xe1;
12、/喂狗指令,注意事项:1 89S51的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工2 看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。3 89S51只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒以内需喂狗一次。,12.1单片机系统的设计开发过程12.2单片机系统的可靠性技术 12.3单片机系统设计开发应用举例,MCS51单片机用于电子配料秤,1 电子配料秤的工作原理,2 单元电路分析,3 调试程序,1 电子配料秤的工作原理,在普通电子秤的基础上增加配料设定输入、记忆和
13、输出继电器即可成为配料电子秤。用配料电子秤控制几种原料的自动加料、称量、放料即构成一个自动配料系统,此配料电子秤具有如下一些功能和指标:最多8种原料;配料量键盘设定且断电记忆;20种配料比(配方);快加料慢加料自动转换;提前量自动修正;实际配料量的打印记录;大屏幕显示;模拟量的标准电流420mA或标准电压05V输出;以及和上级微机联系的串行通讯接口等。静态称量精度优于0.05%。,2 单元电路分析,1 输入调零电路调零电路用以抵消传感器的零点输出和秤体本身的自重引起的传感器输出信号。它是由高稳定的电阻、多圈线绕电位器和直流稳压源组成的电桥电路(图8.20),称为调零电桥。,W1调零范围的计算:
14、E2=12VW1的滑动臂在极端位置时,其输出电压为uW1,,调零电桥的输出为u02,,3.放大环节 称重传感器输出电压摆幅约为020mV。而A/D转换的输入电压要求为02V,因此,放大环节要有100左右的增益。由7650组成一个同相放大器,如图8.21。,增益粗调最小粗调量:W2=4.7kR7=960k时,K=2增益细调最大细调量:R7=15.2kW2=4.7K时,K=4.3粗细调之间可以衔接。最大增益:R7=15.2k,W2=0时,K=199最小增益:R7=,W2=4.7K时,K=62增益可调范围62199,对应配接传感器输出幅度为3210mV。C2作为交流负反馈,以抑制称重信号以外的其他干
15、扰信号。R9C3是输出低通滤波,去除7650的调制尖峰泄漏。,放大倍数为:,为保证一定的分辨率和较低的成本,这里采用4位半积分式单片A/D转换电路ICL7135(图8.22),其分辩率达1/20000.,7153 A/D转换的输出量,为输入模拟电压在一个积分周期内的平均值。VR为基准电压,,在图8.198.20中,而传感器的输出u0=k1W,k1为传感器系数mV/Vkg,W为重量。,设放大环节的增益为k2,则7135 A/D转换的输出量,可见所得测量结果和供桥电压E1无关,仅和加载的重量成正比。R10R11C4为输入滤波,可以防止过高的输入电压损坏输入端。基准电压,对应满量程20000个码的输
16、入电压,A/D转换的时钟为125kHz,由6MHz晶振经48分频后得到。A/D转换的结果通过计算BUSY的宽度传送到CPU。,4.单片机部分该电子配料秤用单片微机8031组成一个应用系统,其结构如图8.23所示。,系统的地址分配如下表:,8155内的定时器被编程为48分频器,将8031的晶振时钟6MHz变为125kHz作为A/D转换7135的时钟。5.显示、键盘部分 由8031串行口送出的串行数据从RxD送到1640的串行数据输入端,在TxD送出的移位脉冲作用下移位进串行联接的7个164中,并锁存在164的输出端,直接点亮7段LED数码管(图8.25)。由于164无输出允许端,在移位过程中显示
17、器有些闪烁,所以加装一个由R15R16R17T1T2组成的电子开关,作为显示数据过程中的消隐。,6.模拟量的标准电流、电压输出 为远距离传送数据,可使用恒流输出,使信号不受长传输线电阻变化的影响。从放大环节出来的02V信号经过图8.27的VI变换器得到420mA恒流输出。,7.大屏幕显示 在车间上方可以装一个大屏幕显示器,以便更直观地了解配料秤的工作情况。大屏幕显示器可采用大型LED数码管或用小电珠组成七段数码显示。显示器接口电路如图8.28所示。,3 调试程序,ORG 0000HLJMP AJORG 00E0HAJ:MOV DPTR,#0BF04HMOV A,#30HMOVX DPTR,A;
18、8155TL送48MOV DPTR,#0BF05HMOV A,#40HMOVX DPTR,A;8155H送连续方波MOV DPTR,#0BF00HMOV A,#0CFH;PA、PB、PC为输出口MOVX DPTR,A;8155控制字SETB TR1SETB ET1;开T1MOV TMOD,#90HSETB IT1;INT1沿触发SETB EX1SETB EAMOV 24H,#00HLOOP:SJMP LOOP,ORG 0013HLJMP INT1PORG 001BINC 24H;T1中断服务RETI ORG 0120HINT1P:MOV 23H,TH1MOV 24H,TL1CLR CLP1:M
19、OV R2,#02H;24,23,22右移2次MOV A,24H;即除以4RRC AMOV 24H,A MOV A,23HRRC AMOV 23H,AMOV A,22HRRC AMOV 22H,ADJNZ R2,LP1CLR C;(23,22)2711HMOV A,22H;2711H=10001SUBB A,#11H,MOV 22H,A MOV A,23HSUBB A,#27HMOV 23H,AMOV TH1,#0MOV TL1,#0MOV 24H,#0MOV R0,#22HMOV R1,#25HMOV R7,#03HACALL SUBD;调用二翻十MOV A,25H;结果送显示缓冲区5054
20、 MOV B,#10HDIV AB MOV 50H,BMOV 51H,AMOV A,26HMOV B,#10HDIV AB MOV 52H,BMOV 53H,AMOV 54H,27HLJMP DISP,ORG 01A0HDISP:MOV R1,#55HMOV R2,#07HMOV P1,#0FFHLOOP2:MOV A,R1ADD A,#15HMOV A,A+PCMOV SBUF,ADEC R1NOPNOPNOPNOPDJNZ R2,LOOP2MOV P1,#OF7HRETI,ORG 0200HSUBD:PUSH PSWPUSH APUSH BMOV A,R0MOV R5,AMOV A,R1M
21、OV R6,AMOV A,R7INC AMOV R3,ACLR AMOV R1,A;结果单元清0INC R1DJNZ R3,SD10MOV A,R7;二进制位数送R3MOV B,#08HMUL ABMOV R3,ASD14:MOV A,R5MOV R0,AMOV A,R7MOV R2,ACLR C,SD11:MOV A,R0;二进制左移一位RLC AMOV R0,AINC R0DJNZ R2,SD11MOV A,R6MOV R1,AMOV A,R7MOV R2,AINC R2SD13:MOV A,R1ADDC A,R1DA AMOV R1,AINC R1DJNZ R2,SD13DJNZ R3,
22、SD13POP BPOP APOP PSWRET,在单片机控制系统中实现SCR(可控硅)的过零控制,1 数字实现SCR过零控制的方法,2 单片机温度控制系统实例,过零控制方式是经过实践检验、抑制SCR导通时产生干扰的一种行之有效的方法.1 数字实现SCR过零控制的方法数字实现SCR的过零控制,需要解决两个问题:(1)要能实现工频电压的正负过零检测,并在过零时产生脉冲信号。(2)过零脉冲信号必须受单片机输出控制信息控制。从而控制SCR过零触发脉冲的个数。数字实现SCR的过零控制示意图见图8.29,硬件电路的设计 硬件电路完成的任务是:(1)工频电压的正、负过零检测,且在过零时产生50Hz和100
23、Hz的脉冲序列。其中50Hz脉冲作为工频电压过零的同步信号。而100Hz脉冲是提供给SCR过零触发的脉冲信号。(2)由单片机发出的控制电平,去控制门电路,以控制SCR的过零触发脉冲数。硬件电路见图8.30。图8.30中各有关参考点的信号波形如图8.31所示,图8.30 数字实现SCR过零控制硬件接口电路图,2.软件设计,软件应完成的任务是:(1)识别工频的过零时刻,并在过零时刻开启和关闭控制门,以保证SCR主回路产生整数个正弦全波。(2)保证门控电路的打开时间正比于单片机输出控制量。外部中断1的中断服务程序具体实现的功能是:(1)中断时,完成控制门的开启与关闭。即单片机8031的P1.0位置“
24、1”或“0”。(2)利用中断服务次数,对控制量N 进行计数和判断。即每中断一次,对N进行减一计数。如N0,保持控制电平P1.0为“1”,继续打开控制门。如N=0,则使控制电平P1.0复位为“0”,关闭控制门,使SCR过零触发脉冲不再通过,从而达到按控制量控制的效果。,单片机温度控制系统实例,被控对象是一个仪器用温箱。被测气体通过温箱中的管状加热交换器加热后,送入仪器中进行测量。为保证测量条件,温箱或按预定的升温速率升温,或保持恒定的温度不变。温箱是用电热丝来加热的。一、系统硬件设计1.温度检测和模拟量输入通道 1)温度检测和放大电路本系统的控制精度要求在0300范围内,误差不超过0.1的高精度
25、,选用了精度高、性能稳定可靠的测温元件铂电阻。测量及放大电路见图8.32。,2)电压频率(V/F)变换器组成的A/D转换器,V/F变换器的器件选用LM331,频率范围为1Hz10KHz。,8253的控制字格式如下:D7D6D5D4D3D2D1D0,SC选择计数器 RL读/加载SC1SC2 RL1 RL200选择计数器0 0 0锁存计数器的数据缓冲器01选择计数器1 0 1选择计数器高8位10选择计数器121 0选择计数器低8位11不合法1 1 访问计数器两次,先低8位,后高8位M方式M2M1M000方式0BCDBCD计数/二进制计数001方式1BCD 10方式20 二进制16位计数器10方式3
26、1 二十进制计数器100方式4101方式5,由8253芯片与LM331组成的A/D转换器由V/F变换器组成A/D转换器原理框图见图8.35。,框图中的定时器、计数器及门控电路均由8253芯片及外加的D触发器来实现。参看图8-33。,)定时器定时1s时间间隔。选用8253芯片的计数器2与计数器1串联得到。它的计数脉冲由8031的晶振频率经分频后送入。分频器的输出连至8253的CLK2端。,)计数器由8253芯片的计数器0来实现。即LM331的V/F输出脉冲端连至8253芯片的CLK0端。)为保证1s的精确定时,采用了由软件触发选通,硬件关闭闸门的办法。三个计数器的GATE端均连在一起,以保证准确
27、地同步,测量时,由8031发出一条输出指令。地址经译码器74LS139译码,使有效。开定时闸门,同时对V/F输出脉冲计数。当定时时8253的OUT1有效。此信号作为两个D触发器的CP信号。其中一个D触发器的输出令GATE信号变低、关闭计数器。另一个D触发器的输出连至8031的,表示测量完成,向8031申请中断。,2.主机系统配置,3.SCR过零触发电路与输出控制,SCR过零触发控制电路见前图8.30。由门控电路通过的过零脉冲,经光电耦合器隔离后,去驱动双向可控硅。双向可控硅(KS50A/800V)工作在一、三象限。,二、系统软件设计,控制系统的工作由实时测量、实时决策和实时控制三部分组成。1)
28、采样周期定时根据温度的采样周期经验公式,选用采样周期为15s。采样周期定时由50Hz工频过零脉冲申请中断次数累计得到。此功能由外中断1的中断服务程序加一(或减一)实现。2)启动A/D转换在外中断1的中断服务程序中,若判断采样周期到时,发启动A/D转换信号,软件选通8253的触发信号,使8253的计数器工作。3)数据采集当8253定时1s到时,即A/D转换结束。此时由中断设备通知8031。在中断0的中断服务程序中对被测的温度数据进行采集。外中断0的中断服务程序流程图见图8.37。,外中断0的中断服务程序清单:TYPE INTAORG 9000HPUSH ACC;保护现场PUSH PSWPUSH
29、DPHPUSH DPLMOV P2,#20HMOV R0,#00HMOVX A,R0MOV 33H,AMOVX A,R0;输入8253计数MOV 32H,ACLR C,MOV A,#0FFHSUBB A,33HMOV 33H,AMOV A,#0FFHSUBB A,32HMOV 32H,A;变换成采样值32H、33H单元LCALL SUBA;求偏差JB 77H,INTA1MOV A,2EHORL A,2FHJZ INTA1;偏差0,转INTA1LCALL PID;否则,调PID控制算法LCALL COVR;将控制量转换成NSJMP INTA2,INTA1:SETB PSW.3 MOV R2,#0
30、0H;置N=0、N放在1组R2、R3内部寄存器中MOV R3,#00HCLR PSW.3INTA2:POP DPL;恢复现场POP DPHPOP PSWPOP ACCRETI;中断返回SUBA DATA 9800HPIDDATA 9910HCOVR DATA 9A20H,2.控制运算程序,1)温箱的数学模型和控制算法的选择根据实际测量,温箱是一个近似一阶惯性环节,以加热功率为输入,箱内温度为输出,其传递函数可表示为,式中:T01000s,K010,由于采样周期远远小于系统时间常数,所以可应用模拟系统数字PID控制算法进行实控制。,2)PID算法程序,PID算法采用增量式计算,位置式输出:,ck
31、=Rykuk=uk+1+uk=uk1+Kekek1+Td/Tek2ek1+ek2 式中:R:给定温度值yk:第k次采样值ck:第k次误差值T:采样周期K:比例系数T1:积分时间Td:微分时间,3输出控制程序1)将控制量Uk转换成工频正弦全波的整周波数N。本系统的控制方式是一种“调功”方式。对于工频交流电(f=50Hz),电热丝在全导通时的功率为PH。则实际输出功率P将和实际导通次数N成正比:(设控制周期=1s),将Uk变换成N的运算在主程序中进行。2)输出控制在每个采样周期内,按控制运算得到的控制量转化成控制电平P1.0的置“1”时间。,在外中断1的中断服务程序中进行N的减一计数,以开启和关闭
32、控制门。,外中断1的中断服务程序流程图见图8.38。,3.主程序,1)系统初始化包括清数据存贮区、建栈、8253的初始化(送控制字和计数初值)、确定中断优先权、开中断等。2)中断等待完成了系统初始化任务后,主程序执行中断等待程序。等待工频过零同步中断与A/D转换结束中断。为了保证正弦波的完整,工频过零同步中断被确定为高一级的中断源。主程序程序流程图见图8.39。,8253初始化,图8.39 单片机温控系统主程序流程图,本章小结,单片机本身无开发能力,必须借助开发工具进行开发。单片机应用系统的典型组成包括:单片机最小应用系统、前向通道、后向通道、人机交互通道、相互通道等。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计、仿真调试等几个阶段。研制单片机应用系统的特点是“软硬兼施”,硬件设计和软件设计必须综合考虑,才能组成高性价比的产品。,