嵌入式系统软件设计
- 格式:ppt
- 大小:5.09 MB
- 文档页数:31


[摘要]
关键词
0引言 嵌入式PMU系统软件设计 吕翔,杨贵玉 (浙江大学电气工程学院,浙江杭州310027) 嵌入式技术
以PMU为基本单元构成的广域电网相量同步测量是现代电力系统运行状况实时动态监测、分析和控 制的基础。嵌入式PMU一般由测量DSP和人机交互(MMI)两部分构成。本文在MMI侧提出了一种 基于QNX实时操作系统的软件框架体系,与基于使用DSP/BIOS实时操作系统的DSP部分软件相配 合,能够在完成实时采样计算、数据采集存储、用户输入及对外通讯、参数设置、实时显示等多优先 级任务的同时保证PMU系统的实时响应能力和高可靠性。各部分软件均在所开发的硬件上实现并得 到应用。 电力系统PMU DSP/BIOS实时操作系统QNX实时操作系统
广域测量系统WAMS(Wide Area Measurement Sys— tem)基于PMU(Phasor Measurement Unit)构成,可实 现全网运行相量的实时同步测量,测量结果可在电力系 统的动态过程监测、事故分析和阻尼抑制等应用中发挥 重要作用。 为保证对电网运行相量测量的实时性与精度,PMU 一般设计成由相对独立的DSP子系统与MMI(Man—Ma— chin ̄Interface)子系统构成的多维处理器结构,DSP与 MMI 2个子系统之间通过高速数据接口实现信息交互, 其结构如图1所示。
图1结构示意图 本文在MMl侧提出了一种基于QNX实时操作系统 的软件框架体系,该软件框架充分利用了QNX硬实时 特性及消息传递体制的优势,通过与DSP部分软件相 配合可保证PMU系统的高实时性和可靠性。本文还在 所开发硬件的基础上实现了各部分的软件功能。 1 DSP子系统侧软件分析
DSP/BIOS是一个占用的CPU资源极少、用户可剪 裁的实时操作系统,它主要由3部分组成:多线程实时 内核、实时分析工具、芯片支持库。利用实时操作系统 开发程序,可以方便快速的开发复杂的DSP程序。操作 收稿日期:2007—07—28 作者简介:吕翔(1982一),硕士研究生,研究方向为广域电网 测控技术、柔性交流输电技术; 杨贵玉(1968一),博士后,主要从事电力系统稳定控制技术、 广域电网测控技术、柔性交流输电技术的研究等。 系统维护调度多线程的运行,只需将定制的数字信号算 法作为一个线程嵌入系统即可;芯片支持库帮助管理外 设资源,复杂的外设寄存器初始化可以利用直接图形工 具配置;实时分析工具可以帮助分析算法实时运行情 况。DSP/BIOS以模块化方式提供给用户对线程、中断、 定时器、内存资源、所有外设资源的管理能力,且可以 根据需要剪裁。实际应用中需要的定制算法可作为一个 线程插入DSP/BIOS的调度队列,由DSP/BIOS进行调 度。用户程序不再是按编写的次序顺序执行,而是在 DSP/BIOS的调度下按任务、中断的优先级排队等待队 列。 DSP子系统主要由前向通道、锁相环电路、 D转 换芯片、GPS接收器和DSP芯片构成,结构如图2所 示。其主要功能是完成电网运行相量的实时高精度采样 计算与时标定位。 GPS信号输八 _.1 H 卜 时标产生模块 DPS 太握 地4 通数据采 数字信讯模样模块 模块理 块
嵌入式系统的开发与设计
随着科技的发展与创新,嵌入式系统的需求越来越大,从智能家居到工业自动化,嵌入式系统在各行各业中都扮演着极其重要的角色。嵌入式系统是基于计算机技术和控制技术相结合的一种应用系统,可以嵌入到各种设备中去,以实现设备的自动控制、数据采集等功能。因此,嵌入式系统的开发与设计非常重要,这也是一个不断发展的领域。
一、嵌入式系统的定义和特点
嵌入式系统是一种嵌入到其他设备中,起到“控制”和“计算”的作用的系统。与传统的桌面计算机系统相比,嵌入式系统具有以下几个特点:
1、实时性要求高:嵌入式系统通常需要实时采集、处理和执行各种指令和任务,因此实时性要求非常高。
2、功耗低:嵌入式系统通常需要长时间工作,功耗低也是非常重要的考虑因素,同时也可以减少对环境的影响。
3、可靠性高:嵌入式系统的主要作用是控制和计算,因此可靠性是非常关键的考虑因素。
4、成本低:嵌入式系统通常需要应用到各种设备中,因此成本低也是非常重要的考虑因素。
5、体积小:嵌入式系统要求体积小,便于嵌入到其他设备中。
二、嵌入式系统的开发和设计
嵌入式系统的开发和设计需要掌握硬件和软件两方面的知识。硬件方面主要涉及某种硬件技术的设计和实现,包括CPU、内存、存储、输入输出接口等。软件方面主要涉及嵌入式软件的开发,包括操作系统、驱动、应用程序等。
1、硬件设计
硬件设计是嵌入式系统设计中非常重要的一部分。硬件设计的主要任务是将电路设计、电路测试、电路优化以及电路制造等过程组合起来实现嵌入式系统的开发与设计。硬件设计包含以下几个主要方面:
(1)硬件原理图设计
硬件原理图设计是硬件设计的关键环节。原理图下发到PCB设计软件后继续在PCB设计层进行设计和生产。在原理图设计阶段完成之前,结合硬件所需要的一些特殊功能和要求将非常重要。
(2)良好的外围设计
对于集成电路,正常外围器件会直接影响工作效果,如电源滤波、信号放大电路等对于嵌入式系统的运行影响非常大小,此时按照实际使用条件的不同,优化可取得更好的效果。
嵌入式系统的软件架构设计
一、嵌入式系统软件架构设计的原则
1.单一职责原则:模块化设计,每个模块负责独立的功能或任务,使得系统具有高内聚性和低耦合性,易于维护和拓展。
2.低功耗原则:嵌入式系统通常运行在资源受限的环境中,所以在设计过程中应考虑功耗的优化,如合理使用睡眠模式、降低组件工作频率等。
3.实时性原则:对于需要实时响应的系统,需要保证任务的实时性和可靠性。可以使用实时操作系统,合理分配任务优先级,提供正确的调度机制。
4.可靠性原则:嵌入式系统通常运行在无人值守的环境中,对于需要长时间运行的系统,需要考虑到系统的稳定性和错误处理机制,如保证数据一致性、异常处理等。
二、常用的嵌入式系统软件架构模式
1.分层结构:将系统划分为若干层,每一层负责特定的功能或任务。上层可以调用下层的服务,实现系统的复用和模块化设计。常见的分层结构有应用层、服务层、驱动层等。
2.客户端-服务器模式:将系统拆分为客户端和服务器,客户端负责用户界面和输入输出处理,服务器负责核心业务逻辑和数据处理。这种模式适用于需要分布式处理和网络通信的系统。
3.事件驱动模式:通过订阅和发布机制,实现模块之间的高效通信和数据传递。当一个模块触发一个事件时,相关的订阅者可以接收并处理这个事件。这种模式适用于需要实现松耦合的模块间通信的系统。 4.状态机模式:系统根据不同的状态进行不同的处理,通过定义状态转换规则,可以实现系统的复杂逻辑控制。这种模式适用于需要根据不同状态处理不同事件的系统,如自动控制系统。
三、嵌入式系统软件架构设计的指导
1.准确定义需求:在设计阶段之前,清楚地定义系统的功能需求、性能需求、可靠性需求等,并根据需求确定软件架构的基本模型和模式。
2.模块化设计和接口定义:将系统划分为若干独立的模块,并定义模块之间的接口和通信机制。模块化设计可以提高系统的复用性、拓展性和维护性。
3.确定关键任务:对于需要实时响应的系统,需要确定关键任务,并按照优先级进行调度。可以使用实时操作系统提供的调度器或实现自己的调度算法。
嵌入式信息系统讲义第5章嵌入式软件设计
Written by Zhou, BISTU
5-
1第5
章
嵌入式软件设计5.1 GNU
软件开发环境
5.3
引导加载程序
BootLoader5.4 Linux
内核移植
5.5 文件系统
<25.1 GNU软件开发环境
GNU开发环境的组成主要介绍:¾编译工具:gcc、arm-Linux-gcc(交叉编译)¾make 和makefile¾gdb
<3源程序词法分析语法分析语义分析生成中间代码优化代码错误处
理生成目标代码符号表及其管理
目标程序编译工具的基本结构
<45.1.1 GCC简介GCC(GNU Compiler Collection) 是在UNIX 以及类UNIX 平台上广泛使用的编译器集合,它能够支持多种语言前端,包括C, Objective-C, Ada, Fortran, Java 和treelang等。GCC 设计中有两个重要的目标,其中一个是在构建支持不同硬件平台的编译器时,它的代码能够最大程度的被复用,所以GCC 必须要做到一定程度的硬件无关性;另一个是要生成高质量的可执行代码,这就需要对代码进行集中的优化。为了实现这两个目标,GCC 内部使用了一种硬件平台无关的语言,它能对实际的体系结构做一种抽象,这个中间语言就是RTL(RegisterTransfer Language)。
<
5源码解析语法树的优化RTL代码生成函数调用优化转移指令优化寄存器扫描SAA(Static Single Assignment)优化公用子表达式削减二次公用子表达式优化数据流分析指令合并局部寄存器分配动循环语句优化指令时序调整
二次指令时序调整寄存器类优先级选择寄存器移动
基本块重新安排重载二次转移指令优化可延迟性分支时序安排多分支指令合并寄存器使用优化调试信息输出输出与程序对应的汇编语言程序用GCC编译程序流程
<6-ansi只支持ANSI 标准的C 语法。这一选项将禁止GNU C 的某些特色,例如asm或typeof关键词-c 只编译并生成目标文件-E 只运行C 预编译器-g 生成调试信息。GNU 调试器可利用该信息-o FILE 生成指定的输出文件。用在生成可执行文件时-O0 不进行优化处理-O 或-O1 优化生成代码-O2 进一步优化-O3 比-O2 更进一步优化,包括inline 函数-w 不生成任何警告信息-Wall 生成所有警告信息gcc常用选项