第5章补充软件系统设计课件_第1页
第5章补充软件系统设计课件_第2页
第5章补充软件系统设计课件_第3页
第5章补充软件系统设计课件_第4页
第5章补充软件系统设计课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

补充:软件系统设计概述1.开发环境及编程语言2.软件系统结构分析3.软件系统的规划4.软件设计步骤5.实例分析

智能电子系统已不再是简单的硬件实体,而是硬件、软件相结合,软件决定系统智能的高低。智能电子系统中软件的主要功能采集信息与外界对话记忆信息处理信息控制功能自我测试自补偿自适应/自校正自学习一.软件开发环境及编程语言1.开发环境选择A.裸机环境所有程序都必须由开发者来设计

B.操作系统环境

只须完成系统各项任务的程序设计,而任务的管理调度等基本操作由具有“实时多任务操作系统”内核的单片机操作系统来完成2.编程语言选择A.汇编语言必须对单片机的内部资源和外围电路非常熟悉,尤其是对指令系统的使用必须非常熟练主要适用于功能比较简单的中小型应用系统B.C语言只需对单片机的内部结构基本了解,对外围电路比较熟悉,而对指令系统则不必非常熟悉。开发环境为基于操作系统编程C.混合编程在一些对时序要求非常苛刻或对运行效率要求非常高的场合,单纯采用C语言编程也有难以完成,只有汇编语言和C混合编程才能很好胜任。

1.层次结构(一完整软件系统是由若干程序模块组成的)A.上层模块(主程序+中断子程序)

程序在系统上电时自动执行,最后必定进入一个无限循环。各类中断子程序在满足中断条件时自动执行,最后必定执行中断返回指令。由于中断的发生是随机的,其返回地址是被中断打断的地方,通常不是固定的地址。

B.下层模块(普通子程序)

不能主动执行,只能在被动调用,最后必定执行返回指令二.软件系统的结构分析2.功能结构(软件系统设计的主要内容有三部分组成)功能性设计可靠性设计运行管理设计完成各种预定功能常用有11个功能模块电源管理,程序在线升级常用功能模块初始化监测控制决策时钟自检模块信息采集数据处理显示打印信号输出通讯(1)自检模块:

完成对硬件系统的检查,发现存在的故障,避免系统“带病运行”。该模块通常包括程序存储器自检、数据存储器自检、输入通道自检、输出通道自检和外部设备自检等。

(2)初始化模块:

完成系统硬件的初始设置和软件系统中各个变量默认值的设置。该模块通常包括外围芯片初始化、片内特殊功能寄存器的初始化(如定时器和中断控制寄存器等)、堆栈指针初始化、全局变量初始化、全局标志初始化、系统时钟初始化和数据缓冲区初始化等。该模块为系统建立一个稳定和可预知的初始状态,任何系统在进入工作状态之前都必须执行该模块。常用功能模块(3)时钟模块:

完成时钟系统的设置和运行,为系统其它模块提供时间数据。系统时钟的实现方法有两种:一种是采用时钟芯片来实现(硬件时钟);另一种是采用定时器来实现(软件时钟)。时钟系统的主要指标是最小时间分辨率和最大计时范围,其指标必须满足系统实时控制的需要。(4)监控模块:

通过获取键盘信息,解释并执行之,完成操作者对系统的控制。该模块实现了系统的可操作性。(5)信息采集模块:采集系统运行所需要的外部信息,通常包括采集各种传感器输出的模拟信息和各种开关量输出的数字信息,其中模拟信息的采集由A/D转换来完成。该模块执行的实时性体现了系统对外部信息变化的敏感程度。

(6)数据处理模块:按预定的算法将采集到的信息进行加工处理,得到所需的结果。该模块设计的核心问题是数据类型的选择和算法的选择,合理的选择将大大提高数据处理的效率。(7)控制决策模块:根据数据处理的结果和系统的状态,决定系统应该采取的运行策略。该模块的设计与控制决策算法有关,通常包含人工智能算法。

