浅谈单片机应用系统的设计方法

2022-10-03 版权声明 我要投稿

1 总体设计

在进行系统设计之前, 首先应根据对系统的功能要求及其应用环境等确定合理、具体的功能和技术指标, 对应用系统的可靠性、通用性、先进性、可维护性以及成本等进行综合考虑, 以尽量合理并符合单片机性能及开发工具等因素选择合适的单片机机型。接下来要根据系统中可能涉及的传感器、模拟电路、I/O接口、存储器、打印机和显示器等器件和设备进行器件选择, 使之符合系统在精度、速度和可靠性等方面的要求。最后确定硬件和软件的功能划分, 由于在系统设计中某些功能用硬件和软件都能实现, 在设计中应综合考虑研制周期和成本等因素具体划分软、硬件功能。

2 系统硬件设计

硬件系统设计的任务是根据总体设计要求, 在所选择的单片机型的基础上, 确定系统扩展所要用的存储器、I/O电路、A/D及D/A电路和有关的外围电路等, 然后设计出系统的电路原理图。

单片机内部没有程序存储器或存储器容量不够时需扩展外部程序存储器。可作为程序存储器的芯片有多种非易失存储器, 从它们的价格和性能特点上考虑选择。由于目前单片机片内存储器的容量越来越大, 如设计的应用系统所需的存储器空间比较小, 则可能就没有必要扩充程序存储器。对于数据存储器的容量要求, 各个系统之间差别比较大。有的测量仪器和仪表只需少量的RAM即可, 此时应尽量选用容量能符合要求的单片机。对于要求较大容量RAM的系统, 对RAM芯片的选择原则是尽可能减少芯片的数量。由于外设多种多样, 这使得单片机与外设之问的接口电路也各不相同。因此, I/O接口电路常常是单片机应用系统中设计最复杂也是最困难的部分之一。在设计I/O接口电路时应从体积、价格、功能、负载等几方面考虑。此外还要考虑和系统中的传感器、放大器相匹配等问题。所有的需要扩展外部存储器和输入/输出接口设计的单片机系统都需要设计译码电路, 译码电路在设计时要尽可能简单, 这就要求存储器空间分配合理、译码方式选择得当。

如果单片机外部扩展的器件较多, 负载过重, 就要考虑设计总线驱动器。系统扩展和配置设计遵循的原则如下: (1) 尽可能选择典型通用的电路, 并符合单片机的常规用法。 (2) 系统的扩展与外围设备配置的水平应充分满足应用系统当前的功能要求, 并留有适当余地, 便于以后进行功能扩充。 (3) 整个系统中相关的器件要性能匹配。 (4) 应注意在硬件系统设计时, 要尽可能充分地利用单片机的片内资源, 使自己设计的电路向标准化、模块化靠拢。硬件设计结束后, 应编写出硬件电路原理图及硬件设计说明书。

3 系统软件设计

单片机应用系统是一个整体。软件设计和硬件设计应统一, 系统的硬件电路设计定型后, 软件的功能也就基本明确了。一个应用系统中的软件一般是由系统监控程序和应用程序两部分组成的。

合理的软件结构是设计出一个性能优良的单片机应用系统软件的基础, 必须予以充分重视。在程序设计方法上, 模块程序设计是单片机应用中最常用的程序设计技术。这种方法是把一个完整的程序分解为若干个功能相对独立的较小的程序模块, 对各个程序模块分别进行设计、编制和调试, 最后将各个调试好的程序模块连成一个完整的程序。这种方法的优点是单个程序模块的设计和调试比较方便、容易完成, 一个模块可以为多个程序所共享。缺点是各个模块的连接有时有一定难度。还有一种方法是自上而下设计程序。此方法是先从主程序开始设计, 主程序编好后, 再编制各从属的程序和子程序。这种方法比较符合人们的日常思维。其缺点是上一级的程序错误将对整个程序产生影响。

在软件结构设计确定之后就可以进入程序设计了, 一般设计过程首先根据问题的定义, 描述出各输入变量和输出变量之间的数学关系, 即建立数学模型。然后根据系统功能及操作过程, 先列出程序的简单功能流程框图 (粗框图) , 再对粗框图进行扩充和具体化, 即对存储器、寄存器、标志位等工作单元作具体的分配和说明。把功能流程图中每一个粗框转变为具体的存储单元、寄存器和I/O口的操作, 从而绘制出详细的程序流程图 (细框图) 。在完成流程图设计以后, 便可编写程序。

编写一个好的程序, 正确性是主要的。但是, 应当在保证完成规定功能的情况下, 使整个程序所占内存空间少、执行指令时间短。这就要根据指令的功能、长度和执行时间, 精心选择指令和排列指令。一般来说, 编写程序的过程可分为下述几个步骤:分析课题, 根据要求确定算法或解题思路;根据算法或解题思路定出运算步骤和顺序, 把运算步骤画成框图;确定数据和工作单元, 分配存放单元;按所使用的计算机指令系统, 把确定的运算步骤写成汇编语言程序;上机调试源程序, 从而确定源程序。在进行程序设计时, 必须根据实际问题和所使用的计算机的特点来确定算法, 然后按尽可能节省数据存放单元、缩短程序长度和程序运行时间3个原则编写程序。按程序的基本结构一般可分为直接程序、分支程序、循环程序和子程序。一个复杂的程序, 一般由上述基本程序组成。单片机应用程序可以采用汇编语言, 也可以采用某些机器语言, 例如可通过Kiel C51软件来编写C语言等。编写完均须汇编成80C51的机器码, 经调试正常运行后, 再固化到非易失性存储器中去, 完成系统的设计。

4 系统调试

当完成了单片机应用系统的硬件、软件设计和硬件组装后, 便可进入单片机应用系统调试阶段。系统调试的目的是要查出用户系统中硬件设计与软件设计中存在的错误及可能出现的不协调问题, 以便修改设计, 最终使用户系统能正确、可靠地工作。通常是先排除明显的硬件故障后和软件结合起来进行调试。常见的硬件故障有逻辑错误、元器件失效、可靠性差和电源故障等。在进行硬件调试时先进行静态调试, 用万用表等工具在样机加电前根据原理图和装配图仔细检查线路, 核对元器件的型号、规格和安装是否正确。然后加电检查各点电位是否正常。接下来再借助仿真开发仪器进行联机调试, 分别测试扩展的RAM、I/O口、I/O设备、程序存储器以及晶振和复位电路, 改正其中的错误。软件调试就是检查系统软件中的错误。通常是把各个程序模块分别进行调试, 调试通过后再组合到一起进行综合调试, 达到预定的功能技术指标后即可将软件固化。

摘要:单片机应用系统开发过程像一般的计算机系统一样, 单片机的应用系统也是由硬件和软件组成。硬件和软件只有紧密配合, 协调一致, 才能组成高性能的单片机应用系统。本文简要介绍了单片机应用系统的硬件与软件的设计流程和方法。

关键词:单片机,硬件设计,软件设计

参考文献

[1] 孙霞, 周金陵.基于单片机的大容量数据存储技术的应用研究[J].微计算机信息, 2006 (14) .

[2] 胡汉才.单片机原理及其接口技术[M].清华大学出版社, 2004.

上一篇:美国合理根据规则演变下一篇:自媒体时代城市摄影的现实与反思