学习目标掌握单片机应用系统的开发过程掌握应用系统开发的可行性分析要点掌握应用系统开发的系统方案设计要点掌握应用系统开发的硬件设计要点掌握应用系统开发的软件设计要点掌握单片机系统调试的要点主要内容9.1单片机应用系统开发过程9.2可行性分析9.2.1可行性分析的主要内容9.2.2教学实验板研制可行性分析9.3系统方案设计9.3.1系统的主要功能与性能9.3.2硬件结构设计9.3.3软件结构设计9.3.4教学实验板系统设计方案9.4硬件电路设计与制作9.4.1硬件电路设计9.4.2电路参数的计算9.4.3PCB板制作9.4.4教学实验板电路设计与制作9.5软件程序设计9.5.1软件设计过程9.5.2优秀应用软件的特点9.6单片机应用系统调试9.6.1调试工具9.6.2硬件调试9.6.3软件调试9.6.4模拟调试9.6.5现场调试9.6.6教学实验板调试9.6.7小结9.1单片机应用系统开发过程通常开发一个单片机应用系统需要经历以下过程:可行性分析;系统方案设计;系统详细设计与制作;系统调试与修改;生产样机;生成正式系统或产品。主要内容第9章单片机应用系统设计与调试9.1单片机应用系统开发过程9.2可行性分析9.2.1可行性分析的主要内容9.2.2教学实验板研制可行性分析9.3系统方案设计9.3.1系统的主要功能与性能9.3.2硬件结构设计9.3.3软件结构设计9.3.4教学实验板系统设计方案9.2.1可行性分析的主要内容方案调研主要是收集整理资料,确定解决问题的技术方案。它主要包括如下几个方面:1.研究和开发的目的和意义;2.国内外同类产品的应用状况、目前在应用中急需解决的问题和未来发展趋势;3.国内外同类产品的开发水平、开发环境和器材供应状况;对接受委托研制项目还应了解合作方所具备的技术条件;4.比较各种可行方案,确定拟采用的技术线路。可行方案不一定局限于单片机应用系统,应依据所要解决的问题而定。对各种方案应进行技术经济分析,合理选择实施方案;5.分析拟实施方案的技术难点,明确技术主攻方向。9.2.1可行性分析的主要内容可行性分析通常从如下几个方面进行论证:1.市场或用户需求情况;2.经济效益和社会效益;3.技术支持和开发环境;4.现在的竞争力和未来的生命力。9.2.2教学实验板研制可行性分析1.研制教学实验板的目的和意义2.国内同类产品的应用状况3.需求调查4.方案调研5.实验板设计拟采用的技术线路6.参加人员及计划安排7.经济效益和社会效益分析主要内容第9章单片机应用系统设计与调试9.1单片机应用系统开发过程9.2可行性分析9.2.1可行性分析的主要内容9.2.2教学实验板研制可行性分析9.3系统方案设计9.3.1系统的主要功能与性能9.3.2硬件结构设计9.3.3软件结构设计9.3.4教学实验板系统设计方案9.3系统方案设计9.3.1系统的主要功能与性能系统主要功能有数据采集、数据处理、输出控制等,每一个功能又可细分为若干个子功能。比如数据采集可分为模拟信号采样与数字信号采样;数据处理可分为预处理、功能性处理、抗干扰处理等子功能,而功能性处理还可以继续划分为各种信号处理等。输出控制按控制对象不同可分为各种控制功能,如继电器控制、DA转换输出控制、PWM输出控制等。9.3.1系统的主要功能与性能系统性能主要由精度、速度、功耗、体积、重量、价格、可靠性等技术指标来衡量。系统研制前,要根据需求调查结果给出上述各指标的定额。一旦这些指标被确定下来,整个系统将在这些指标限定下进行设计。系统的技术指标会左右系统软硬件功能的划分。系统功能尽可能用硬件完成,这样可提高系统的工作速度,但相应的成本、功耗、体积等增加。用软件来实现可反之。因此在进行系统软硬件功能划分时,一定要依据系统性能指标综合考虑。9.3.2硬件结构设计1.单片机选型原则2.I/O通道划分3.I/O方式确定4.软硬件功能划分9.3.3软件结构设计结构化程序设计是最难的一种设计方法,也是一种系统思考问题的办法。其过程包括如下工作:自顶向下的设计,即把整个设计分成多个层次,上一层的程序块可以调下一层的程序块;模块化编程,即力求使每个模块独立,其正确与否不依赖于上一层模块,从而非常便于调试和查错。结构化编程,即使用若干结构良好的转移和控制,而避免用任意转移(GOTO)语句,尽可能使每个模块都只有一个入口和一个出口。9.3.4教学实验板系统设计方案1.教学实验板系统设计的基本原则整套实验系统成本应控制在150元左右,不包括PC机。整套实验系统(包括ECMT-1型教学实验板、电源、RS232通信电缆和光盘)可放在一个小纸盒内,便于学生携带。尽可能做到典型单元电路在多个实验项目中复用,降低成本。实验板上适度设置一些测试点,便于学生测试。实验板线不能太密,便于初学者检查。电源接口简单,保证初学者不致将电源接反。线路不要太复杂,尽可能选择一些在实际应用中常用的典型单元电路。要充分运用数字电路和本门课程已学习的知识。采用ISP编程,使用RS232接口,减少编程和调试设备费用。设计实验项目除完成单片机实验教学内容外,应能做多种综合性设计性实验。9.3.4教学实验板系统设计方案2.ECMT-1型教学实验板的主要功能和技术指标开关量输入:4路,TTL电平。可利用板上拔码开关S1模拟开关量输入。外接开关量输入可通过J6插座接入,此时拔码开关S1应位于断开位置。开关量输出:2路,1路接LED指示灯,1路接蜂鸣器。模拟量输入:2路,精度为8位,转换速率50kBPS。可利用板上模拟量给定和脉冲信号发生器来模拟外部模拟量输入。外接模拟量输入时,可通过CON4接线端子输入。模拟量输出:2路,精度为8位。通过CON3接线端子输出。串行通信:1路,RS232接口。9.3.4教学实验板系统设计方案3.设计方案比较单片机教学实验板设计方案有两种:一是采用三总线方式对单片机进行扩展;另一种是对单片机直接进行I/O扩展。随着单片机技术的发展,单片机种类和其片内资源得到极大丰富,因此,实际应用重在选型。基于上述原因,采用对单片机直接进行I/O扩展的方案。9.3.4教学实验板系统设计方案4.硬件结构设计单片机选型电源电路的确定I/O通道划分I/O方式确定软硬件功能划分信号模拟器9.3.4教学实验板系统设计方案5.软件结构设计故障自诊断软件输出诊断测试开关量输入测试键盘测试T0外部事件测试外部事件测试INT0信号频率测试INT1T1信号频率测试串行通信测试通道0A/D转换测试通道0D/A转换测试通道1D/A转换测试通道1A/D转换测试主要内容9.4硬件电路设计与制作9.4.1硬件电路设计9.4.2电路参数的计算9.4.3PCB板制作9.4.4教学实验板电路设计与制作9.5软件程序设计9.5.1软件设计过程9.5.2优秀应用软件的特点9.6单片机应用系统调试9.6.1调试工具9.6.2硬件调试9.6.3软件调试9.6.4模拟调试9.6.5现场调试9.6.6教学实验板调试9.6.7小结9.4系统方案设计9.4.1硬件电路设计尽可能选择典型通用的电路,并符合单片机的常规用法。为硬件系统的标准化、模块化打下良好的基础。系统扩展应充分满足应用系统当前的功能需求,并为后续产品升级留有余地。虽然硬件的部分功能能用软件代替,但在成本允许的情况下,尽可能用成熟的硬件电路来实现,为软件设计减少程序的编制提供方便。在设计时,对某一模块的功能和性能指标不能完全确定时,应在实验室进行模块功能和性能测试,以保证硬件结构设计的完整性。所选用的元器件要和系统整体要求的性能指标相一致。模块和模块相互关联时应充分考虑其影响,对于模拟电路来说,信号传递下一级模块的等效输入阻抗应尽可能高;对于数字电路来说,驱动能力应足够大。否则应增加缓冲驱动电路,以保证设计的可靠性。可靠性及抗干扰设计是硬件设计中不可忽视的一部分,它包括芯片、器件选择、PCB板布线、滤波、信号隔离和工艺设计等。应充分重视电源电路的设计。电源的功率要足够大。由于电源电路与电网相连,设计时要注意采取抗干扰措施。9.4.2电路参数的计算以测加载力为例,设测力范围为0~1000kg,精度为±1kg。采用应变力传感器,在激励电源的作用下,其对应输出电压为0~20mV。设采用A/D转换器输入量程为0~5V,其信号变换过程如图9-3所示。加载力应变力传感器信号调理电路A/D转换器(0~1000)kg1kg+-(0~20)mV0.02mV+-(0~5)V5mv+-主要内容9.4硬件电路设计与制作9.4.1硬件电路设计9.4.2电路参数的计算9.4.3PCB板制作9.4.4教学实验板电路设计与制作9.5软件程序设计9.5.1软件设计过程9.5.2优秀应用软件的特点9.6单片机应用系统调试9.6.1调试工具9.6.2硬件调试9.6.3软件调试9.6.4模拟调试9.6.5现场调试9.6.6教学实验板调试9.6.7小结9.5.1软件设计过程a)自顶向下的设计计划:先把设计对象划分为若干主要功能部分,每一部分又再划分为较细的功能部分,一直细分到最下一层,最下一层的每一功能应具有若干预定的性能,而且能用一个算法来加以描述,且其输入输出应能予以定义。对每一层次的软件设计都要记下正在使用变量,以及哪些软件模块需要访问这些变量,这对以后模块的连接和调试是十分重要的。对软件工作进行详细计划之前,必须知道硬件电路的工作原理,要了解使用者将通过何种手段与软件联系?要了解仪表上有些什么按键、开关,它们将起什么作用?指示灯何时点亮?为何亮?等等。b)技术评审:当软件设计方案拟定好后,软件设计人员可邀请有关专家和硬件设计人员一起评审软件设计所做出的决策和各种决定,并与硬件设计人员一起商定与硬件有关的接口定义。因为从软件设计的局部来看是合理的决定,从仪表的全局来看未必一定是合适的。所以评审的同时将进一步协调硬软件的分工和设计。9.5.1软件设计过程c)准备工作:在进行具体软件设计之前,必须做好经费预算、设备和人员安排,拟定工作进度。与此同时,对软件设计的指标和要求作进一步细分。d)具体的软件设计:当软件设计人员分配到若干个划分出来的软件任务(通常是互相有关联的一组模块)或全部软件设计任务之后,先要考虑各模块设计的先后次序。对于每一个模块的设计,首先应进行分析,不要急于马上编程,要考虑整个系统的工作过程应处在何种状态,考虑模块的输入输出,研究合适的算法。这些分析研究应写成书面材料,否则单凭头脑冥思默记,常使有些问题被忽略。等书面工作做好以后,再进行具体编程。9.5.2优秀应用软件的特点1.软件结构清晰、简捷、流程合理。2.各功能程序实现模块化、系统化。这样便于调试、连接、又便于移植、修改和维护。3.程序功能实现方式合理,程序对单片机内部资源的组织利用充分,程序的长度较短,执行效率较高。4.运行状态实现标志化管理。各个功能程序运行状态、运行结果及运行需求都设置状态标志以便查询,程序的转移、运行、控制都可通过状态标志条件来控制。5.经过调试修改后的程序应进行规范化。规范化的程序便于交流和借鉴,也为今后的软件模块化、标准化打下良好的基础。6.实现全面软件抗干扰设计。软件抗干扰是应用系统提高可靠性的有力措施。7.在应用软件中设置自诊断程序,在系统运行前先运行自诊断程序,用以检查系统各特征参数是否正常。主要内容9.4硬件电路设计与制作9.4.1硬件电路设计9.4.2电路参数的计算9.4.3PCB板制作9.4.4教学实验板电路设计与制作9.5软件程序设计9.5.1软件设计过程9.5.2优秀应用软件的特点9.6单片机应用系统调试9.6.1调试工具9.6.2硬件调试9.6.3软件调试9.6.4模拟调试9.6.5现场调试9.6.6教学实验板调试9.6.7小结9.6.1调试工具1.仿真器和编程器2.万用表3.逻辑脉冲发生器与模拟信号发生器4.双踪示波器5.逻辑分析仪6.自制模拟信号发生器9.6.2硬件调试1.静态调试a)断电检查b)通电检查c)联机检查d)动态调试9