第9章+单片机系统设计Word文档下载推荐.docx
《第9章+单片机系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《第9章+单片机系统设计Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
当完成可行性分析并确认方案可行后,便进入系统整体方案设计阶段。
这里,主要结合国内外相关产品的技术参数和功能特性、本系统的应用要求及现有条件,来决定本设计所要实现的功能和技术指标。
接着,制定合理的计划,编写设计任务书,从而完成该单片机应用系统的总体方案设计。
9.3单片机系统硬件设计
9.3.1单片机选型
在片机应用系统开发中,单片机是整个设计的核心,设计者需要为单片机选择合适的外部器件,同时还需要设计整个控制软件,因此选择合适的单片机型号很重要。
目前,市场上的单片机种类繁多,在进行正式的单片机应用系统开发之前,需要根据不同单片机的特性,从中做出合理的选择。
在单片机选型时,主要注意以下几点
1,仔细调查市场,尽量选用主流的,货源充足的单片机型号,这些器件使用的比较广泛,有许多设计资料供学习或参考。
2,尽量选择所需的硬件资源集成在单片机内部的型号,例如ADC,DAC,1IC,SPI和USB等,这样便于整个控制系统的软件管理,减少外部硬件的投入,缩小整体电路板的面积,从而减少总体投资等。
3,对于手持式设备,移动设备或者其他需要低功耗的设备,尽量选择低电压,低功耗的单片机型号,这样可以减少能量的消耗,延长设备的使用寿命。
4,在资金等条件允许的情况下,尽量选择功能丰富,扩展能力强的单片机,这样便于以后的功能升级和扩展。
5,对于体积有限制的产品,尽量选择贴片封装的单片机型号,这样可以减少电路板面积,从而降低硬件成本,同时也有助于电磁兼容设计。
9.3.2硬件资源分配
1,I/O口分配
I/O口是单片机与外围设备进行信息交流的唯一通道,I/O口的多少决定了单片机能够驱动多少外围设备。
STC系列8051单片机最多有6组I/O口,分别为P0、P1、P2、P3、P4、P5,最多共44个,所有I/O口均可由软件配置成4种工作类型之一。
4种类型分别为:
准双向口/弱上拉(标准8051输出方式)、强推挽输出/强上拉、仅为输入(高阻)或开漏输出功能。
每个I/O由2个控制寄存器中的相应位控制每个引脚的工作类型。
单片机复位后为准双向口/弱上拉(传统8051I/O口)模式。
2V以上时为高电平,0.8V以下时为低电平。
每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过120mA。
2,定时器分配
STC系列8051单片机最多有4个定时器,其中定时器0和定时器1是两个16位定时器,与传统的8051完全兼容,也可以设置为1T模式。
另外STC系列单片机还有2路PCA/PWM可以再实现2个16位定时器。
定时器0和定时器1都具有计数方式和定时方式两种工作方式T0或T1为定时器还是计数器。
定时器/计数器0有4种工作方式:
模式0(13位定时器/计数器)、模式1(16位定时器/计数器)、模式2(8位自动重装模式),模式3(两个8位定时器/计数器)。
定时器/计数器1除模式3外,其他工作模式与定时器/计数器0相同,T1在模式3时无效,停止计数。
在实际应用系统中,必须根据具体情况选择,如按定时精度、待测量输入信号性质、输出信号特征等从简单到复杂依次分配。
3,中断分配
中断系统是为使CPU具有对外界紧急事件的处理能力而设置的。
当中央处理器CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。
STC系列单片机提供了10个中断请求源,他们分别是:
外部中断0、定时器0中断、外部中断1、定时器1中断、串口1中断、A/D转换中断、低压检测中断、PCA中断、串口2中断以及SPI中断。
所有的中断都具有4个中断优先级。
通过设置新增加的特殊功能寄存器IPH或IP2H中相应的位,可以将中断优先级设为四级,如果只设置IP或IP2,那么中断优先级就只有两级,与传统的8051单片机两级中断完全兼容。
由于8051单片机的可触发中断的I/O口数量比较少,在进行单片机系统设计的时候,优先考虑那些必须的中断口的连接方式。
4,外设资源分配
外设接口一般是在单片机内部集成的一些硬件外设驱动器映射到单片机I/O口上的复用功能的接口,比较常见的像SPI、SCI、IIC、IIS、CAN、PPI等。
外设接口的驱动时序一般由单片机内部的硬件模块产生,CPU只需向硬件模块发出指令即可,而在硬件模块与外设进行通信的过程中不需要CPU的参与,这样单片机可以有更多时间来处理其它事务。
传统的8051单片机外设接口只有一个串口和一个8080并口,其他与外设通信的协议都需要用软件来模拟,大大降低了CPU的使用效率。
STC系列8051单片机相比于传统的8051单片机做了很大的改进,譬如增加了一个额外的串口,A/D转换、PCA/PWM、SPI、EEPROM等。
合理的使用这些硬件外设资源可以显著的提高单片机系统的整体性能,譬如Flash存储器、SD卡、串行A/D、D/A等外设一般都是SPI接口,将其接在单片机的硬件SPI接口上,不仅可以提高与外设的通信速度,而且还极大的简化了软件的工作量。
因为这样CPU与外设通信只需要写入或读出一些指定寄存器的值即可完成通信,具体的通信协议不用CPU参与,这样CPU可以有更多时间去完成其他复杂的运算。
使用硬件外设接口虽然降低了单片机I/O口的使用的灵活性,但随着单片机I/O口映射功能的提高,硬件外设接口的使用也变得十分灵活,并且使用硬件外设接口并没有丧失使用软件模拟通信协议的功能,因此合理分配外设资源对单片机的系统设计十分关键。
9.3.3原理图及PCB设计
1,原理图设计
原理图的设计流程分为器件选型,原理封装设计,原理设计,PCB封装指定。
(1),器件选型:
在进行器件选型时,应依据以下原则选定器件:
,功能适合性:
既保证冗余性,又不会造成大的浪费。
例如电源芯片(峰值的30%余量)和FPGA/CPLD芯片等(考虑芯片资源,器件功率,电容耐压值)。
,开发延续性:
对于同一功能的器件,采用原有设计的升级芯片。
选型芯片,考虑技术支持和驱动程序设计。
,焊接可靠性:
器件封装不能影响焊接、调试和维修,接插件的选择要保证接口可靠、安装方便。
,布线方便性:
封装的选择决定着器件的布局和布线方式。
,器件通用性:
可替换种类越多越好,避免停产等。
尽量选用公司内部常用的器件。
,采购便捷性:
器件用量大,采购周期短。
,性价比的考虑
(2),原理图封装设计:
,管脚指定:
进行新封装设计时,必须把管脚归类放置,电源放在顶部,地放置在底部,输入放在左边,输出放置在右边。
同一接口的各个管脚要放在一起,方便绘图和检查。
如单片机的PA口、PB口,PCI总线,RAM接口等。
(常用芯片调用公司内部的标准库)
,管脚命名:
对于低有效的管脚命名应该使用“\”,如:
“R\S\T\”表现为。
对于总线管脚,直接命名为XX_AD0、XX_AD1依此类推。
不使用隐藏管脚功能。
,封装设计:
原理封装应该保持器件尺寸的合理性,便于原理图设计。
管脚过多的芯片,应按照功能模块分成若干部分进行设计。
,PCB封装:
PCB封装必须根据原理图封装及器件手册具体尺寸设计;
命名最好以datasheet规定的标准来命名。
,器件属性:
芯片型号的尾缀必须写全,对于阻容器件需要标明耐压值、精度等
(3),原理设计:
,功能模块的划分:
在确定方案后,首先划分功能模块。
相同模块放置在同一页内,页面大小最好不要超过A3(最大为A4)型。
各功能块布局要合理,页面布局均衡,避免有些地方很挤,而有些地方很松。
同一页面有两个以上模块时,应用虚线框区分。
,信息标注:
对于跳线开关或跳线电阻等,必须进行文本功能原理标识。
对于接口,应该提供接口信号定义说明。
对于上下拉电阻选择不同功能时,应该提供功能说明,例如IIC地址的选择,应该提供选择后的IIC地址。
,符号的使用:
数字地使用DGND网络名,并使用
符号表示,其他数字地网络如均使用此符号。
模拟地使用AGND网络名,并使用
符号表示,其他模拟地网络均使用此符号。
机壳地使用EARTH网络名,并使用
符号表示。
数字电源必须以VCC开始,使用
例如VCC_3V3、VCC_5V等。
模拟电源必须以VA开始,并使用
符号表示,例如VA_5V等。
分页设计时,使用
表示输入管脚、
表示输出管脚、
表示双向管脚。
,命名规则:
在分页设计时,网络的输入输出标识名优先网络名,所以最好保持输入输出标识名与网络名保持一致。
网络名命名以字母数字和下划线命名。
关键信号必须增加网络名,最好指定每一条信号线的网络名以便于布线。
网络名以信号源端为命名标准。
器件名应如下:
芯片U;
电阻R;
电容C;
过孔接插件JP;
表贴接插件JS;
有源时钟OSC;
无源时钟CRY;
测试点TP;
电感L;
二极管、LEDD;
其它根据实际情况选择第一个英文首字母。
IC类器件,如果需要增加插座,应在标准名称后增加“Socket”标识,方便工艺人员进行整理。
(4),PCB封装指定:
必须为每个器件指定封装。
对于同一封装器件进行器件区分。
例如0805,使用R0805,C0805,D0805来区别电阻,电容和二极管。
相应的库最好是R0805使用全包围矩形,C0805使用椭圆短边,D0805使用一边粗线,三边细线的封装,便于检查。
2,PCB设计
(1)PCB的基本工艺参数:
,PCB板材:
PCB设计常用的板材为FR-4基本,该板材为环氧玻璃布层压板,含阻燃
剂,具有良好的电性能和加工性能,适用于多层板,广泛应用于电子工业,具有较高的性能价格比。
,PCB厚度:
PCB厚度指的是其标称厚度(即绝缘层加铜箔的厚度)。
推荐采用的PCB厚度:
0.5mm,0.7mm,0.8mm,1mm,1.5mm,1.6mm,(1.8mm),2mm,2.2mm,2.3mm,2.4mm,(2.45mm),(2.8mm),(3.0mm),3.2mm,4.0mm,(4.5mm),(5.0mm),(5.9mm),6.4mm,(7.0mm)。
0.7mm和1.5mm板厚的PCB用于带金手指双面板的设计。
PCB厚度的选取应该根据板尺寸大小和所安装元件的重量选取。
其中1.8mm、3.0mm为非标准尺寸,尽可能少用。
,铜箔厚度:
PCB铜箔厚度指成品厚度,图纸上应该明确标注为成品厚度(FinishedConductorThickness)。
工艺上要注意的是铜箔厚度要与设计的线宽/线距相匹配,表1列出了基铜厚度(底铜厚度)可蚀刻的最小线宽和线间距,供选择时参考。
表1PCB铜箔的选择
基铜厚度
设计的最小线宽/线间距(mil)
(oz/Ft2)
公制(um)
5
175
11/15
4
140
12/12
3
105
10/10
2
70
8/8
1
35
6/6
0.5
18
4/4
(2)PCB设计需要考虑的问题:
PCB的工艺设计非常重要,它关系到所设计的PCB能否高效率、低成本地制造出来。
新
一代的SMT装联工艺,由于其复杂性,要求设计者从一开始就必须考虑制造的问题。
因为一旦设计完成后再进行修改势必延长转产时间、增加开发成本。
即使改SMT元件一个焊盘的位置也要进行重新布线、重新制作PCB加工菲林和焊膏印刷钢板,硬成本至少要两万元以上。
对模拟电路就更加困难,甚至要重新进行设计、调试。
但是,如果不进行修改,批量生产造成的损失就会更大,所付出的代价将是前一阶段修改成本的数十倍以上。
因此,设计者必须从设计工作开始起就重视工艺问题,问题越早解决越有利。
工艺性设计要考虑:
a)自动化生产所需的传送边、定位孔、光学定位符号;
b)与生产效率有关的拼板;
c)与焊接合格率有关的元件封装选型、基板材质选择、组装方式、元件布局、焊盘设计、阻焊层设计;
d)与检查、维修、测试有关的元件间距、测试焊盘设计;
e)与PCB制造有关的导通孔和元件孔径设计、焊盘环宽设计、隔离环宽设计、线宽和线距设计;
f)与装配、调试、接线有关的丝印或腐蚀字符;
g)与压接、焊接、螺装、铆接工艺有关的孔径、安装空间;
h)与热设计、EMC等可靠性设计有关的焊盘、导线要求
9.4单片机系统软件设计
单片机应用系统的开发,除了必须注意硬件电路的正确设计与连接外,更重要的工作是系统软件设计。
1,系统资源
在单片机应用系统的开发中,软件的设计是最复杂和困难的,大部分情况下工作量都较大,特别是对那些控制系统比较复杂的情况。
在考虑一个应用工程项目时就需先分析该系统完成的任务,明确软硬件承担哪些工作,有时,实际上这种情况很多,就是一些任务可用软件完成,也可以用硬件构成,还需考虑采用软件或硬件它们优势,一般均以最优的方案为首选。
像定义各输入/输出(I/O)的功能、数据的传输交换形式、与外部设备接口及它们的地址分配、程序存储器和数据存储器的使用区域、主程序子程序使用的空间、显示(如有的话)等数据暂存区的选择、堆栈区的开辟等等因素。
2,程序结构
一个优秀的单片机程序设计人员,设计的软件程序结构是合理、紧凑和高效的。
同一种任务,有时用主程序完成是合理的,但有时需子程序执行效率最高,占用CPU资源最少。
一些要求不高的中断任务或单片机的速度足够高,可以使用程序扫描查询也可以用中断申请执行,这也要具体的问题具体分析。
对于多中断系统,但它们存在矛盾时,需区分轻重缓急,主要和次要的区别对待。
并适当地授予不同的中断优先级别。
对于复杂的多任务实时控制系统,要处理的数据就非常庞大,同时又要求对多个控制对象进行实时控制,要求对各控制对象的实时数据进行快速的处理和响应,这对系统的实时性、“并行性”提出了更高的要求。
这种情况下一般要求采用实时任务操作系统,并要求这个系统具备优良的实时控制能力。
3,数学模型
一个控制系统的研制,明确了它们需完成的任务,那么摆在设计人员面前的就是一堆需要协调解决的问题了,这是设计人员必须进一步分析各输入输出变量的数学关系,也即建立数学模型,这个步骤对一般较复杂的控制系统是必不可少的,而且不同的控制系统,它们的数学模型也不尽相同。
在很多控制系统中都需要对外部的数据进行采集取样、处理加工、补偿校正和控制输出。
外部数据可能是数字量也可能是模拟量,对于模拟量的输入,则通过传感器件进行采样,由单片机进行分析处理后输出,输出的方式很多,可以显示、打印或终端控制,从模拟量的采样到输出的诸多环节,这些信号都可能会“失真”——即产生非线性误差,这些都需要单片机进行补偿、校正和预加重,才能保证输出量达到我们所要求的误差范围。
4,程序流程
较复杂的控制系统一般都需要绘制一份程序流程图,可以这样说它是程序编制的纲领性文件,可以有效地知道程序的编写。
当然,程序设计伊始,流程图不可能尽善尽美,在编制过程中仍需进行修改和完善,认真地绘制程序流程图,可以起到事倍功半的效果。
流程图就是根据系统功能的要求及操作过程,列出主要的各功能模块,复杂程序流向多变时,需要在初始化时设置各种标志,程序根据这些标志控制程序的流向。
当系统中各功能模块的状态改变时,只须修改相应的标志即可,无须具体地管理状态变化对其他模块的影响,这些需要在绘制流程图时,清晰地标识出程序流程中各个标志的功能。
5,编制程序
上述的工作做好了,就可以开始编制程序了,程序编写时,首先需对用到的参数进行定义,和标号的定义一样,使用的字符必须易于理解,可以使用英文单词和汉语拼音的缩写形式,这对今后自己的辨读和排错都是有好处的。
然后初始化各个特殊功能寄存器的状态,中断口的地址区定义,数据存储区的安排,根据系统的具体情况,估算中断、子程序的使用情况,预留出堆栈区,和需要的数据缓存区,接下来就开始编写程序了。
现在的单片机程序还是以汇编语言为主,因为它以简洁、直观、紧凑仍被设计人员乐于接受。
高级语言(如C语言)也在单片机设计中发挥越来越重要的角色,性能也越来越好,但不管是使用何种语言,最终还是需要汇编成机器语言,调试正常后,通过烧录器固化到单片机或ROM中。
至此,程序编写即告完成。
9.4单片机系统调试
9.4.1硬件调试
在单片机开发过程中,硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。
讨论硬件调试的技巧。
1,排除逻辑故障
这类故障往往由于设计和加工制板过程中工艺性错误所造成的。
主要包括错线、开路、
短路。
排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。
应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。
必要时利用数字万用表的短路测试功能,可以缩短排错时间。
2,调试供电系统
在焊接PCB时,先将供电系统焊接好,焊好之后再通电测试电源是否正常。
在通电前,
一定要检查电源电压的幅值和极性,否则很容易损坏电源芯片。
加电后检查各元件上引脚的电位,一般先检查VCC与GND之间电位是否正常。
没有问题再测试一下电源模块的输出是否正常,正常则可以继续焊接其他元件。
建议不要一开始就把所有的元件都焊上去,那样如果电源部分不正常时尤其是输出电压过高的情况下会烧坏其他的元件。
3,排除元器件失效
造成这类错误的原因有两个:
一个是元器件买来时就已坏了;
另一个是由于安装错误,
造成器件烧坏。
可以采取检查元器件与设计要求的型号、规格和安装是否一致。
在保证安装无误后,用替换方法排除错误。
4,检查单片机调试下载电路
以上问题就检查之后,剩下的硬件调试工作就是检查单片机的调试下载电路,这部分主
要检查调试电路的接口是否正确,有没有接反等。
不同的单片机调试接口类型也不一样,有些单片机调试接口只需要2-3条线,有的需要多达20条线。
如STC系列51单片机内置Bootloader,可以通过串口来下载成程序,首先要注意的是串口的两条线不要接反了,其次就是检查电平转换部分是否正常工作,以电平转换芯片的输出电压作为判断依据。
当以上基本的硬件问题都排除后,还不能说明整个硬件已经没有问题了,但是现在可以对单片机系统下载程序进行软件调试了。
有些不方便检查的硬件问题可以结合软件调试来检查,当整个硬件系统都调通后可以将重点放在软件调试部分。
9.4.2软件调试
单片机应用系统的软件调试是系统开发的重要环节,在单片机软件开发过程中,软件调试是单片机技术人员必须掌握的重要基本技能。
以下介绍几种常用的调试方法。
1,Keil仿真调试
Keil除了集成了业内最领先的技术,基本支持所有处理器的开发,另外还具备强大的
设备模拟功能。
通过软件仿真,我们可以发现很多将要出现的问题,避免了下载到单片机里面才来检查这些错误,这样最大的好处是能很方便的检查程序存在的问题,因为在Keil的仿真里面,你可以查到很多硬件相关的寄存器,通过观察这些寄存器,你可以知道代码是不是真的有效。
另外一个优点是不必频繁的刷机,从而延长了单片机的FLASH的寿命。
2,Protues仿真
Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其
它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MATLAB等多种编译。
3,在线硬件调试
在线调试就是直接将程序下载到目标板上观察结果的一种调试方法。
目前51单片机除了51F系列外都不能通过仿真器连接开发工具进行调试,因此出现了一种内置Bootloader的使用串口下载程序的调试方法。
使用这种调试方法稍微显得麻烦一点,通过串口调试需要断电后重新上电才可以下载程序,主要用于区分串口通信还是下载程序。
9.5应用实例
本节将介绍一个无线数据采集系统的应用实例。
研究工业环境下的无线数据通信技术是近年来新的发展趋势,将无线技术引入数据采集领域,可以解决无法布线环境下的数据采集难题,提高数据采集系统的适应性,而且可以解决有线网络带来的布线麻烦、出现故障检查困难等缺点。
9.5.1系统硬件电路设计
本无线数据采集系统的硬件电路有5大模块组成,分别为核心处理器模块、数据采集模块、电源模块、通信模块、存储模块,电路结构框图如图1所示。
图1系统硬件结构框图
1,核心处理器模块
核心处理器采用STC12LE5A60,STC12LE5A60系列单片机是宏晶科技生产的单时钟、机
器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位AD转换。
STC12LE5A60系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。
该模块电路图如图2所示。
图2核心处理器模块
2,数据采集模块
数据采集选用的芯片为德州仪器公司研发的高精度、宽动态范围