重庆大学机电一体化内部资料7.docx
- 文档编号:24001754
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:27
- 大小:429.84KB
重庆大学机电一体化内部资料7.docx
《重庆大学机电一体化内部资料7.docx》由会员分享,可在线阅读,更多相关《重庆大学机电一体化内部资料7.docx(27页珍藏版)》请在冰豆网上搜索。
重庆大学机电一体化内部资料7
第七章单片机应用系统设计概述
7.1单片机应用系统设计概述
7.1.1单片机应用系统的分类
按照单片机系统扩展与系统配置的状况,单片机应用系统可分为最小系统、典型应用系统和增强应用系统等。
1最小应用系统
最小应用系统是指能维持单片机运行的最简配置系统。
这种系统结构简单、成本低廉,常构成一些简单的控制系统,如开关状态的输入/输出控制、时序控制等。
这种应用系统的硬件电路构成很简单,对于片内有EPROM的单片机,只要配上晶振、复位电路和电源就可以构成最小应用系统。
而对于片内无EPROM的单片机,其最小应用系统除了配置晶振、复位电路和电源外,还需扩展程序存储器。
图7-1所示是8031的最小系统。
最小应用系统的功能完全取决于单片机芯片技术水平。
2典型应用系统
典型应用系统是指单片机要完成一般工业测、控功能所必须具备的硬件结构系统。
它包括系统扩展与系统配置两部分内容。
系统扩展是指在单片机内部程序存储器(ROM/EPROM)、数据存储器(RAM)及输入/输出(I/O)口等部分不能满足系统要求时,需在片外扩展的部分。
扩展多少,视系统要求而定。
系统配置是指单片机为满足应用要求所应配置的基本外部设备,如键盘、显示器等。
单片机典型应用系统如图7-2所示。
3增强应用系统
增强应用系统是指包含为了加强典型系统的人机对话、与其他设备通讯和系统测控而增设外设与接口的系统,如图7-3所示。
外设增强部分主要是外设接口,通常采用标准外部总线,如RS一232C通用串行接口、IEEE一488仪器接口和圣特尼克(Centronic)打印机接口等。
外部设备配置的接口可以通过I/O口或扩展的I/O口构成,通常可按打印机、绘图仪、磁带机和CRT等。
通信接口实现系统与外界的数据交换,常用串行标准接口RS-232C或并行标准接口IIEEE-488等。
飞利浦的某些型号单片机集成有CAN总线接口。
测控增强部分主要是传感器接口与伺服驱动控制接口。
它们直接与工业现场相连,是干扰进入系统的主要渠道,一般都要采取隔离措施。
测控接口一般分为输入采集与输出控制。
对于数字量(频率、周期、相位、计数)的采集,其输入比较简单,数字脉冲可直接作为计数输入、测试输入、I/O口输入或作中断源输入进行事件计数、定时计数,实现脉冲的频率、周期、相位及计数测量。
对于模拟量的采集,需要通过A/D变换后才能送总线或扩展I/O口,并要配以相应的A/D转换控制信号及地址线。
对于开关量的采集则一般通过光电隔离输入I/O口或扩展I/O口。
应用系统可根据任何一种输入条件或内部运行结果进行输出控制。
开关量输出控制有信号开关阵列、时序开关和逻辑开关等,一般是通过I/O口或扩展I/O口输出。
模拟量的输出常为伺服驱动控制,控制输出通过D/A变换后送入伺服驱动电路。
7.1.2单片机应用系统的构成方式
单片机应用系统有三种结构方式。
1专用系统
这种系统的扩展与配置完全是按照应用系统的功能要求设计的。
系统硬件只需满足应用要求,系统中只配备应用软件(固化在ROM或EPROM中),故系统有最佳配置,系统的软应件资源能得到最充分的利用。
但这种系统无自开发能力,要有开发工具的支持。
采用这种结构方式,要求有较强的软硬件开发基础。
专用系统主要用在大批量生产的仪器、设备和家用电器等方面作测控用。
一般不需要很多按键,甚至可以不要。
2模块化系统
由于单片机应用系统的扩展与配置具有典型性,可把这些典型配置做成用户系列板(比如主机板、A/D板、D/A板、A/D/A板、I/O板、打印机接口板、通信接口板等),供用户选择使用。
用户可根据应用系统的要求,选择适当的功能模块组合成自己的测控系统。
模块化结构是大、中型应用系统的发展方向,它可以大大减少用户在硬件开发上投入的力量,且可使硬件开发周期缩到最短。
但目前我国单片机应用系统模块化产品水平尚不高,软硬件配套工作还不完善,有待进一步发展。
3单片单板机系统
受通用CPU单板机(如TP801等)的影响,同时也考虑多种应用目的,国内有用单片机来构成单片单板机。
这种系统的硬件按典型应用系统配置,并配有监控程序,具有自开发能力。
但是,单扳机的固定结构形式常使应用系统不能获得最佳配置(即软硬件资源不能得到充分利用),产品批量大时,软、硬件资源浪费较大。
但这种系统可以减少研制时的硬件工作量和部分软件工作量,并且具有二次开发能力,故可加速应用系统的研制速度,缩短开发周期。
7.1.3单片机应用系统设计的基本要求
要设计一个最佳的单片机应用系统,设计者必须具备以下几方面的知识和能力。
(1)一定的硬件基础知识。
设计者不仅要掌握各种单片机、存储器(如EPROM、E2PROM、RAM)和I/O接口(如8255、8155、8279及其它功能器件),还要掌握键盘、开关、检测各种输入量的传感器、控制用的执行装置以及与单片机和各种仪器进行通信的接口等。
(2)一定的软件设计能力。
设计者能根据系统的要求,设计出所需要的程序。
比如数据采样程序、A/D或D/A转换程序、数码转换程序、数字滤波程序、标度变换程序、键盘处理程序、显示及打印程序以及各种控制算法和非线性补偿程序等等。
(3)有综合运用和分析的能力。
设计者要能够将一个单片机应用系统的复杂设计任务划分成许多便于实现的组成部分,尤其是对软件和硬件折衷问题能够恰当地运用。
(4)设计者还要掌握生产过程的工艺性能及被测参数的测量方法,以及被控对象的动、静态特性等。
对单片机应用系统设计的基本要求:
1.可靠性要高
这是应用系统最重要的一个基本要求,尤其是在实时控制系统中,可靠性和实时性是两项极为重要的指标。
这是因为一旦系统出故障,将造成整个生产过程的混乱,监视或指挥系统失灵,从而导致严重后果。
因此,在系统设计过程中,对可靠性的考虑应贯穿于每一个环节。
提高系统的可靠性常用的方法有以下几种:
(1)采用双机系统
即用两片单片机作为控制系统的核心控制器,以提高系统的可靠性。
由于单片机价格不高,连接方便,故常常使用双机系统。
(2)采用集散式控制系统
集散式控制系统是一种分级分布式控制方案。
这种方案采用多个单片机作为前置处理机,它们分别完成系统的某部分控制功能,系统则用一个主单片机对各个前置机进行监督和管理。
这种分散控制的系统,可使故障对整个系统的影响减至最小。
当某一个前置机出现故障时,它的影响只是局部的,而且它所担负的任务还可由主机或其它前置机承担。
如主机出现故障,前置处理机仍可以独立地完成对被控对象的控制,这样就大大地提高了系统的可靠性。
MCS-51单片机的多机通信功能,非常适合于构成集散式控制系统。
把一个控制系统划分成多个相对独立的子系统,每一个子系统由一个8031控制。
各个子系统经8031的串行口和主机通信,接受主机的监督、管理。
主机除了对各个子系统日常管理外,还诊断各个子系统是否在正常运转,当发现某一个子系统有故障时,做出应急处理。
这种分布式控制系统在可靠性方面比集中式控制系统有明显的优点。
(3)进行软硬件滤波
在单片机应用系统的输入信号中,一般都含有种种噪声和干扰,它们主要来自被测信号本身、传感器或外界干扰。
为了提高系统的可靠性,减少各种干扰对系统的影响,常常采用硬件去藕滤波及软件数字滤波来消除干扰的影响。
常用的数字滤波方法有中值滤波、算术平均值滤波和防脉冲干扰平均增值滤波等。
(4)提高元器件的可靠性
1.在系统硬件设计和加工时,力求在满足性能条件下元器件数量最少,尽量采用集成电路或集成度高的芯片;
2.对元器件进行严格的测试、筛选和老化,做到减额使用。
经验表明,为了提高应用系统的可靠性,电容器应在额定电压50%以下使用;电阻器应在额定功率25%以下使用;电感和铁芯线因应在额定电压60%使用;晶体管应在额定功率20%一30%内使用。
当然,减额使用要视具体条件而定,比如继电器线因减荷则吸力小,使继电器正常工作失灵,反而降低了可靠性。
因此,减额使用要适当,还要视具体条件区别对待之;
3.元器件的失效率随温度升高而增大,将元器件降温使用,其失效率可降低几倍到几十倍;
4.设计时对元器件的负载、速度等技术参数应留有一定的安全余量。
(5)提高印刷电路板的质量,设计电路板时布线及接地要合理
(6)对供电电源采用抗干扰措施
①采用带屏蔽层的电源变压器;②加电源低通滤波器。
(7)输入输出通道采取抗干扰措施
①采用光电隔离电路,这对数字量和开关量的输入输出效果很好;
②采用双绞线,能有效地抗共模干扰。
2.自诊断功能要强
在进行系统整体设计时,一定要考虑系统的故障自动检测和处理的功能。
当系统正常运行时,定时对各模块进行自诊断,并对外界出现的异常情况作出快速应变处理。
对于出现无法解决的情况,应能及时切换后备装置投入工作,或及时报警,以提醒人工干预。
对于集散控制系统,主机除了对各子系统的例行监督管理外,还要诊断各子系统是否在正常运转,当发现某个系统有故障时,应立即进行处理。
3.操作和维修要方便
在系统的硬件和软件设计时,应考虑操作和维修方便,尽量降低对操作人员的专业知识的要求,以便于系统的推广。
系统的控制面板上开关不能太多、太复杂,操作顺序应简单明了,输入输出应用十进制表示,功能符号简明直观。
结构应规范化、模块化,并配有现场故障诊断程序。
4.性能/价格比高
一个单片机应用系统能否被广泛地采用,关键在于是否有很高的性能/价格比。
硬件软化是提高系统性能/价格比的实用方法。
在系统总体设计时,应尽可能减少硬件成本,能用软件实现的功能尽量用软件实现。
在不增加成本的基础上,提高软件和硬件结构的通用性和可扩充性是十分重要的。
上述四点是设计单片机应用系统时应考虑的基本要求。
对不同的应用系统还有许多特定的要求,如精度、速度、体积、重量及监视手段等,这些均须根据具体系统的要求而定。
7.1.4单片机应用系统硬件设计
1.应用系统硬件设计内容
一个单片机应用系统的硬件设计包括两大部分内容:
(1)系统扩展。
通过系统扩展,构成一个完善的计算机系统,它是单片机应用系统中的核心部分。
系统的扩展方法、内容、规模与所选用的单片机系列,以及供应状态有关。
不同系列的单片机,内部结构、外部总线特征均不相同。
扩展部分设计包括存储器扩展和接口扩展。
存储器的扩展指EPROM、EEPROM和RAM的扩展,接口扩展是指8255、8155、8279以及其它功能器件的扩展。
关于系统扩展,在此不做专门论述。
(2)各功能模块的设计。
如信号测量功能模块、信号控制功能模块、人机对话功能模块、通讯功能模块等,根据系统功能要求配置相应的A/D、D/A、键盘、显示器、打印机等外围设备。
2单片机应用系统硬件设计应遵循的基本原则
为使硬件设计具有先进性、合理性,应注意以下一些原则:
(1)尽可能选择典型电路,尤其是要优先选用符合单片机常规用法的标准化、模块化的典型电路。
这样可提高设计的成功率和结构的灵活性。
(2)系统的扩展及各功能模块的设计应充分满足应用系统的功能要求,并留有适当的余地,以便进行二次开发。
(3)硬件设计要结合应用软件方案一并考虑。
硬件电路结构与软件方案会产生相互影响,综合考虑的原则是;能用软件实现的功能尽可能由软件来实现,以便简化硬件电路,但必须注意系统对速度与实时性的要求。
(4)应用系统中相关的器件要尽可能做到性能匹配,例如选用晶振频率较高时,存储器的存取时间有限,应该选择允许存取速度较高的芯片;选择CMOS芯片单片机构成低功耗系统时,系统中的所有芯片都应该选择低功耗的产品。
(5)在电路设计时,要充分考虑应用系统各部分的驱动能力。
驱动能力不足时,系统工作不可靠甚至无法工作,而这种不可靠很难通过一般的测试手段来确定。
因此,要重视这一问题。
(6)可靠性与系统的抗干扰设计应贯穿在应用系统设计的全过程,它包括芯片、器件的选择,去噪滤波、印刷电路板布线、通道隔离等。
(7)设计时要尽可能掌握最新器件与最新技术,并把它们用于设计中。
因为电子技术发展很快,各种新器件层出不穷,各种实用的新技术日新月异,只有时刻跟踪其发展动态,才能使设计出的系统具有最先进的性能。
7.1.5应用系统的软件设计
在考虑应用系统的总体设计时,软件设计和硬件设计应统一考虑,同时进行。
当系统的硬件电路设计定型后,软件的任务也就明确了。
1.应用系统软件的功能
系统中的应用软件是根据系统功能要求设计的,软件设计得如何,将决定整个系统的效率和系统性能的优劣。
一般地讲,软件的功能可分为两大类:
(1)执行软件,它能完成各种实质性的功能。
如测量、计算、显示、打印、输出控制等。
(2)监控软件,它是专门用来协调各执行模块和操作者的关系,起组织调度的作用。
2.应用系统软件设计原则
应用系统的功能相差很大,程序编制者风格各异,因此应用软件的设计因系统而异,因人而不同。
但优秀的系统软件还是有其共同的特点和规律的。
在进行程序设计时应注意以下原则:
(1)根据软件功能要求,将软件分解为几个相对独立的任务,并根据这些任务的联系和时间关系,设计一个合理的软件结构。
(2)培养结构化程序设计风格,各功能程序实行模块化、子程序化。
这样较便于调试、链接,也便于移植、修改。
(3)建立正确的数学模型。
根据功能要求,描述出各个输入变量和输出变量之间的数学关系,这就是建立数学模型。
在单片机应用系统中,数学模型的正确程度,是系统性能好坏的决定因素。
数学模型是随系统功能的不同而异的。
例如,在测量系统中,从模拟输入通道得到的温度、流量、压力等现场信息与该信号对应的实际值往往存在非线性关系,则需要进行线性处理。
为了削弱或消除干扰信号的影响,提高系统精度,常采用算术平均法、中值法等数字滤波方法。
(4)应绘制出程序流程图。
这不仅是程序设计的一个重要组成部分,而且是决定成败的关键部分,设计者千万不可轻视这一步。
(5)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断源等,尤其要注意片内RAM的分配。
(6)软件抗干扰设计,这是提高单片机应用系统可靠性的有力措施。
(7)采取必须的软件加密措施。
7.251系列单片机高级语言C51程序设计基础
7.2.1C语言的特点
(1)语言简洁,使用方便灵活
C语言的规模较小,关键字只有32个,9种控制语句。
书写形式比较自由,表示方法简洁,使用一些简单的方法就可以构造出相当复杂的语句类型和程序结构。
(2)可移植性好
在不同的机器上80%得代码是相同的。
(3)表达能力强、方式灵活。
具有丰富的数据结构类型和运算符。
利用C语言提供的运算符可以组成各种表达式,还可以采用多种方法来获得表达式的值,从而使用户在程序设计时具有较大的灵活性。
(4)可以进行结构化程序设计。
C语言是一种结构化程序设计语言,即程序的逻辑结构可以顺序、选择、循环三种基本结构组成。
便于采用自顶向下的、逐步细化的结果化程序设计技术。
用C语言编制的程序具有容易理解、便于维护的优点。
(5)可以进行模块化程序设计。
C语言是以函数作为程序设计的基本单元的,编译器提供函数库供编程者调用,用户可以自己编写特殊需要的函数,每一个函数即相当于一个程序模块,因此C语言可以很容易地进行模块化设计。
便于多人同时进行集体性开发。
(6)可以直接操作计算机硬件。
C语言具有直接访问计算机物理地址的能力,C51编译器可以直接对51单片机的内部特殊功能寄存器和I/O口进行操作,可以直接访问片内片外存储器,还可以进行位操作。
(7)生成的目标代码质量高。
汇编语言程序目标代码的效率是最高的,对于同一个问题,C仅比汇编的低10%左右。
7.2.2C51对C语言的扩展
1标识符和关键字
C语言的标识符是用来表示源程序中某个对象名字的,这些对象可以是函数、变量、常量、数据类型、存储方式等等。
一个标识符由字符串、数字和下划线组成,开头必须是字符或下划线。
C51编译器规定的标示符长度为255个,但只有前32个有效。
C语言对于大小写敏感。
关键字是一类固定名称和特定含义的特殊标识符,有时又称保留字。
如int、for、do等等。
C51编译器除了支持ANSIC标准的关键字之外,还扩展了如下关键字
2变量的数据类型
数据类型
(1)char字符型
用于存放单字节的数据,分有符号与无符号,默认为有符号,signedchar,-128~127,0~255。
(2)int整数型
signedint和unsignedint。
默认为有符号,长度为双字节,范围-32768~32767,0~65535
(3)long长整型
signedlong和unsignedlong。
默认为有符号,长度为四个字节,范围-2147483648~2147483647,0~4294967295。
(4)float浮点型
占用四个字节,约10-38~1038。
(5)*指针型
指针型数据不同于上述四种基本数据类型,它本身是一种变量,但这个变量中存储的是量一个数据的地址。
指针变量也有数据类型,它的数据类型表示该指针指向地址中数据的类型。
使用指针型变量可以方便的对单片机的各部分物理地址进行直接操作。
(6)bit位标量
C51的一种扩充的数据类型。
利用它可以定义一种位标量。
但不能定义指针与数组。
值域为0、1。
(7)sfr特殊功能寄存器
C51的一种扩充的数据类型。
利用它可以访问51系列单片机内部的所有特殊功能寄存器,如定时器方式寄存器TMOD,中断允许控制寄存器IE等,sfr型数据占用一个字节的内存单元。
值域为0-255。
定义sfrP0=0x80;/*定义I/O口P0,其地址位80H*/
关键字后必须是一个名字,名字可以任取,但最好符合一般的习惯,等号后边必须是常数,而且必须是特殊功能寄存器的地址。
80H~FFH。
(8)sfr1616位特殊功能寄存器
占用两个字节的内存单元。
值域为0-65535。
用于定义16位的寄存器。
(9)sbit可寻址位
C51的一种扩充的数据类型。
利用它可以访问51单片机内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。
使用方法有三种:
1sbit位变量名=位地址;将绝对地址赋予位变量,位地址必须位于80H~FFH之间。
例如:
sbitOV=0xD2;sbitCY=0xD7;
2sbit位变量名=特殊功能寄存器名^位位置
当可寻址位位于特殊功能寄存器中时可以采用这种方法,“位位置”是一个0~7之间的常数。
例如PSW程序状态字寄存器
sfrPSW=0xD0;sbitOV=PSW^2;sbitCY=PSW^7;
3sbit位变量名=字节地址^位位置
以一个常数(字节地址)作为基地址,该常数必须在80H~FFH之间。
“位位置”是一个0~7之间的常数。
例如:
sbitOV=0xD0^2;sbitCY=0xD0^7;
3变量的存储模式
变量是一种在程序执行过程中能不断变化的量。
它有数据类型、存储类型、存储器模式、和有效范围四种属性。
C语言规定每个变量必须有一个标识符作为变量名,在使用一个变量前,必须先对变量进行定义,指出其数据类型和存储模式。
以便编译系统为其分配存储单元。
在C51中对变量进行定义的格式如下:
[存储类型]数据类型[存储器类型]变量名表;
变量的存储模式是指变量的存储类型与存储器类型
存储类型指明变量的存储区域,而变量的存储类型和变量在程序中说明的位置决定了它的作用范围。
存储类型含义与C语言相同。
存储类型有四种:
auto型、extern型、static型、register型,缺省为auto型。
C51编译器还允许说明变量的存储器类型。
C51编译器完全支持51系列单片机的硬件结构,可以访问其硬件系统的所有部分。
定义变量时如果省略了“存储器类型”,则按编译模式SAMLL,COMPACT,LARGE所规定的默认存储器类型确定变量的存储区域,(#pragma预编译命令,可以指定函数的默认存储器模式。
)C51编译器的三种存储器模式(默认的存储器类型)对变量的影响如下:
1SMALL变量被定义在8051单片机的内部数据存储器中,因此对这种变量的访问速度最快。
另外,所有的对象,包括堆栈,都必须嵌入内部数据存储器,而堆栈的长度是很重要的,实际栈长取决于不同函数的嵌套深度。
2COMPACT变量被定义在分页外部数据存储器中,外部数据段的长度可达256字节。
这时对变量的访问是通过寄存器间接寻址(MOVX@Ri)进行的,堆栈位于8051单片机内部数据存储器中。
采用这种编译模式时,变量的高8位地址由P2口确定。
3LARGE变量被定义在外部数据存储器中(最大可达64K字节),使用数据指针DPTR来间接访问变量,访问数据速度慢,增加程序代码的长度。
4函数的参数和局部变量的存储器模式
一个函数的存储器模式确定了函数的参数和局部变量在内存中的地址空间,规则与变量定义一致。
在定义一个函数时可以明确制定该函数的存储器模式,一般的形式如下:
函数类型函数名(形式参数表)[存储器模式]
其中的存储器模式是选项,未说明时则按该函数编译时的默认存储器模式处理。
例如:
#pragmalarge/*默认存储器模式为LARGE*/
intfunc1(inta1,inta2)small/*指定存储器模式为SMALL*/
{
intc;
……
……
}
intfunc2(intb1,intb2)/*未指定模式,默认存储器模式为LARGE*/
{
intc;
……
……
}
#pragma预编译命令,可以指定函数的默认存储器模式。
C51允许采用存储器的混合模式编程,充分利用单片机中有限的存储器空间。
同时还可以加快程序运行的速度。
5中断服务函数与寄存器组定义
C51编译器支持在C语言程序中直接编写51单片机的中断服务程序,C51编译对函数定义进行了扩展,增加了一个关键字interrupt,interrupt时函数定义是的一个选项,加上它函数将函数定义成中断服务函数。
函数类型函数名(形式参数表)[interruptn][usingn]
interrupt后面的n为中断号,n的取值范围为0~31,编译器从8n+3处产生中断向量。
常用的中断源与中断向量如表所示。
C51编译器还扩展了一个关键字using,专门用来选择单片机的寄存器组,缺省时由编译器选择一个寄存器组作为绝对寄存器组访问。
编写8051单片机中断函数时应遵循以下规则:
(l).中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。
(2).中断函数没有返回值,如果企图定义一个返回值将得到不正确的结果。
因此建议在定义中断函数时将其定义为void类型,以明确说明没有返回值。
(3).在任何情况下都不能直接调用中断函数,否则会产生编译错误。
因为中断函数的返回是由8051单片机指令RETI完成的,RETI指令影响8051单片机的硬件中断系统。
如果在没有实际中断调求的情况。
直接调用中断函数,RETI指令的操作结果会产生一个致命的错误。
(4).如果中断函数中用到浮点运算,必须保存浮点寄存器的状态,当没有其它程序执行浮点运算时可以不保存。
C51编译器的数学函数库math.h中,提供了保存浮点寄存器状态的库函数pfsave和恢复浮点寄存器状态的库函数fprestor。
(5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 重庆大学 机电 一体化 内部 资料