在进行微控制器应用系统设计时,具有一定的设计原则和设计方法,按照正确的设计步骤可以得到事半功倍的效果。
图2-7给出了微控制器应用系统设计的流程图。
图2-7 微控制器应用系统设计的流程
1.方案的制定和论证分析
开发题目确定后,首先要进行方案调研,收集相关基础资料。调研包括以下几个问题:
1)了解用户要求,确定设计规模和总体框架;
2)辨析软硬件技术难点,明确技术主攻要点;
3)针对主攻问题展开调研工作,查找资料,确定初步方案;
4)微控制器应用开发技术是软硬件结合的技术,方案设计要权衡任务的软、硬件分工;
5)尽量采用可借鉴的技术,减少重复性的工作。
2.微控制器应用系统的硬件电路设计要点
要依据控制对象的要求及所选微控制器软件指令功能的强弱进行,微控制器应用系统的硬件设计通常可划分为:
(1)系统扩展设计 即微控制器内部的功能单元(ROM、RAM、I/O、定时器/计数器)在数量或容量上不能满足应用系统要求时,必须在片外进行扩展设计;
(2)系统配置设计 即按控制对象要求配置外部设备,包括输入信号整形、变换、隔离和传感器选择以及输出通道中的隔离、驱动、执行元件的选用等。一般应遵循原则是:
1)尽量选择典型电路,并符合微控制器的常规用法;
2)系统硬件设计在满足应用系统功能的前提下,要留有扩展余地,以便二次开发;
3)硬件电路设计应结合软件方案一并考虑(硬件电路结构与软件方案会相互影响,原则上规定:尽量采用软件实现,以简化硬件电路结构);
4)注意系统器件的匹配性(如晶振频率较高时,存储器的存储速率也要高;低功耗的CMOS微控制器,应匹配相应的CMOS型的外部元器件);
5)可靠性及抗干扰设计(芯片、器件选择、滤波、布线、通道隔离等);
6)考虑微控制器的驱动能力问题。(www.daowen.com)
3.微控制器应用系统的应用软件设计要点
应用系统中测试控制任务的实现最终是靠程序的执行来完成的。应用软件设计得如何,将决定整个系统的效率和优劣。软件设计需注意以下几个方面:
1)系统软件结构要清晰、简捷、流程合理,采用自顶向下的程序设计。程序设计时,先从系统主程序开始设计,从属的程序或子程序用程序标志代替。当主程序编好后,再将标志扩展为从属程序或子程序。
近几年推出的微控制器开发系统,有些是支持高级语言的,如C51、PL/M96的编程和在线跟踪调试。使用高级语言编程比使用汇编语言编程可大大提高开发、调试效率,而得到的目标代码质量可与使用汇编语言相媲美。
2)各功能程序要实现子程序化、模块化,采用模块程序设计。模块程序设计是把一个较长的完整的程序(如监控程序),分成若干个小的功能程序模块,在分别进行独立设计、编程、调试之后,最终装配在一起链接成一个完整的程序。模块化程序设计便于程序的移植和修改。外部设备和外部事件尽量采用中断方式与CPU联络,这样既便于系统模块化,也可提高程序效率。
3)程序存储区与数据存储区规划合理、得当。
4)运行状态实行标准化管理。
5)调试修改后的程序要进行规范化处理。目前已有一些实用子程序库发表,程序设计时可适当选用,其中包括运算子程序和控制算法程序等。
6)实现软件抗干扰设计及自诊断程序设计。系统的软件设计应充分考虑到软件抗干扰措施,如数字滤波、程序跑飞的软件陷阱、WATCHDOG(看门狗定时器)软件、软件的容错设计等。
4.微控制器应用系统的软、硬件综合调试
一个微控制器应用系统,经过方案论证、硬件设计(印制电路板设计加工和焊接)、软件的编写,还要进行软、硬件的调试,验证理论设计的正确性。由于微控制器没有自开发能力,其应用系统调试需借助于微控制器开发系统。微控制器开发系统主要的功能是:
1)系统硬件电路的诊断与检查。
2)程序的录入、编辑和交叉汇编功能。
3)程序的运行、调试功能,提供仿真RAM或仿真微控制器所有的硬件资源,支持用户汇编语言(有的同时支持高级语言)源文件跟踪调试,一般的开发装置都有通用的微机接口,可以利用微机环境进行调试。
4)E(E)PROM的写入功能,即能将应用程序固化(烧写)到程序存储器中,微控制器的开发过程(这里所说的开发过程并不是一般书中所说的从任务分析开始)中,假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编辑器(EDIT)、中文编辑软件(CCED)等,编写好后,用编译器对源程序文件编译、查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。
5)仿真、仿真机。仿真是微控制器开发过程中非常重要的一个环节,除了一些极简单的任务,一般产品开发过程中都要进行仿真,仿真的主要目的是进行软件调试,当然借助仿真机,也能进行一些硬件排错。一块微控制器应用电路板包括微控制器部分及为达到使用目的而设计的应用电路,仿真就是利用仿真机来代替应用电路板(称为目标机)的微控制器部分,对应用电路部分进行测试、调试。仿真有CPU仿真和ROM仿真两种,所谓CPU仿真是指用仿真机代替目标机的CPU,由仿真机向目标机的应用电路部分提供各种信号、数据而进行调试的方法。这种仿真可以通过单步运行、连续运行等多种方法来运行程序,并能观察到微控制器内部的变化,便于改正程序中的错误。所谓ROM仿真,就是用仿真机代替目标机的ROM,目标机的CPU工作时,从仿真机中读取程序,并执行。这种仿真其实就是将仿真机当成一片EPROM,只是省去了擦片、写片的麻烦,并没有多少调试手段可言。通常这是两种不同类型的仿真机,也就是说,一台仿真机不能既做CPU仿真,又做ROM仿真。可能的情况下,当然以CPU仿真为好。
6)微控制器应用系统的脱机运行分析。使用开发装置调试通过的程序,要将仿真RAM中运行的程序固化到EPROM中离线运行。在运行时,要注意以下问题:
①在开发装置上将运行正常的程序固化到微控制器中,并观察运行状态。
②若运行有问题,需分析原因,如是否总线驱动能力不够,或是对接口芯片操作的时间不匹配等,并修改硬件电路或软件程序。
③经修改后的程序需再次写入,再运行调试,直至通过。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。