(8)显示打印模块:系统将各种信息通过显示设备或打印设备输出,供操作者使用。该模块设计中常常需要处理数据格式转换和排版格式问题。

(9)信号输出模块:根据控制决策模块的结论,输出对应的模拟信号和数字信号,对控制对象进行操作,使其按预定要求运行,其中模拟信息的输出由D/A转换来完成。(10)通信模块:完成不同设备之间的信息传输和交换,该模块设计中的核心问题是通信协议的制定。

(11)其它模块:完成某个特定系统所特有的功能,如电源管理和程序升级管理等。

软件系统的规划就是将各个功能模块合理地组织到主程序和各个中断子程序中去。因为每个功能模块的实现都在一定程度上与硬件电路有关,因此,功能模块的安排方式并不唯一。

(1)自检模块:

A.通常安排在系统上电时首先执行,即在主程序的前端调用一次自检模块

B.在时钟模块的配合下进行定时自检,即每相隔规定时间调用一次自检模块。

C.通过按键操作临时调用一次自检模块。

三.软件系统规划(2)初始化模块

安排在上电自检之后执行,即主程序进入无限循环之前进行。

(3)时钟模块

A.当采用硬件时钟时,如果时钟芯片可以输出时钟脉冲,触发外部中断,则时钟模块安排在这个外部中断子程序里;

B.如果时钟芯片不输出时钟脉冲,则应用软件需要时钟信息时直接从时钟芯片读取。C.当采用软件时钟时,时钟模块安排在定时中断子程序之中。

(4)监控模块:监控模块的安排取决于键盘信息的获取方式。

A.采用查询方式读键时,监控模块安排在主程序无限循环之中;B.采用键盘中断方式读键时,监控模块安排在键盘中断子程序之中;C.采用定时查询方式读键时,监控模块安排在定时中断子程序之中。

(5)信息采集模块(与信息采集的方式有关)

A.对于某些突发事件的采集,系统处于被动状态,一般通过事件中断(外部中断或计数中断)来采集。

B.对于常规信息的采集,系统处于主动状态,一般按规定的时间间隔来采集。这时,信息采集模块可安排在时钟模块之后,根据时钟信息来启动信息采集模块。

(6)数据处理模块(一般安排在信息采集模块之后)

若该模块较复杂,消耗CPU的时间较长,则可安排在主程序之中运行,信息采集模块可通过软件标志来通知数据处理模块。

(7)控制决策模块:一般安排在数据处理模块之后。

(8)显示打印模块:一般安排在监控模块之后,以便及时反映系统信息与操作结果。

(9)信号输出模块:一般安排在显示打印和控制决策模块之后。(10)通信模块:通信模块一般包含接收程序和发送程序两部分。A.接收程序处于被动工作方式,故一般安排在通信中断子程序之中。B.发送程序包含启动部分(初始化通信部件和发送第一个字节)和发送工作部分(发送剩余字节)。人工启动时,发送程序的启动部分安排在监控模块中;自动启动时,发送程序的启动部分安排在相应的模块之后。发送程序用查询方式时,发送程序的工作部分直接安排在发送程序的启动部分之后;用中断方式时,发送程序的工作部分安排在通信中断子程序之中。

为提高CPU的效率,建议将发送程序的工作部分安排在通信中断子程序之中。四.软件系统设计步骤设计和调试下层程序(硬件接口模块)设计上层程序(软件系统框架)设计调试中层程序(功能模块)整机调试A/D,D/A转换子程序、采集按键信息的键盘扫描子程序和显示部件驱动子程序等1,定义部分2.向量部分3.主程序4.若干中断子程序5.若干功能模块6.若干硬件接口模块7.其他低级子程序8.常量表格(1)定义部分:定义变量和分配资源。

