140 likes | 377 Views
1. 10.1 单片机应用系统的基本结构. 2. 10.2 单片机应用系统的硬件设计. 3. 10.3 单片机应用系统的软件设计. 第 10 章 单片机应用系统设计. 被 控 对 象. 单 片 机. 数字量输入. 输 入 输 出 接 口. 扩展存储器. 光电隔离. 模拟量输入. A/D. 显示器、 键盘接口. I/O 接 口. 开关量输入. 光电隔离. 开关量输出. 光电隔离. 功能芯片 接口. 模拟量输出. D/A. 10.1 单片机应用系统的基本结构.
E N D
1 10.1 单片机应用系统的基本结构 2 10.2 单片机应用系统的硬件设计 3 10.3 单片机应用系统的软件设计 第10章 单片机应用系统设计
被 控 对 象 单 片 机 数字量输入 输 入 输 出 接 口 扩展存储器 光电隔离 模拟量输入 A/D 显示器、 键盘接口 I/O 接 口 开关量输入 光电隔离 开关量输出 光电隔离 功能芯片 接口 模拟量输出 D/A 10.1 单片机应用系统的基本结构 10.1.1 单片机应用系统的硬件组成
10.1.2 单片机应用系统开发的基本过程 一、系统需求与方案调研 系统需求与方案调研的目的是通过市场或用户了解用户对拟开发应用系统的设计目标和技术指标。通过查找资料,分析研究,解决以下问题: (1)了解国内外同类系统的开发水平、器材、设备水平、供应状态;对接收委托研制项目,还应充分了解对方技术要求、环境状况、技术水平,以确定课题的技术难度。 (2)了解可移植的硬、软件技术。能移植的尽量移植,以防止大量低水平重复劳动。 (3)摸清硬、软件技术难度,明确技术主攻方向。 (4)综合考虑硬、软件分工与配合方案。单片机应用系统设计中,硬、软件工作具有密切的相关性。
二、可行性分析 可行性分析的目的是对系统开发研制的必要性及可行性作出明确的判定结论。根据这一结论决定系统的开发研制工作是否进行下去。 可行性分析通常从以下几个方面进行论证: (1)市场或用户的需求情况。 (2)经济效益和社会效益。 (3)技术支持与开发环境。 (4)现在的竞争力与未来的生命力。
三、系统方案设计 系统功能设计包括系统总体目标功能的确定及系统硬、软件模块功能的划分与协调关系。 系统功能设计是根据系统硬件、软件功能的划分及其协调关系,确定系统硬件结构和软件结构。系统硬件结构设计的主要内容包括单片机系统扩展方案和外围设备的配置及其接口电路方案,最后要以逻辑框图形式描述出来。系统软件结构设计主要完成的任务是确定出系统软件功能模块的划分及各功能模块的程序实现的技术方法,最后以结构框图或流程图描述出来。 四、系统详细设计与制作 系统详细设计与制作就是将前面的系统方案付诸实施,将硬件框图转化成具体电路,并制作成电路板,软件框图或流程图用程序加以实现。
五、系统调试与修改 系统调试是检测所设计系统的正确性与可靠性的必要过程。单片机应用系统设计是一个相当复杂的劳动过程,在设计、制作中,难免存在一些局部性问题或错误。系统调试可发现存在的问题和错误,以便及时地进行修改。调试与修改的过程可能要反复多次,最终使系统试运行成功,并达到设计要求。 六、生成正式系统或产品 系统硬件、软件调试通过后,就可以把调试完毕的软件固化在EPROM中,然后脱机(脱离开发系统)运行。如果脱机运行正常,再在真实环境或模拟真实环境下运行,经反复运行正常,开发过程即告结束。
10.2 单片机应用系统的硬件设计 10.2.1 硬件系统设计原则 一个单片机应用系统的硬件电路设计包括三个部分内容: 一是单片机芯片的选择; 二是单片机系统扩展; 三是系统配置。 一、单片机芯片的选择 1、根据芯片内部是否含有ROM; 2、根据应用系统批量大小。 二、单片机系统扩展 单片机系统扩展是指单片机内部的功能单元(如程序存储器、数据存储器、I/O口、定时器/计数器、中断系统等)的容量不能满足应用系统的要求时,必须在片外进行扩展,这时应选择适当的芯片,设计相应的扩展连接电路。
三、系统配置 系统配置是按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D转换器、D/A转换器等,设计相应的接口电路。 系统扩展和配置设计遵循的原则: (1)尽可能选择典型通用的电路,并符合单片机的常规用法。 (2)系统的扩展与外围设备配置的水平应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。 (3)硬件结构应结合应用软件方案一并考虑。 (4)整个系统中相关的器件要尽可能做到性能匹配。 (5)可靠性及抗干扰设计是硬件设计中不可忽视的一部分。 (6)单片机外接电路较多时,必须考虑其驱动能力。
10.2.2 硬件设计 一、程序存储器 1、程序量较少时:使用EEPROM(编程容易)较方便; 2、程序量较多时:使用EPROM(集程度高、价格便宜)更经济。 二、数据存储器 1、使用大容量存储芯片,尽可能减少存储芯片的数量; 2、避免盲目扩大存储器容量。 三、I/O接口 1、并行接口、串行接口、模拟采集通道、模拟输出通道等; 2、选择含有所需接口的单片机。
四、译码电路 1、要求存储空间分配合理,译码方式选择得当; 2、使用门电路、译码器、只读存储器、可编程门阵列实现。 五、总线驱动器 1、P0口负载能力为8个TTL, P2口负载能力为4个TTL; 2、P0口使用双向数据总线驱动器(如74LS245), P2口使用单向总线驱动器(如74LS244)。 六、抗干扰电路 1、对地跨接电容,减少系统干扰; 2、采用隔离放大器、光电隔离器件、抗共地干扰、差分放大器抗共模干扰、平滑滤波器抗白噪声干扰、屏蔽手段抗辐射干扰等。
10.3 单片机应用系统的软件设计 一个应用系统中的软件一般是由系统监控程序和应用程序两部分构成的。其中,应用程序是用来完成诸如测量、计算、显示、打印、输出控制等各种实质性功能的软件;系统监控程序是控制单片机系统按预定操作方式运行的程序,它负责组织调度各应用程序模块,完成系统自检、初始化、处理键盘命令、处理接口命令、处理条件触发和显示等功能。 软件设计时,应根据系统软件功能要求,将软件分成若干个相对独立的部分,并根据它们之间的联系和时间上的关系,设计出软件的总体结构,画出程序流程框图。画流程框图时还要对系统资源作具体的分配和说明。根据系统特点和用户的了解情况选择编程语言,现在一般用汇编语言和C语言。汇编语言编写程序对硬件操作很方便,编写的程序代码短,以前单片机应用系统软件主要用汇编语言编写;C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,现在单片机应用系统开发很多都用C语言来进行开发和设计。
10.3.1 软件设计的特点 一个优秀的应用系统的软件应具有以下特点: (1)软件结构清晰、简捷、流程合理。 (2)各功能程序实现模块化,系统化。这样,既便于调试、连接,又便于移植、修改和维护。 (3)程序存储区、数据存储区规划合理,既能节约存储容量,又能给程序设计与操作带来方便。 (4)运行状态实现标志化管理。各个功能程序运行状态、运行结果以及运行需求都设置状态标志以便查询,程序的转移、运行、控制都可通过状态标志来控制。 (5)经过调试修改后的程序应进行规范化,除去修改“痕迹”。规范化的程序便于交流、借鉴,也为今后的软件模块化、标准化打下基础。 (6)实现全面软件抗干扰设计。软件抗干扰是计算机应用系统提高可靠性的有力措施。 (7)为了提高运行的可靠性,在应用软件中设置自诊断程序,在系统运行前先运行自诊断程序,用以检查系统各特征参数是否正常。
10.3.2 资源分配 在这些资源分配中,定时/计数器、中断、串行口等分配比较容易,这里介绍程序存储器和数据存储器的分配。 一、程序存储器ROM/EPROM资源的分配 程序存储器ROM/EPROM用于存放程序和数据表格。按照MCS-51单片机的复位及中断入口的规定,002FH以前的地址单元作为中断、复位入口地址区。在这些单元中一般都设置了转移指令,用于转移到相应的中断服务程序或复位启动程序。当程序存储器中存放的功能程序及子程序数量较多时,应尽可能为它们设置入口地址表。一般的常数、表格集中设置在表格区。二次开发,扩展部分尽可能放在高位地址区。 二、数据RAM资源分配 RAM分为片内RAM和片外RAM。片外RAM的容量比较大,通常用来存放批量大的数据,如采样结果数据;片内RAM容量较少,应尽量重叠使用,比如数据暂存区与显示、打印缓冲区重叠。 对于MCS-51单片机来说,片内RAM是指00H~7FH单元,这128个单元的功能并不完全相同,分配时应注意发挥各自的特点,做到物尽其用。
10.3.3 单片机应用系统开发工具 一个单片机应用系统经过总体设计,完成硬件开发和软件设计,就进行硬件安装。硬件安装好后,把编制好的程序写入存储器中,调试好后系统就可以运行了。但用户设计的应用系统本身并不具备自开发的能力,不能够写入程序和调试程序,这必须借助于单片机开发系统才能完成这些工作。单片机开发系统是能够模拟用户实际的单片机,并且能随时观察运行的中间过程和结果,从而能对现场进行模仿的仿真开发系统。通过它能很方便的对硬件电路进行诊断和调试,得到正确的结果。 目前国内使用的通用单片机的仿真开发系统很多,如复旦大学研制的SICE系列、启东计算机厂制造的DVCC系列、中国科大研制的KDV系列、南京伟福实业有限公司的伟福E2000以及西安唐都科教仪器公司的TDS51开发及教学实验系统。它们都具有对用户程序进行输入、编辑、汇编和调试的功能。此外,有些还具备在线仿真功能,能够直接将程序固化到EEPROM中。一般都支持汇编语言编程,有的可以通过开发软件,支持C语言编程。例如可通过Keil C51软件来编写C语言源程序,编译连接生成目标文件、可执行文件,仿真、调试、生成代码并下载到应用系统中。