- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能仪表 课件 第三章 软件系统设计概述
第三章 软件系统设计概述 3.1 软件开发环境与编程语言 一、开发环境的选择 1 裸机开发环境:在完全空白的单片机芯片及相关周边硬件电路的基础上,系统运行的所有程序都必须由开发者来设计。 适合系统资源比较紧张,成本要求苛刻、产品功能单纯,程序量不大的低、中档电子产品。 2 操作系统开发环境:在具有“实时多任务操作系统”内核的单片机基础上,只须完成系统各项任务的程序设计,任务的管理和调度由操作系统来完成 。 适合实时性要求高、系统资源比较充足,任务多,系统稳定性和可靠性要求高的的高档电子仪器。 二、编程语言的选择 1 汇编语言:要求对单片机内部资源和外围电路非常熟悉,对指令系统非常熟练。适合功能简单的中小型应用系统。 2 C语言: 只需对单片机内部结构基本了解,对外围电路比较熟悉,对指令系统不必非常熟悉。适合复杂应用系统 3.2 软件系统的结构分析 软件系统:应用系统的全部软件。 一、层次结构 1 主动执行的程序模块(上层模块):包括主程序和各种中断子程序。 2 被动执行的程序模块(下层模块):各种普通子程序。 二、功能结构 嵌入式软件系统由各种功能模块构成,软件设计的主要内容主要有功能性设计,可靠性设计和运行管理设计。 常用的功能模块: 1 自检模块:完成对硬件的检查,发现存在的错误,避免系统“带病运行”。 包括:程序存储器自检,数据存储器自检,输入通道自检,输出通道自检和外部设备自检。 2 初始化模块:完成硬件的初始设置和软件系统中的各个变量默认值的设置。 外围芯片初始化 片内特殊功能寄存器初始化 堆栈指针初始化 全局变量初始化 系统时钟初始化 数据缓冲区初始化 3 时钟模块 时(间)钟模块:完成时间系统的设置和运行,为系统其它模块提供时间数据。 采用硬件时间芯片实现(硬件时钟) 采用软件时间芯片实现(软件时钟) 4 监控模块:通过获取键盘信息,解释并执行,完成操作者对系统的控制。 5 信息采集模块:采集系统运行所需要的外部信息,包括采集各种传感器输出的模拟信息和各种开关输出的数字信息。 6 数据处理模块:按预定的算法将采集的信息进行加工和处理,其核心问题是数据类型的选择和算法的选择。 7 控制决策模块:根据数据处理的结果和系统的状态,决定系统的运行策略。其主要问题是控制决策算法。 显示打印模块:将各种信息通过显示设备或打印设备输出。 9 信号输出模块:根据控制决策模块的结论,输出对应的模拟信号和数字信号,对控制对象进行操作,使其按预定要求运行。 10 通信模块:完成不同设备之间的信息传输和交换。其核心问题是通信协议的制定。 11 其他模块:完成某个特定系统所特有的功能,如电源管理和程序升级。 3.3 软件系统的规划 软件系统的规划就是将各个功能模块合理地组织到主程序和各个中断子程序中,不同的硬件设计,各个功能模块的安排不唯一。 1 自检模块:一般安排在系统上电时首先执行,同时可在时间模块的安排下定时自检。 2 初始化模块:一般在自检模块之后运行。 时钟模块: 采用硬件时钟时根据不同芯片的功能安排在外部中断子程序中或直接从时间芯片中读取。 采用软件时钟时安排在定时中断子程序中。 4 监控模块:取决于键盘信息的获取方式,可采用查询方式,中断方式和定时中断子程序中。 5 信息采集模块:与信息采集的方式有关。可采用事件中断(外部或计数),定时采集方式。 6 数据处理模块:一般安排在数据采集模块之后。信息采集模块可通过软件标志通知数据处理模块。 7 控制决策模块:安排在数据处理模块之后。 8 显示打印模块:一般安排在监控模块之后,以便及时反映系统信息和操作结果。 9 信号输出模块:一般安排在显示打印模块和控制决策模块之后。 10 通信模块:一般包含接收子程序和发送子程序两部分,一般安排在通信中断子程序中。 3.4 软件系统的设计步骤 软件系统一般采用下(硬件接口程序)、上(软件系统框架)、中(各种功能模块) 的设计顺序 一、设计和调试硬件接口模块:在硬件系统方案确定,制作出调试电路板的基础上进行。 二、建立软件系统的框架 一个完整的软件系统(汇编语言格式)通常包含以下几个部分: 1 定义部分:定义变量和分配资源,主要包括外部部件的地址、主
文档评论(0)