最新单片机应用系统设计开发主要步骤资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用系统设计开发主要步骤
单片机应用系统的研究开发步骤,大致分为几个部分:
1.策划阶段:
策划阶段决定研发方向,是整个研发流程中的重中之重,所谓“失之毫厘谬以千里”。因此必须“运筹帷幄,谋定而动”。策划有两大内涵:做什么?怎么做?
1)项目需求分析。解决“做什么?”“做到什么程度?”问题。
对项目进行功能描述,要能够满足用户使用要求。对项目设定性能指标,要能够满足可测性要求。所有的需求分析结果应该落实到文字记录上。
2)总体设计,又叫概要设计、模块设计、层次设计,都是一个意思。解决“怎么做?”“如何克服关键难题?”问题。
以对项目需求分析为依据,提出解决方案的设想,摸清关键技术及其难度, 明确技术主攻问题。
针对主攻问题开展调研工作, 查找中外有关资料, 确定初步方案,包括模块功能、信息流向、输入输出的描述说明。在这一步,仿真是进行方案选择时有力的决策支持工具。
3)在总体设计中还要划分硬件和软件的设计内容。单片机应用开发技术是软硬件结合的技术, 方案设计要权衡任务的软硬件分工。硬件设计会影响到软件程序结构。如果系统中增加某个硬件接口芯片, 而给系统程序的模块化带来了可能和方便, 那么这个硬件开销
是值得的。在无碍大局的情况下, 以软件代替硬件正是计算机技术的长处。
4)进行总体设计时要注意,尽量采纳可借鉴的成熟技术, 减少重复性劳动,同时还能增加可靠性,对设计进度也更具可预测性。
2. 实施阶段之硬件设计
策划好了之后就该落实阶段,有硬件也有软件。随着单片机嵌入式系统设计技术的飞速发展,元器件集成功能越来越强大,设计工作重心也越来越向软件设计方面转移。硬件设计的特点是设计任务前重后轻。
单片机应用系统的设计可划分为两部分: 一部分是与单片机直接接口的电路芯片相关数字电路的设计,如存储器和并行接口的扩展, 定时系统、中断系统扩展, 一般的外部设备的接口, 甚至于A/D、 D/A芯片的接口。另一部分是与模拟电路相关的电路设计, 包括信号整形、变换、隔离和选用传感器,输出通道中的隔离和驱动以及执行元件的选用。
工作内容:
1)模块分解。策划阶段给出的方案只是个概念方案,在这一步要把它转化为电子产品设计的概念描述的模块,并且要一层层分解下去,直到熟悉的典型电路。尽可能选用符合单片机用法的典型电路。当系统扩展的各类接口芯片较多时, 要充分考虑到总线驱动能力。当
负载超过允许范围时, 为了保证系统可靠工作, 必须加总线驱动器。
2)选择元器件。尽可能采用新技术, 选用新的元件及芯片。
3)设计电原理图及说明。
4)设计PCB及说明。
5)设计分级调试、测试方法。
设计中要注意:
1)抗干扰设计是硬件设计的重要内容, 如看门狗电路、去耦滤波、通道隔离、合理的印制板布线等。
2)所有设计工作都要落实到文字记录上。
3. 实施阶段之软件设计
实施阶段的另一支路是软件设计。软件设计的特点:贯穿整个产品研发过程,有占主导地位的趋势。在进行软件设计工作时,选择一款合用的编程开发环境软件,对提高工作效率特别是团队协作开发效率很重要。工作内容:
1)模块分解。策划阶段给出的方案是面向用户功能的概念方案,在这一步要把它转化为软件设计常用的的概念描述的模块,并且要采用自顶向下的程序设计方法,一层层分解下
去,直到最基本的功能模块、子程序(函数)。
2) 依据对模块的分解结果及硬件设计的元器件方案,进行数据结构规划和资源划分定义。结果一定要落实到文字记录中。
3)充分利用流程图这个工具。用分层流程图,可以完满前面的工作。第一步,先进行最原始的规划,将总任务分解成若干个子任务,安排好它们的关系,暂不管各个子任务如何完成。第二步,将规划流程图的各个子任务进行细化。主要任务是设计算法,不考虑实现的细节。利用成熟的常用算法子程序可以简化程序设计。通常第二张程序流程图已能说明该程序的设计方法和思路,用来向他人解释本程序的没计方法是很适宜的。这一步算法的合理性和效率决定了程序的质量。第三步,以资源分配为策划重点,要为每一个参数、中间结果、各种指针、计数器分配工作单元,定义数据类型和数据结构。在进行这一步工作时,要注意上下左右的关系,本模块的入口参数和出口参数的格式要和全局定义一致,本程序要调用低级子程序时,要和低级子程序发生参数传递,必须协调好它们之间的数据格式。本模块中各个环节之间传递中间结果时,其格式也要协调好。在定点数系统中,中间结果存放格式要仔细设计,避免发生溢出和精度损失。一般中间结果要比原始数据范围大,精度高,才能使最终结果可靠。
4)一般的程序都可划分为监控程序、功能模块子程序(函数)、中断服务程序这几种类型。参考现成的模板可大大简化设计的难度。监控程序中的初始化部分需要根据数据结构规划和资源划分定义来设计。
5)到了这一步,软件编程工作其实已经完成了九成,剩下就是把流程图代码化,不少人把这一步错称为“编程序”。难度不大但很繁琐,只要认真有耐心,坚持到汇编(编译)通过就看到曙光了。
6)拟定调试、试验、验收方案。这一步不光是方案,还得搭建测试环境,主要内容还是编程序,可以当做一个新项目再做一遍策划与实施,有时还得考虑硬件(包括信号源、测量仪器、电源等)。
注意:
1)
2)外部设备和外部事件尽量采用中断方式与CPU联络, 这样, 既便于系统模块化, 也可提高程序效率。
3)目前已有一些实用子程序发表, 程序设计时可适当使用, 其中包括运行子程序和控
制算法程序等。本书附录中就收录了一些常用子程序。见附录五。
3)系统的软件设计应充分考虑到软件抗干扰措施。
4)一切设计都要落实到文字记录上。文档的作用怎么强调都不过分。
4.验证阶段
验证阶段包括的内容比较多也比较杂:软硬件调试,局部和整理的测试大纲及实施,整体测试成功后EPROM固化脱机运行及测试,最后别忘了整理所有的设计检验文档记录。毕竟所谓“设计”,指的是文档而不是样品(包括实物和软件演示效果),样品只是证明文档正确的一种手段。这一步内容因项目而异,变化多端,大概的工作内容如下:
1)软硬件联调,包括局部联调和整体联调。主要目标是尽量使设计结果能够按预想的目标运行。联调离不了开发机,有时候反复很大,甚至推倒重来都不罕见。联调的每一步目标在软件设计时就设定好了。一个很重要的问题是软件硬件的抗干扰、可靠性测试。要考虑到尽可能多的意外情况。
2)脱机调试。调试通过的程序, 最终要脱机运行, 即将仿真ROM中运行的程序固化到EPROM脱机运行。但在开发装置上运行正常的程序, 固化后脱机运行并不一定同样正常。若脱机运行有问题, 需分析原因, 如是否总线驱动功能不够, 或是对接口芯片操作的时间不匹配等。经修改的程序需再次写入。这是真实环境下的软硬件联调。
3)验证设计。以策划阶段的项目需求分析、硬件设计的测试设计文件、软件设计的测试设计文件和搭建的测试环境为依据,编写功能测试大纲、性能测试大纲,并实施验收检验。
4)项目验收时最重要的是完整的文档记录。大致包括:项目管理类、硬件设计类、软件设计类、验收检验类等。