1.设备的准备
① 必备的设备:计算机、仿真器、编程器以及数字万用表、电烙铁、钳子、螺钉旋具等工具。仿真器是调试程序用的,不同的单片机要有不向的仿真器,如51系列单片机就要51系列单片机仿真器。仿真器有通用型仿真器、专用型仿真器。通用型适用于多个系列,价高;专用型只适用于某一系列,价低。编程器是固化(或写入)芯片用的,编程器也分简易型和通用型,两者的差别主要是可固化芯片数目不同,前者数目少而后者数目多,其售价差别也很大。初学者选一种可固化自己所用芯片的简易型编程器即可。不管是仿真还是编程都需要和计算机连起来,通过计算机来仿真或编程。
② 其它设备:双踪示波器、多功能信号发生器、直流稳压电源等。
2.总体设计
总体设计,分为产品的结构设计(或叫机械设计)、电气设计两种。
结构设计主要考虑产品的形状、体积、面板的尺寸;面板上诸如按钮、指示灯、显示器的布置;仪器背板的尺寸、背板上信号线和电源线如何引入;接线端子如何安排等。
电气设计包括软件和硬件的设计、单片机的选择、外围电路器件的选择、编程语言的选择等。在最后要画出单片机应用系统的结构框图,在结构框图里要包括所选单片机的框图以及各个功能块的框图。
3.硬件设计
硬件设计主要是指设计能实现所要求功能的硬件电路。根据前面总体设计时设计的系统结构框图画出电路原理图,结合产品的结构和工艺设计,再画出印制电路板图。在作单片机应用系统的硬件设计时,应考虑如下:
① 硬件设计中涉及到的具体电路首先应是自己以前在别的项目上用过的现成的电路,这种电路好与否自己最清楚。其次是借鉴别人的电路,注意采用别人电路时一定要先调试,不能直接放在电路中。
② 硬件电路采用模块化设计。如—个单片机应用系统有单片机最小系统、时钟电路、A/D转换电路、LED或LCD显示电路、串口通信电路等,可分别作为独立模块来设计。模块化设计的好处在于可以“分而治之”。每一个模块都调试通过,那么整个系统的硬件就基本调试通过了,而且调试好的模块还可方便地移植到其它的单片机应用系统中去。
③ 选择市场货源充足、常用的元器件,尤其是集成电路芯片不能选独家产品,独家产品一是售价太高,二是一旦缺货就无计可施。
④ 在进行硬件电路设计时,要充分考虑系统各部分的驱动能力,若驱动能力不够,系统就不能可靠工作或完全不能工作。
⑤ 在画电路原理图时,要充分考虑产品的结构设计和工艺设计,必须在做印制电路板图之前完成,否则印制电路板的个数、大小尺寸和形状均无法确定。
⑥ 目前流行的绘电路图的工具有很多种,其中最好和常用的是Protel 99SE/ Protel DXP,但是在用Protel 99SE/ Protel DXP画印制电路板时要充分考虑到抗电磁干扰问题。
⑦ 在用Protel 99SE/ Protel DXP绘制印制电路板图时,有几个最小尺寸值必须注意:线宽一般情况下要大于等于15mil;过孔直径不小于30mil;线距(相邻两线的最小间隔)不小于10 mil。mil是英制的长度单位,为1in(1in=0.0254m)的千分之一。
⑧ 在绘制印制电路板图时,大部分元器件引脚的宽度和间距都是标准的,但有些多脚插接件却不好绘制,即使用游标卡尺测量,有时也会出现插不上去的现象。解决的方法是:绘制好印制电路板图后,以1:1的比例打印一份出来,然后再找一块较平的塑料泡沫,把印制电路板图贴上去,再把元器件插上去,看是否合适,如不合适,重新修改,直到合适为止。
4.硬件调试
硬件调试在焊好元器件的印制电路板上进行,其步骤如下:
① 检查印制电路板。在元器件的安装和焊接之前,先用眼睛和万用表检查印制电路板是否有短路和断路的地方。
② 元器件在安装的过程中一定要注意方向,在焊接的过程中要保持印制电路板板面的整洁,注意有无漏焊、错焊、连焊。
③ 空载上电。检查电源输出是否正确、单片机引脚上电源和地的电位是否正确以及其它集成芯片上电源和地的电位是否正确。
④ 上电。空载上电检查正确后,即可将各芯片插入各插座,正式上电,再检查各点电位是否正确。若发现电位不对或某个元器件发烫甚至冒烟,立即断电,查找原因,直至排除故障方可重新上电。
⑤ 仿真调试。单片机的仿真器是帮助设计者对应用系统进行调试的专用工具。在不通电的情况下,首先把仿真器与PC机的并口或USB口、串口相连,然后把仿真器的仿真头插入单片机应用系统的专有插座中,这样单片机、仿真器以及PC机三者就构成了一个联机开发系统。
5.软件设计
在软件设计上,应注意如下几点:
① 与硬件设计类似,软件设计中所涉及的实现某一功能的程序,首先也是自己以前在别的项目上用过的现成的程序模块;其次借鉴他人的程序模块,具体途径是上网查找,包括硬件电路和源代码,同样也是在用之前一定要进行调试。
② 软件设计也应模块化。模块化的好处是便于测试、修改和扩展。调试工作可以并行进行,几个调试人员可以同时调试不同的模块。
③ 合理分配内存资源,要给堆栈预留足够的RAM区,不能让堆栈溢出。
④ 在软件上采用抗电磁干扰措施,比如采样时,使用软件滤波;在使用看门狗电路时也需有软件的配合。
⑤ 为提高程序的可读性,要给程序模块增加必要的注释。
⑥ 编程语言的选择。汇编语言是单片机早期开发使用的语言,由于其可读性、可移植性、可维护性差等缺点,而逐渐被C语言取代。C语言是一种简洁高效的高级语言,具备可读性好、可靠性高、有功能丰富的函数库、运算速度快、编译效率高、可移植性好等特点,并且可以直接实现对硬件的控制,因而逐渐成为了单片机应用系统开发中的主流编程语言。
6.软件调试
软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调好以后,再进行系统程序总调试。
对于模块结构程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。
各独立程序模块调试通过后,可以把各功能块联合起来一起进行整体程序综合调试。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。(/zixunimg/eepwimg/www.diangon.com/版权所有)若用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。
单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还要作适当修正。
7.固化
目标程序经仿真器调试通过后,即可固化。源程序经编译、连接生成的机器码有两种格式(*.HEX格式或*.BIN格式)均可固化。固化的方法有两种:一是仿真器配备的固化功能;二是专用的编程器。专用的编程器有很多种,又分为简易和通用编程器两种,前者可固化芯片数目少,后者可固化芯片数目多。
8.运行测试
运行测试包括功能测试和可靠性测试。功能测试是按照设计任务书检查各个功能是否一一实现。可靠性测试,又称“烤机”,“烤机”时间不定,可以是48小时、72小时或更长,目的是测试在规定的时间内系统能否正常运行。除检测运行时间外,还要高温、低温测试以及抗电磁干扰测试等。当功能测试和可靠性测试都通过,该单片机应用系统开发成功。