为了得到和输出数据,必须定义相关的输入输出硬件设备的地址;为了保存数据,必须定义具有对应类型的变量或数组;为了完成数据变换,还需要为相关数据处理算法配置若干标志(位变量)。变量定义过程也就是系统资源(存储器)的分配过程:字节型变量用DATA伪指令来定义和分配储存单元;位变量用BIT伪指令来定义和分配储存单元;地址常量和其它常量用EQU伪指令来定义;对于数组或数据块,用EQU伪指令来定义其起始地址。

在建立软件系统框架时,先定义好外部部件的地址、主要的变量和数据块首址,并留有充分余地,随着程序设计的深入,通常需要补充新的变量和标志。

(2)向量部分:程序储存器的起始部分为向量区,用来存放若干引导指令(LJMP),指向主程序和各个中断子程序的入口标号。(3)主程序:至少包含自检模块、初始化模块和无限循环3部分,在无限循环中可以调用某些功能模块。建议将无限循环设计为休眠循环,将各种功能模块合理分配到各个中断子程序里。(4)若干中断子程序:中断子程序的数量根据系统需要来决定。根据软件系统规划的结果,每个中断子程序将包含若干功能模块。在建立软件系统框架时,中断子程序的内容尚未编写,故中断子程序还是空的,它由一个标号(中断于程序名)和一个中断返回指令组成,如串行中断子程序(5)若干功能模块:完成各种功能的子程序。若某个功能模块比较简单(程序简短),且只在一个地方被调用,则可以直接嵌入调用处,不必编写成为子程序(如初始化模块通常直接写入主程序之中);否则,尽可能以子程序的形式来编写功能模块,使软件系统具有“模块化”的风格,便于调试和移植。在建立软件系统框架时,对于尚未设计的模块均以空子程序表示,它由一个标号(子程序名)和一个返回指令组成。(6)若干硬件接口模块:完成信息采集、键盘扫描、显示驱动和控制输出等功能。这部分模块在此之前已经完成调试,直接包含到软件系统框架之中。

(7)其它低级子程序:完成某些基本变换和运算的子程序,通常可以在标准子程序库中选取,如数制转换和数学运算子程序等。

(8)常量表格:如数码管的笔形表、系统参数表等。表格由标号(表格名称)和DB伪指令来构建。

五、实例分析配料控制仪控制一个配料系统,将3种原料按配方要求的比例进行混合。为提高效率,3个电子秤同时进行工作。如图所示,3种原料分别装入3个原料仓,原料仓的下端有电磁阀们,可控制原料的加料过程。3个电子秤分别测量3个料斗中原料的质量,当达到配方要求时即停止加料。另外,3个料斗的下端也有电磁阀门,阀门打开后即可使原料进入混合容器中,完成一次配料过程。该系统有如下功能:可以输入3种原料配方和配料次数等工作参数;可以人工控制配料过程,也可以启动“自动配料”功能;3个电子秤可以同时工作,且控制精度满足要求;能够实时显示系统的各种数据;能够与计算机通信,接收计算机的控制指令和上传配料过程信息。原料1原料2原料3料斗1料斗2料斗3电子秤1电子秤2电子秤3混合容器配料装置示意图:一、硬件系统概述由于系统需要处理的数据比较少,CPU可采用普通的89C51,同时也不需要扩展RAM。键盘部件用来输入操作者的控制命令和技术参数,显示部件用来显示3个电子秤的数据和其它数据。3个传感器和A/D部件(包含信号调理电路)完成配料过程中的质量信号采集输出锁存、光电隔离、功率驱动和电磁阀组成输出控制部件,完成配料过程的各种动作。通信部件完成单片机与上位机通信的信号电平转换。如果单机运行,也可以不要通信部件。二、软件系统的规划软件系统规划的前提是实现系统所有预定功能。自检模块和时钟模块是必须使用的模块。为了对系统进行操作,需要有监控模块和显示模块;为了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论