当前位置:文档之家› PCM嵌入式软件概要设计V1.0

PCM嵌入式软件概要设计V1.0

PCM嵌入式软件概要设计V1.0
PCM嵌入式软件概要设计V1.0

分布式能源箱变测控装置规约转换模块项目软件(系统/概要)设计说明书

项目令号:

承担部门:微网所

编制:刘亮

E-mail/Tel:

审核:

会审:

批准:

国电南京自动化股份有限公司

国电南京自动化股份有限公司xx项目软件概要设计软件系统/概要设计文档修改记录

国电南京自动化股份有限公司xx项目软件概要设计

摘要

本文对分布式能源箱变测控装置规约转换模块(简称规约转换模块,PCM)的嵌入式软件的总体架构设计进行描述。PCM配套的配置工具主要牵涉到数据库设计和界面设计,不包含在本文档的叙述范围内。

PCM以数据采集、转发为核心功能,嵌入式软件在架构设计上采用了数据中心模式。为保证数据转发效率,采用共享内存方式的实时数据库设计。

为减小系统模块的耦合,给系统扩展留有足够空间,系统采用多进程方式独立实现各子功能。各子功能模块通过进程访问接口(PAI)进行通信,通信方式包括信号量和共享内存两种。

为提高软件的兼容性,系统设计了硬件抽象层(HAL)模块和数据库访问接口(DAI)模块,将硬件平台和数据库的操作进行了统一封装。

为提高系统的稳定性,设计了守护进程模块。守护进程通过信号量握手来监控实时数据库进程、通信规约进程等其他进程的运行状况,可以在被监视的进程发生异常时对其及时修复。

目录

第1篇概述 (3)

1.1 范围 (3)

1.2 设计依据 (3)

1.3 术语、定义和缩略语 (3)

1.3.1 术语、定义 (3)

1.3.2 缩略语 (4)

第2篇系统总体设计 (4)

2.1 体系结构概述 (4)

2.2 系统体系结构 (5)

2.3 标准化设计 (6)

2.3.1 模块标准化设计 (6)

2.3.2 接口标准化设计 (6)

2.3.3 界面格式 (6)

2.3.4 编码约定 (7)

2.3.5 注释约定 (7)

2.4 系统版本规划 (8)

2.5 系统处理流程 (9)

2.6 子系统说明 (10)

2.6.1 实时数据库RDB (10)

2.6.2 历史数据库HDB (10)

2.6.3 通信规约模块 (11)

2.6.4 辅助模块 (11)

2.6.5 守护进程模块 (11)

2.6.6 网关模块 (12)

2.7 系统数据结构设计 (12)

2.7.1 逻辑结构设计要点 (12)

2.7.2 物理结构设计要点 (12)

2.7.3 数据与子系统关系 (12)

2.8 开发和运行环境 (12)

2.8.1 硬件环境 (12)

2.8.2 软件环境 (13)

2.8.3 外购件分析 (13)

2.9 可靠性设计 (13)

2.10 可测试性设计 (13)

2.11 安全性设计 (14)

2.12 出错处理设计 (14)

2.13 设计依据与需求跟踪 (14)

第3篇系统运行说明 (16)

3.1 配置说明 (16)

3.2 系统应用方式 (16)

3.3 代码目录说明......................................................................................... 错误!未定义书签。

第4篇技术方案总结 (17)

4.1 关键技术问题说明 (17)

4.2 技术复用说明 (17)

第5篇总体进度计划 (18)

5.1 项目分解 (18)

5.2 完成时间 (18)

第6篇参考文献 (19)

6.1 参考文献 (19)

第1篇概述

1.1范围

本文件规定了分布式能源箱变测控装置规约转换模块(简称PCM)的软件总体设计及使用的关键技术等,主要围绕PCM的嵌入式软件进行阐述。PCM的配置工具并不在本文档中进行说明。

1.2设计依据

GB/T13729-2002 远动终端通用技术条件

DL/T630-1997 交流采样远动终端技术条件

DL5002-2005 地区电网调度自动化设计技术规程

DL5003-2005 电力系统调度自动化设计技术规程

DL/T559-2007 220kV-500kV 电网继电保护装置运行整定规程

DL/T5103-1999 35kV-110kV无人值班变电所设计规程

DL/T5149-2001 220-500kV变电所计算机监控系统设计技术规程

DL/T872-2004 小接地电流系统单相接地保护装置

DL/T860.3-2004 变电站通信网络和系统第3部分总体要求

DL/T667-1999 远动设备及系统第5部分-传输规约第103篇-继电保护设备信息接口配套标准

DL/T634.5101-2002 远动设备及系统第5-101部分:传输规约基本远动任务配套标准

DL/T634.5104-2002 远动设备及系统第5-104部分:传输规约采用标准传输协议子集的IEC 60870-5-101网络访问

1.3术语、定义和缩略语

1.3.1术语、定义

本文件应用了以下术语和定义:

配置数据库存储工程配置的数据库,文件形式,由配置工具产生

历史数据库存储历史事件的数据库,文件形式,非易失存储

实时数据库存储实时数据的数据库,处于内存中,掉电消失

进程OS进行资源分配和调度的基本单位,可理解为动态的程序。

共享内存可被多个进程共享的物理内存,进程间共享数据最快的方法前端规约进程PCM和前端装置之间的通信规约进程

后端规约进程PCM和后台综自系统之间的通信规约进程

守护进程PCM中启动、监视、控制其他进程的进程

配置工具主机端运行的App,负责配置数据库相关的操作

网关进程PCM上运行的网关进程,负责调试功能相关的用户交互硬件抽象层对PCM底层硬件操作进行封装的库,方便跨平台移植

1.3.2缩略语

本文件应用了以下缩略语:

PCM Protocol Convert Module 规约转换模块

HDB History Data Base 历史数据库

CDB Configuration Data Base 配置数据库

RDB Real-time Data Base 实时数据库

HAL Hardware Abstract Layer 硬件抽象层

PAI Process Access Interface 进程访问接口

DAI Database Access Interface 数据库访问接口

第2篇系统总体设计

2.1体系结构概述

PCM的主要功能是数据采集转发。在嵌入式软件的系统设计中,主要采用数据中心架构,辅助以适配器方式的接口模块。

PCM中,数据中心角色由RDB扮演,监视方向和控制方向的信息都需要经过RDB的中转,实现通信规约的转换,继而实现系统内部的通信。

HAL、PAI和DAI是PCM功能模块中的公用模块,他们的具体接口见相应的设计文档。他们实际上扮演了针对系统硬件平台、数据库操作、进程间通信的适配器角色。通过这3个模块,可以将系统的其他功能模块实现功能解耦,提高了系统的可维护性。

具体的体系结构参见图1.

2.2系统体系结构

库移植、表结构更改留下余地。

PAI封装了进程间通信接口,它一方面将复杂的进程间通信封装成易调用的库函数,另一方面也提供了类似于面向对象设计中接口适配器的功能,方便应用的开发和调整。

前端通信规约模块通过HAL与微网系统中其他装置进行通信,获取系统的

SCADA信息,并通过PAI接口将其传入RDB保存。

后端通信规约模块通过PAI访问RDB,将系统的SCADA信息以特定规约的数据单元格式进行封装,通过HAL转发至微网系统的后台综自系统。

通用网关接口模块由Web服务器调用,为用户提供数据查询、数据修改、装置控制等PCM相关的调试功能。

守护进程模块负责监控其他进程的运行状态,在出现异常情况时进行恢复处理,保证PCM系统的正常稳定运行。

2.3标准化设计

2.3.1模块标准化设计

由于RDB、HAL、DAI、PAI牵涉到具体的数据库表设计和平台底层硬件操作封装,CGI模块与具体的网页请求绑定,因此上述模块无法进行模块标准化。但是通信规约模块的数据处理部分可以进行标准化,供其他产品项目使用。

2.3.2接口标准化设计

本系统将对HAL、DAI、PAI的接口进行标准化,为项目后期的平台移植、数据库调整、功能扩展等情况预留兼容性操作空间,以提高同系列产品的研发质量和效率。

2.3.3界面格式

PCM的界面主要有两部分:配置工具和Web页面。配置工具负责产生配置数据库,其界面设计需结合配置数据库的设计进行设定,不在本文档说明范围内。

Web页面主要向用户提供PCM的在线调试功能,其主要页面及各页面涉及的功能见下图。

2.3.4编码约定

建议在编程开发时采用应用型匈牙利命名法。

2.3.5注释约定

无。

各子模块的版本应采用x.yy形式。

x表示大版本号,在设计未做大的调整的情况下应保持x不变,仅在模块的设计发生大的变化、接口进行调整、研发阶段改变(α阶段、β阶段)时修改,且以步长为1递增;y表示小版本号,在开发者进行bug修正、算法调整等不影响与其他模块接口的情况下,以步长为1递增。

x初步定为1~3,1表明研发阶段,2表明系统测试阶段,3表示发布阶段。

图3 系统处理流程

图3描述了PCM从上电到运行的大致过程,基本涵盖了图1中的所有功能模块。由于CGI模块由Web服务器调用,且主要以函数库的形式向Web服务器提供接口,故而未在图中进行描述。CGI模块具体包含的接口不在本文档的说明范围内,请参见其设计文档。

2.6子系统说明

2.6.1实时数据库RDB

RDB是PCM中存储实时SCADA信息的功能模块。在监视方向上,前端通信规约进程将采集的SCADA信息存入RDB,由后端通信规约进程取出后,以另一种规约格式进行封装后转发至综自后台;在控制方向上,则进行上述操作的逆操作。由于PCM——前端装置和PCM——后台系统之间通常采用不同速率的物理通信方式,RDB实际上还起到同步异步时钟域的作用。

RDB要同时处理多个通信规约进程的访问,它的关键质量属性是性能,特别是数据存取速度。系统设计方案考虑了以下两点来保证RDB的性能属性:

1.PCM系统采用多进程方式的设计,且RDB牵涉大量数据的交互,因此在设计方案中采用进程间通信技术中速度最快、适合大规模数据交互的共享内存技术来作为RDB的实现技术。

2.RDB主要保存系统的点表信息,点表信息在确定后基本不会改变,那么在数据存储的组织上,方案建议RDB采用数组方式而不是链表方式来组织信息的存放。这样虽然牺牲了动态增添点表的能力,但是保证了信息存取的速度——对RDB中点信息的访问,只要通过特定的算法计算出数组下标即可一步定位到所需数据。

2.6.2历史数据库HDB

HDB记录PCM在运行过程中接收到的特定SCADA信息,例如SOE事件、遥控操作等,这些特殊SCADA信息来自于RDB。

HDB的关键质量属性是安全性,还要考虑对RDB性能的影响。

HDB的安全性主要是指它的内容只能由RDB写入,且一旦写入就不可修改删除。HDB在实现上是以文件形式存在,由HDB管理进程管理。HDB管理进程应仅在需要写入信息时将HDB文件的属性设为可写,其余时间都设为只读。

由于HDB以文件形式存在,写操作相对写内存来说是低速的。为避免对RDB 的性能影响,方案设计建议HDB管理进程配备写缓冲。在写入历史信息时,RDB 将信息推送至写缓冲,由HDB管理进程负责将信息写入文件。配备写缓冲还可以防止突发历史信息的丢失。

2.6.3通信规约模块

通信规约模块负责采集、转发系统SCADA信息,分为前端通信规约模块和后端通信规约模块。换句话说,每个通信规约都有client和server两种工作模式。通信规约模块负责PCM上一个特定物理通信端口的数据通信。

在PCM系统设计中,通信规约模块应负责各种ASDU数据的分析,并实现为保证通信质量所规定的一系列通信保障措施。工程应用的多样性决定了通信规约模块的关键质量属性是可扩展性。

通信规约模块的可扩展性体现在规约参数的可定制方面。由于每个规约实例对应的参数都不一样,且规约参数是通过配置工具在CDB中定制的,那么它不包含在本文说明范围内。具体请参见CDB设计文档和配置工具设计文档。

2.6.4辅助模块

辅助模块主要指硬件抽象层HAL、数据库访问接口DAI和进程访问接口PAI。辅助模块的引入主要是为了降低PCM软件与平台硬件、操作系统、数据库系统的耦合,为系统扩展、平台移植预留空间。

辅助模块的关键质量属性是可扩展性和可移植性。

在可扩展性方面,方案建议辅助模块采用C++的多态技术实现,这样可以方便地扩展已有接口,不影响前期使用已有接口的模块;另外,与具体硬件操作、操作系统函数调用、具体数据库表结构的访问也应封装在辅助模块中,使得辅助模块具有接口适配器的作用,这样在更换底层软件、跨平台移植、修改表结构、功能模块并行开发的时候,只需修改相应的辅助模块即可,不会对其他模块产生影响。

2.6.5守护进程模块

守护进程模块负责监视PCM运行中的通信规约进程、RDB管理进程、HDB

管理进程等多个进程的运行状态,在异常情况发生时,通过特定处理来保证系统继续正常运行。

守护进程模块是系统可靠性的根基,它的关键质量属性是可靠性。

方案设计中,为保证守护进程的可靠性做了两方面的工作。一方面,守护进程的功能被压缩到最低,它只负责其他进程的加载、注册和监视,并对异常进程进行统一的kill——restart操作,这就使得代码的实现复杂度大为降低,减少了出错的可能;另一方面,方案设计守护进程由主进程进行监视,一旦发生异常,将采用比kill——restart更高级别的系统重启方式来彻底消除隐患。

2.6.6通用网关接口模块CGI

CGI模块主要负责处理PCM的在线调试功能,它和系统中的其它模块相对独立,由PCM中的Web服务器调用。从使用角度来看,CGI模块是给Web服务提供特定功能的函数库。

由于PCM的在线调试功能可以修改RDB和CDB中的部分信息,因此CGI 模块的关键质量属性是安全性。

为保证CGI模块的安全性,方案设计采用基于角色的访问控制机制。任何用户在使用网页登录PCM进行相关操作前,都需要验证其身份。此外,用户的身份信息在CDB中应以密文形式保存。

2.7系统数据结构设计

2.7.1逻辑结构设计要点

数据结构的设计与数据库表结构有关。具体请参见项目相关的数据库表设计文档及相关功能模块的设计文档。

2.7.2物理结构设计要点

参见项目相关的数据库表设计文档和功能模块设计文档。

2.7.3数据与子系统关系

具体请参见相关功能模块的设计文档。

2.8开发和运行环境

2.8.1硬件环境

开发本软件系统所需的硬件环境为:Intel i3处理器、2GRAM、80G硬盘。

本软件系统对实际运行环境的最低要求为:ARM 9 处理器400MHz、64M ROM、64M RAM或同级别工控机。

2.8.2软件环境

●操作系统:Linux内核2.6.32.2;

●数据库系统:MySql 5.0;

●开发工具:Qt 4.8.2、PHP 5.5、JavaScript ECMA5;

●编译器:gcc/g++ 4.3.3、arm-linux-gcc 4.4.3;

●虚拟机:VMWare Workstation 8.0;

●Web服务器:Apache 2.4

软件可运行于虚拟机系统上,经过PC机的交叉编译后,运行于ARM9平台。

2.8.3外购件分析

暂无。

2.9可靠性设计

软件设计在两方面对可靠性进行了保障。

首先,软件系统被划分为多个功能模块,每个功能模块以单独进程方式运行,通过进程间通信技术进行信息交互。某个进程在发生异常时,不会影响到其他进程,使得问题能被有效控制隔离。

其次,系统设计了守护进程模块,能够对各个运行的进程进行主动监测。一旦异常发生,守护进程会采取终止异常进程、重新加载功能模块的方式进行错误恢复。守护进程本身也被监视,一旦发生异常会采用设备重启的方式来恢复整个PCM系统。

2.10可测试性设计

在测试方面建议采用自底向上的方法,这样能够尽可能多地发现设计和实现上的错误。

首先,每个功能模块(类/库函数)都需要进行单元测试。单元测试包括库函数使用的子函数、类包含的成员函数,主要关注函数的输入输出、异常处理是否在落在设计范围之内。在子函数、成员函数测试通过的基础上,完成对整个功能

模块(类/库函数)功能的测试。

其次,在单元测试的基础上,对多个功能模块进行合成测试。合成测试主要测试模块之间接口的正确性和完备性。

再次,在合成测试的基础上,对所有功能模块进行整合,进行系统测试。系统测试主要测试软件的功能是否完备,是否满足软件需求的可追踪性。系统测试需要在真实的物理平台上运行软件系统。

2.11安全性设计

PCM运行于相对封闭的电力系统网络环境中,其安全性主要体现在加密、安全审计和访问控制上。

加密方面,用户信息在CDB中不是以明文形式存放,而是用户信息的密文形式。在需要的时候,用户输入口令,由PCM进程进行验算核对。

在访问控制方面,PCM软件采用基于角色的访问控制策略,用户使用浏览器访问PCM时,需要提供身份信息,并且在通过Web页面进行特定操作,例如重启设备、人工置数、修改点表信息时,都会被网关进程进行权限验证。

安全审计方面,PCM的HDB模块会有一些关键操作的记录,例如遥控操作、人工置数、设备重启等,且这些记录对用户是只读的,能够在需要的时候提供审计证据。

2.12出错处理设计

模块的调试信息输出应受到统一控制。在系统软件运行于调试版本时,对于一般的逻辑错误,模块将出错信息输出至PCM系统控制台(Linux的console),用户通过SSH工具、Telnet工具可以访问这些调试信息。

对于严重的进程异常,由守护进程实行kill——restart操作完成错误恢复。

2.13设计依据与需求跟踪

需求说明书中的4.1.9和4.1.10是配置工具相关,不属于本文档说明范围。

第3篇系统运行说明

3.1配置说明

PCM的配置定制具有高度灵活性,与具体的工程应用有关。

PCM在运行前,首先应当由配置工具生成CDB,描述采用的通信规约、系统设备、通道参数等,并由配置工具将CDB及相关的规约库模块下载至PCM。配置工具相关描述不在本文档范围内,请参见相关设计文档。

PCM运行后,由守护进程加载各通信规约进程,并按照CDB中的描述进行通信端口初始化、通信规约定制等操作。

3.2系统应用方式

PCM可应用到需要进行Modbus、IEC 61850-5-103等电力系统通信规约转换的工程应用项目中。配置工程师需要通过配置工具提供PCM所需的CDB,CDB 中应包含系统的装置、通道、点表等工程相关信息。

第4篇技术方案总结

4.1关键技术问题说明

系统设计和开发过程中,需要掌握如下关键技术:

1)Linux进程间通信技术,包括信号量、Socket和共享内存;

2)网络通信,Socket编程,Linux下的串口、网口驱动;

3)关系数据库设计及访问、XML技术;

4)Web服务器相关配置,JavaScript、PHP;

5)C++、Qt编程;

6)嵌入式Linux的移植、定制。

关系数据库的设计是项目的关键所在,需要关注表结构的设计是否涵盖所有系统需求。若开发至后期进行表结构调整,将会对项目质量产生较大影响。在系统设计上,尽管使用DAI模块封装具体的表结构访问操作,可以减小这种风险发生时的影响,还是需要在设计阶段对数据库进行较多关注。

Linux进程间通信技术是各功能模块配合运行的关键。RDB模块主要采用共享内存技术,守护进程模块主要采用信号量技术。

Qt编程需要了解信号——槽机制,并熟悉Qt封装的相关库函数的使用;

Web服务器方面需要熟悉Apache的配置,AJAX异步通信技术和JavaScript 的页面应用。

4.2技术复用说明

无。

PCM嵌入式软件概要设计V1.0

分布式能源箱变测控装置规约转换模块项目软件(系统/概要)设计说明书 项目令号: 承担部门:微网所 编制:亮 E-mail/Tel: 审核: 会审: 批准:

国电自动化股份

软件系统/概要设计文档修改记录

摘要 本文对分布式能源箱变测控装置规约转换模块(简称规约转换模块,PCM)的嵌入式软件的总体架构设计进行描述。PCM配套的配置工具主要牵涉到数据库设计和界面设计,不包含在本文档的叙述围。 PCM以数据采集、转发为核心功能,嵌入式软件在架构设计上采用了数据中心模式。为保证数据转发效率,采用共享存方式的实时数据库设计。 为减小系统模块的耦合,给系统扩展留有足够空间,系统采用多进程方式独立实现各子功能。各子功能模块通过进程访问接口(PAI)进行通信,通信方式包括信号量和共享存两种。 为提高软件的兼容性,系统设计了硬件抽象层(HAL)模块和数据库访问接口(DAI)模块,将硬件平台和数据库的操作进行了统一封装。 为提高系统的稳定性,设计了守护进程模块。守护进程通过信号量握手来监控实时数据库进程、通信规约进程等其他进程的运行状况,可以在被监视的进程发生异常时对其及时修复。

目录 第1篇概述 (3) 1.1 围 (3) 1.2 设计依据 (3) 1.3 术语、定义和缩略语 (3) 1.3.1 术语、定义 (3) 1.3.2 缩略语 (4) 第2篇系统总体设计 (4) 2.1 体系结构概述 (4) 2.2 系统体系结构 (5) 2.3 标准化设计 (6) 2.3.1 模块标准化设计 (6) 2.3.2 接口标准化设计 (6) 2.3.3 界面格式 (6) 2.3.4 编码约定 (7) 2.3.5 注释约定 (7) 2.4 系统版本规划 (8) 2.5 系统处理流程 (9) 2.6 子系统说明 (10) 2.6.1 实时数据库RDB (10) 2.6.2 历史数据库HDB (10) 2.6.3 通信规约模块 (11) 2.6.4 辅助模块 (11) 2.6.5 守护进程模块 (11) 2.6.6 网关模块 (12) 2.7 系统数据结构设计 (12) 2.7.1 逻辑结构设计要点 (12) 2.7.2 物理结构设计要点 (12) 2.7.3 数据与子系统关系 (12) 2.8 开发和运行环境 (12) 2.8.1 硬件环境 (12) 2.8.2 软件环境 (13) 2.8.3 外购件分析 (13) 2.9 可靠性设计 (13) 2.10 可测试性设计 (13) 2.11 安全性设计 (14) 2.12 出错处理设计 (14) 2.13 设计依据与需求跟踪 (14) 第3篇系统运行说明 (15) 3.1 配置说明 (16) 3.2 系统应用方式 (16) 3.3 代码目录说明 (16)

嵌入式软件开发流程图

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式Linux应用软件开发流程

从软件工程的角度来说,嵌入式应用软件也有一定的生命周期,如要进行需求分析、系统设计、代码编写、调试和维护等工作,软件工程的许多理论对它也是适用的。 但和其他通用软件相比,它的开发有许多独特之处: ·在需求分析时,必须考虑硬件性能的影响,具体功能必须考虑由何种硬件实现。 ·在系统设计阶段,重点考虑的是任务的划分及其接口,而不是模块的划分。模块划分则放在了任务的设计阶段。 ·在调试时采用交叉调试方式。 ·软件调试完毕固化到嵌入式系统中后,它的后期维护工作较少。 下面主要介绍分析和设计阶段的步骤与原则: 1、需求分析 对需求加以分析产生需求说明,需求说明过程给出系统功能需求,它包括:·系统所有实现的功能 ·系统的输入、输出 ·系统的外部接口需求(如用户界面) ·它的性能以及诸如文件/数据库安全等其他要求 在实时系统中,常用状态变迁图来描述系统。在设计状态图时,应对系统运行过程进行详细考虑,尽量在状态图中列出所有系统状态,包括许多用户无需知道的内部状态,对许多异常也应有相应处理。 此外,应清楚地说明人机接口,即操作员与系统间地相互作用。对于比较复杂地系统,形成一本操作手册是必要的,为用户提供使用该系统的操作步骤。为使系统说明更清楚,可以将状态变迁图与操作手册脚本结合起来。

在对需求进行分析,了解系统所要实现的功能的基础上,系统开发选用何种硬件、软件平台就可以确定了。 对于硬件平台,要考虑的是微处理器的处理速度、内存空间的大小、外部扩展设备是否满足功能要求等。如微处理器对外部事件的响应速度是否满足系统的实时性要求,它的稳定性如何,内存空间是否满足操作系统及应用软件的运行要求,对于要求网络功能的系统,是否扩展有以太网接口等。 对于软件平台而言,操作系统是否支持实时性及支持的程度、对多任务的管理能力是否支持前面选中的微处理器、网络功能是否满足系统要求以及开发环境是否完善等都是必须考虑的。 当然,不管选用何种软硬件平台,成本因素都是要考虑的,嵌入式Linux 正是在这方面具有突出的优势。 2、任务和模块划分 在进行需求分析和明确系统功能后,就可以对系统进行任务划分。任务是代码运行的一个映象,是无限循环的一段代码。从系统的角度来看,任务是嵌入式系统中竞争系统资源的最小运行单元,任务可以使用或等待CPU、I/O设备和内存空间等系统资源。 在设计一个较为复杂的多任务应用系统时,进行合理的任务划分对系统的运行效率、实时性和吞吐量影响都极大。任务分解过细会不断地在各任务之间切换,而任务之间的通信量也会很大,这样将会大大地增加系统的开销,影响系统的效率。而任务分解过粗、不够彻底又会造成原本可以并行的操作只能按顺序串行执行,从而影响系统的吞吐量。为了达到系统效率和吞吐量之间的平衡折中,在划分任务时应在数据流图的基础上,遵循下列步骤和原则:

《嵌入式软件开发》课程设计报告

《嵌入式软件开发》课程设计报告课题名称:基于ARM11开发平台小球碰撞设计与实现 专业班级:计算机科学与技术

目录 1、使用技术介绍 (1) 2、需求分析 (3) 3、概要设计 (4) 4、详细设计 (5) 5、成果展示 (11) 6、设计总结 (13) 7、附录 (16)

图1.2 1.3 五点校准法 为了方便理解,我们首先引入2个概念,坐标和逻辑坐标。物理坐标就是触摸屏上点的实际位置,我们通常以液晶上点的个数来度量。逻辑坐标就是触摸屏上这一点被触摸时A/D转换后的坐标值。 由于电阻式触摸屏的电压成线性均匀分布,那么A/D转换后的坐标也成线性。假如我们将液晶最左下角点对应的解摸屏上的点定为物理坐标原点A其物理坐标记为(XA=0,YA=0),其逻辑坐标记为(XLA,YLA)(不一定为0)。那么触摸屏上任意一点B的逻辑坐标可表达为:XLB=XLA+KXXB,YLB=YLA+KYYB。其中KX、KY分别为触摸屏X方向和Y方向的因子系数,这就像弹簧一样,拉力与弹簧伸长正比。KX、KY可能为正,也可能为负,这根据具体触摸屏安装的方向和特性。每个液晶触摸屏,我们也应该单独计算每一个触摸屏的K系数。如果A点不是坐标原点,也是任意一点可以表达成:XLB=XLA+KX(XB-XA),YLB=YLA+KY(YB-YA)。我们可以推出计算K系统的公式:KX=(XLB-XLA)/(XB-XA),KY=(YLB-YLA)/(YB-YA)。 在液晶上固定的位置显示五个点,因为是固定的位置,所以这五个点的物理坐标是预知的。这五个点不应太靠边,因为边缘点对应的触摸屏线性一般不太好。 (1)首先在ABCDE对应的位置逐步用尖状物触摸,得到五个点的逻辑坐标。 (2)分别比较A和C、B和D的横坐标,如果差值不在允许范围(你自己规定一个即可,比如5),则重复操作(1)(2)步。 (3)分别比较A和B、C和D的纵坐标,如果差值不在允许范围(你自己规定一个即可,比如5),则重复操作(1)(2)(3)步。 (4)用2组数据计算X向K系数平均值KX={(XLB-XLA)/(XB-XA)+(XLD-XLD)/(XD-XC)}/2(5)用2组数据计算Y系数平均值KY={(YLA-YLC)/(YA-YC)+(YLB-YLD)/(YB-YD)}/2(6)将C点逻辑坐标作为基坐标,根据式2-2则触摸屏上任意一点F逻辑坐标与基坐标的关系为:XLF=XLC+KX(XF-XC)

嵌入式软件概要设计模板

嵌入式软件概要设计(模板)

目录 1前言 (5) 1.1编写目的 (5) 1.2项目背景 (5) 1.3定义 (5) 1.4参考资料 (5) 2版本变更说明 (5) 3任务概述 (5) 3.1目标 (5) 3.2嵌入式软件运行环境 (5) 4总体设计 (6) 4.1系统描述 (6) 4.2设计约定 (6) 4.3总体结构 (6) 4.4处理流程 (9) 5安全关键部件的设计 (9) 5.1识别安全关键部件 (9) 5.2安全关键部件设计 (9) 6接口设计 (9) 6.1接口示意图 (10) 6.2用户接口设计 (12) 6.3外部接口设计 (12) 6.4内部接口设计 (12) 6.5通信接口设计 (12) 6.6硬件接口设计 (12) 7运行设计 (13) 7.1系统启动设计 (13) 8异常信息记录及处理设计 (13) 8.1异常情况分析 (13) 8.2异常处理对策 (13) 8.3异常信息记录 (13) 9容错设计 (13) 10维护设计 (13)

10.1调试信息的缓冲区管理 (13) 10.2调试策略 (14) 10.3调试信息级别 (14) 10.4调试API (14) 10.5软件可测性设计 (14) 10.6软硬件版本信息在线上报/在线加载 (14) 10.7数据设定与操作 (14) 10.8保密性设计 (15) 11软件包描述 (15) 11.1软件包结构 (15) 11.2发布介质............................................................................ 错误!未定义书签。 11.3软件可安装性 (15)

软件设计说明书嵌入式软件范例

一、XXXXX-XXX 热压机自动控制系统软件的设计 LCD—液晶显示器,因其具有微功耗、平板化等一系列显著特点而广泛应用于仪器仪表、计算机显示终端、各类电子显示装置等各个方面。LCD的后工序生产工艺包括COG、COF、FOG、FOB,XXX-XXX 热压机正是为FOG段工艺而开发设计的。 XXXXX-XXX热压机自动控制动系统软件(以下简称XXX系统)是由PLC、气动元件和电动元件组成,其特点是通过传感器采集外部信号,输入到PLC内部进行计算处理,以控制外部执行元件,使之完成一系统的机构动作,达到生产所需的工艺要求。 ㈠ XXX 系统的性能和结构 XXX 系统主要由PLC、GOT(触摸屏)、伺服电机、气缸电磁阀、电磁继电器、光电传感器、磁性传感器、温度处理器、温度传感器以及各种按钮组成。 1、XXX 系统的主要性能和技术参数 ●主机电源:Vac-----220VAC/50HZ ●传感器电源:Vdd-----+24V ● PLC接口:40位输入、32位输出、1个RS232通信串口 ●工作温度:-10℃~+55℃ ●存储温度:-20℃~+60℃ 2、XXX 系统的内部地址 XXX 系统的内部地址及主要功能部件: ●输入继电器— X ●输出继电器— Y ●辅助继电器— M ●定时器— T ●计数器— C ●数据寄存器— D ●变址寄存器— Z 3、XXX 系统的外部引线功能定义 XXX 系统共有82根引脚,具体定义如下: ㈡指令描述 XXX 系统主要有如下指令: ㈢人机界面(GOT) 1、参数设置

人机界面(GOT)可用于参数设置和数据的显示(如图所示) 2、手动操作 人机界面亦可制作手动调试所需的各种按键,以替代繁琐的按钮(如图) 3、生产信息 人机界面还可用于显示生产时的各种数据以及PLC内部的信息,比如外部引脚的通断 信息、生产时产生的报警信息等(如下图) ㈣ XXX 系统的接口及编程 1、硬件接口 XXX系统与电脑的接口可以有两种方式:直接控制方式和间接控制方式。直接控制方式就是将PLC的RS232接口直接与电脑的RS232接口对接(如图1-1);间接控制方式就是将PLC的RS232接口与触摸屏的RS232接口对接,然后将电脑的RS232接口与触摸屏的RS422接口对接,然后对该外设进行间接操作而实现控制(如图1-2)。 2、程式流程方框图 A、系统回原点流程图 B

嵌入GIS概要设计

嵌入式GIS系统 概要设计说明书 [V1.0(版本号)] 拟制人______________________ 审核人______________________ 批准人______________________ [二零零四年四月二十一日]

概要设计说明书 1.引言 1.1编写目的 编写这份概要设计说明书目的一是指导项目成员进行开发,以保证项目进行的延续性和稳定性,另外由于本项目属于科研项目范畴,该概要设计说明书将成为本科研课题的一项重要依据。 1.2背景 a.本科研项目名称:嵌入式GIS在中小型企业中的应用 b.本项目的种类:广州东山区科研项目 c.本项目承接单位:中山大学计算科学与计算机应用研究所 d.本项目开发者:江慧扬、覃廉、冯家浩、奚少杰、卓汉逵 1.3定义 本系统所涉及的具体名词定义如下: [嵌入式GIS]:嵌入企业原有MIS系统,实现数据的嵌入与工作流的嵌入,让企业在不更换原有MIS的情况下能单独定制GIS功能的应用,辅助企业的信息处理与决策。当中具体的嵌入程度定义如下:1、实现数据的嵌入。MIS原有数据和GIS的数据实现关联整合; 2、功能嵌入。在MIS开发平台上能实现GIS功能的无缝调用。 2.总体设计 2.1需求规定 本系统需要实现面向二次开发的嵌入式GIS开发平台,包括:1、嵌入式GIS的数据处理平台;2、用于二次开发的实现GIS开发的ActiveX控件 2.1.1系统功能 1、嵌入式GIS的数据处理平台 1)能实现对几种开放性矢量图文件格式的快速处理,将这些文件数据导入我们自定义的空间数据和属性数据的存储文件当中。 2)能实现对采集数据的快速导入:实地采集数据存放独立文件中,系统要能快速的将这些数据导入到空间数据和属性数据的存储文件当中。 3)对我们自定义的空间数据和属性数据的存储文件中的数据,系统能快速的以图形方式呈现。 4)对呈现的地理信息图形能进行编辑修改。 5)能实现基本的图形绘图功能,包括拓扑关系的创建。

嵌入式软件系统设计方案案例

待定颜色 修改颜色 疑问颜色 采集器软件系统设计方案 版本历史

目录 1.引言 (5) 1.1 目的 (5) 1.2 背景和范围 (5) 1.3 定义 (5) 1.4 参考资料 (5) 2.系统结构 (5) 2.1 系统功能 (5) 2.2硬件系统框架 (6) 2.2 软件系统框架 (7) 3.上行规约解析模块设计说明 (9) 3.1描述 (9) 3.2功能 (9) 3.3设计思路(算法、流程) (9) 3.4接口 (10) 3.5资源分配、性能 (12) 3.6测试方法 (12) 4.读写参数模块设计说明 (12) 4.1描述 (12) 4.2功能 (12) 4.3设计思路(算法、流程) (13) 4.4接口 (13) 4.5资源分配、性能 (14) 4.6测试方法 (14) 5.周期抄表任务管理 (14) 5.1描述 (14) 5.2功能 (14) 5.3设计思路(算法、流程) (14) 5.4接口 (14) 5.5资源分配、性能 (14) 5.6测试方法 (15) 6.读历史电量数据模块设计说明 (15) 6.1描述 (15) 6.2功能 (15) 6.3设计思路(算法、流程) (15) 6.4接口 (15)

6.5资源分配、性能 (15) 6.6测试方法 (15) 7.数据存储和电表信息存储管理 (15) 7.1描述 (15) 7.2功能 (16) 7.3设计思路(算法、流程) (16) 7.4接口 (20) 7.5资源分配、性能 (20) 7.6测试方法 (20) 8.数据交换模块设计说明 (21) 8.1描述 (21) 8.2功能 (21) 8.3设计思路(算法、流程) (21) 8.4接口 (21) 8.5资源分配、性能 (21) 8.6测试方法 (21) 9.广播校时任务模块设计说明 (21) 9.1描述 (21) 9.2功能 (22) 9.3设计思路(算法、流程) (22) 9.4接口 (22) 9.5资源分配、性能 (22) 9.6测试方法 (22) 10.更改RS485通讯速率设计说明 (23) 10.1描述 (23) 10.2功能 (23) 10.3设计思路(算法、流程) (23) 10.4接口 (23) 10.5资源分配、性能 (23) 10.6测试方法 (23) 11.抄表记录周期任务设计说明 (23) 11.1描述 (23) 11.2功能 (23) 11.3设计思路(算法、流程) (23) 11.4接口 (23) 11.5资源分配、性能 (24)

pcm嵌入式软件概要设计v0

P C M嵌入式软件概要设 计V1.0 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

分布式能源箱变测控装置规约转换模块项目软件(系统/概要)设计说明书 项目令号: 承担部门:微网所 编制:刘亮 E-mail/Tel: 审核: 会审: 批准: 国电南京自动化股份有限公司

软件系统/概要设计文档修改记录

摘要 本文对分布式能源箱变测控装置规约转换模块(简称规约转换模块,PCM)的嵌入式软件的总体架构设计进行描述。PCM配套的配置工具主要牵涉到数据库设计和界面设计,不包含在本文档的叙述范围内。 PCM以数据采集、转发为核心功能,嵌入式软件在架构设计上采用了数据中心模式。为保证数据转发效率,采用共享内存方式的实时数据库设计。 为减小系统模块的耦合,给系统扩展留有足够空间,系统采用多进程方式独立实现各子功能。各子功能模块通过进程访问接口(PAI)进行通信,通信方式包括信号量和共享内存两种。 为提高软件的兼容性,系统设计了硬件抽象层(HAL)模块和数据库访问接口(DAI)模块,将硬件平台和数据库的操作进行了统一封装。 为提高系统的稳定性,设计了守护进程模块。守护进程通过信号量握手来监控实时数据库进程、通信规约进程等其他进程的运行状况,可以在被监视的进程发生异常时对其及时修复。

目录 第1篇概述 (4) 范围 (4) 设计依据 (4) 术语、定义和缩略语 (4) 术语、定义 (4) 缩略语 (5) 第2篇系统总体设计 (6) 体系结构概述 (6) 系统体系结构 (6) 标准化设计 (7) 模块标准化设计 (7) 接口标准化设计 (7) 界面格式 (8) 编码约定 (9) 注释约定 (9) 系统版本规划 (9) 系统处理流程 (10) 子系统说明 (11) 实时数据库RDB (11) 历史数据库HDB (11) 通信规约模块 (12) 辅助模块 (12) 守护进程模块 (12) 网关模块 (13) 系统数据结构设计 (13) 逻辑结构设计要点 (13) 物理结构设计要点 (13) 数据与子系统关系 (13) 开发和运行环境 (13) 硬件环境 (13) 软件环境 (14) 外购件分析 (14) 可靠性设计 (14) 可测试性设计 (14) 安全性设计 (15) 出错处理设计 (15) 设计依据与需求跟踪 (15) 第3篇系统运行说明 (16) 配置说明 (16) 系统应用方式 (16) 代码目录说明.................................................................................................. 错误!未定义书签。

嵌入式系统完整开发方案学习资料

嵌入式系统完整开发 方案

本文提纲 嵌入式系统完整解决方案 一、前言:简单介绍嵌入式技术的飞速发展以及作为嵌入式领域老牌劲旅的旋极 公司在这方面所提供的完整解决方案; 二、由美国ATI公司生产的Nucleus操作系统特点及其优势; 三、根据用户所选用的CPU的不同,编译器有多种不同的选择:Paradigm开发 工具、CAD-UL开发工具,ARM公司的SDT2.5X 和ADS1.X,GreenHill 编译器; 四、嵌入式开发中,代码的调试也是重要的一步,因此必须选择好的调试工具才 能生产出好的软件,通常的调试手段有三种:ICE、ICD和MONITOR,我们向大家推荐由德国Lauterbach公司生产的Trace32-ICE/ICD; 五、用户需要RTOS厂商提供原型工具,以便可以在主机上来仿真目标软件环 境; 六、最后举例说明基于ARM/MIPS的开发方案。

嵌入式系统完整开发方案 xx旋极信息技术有限公司 在嵌入式技术飞速发展的今天,嵌入式产品已经出现在社会的各个领域,包括航空、航天、军事、仪表、工业控制及家庭消费等。全球每年要消耗掉30亿颗嵌入式微处理器,嵌入式系统带来的工业年产值已经超过了1万亿美元。而在这些嵌入式应用中,大多采用了嵌入式实时多任务操作系统(RTOS)。 早期的嵌入式应用程序都是在没有操作系统支持的裸机上用汇编语言和C语言来开发,这也正是目前我国大多数嵌入式开发的工作模式。为了能够有效利用高档单片机的处理能力,现代的嵌入式产品开发大多选用RTOS作为软件的核心。这样,不仅能够把系统软件和应用软件分开处理,还可以极大地简化系统的开发过程,提高可靠性,并缩短产品上市的时间。可以说RTOS 使嵌入式软件的编写从“小生产方式”进入了“大生产方式”。 旋极公司作为国内嵌入式技术领域的老牌劲旅,从xx93年公司创建之初就致力于嵌入式技术的引进和开发。起初,只是作为国外厂商的代理,向用户提供相应的开发工具,现在,为了适应市场的要求,改变了以前的模式,从简单的提供开发工具发展到向用户提供完整的解决方案。这其中包括:操作系统(图形、网络、浏览器等)、仿真器、编译器、原型工具等产品和我们为用户提供的全方位的技术支持服务。 一、操作系统 在这里我们要向大家推荐的操作系统是Nucleus,它是美国ATI公司的产品,是为实时嵌入式应用而设计的一个抢先式多任务操作系统。其95%的代码由ANSI C语言写成,因此结构性和可移植性非常好。Nucleus操作系统的设计采用了面向对象的方法,整个软件由多个功能明确的组件构成,因此结构清晰,便于裁减和复用。 Nucleus操作系统还拥有丰富的外围模块(如下图所示),如TCP/IP网络协议栈(包括各种应用层的协议)、多种风格的图形系统(Windows和Mac风格)、基于RAM/Flash存储器的文件系统、以及一个功能可定制的Internet浏览器。

如何正确的设计嵌入式软件架构应该这么做

如何正确的设计嵌入式软件架构应该这么做 一 错误的示范 近公司新招了一个做嵌入式软件开发的同事,该同事是从上海的某一个上市公司出来的,因为我们这边人手不够,因此把他安排了去负责一个新产品的研发,前期让他负责加速度计、NB-IOT、舵机、外置Flash的功能测试,测试完成之后,准备让他做一个该产品的概要设计。然后他花了2个星期的时间,给我们写出来一个概要设计,说实话,我看到这个概要设计,我就觉得是刚毕业的大学生写的。版本一的架构设计 2.1系统体系结构系统分为两层:硬件驱动层、应用层。2.1.1硬件驱动层硬件驱动层包含板载硬件资源正常运行所需的所有驱动程序。1)MCU初始化2)I2C数据存取3)SPI数据读取4)加速度计初始化5)蓝牙模块启动6)BC95模块启动7)485通讯模块启动2.2.2应用层1)Mcu运行模式切换2)震动及倾斜3)数据解析4)开/关锁5)数据发送6)历史数据保存 看到版本一的架构设计之后,说实话,我还是第一次见到这样来写架构设计的,居然是以序号来写的,这个让别人读起来,特别的别扭。版本二的架构设计 看到版本二的架构设计之后,虽然颇感欣慰,但是想到达到我们所要求的,还要很大的一段距离,该架构设计,主要有以下几点问题:1.对架构的理解还不是很清晰,既然是做架构设计,那就应该从整体来看,而不是仅仅只是局限于一个模块,或者功能里面。2.还是每个层次的理解也还不是很清晰,比如讲MCU的初始化,归于硬件驱动层里面。MCU 的初始化,严格意义上来说,是属于流程的一部分了,而不是驱动。比如电脑的开启启动,把这个归于硬件的驱动里面,肯定是属于牛头不对马嘴的。3.还有就是各个模块的启动,也是不能属于硬件驱动层的,也都是业务流程的一部分了,都不应该属于驱动层的一部分。 4.还有就是总线数据的读写,虽然驱动的作用也就是读写,但是数据总线的读写不能写成硬件驱动。 5.应用层的系统参数初始化,也还是属于流程。 6.数据的解析和数据的发生,都是属于通信功能里面的,不应该单独独立出来,属于单个的应用。

《嵌入式软件设计》答案

东北大学继续教育学院 嵌入式软件设计试卷(作业考核线上) B 卷学习中心:福建南平奥鹏学习中心院校学号:C03599011730067姓名王华仁 (共 5 页) 一、选择题(10小题,每题2分,共20分),请将答案填入下表。 1. 以下哪个不是嵌入式系统设计的主要目标? A. 低成本 B.低功耗 C. 实时要求高 D. 超高性能 2. 下面关于哈佛结构描述正确的是: A. 存储空间与IO空间分离 B. 程序存储空间与数据存储空间分离 C. 存储空间与IO空间合并 D. 程序存储空间与数据存储空间合并 3. 从层次结构来看,嵌入式系统包括: A. 硬件层 B. 板级支持包 C. 实时操作系统和应用软件 D. 以上都是 4. 下面哪一种工作模式不属于ARM异常模式? A. 快速中断模式 B. 管理模式 C. 系统模式 D. 数据访问中止模式 5. 处理器从存储器读数据的指令(加载指令)的助记符是: A. SWP B. SWPB C. LDR D. STR 6. 指令“ADD R2, R1, #10”的寻址方式为: A. 立即寻址 B. 寄存器间接寻址 C. 多寄存器寻址 D. 堆栈寻址

7. 单系统需要小量的高速缓存,最合适的存储器是: A. SRAM B. DRAM C. EEPROM D. Flash 8. AHB和VPB外设区域都是2MB,可各自分配最多()个外设。 A. 16 B. 32 C. 64 D. 128 9. 使用HOST-TARGET联合开发嵌入式系统,()不是必须的。 A. 目标系统 B. 宿主机 C. 银河麒麟操作系统 D. 交叉编译器 10. 操作系统结构不包括() A. 数据库 B. 引导系统 C. 内核 D. 根文件系统 二、判断题(10小题,每题1分,共10分),请将答案填入下表。 1. (√)嵌入式处理器的结构有哈佛结构和冯诺依曼结构之分。 2. (×)处于就绪状态的任务只能切换到运行状态。 3. (√)将模拟信号转换成数字信号的电路是DA转换器。 4. (√)在操作系统的设备管理中引入缓存,其主要目的是改善CPU和I/O设备间速度不匹 配的情况。 5. (√)ARM指令集具有高效、快速的特点,它是Thumb指令集的子集。 6. (×)Nand Flash比Nor Flash成本高,可靠性差。 7. (×)虚拟内存的主要用途是扩充存储容量。 8. (√)C语言程序可以嵌套加入汇编语言程序模块。 9. (√)操作系统中的存储管理室对内存中用户区进行管理。 10.(√)操作系统结构包括引导系统、内核和根文件系统

嵌入式软件开发流程

嵌入式软件的开发流程 嵌入式系统是指用于执行独立功能的专用计算机系统。它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统以应用为中心,以微电子技术、控制技术、计算机技术和通讯技术为基础,强调硬件软件的协同性与整合性,软件与硬件可剪裁,以此满足系统对功能、成本、体积和功耗等要求。最简单的嵌入式系统仅有执行单一功能的控制能力,比如说单片机的应用,在唯一的ROM 中仅有实现单一功能控制程序,无微型操作系统。复杂的嵌入式系统,例如个人数字助理(PDA)、手持电脑(HPC)等,具有与PC几乎一样的功能。实质上与PC的区别仅仅是将微型操作系统与应用软件嵌入在ROM、RAM 和/或FLASH存储器中,而不是存贮于磁盘等载体中。很多复杂的嵌入式系统又是由若干个小型嵌入式系统组成的。 近些年来,随着以计算机技术,通讯技术为主的信息技术的快速发展和Internet 的广泛应用,传统的控制学科正在发生变革,出现了许多新的生长点。伴随而来的一个现象是控制专业的相当多的学生在毕业后进入了计算机,通讯行业,以致有人说学控制没有用,自动化专业可以取消了。这些情况的出现使我们控制教育工作者反复思考,传统的控制应如何拓宽它的领域?控制专业应该教什么才使学生感到有用?流行的嵌入式操作系统可以分为两类:一类是从运行在个人电脑上的操作系统向下移植到嵌入式系统中,形成的嵌入式操作系统,如微软公司的Windows CE及其新版本,SUN公司的Java操作系统,朗讯科技公司的Inferno,嵌入式Linux等。这类系统经过个人电脑或高性能计算机等产品的长期运行考验,技术日趋成熟,其相关的标准和软件开发方式已被用户普遍接受,同时积累了丰富的开发工具和应用软件资源。 另一类是实时操作系统,如WindRiver 公司的VxWorks,ISI 的pSOS,QNX系统软件公司的QNX,ATI 的Nucleus,中国科学院凯思集团的Hopen嵌入式操作系统等,这类产品在操作系统的结构和实现上都针对所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立而完备的系统开发和测试工具,较多地应用在军用产品和工业控制等领域中。Linux 是90年代以来逐渐成熟的一个开放源代码的操作系统。PC机上的Linux 版本在全球数以百万计爱好者的合力开发下,得到了非常迅速的发展。90 年代末uClinux,RTLinux 等相继推出,在嵌入式领域得到了广泛的关注,它拥有大批的程序员和现成的应用程序,是研究开发工作的宝贵资源。 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。

软件设计说明书嵌入式软件范例

软件设计说明书嵌入式 软件范例 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

一、XXXXX-XXX 热压机自动控制系统软件的设计 LCD—液晶显示器,因其具有微功耗、平板化等一系列显着特点而广泛应用于仪器仪表、计算机显示终端、各类电子显示装置等各个方面。LCD的后工序生产工艺包括COG、COF、FOG、FOB,XXX-XXX 热压机正是为FOG段工艺而开发设计的。 XXXXX-XXX热压机自动控制动系统软件(以下简称XXX系统)是由PLC、气动元件和电动元件组成,其特点是通过传感器采集外部信号,输入到PLC内部进行计算处理,以控制外部执行元件,使之完成一系统的机构动作,达到生产所需的工艺要求。 ㈠ XXX 系统的性能和结构 XXX 系统主要由PLC、GOT(触摸屏)、伺服电机、气缸电磁阀、电磁继电器、光电传感器、磁性传感器、温度处理器、温度传感器以及各种按钮组成。 1、XXX 系统的主要性能和技术参数 ●主机电源:Vac-----220VAC/50HZ ●传感器电源:Vdd-----+24V ● PLC接口:40位输入、32位输出、1个RS232通信串口 ●工作温度:-10℃~+55℃ ●存储温度:-20℃~+60℃ 2、XXX 系统的内部地址 XXX 系统的内部地址及主要功能部件: ●输入继电器— X ●输出继电器— Y ●辅助继电器— M ●定时器— T ●计数器— C ●数据寄存器— D ●变址寄存器— Z

3、XXX 系统的外部引线功能定义 XXX 系统共有82根引脚,具体定义如下:

㈡指令描述 XXX 系统主要有如下指令:

嵌入式软件开发的几点个人理解

嵌入式软件开发的几点个人理解 一、软件的概念 软件,是一系列按照特定顺序组织的计算机数据和指令的集合。我们日常生活中接触最多的软件大概要算应用软件了。在21世纪的今天,电脑、手机等智能设备进入千家万户,基本上每个现代化的家庭中或多或少拥有一台电脑或一部手机,我们每天都用着电脑或者手机中的应用软件享受着科技带给这个世界的便利。然而软件的概念却并不只是在这些应用软件中,一般来讲,软件被划分为编程语言、系统软件、应用软件,其中系统软件包括操作系统和支撑软件。另外,软件并仅包括可以在广义计算机上运行的电脑程序,还包括与这些电脑程序相关的文档。学术界将软件定义为程序加文档的集合体,确实非常贴切。 对于软件和硬件,这两者之间从来是相互依存,相得益彰的。硬件是实在的,有模有样的。软件是程序性的,是一系列的指令。个人认为,我们其实可以将人的身体与灵魂分别比作硬件和软件,软件的存在必须依附于硬件才能体现软件的价值;而硬件因为有了软件的存在,才具备了更加丰富的功能。 二、软件开发中的编程语言 软件的编程语言有多种、常见的编程语言有Pascal、Python、Ruby、Java、C、C++、C#、Basic、PHP等。这些编程语言各有特点,其中进行嵌入式系统开发常用的语言有C、C++、Java 等语言。 2.1、C语言 C语言是介于汇编语言和高级语言之间的语言,属于高级语言,也称为中级语言,是集汇编和高级语言优点于一身的程序设计语言。于1972年在美国贝尔实验室里问世,早期的C语言主要用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了九十年代,C语言开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到广泛的应用,成为当代最优秀的程序设计语言之一。 C语言的特点: 1)是一种结构化语言,层次清晰,便于按模块化方式组织程序,易于调试和维护。 2)C语言的表现能力和处理能力极强,不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位级别的操作。

SWE-D10-02软件详细设计报告(嵌入式)

软件详细设计报告 (嵌入式) V0.9 项目号: 项目名称: 编制: 日期:

修订页

目录 1.概述 (4) 1.1.本文档的目的 (4) 1.2.单板软件概述 (4) 2.功能描述 (4) 2.1.软件功能说明 (4) 2.2.软件功能框图 (4) 3.开关、跳线、指示灯说明 (4) 3.1.开关跳线 (4) 3.2.指示灯 (4) 4.编译说明 (4) 4.1.固化文件的生成 (4) 4.2.物理软件的烧制 (5) 5.数据结构 (5) 5.1.常量定义 (5) 5.2.全局变量定义 (5) 5.3.全局结构定义 (5) 6.程序流程 (5) 6.1.模块1 (5) 6.2.模块2 (7) 7.需求跟踪 (7) 7.1.系统功能需求实现 (8) 7.2.系统性能需求实现 (8) 7.3.系统其他需求实现 (8) 8.源文件列表 (8) 9.其它 (8)

关键词:能够体现文档描述内容主要方面的词汇。 摘要: 缩略语清单: 对本文所用缩略语进行说明,要求提供每个缩略语的英文全名和中文解释。 1.概述 1.1.本文档的目的 说明本文档的编写的目的,包含的内容,适合的软件版本。如为升级文档还要说明升级的原因,主要增加了哪些功能,解决了哪些问题。 1.2.单板软件概述 简要说明单板软件所属的产品名称,承载软件的单板在整个产品中的位置、作用、和其它单板的关系。说明该单板软件所属的成品板及能够兼容的所有制成板。 2.功能描述 2.1.软件功能说明 这里是对单板软件概要设计功能描述的细化,功能说明应严格与概要设计功能描述一致,保持需求与设计的一致性。 2.2.软件功能框图 根据以上外部功能,采用图形方式详细说明单板软件采用何种功能结构完成这些功能。 3.开关、跳线、指示灯说明 3.1.开关跳线 说明所有可由程序读取其状态的拨码开关、跳线、键盘等分别代表的功能和CPU读取其状态的方式。如有可能也请列出不受程序控制的拨码开关、跳线、键盘等分别代表的含义。 3.2.指示灯 说明所有受程序控制和不受程序控制的指示灯所代表的信息,以及指示灯与CPU的连接方式,受控和不受控的原因。详细描述各指示灯显示规则。 4.编译说明 4.1.固化文件的生成

嵌入式软件开发流程

嵌入式软件开发流程

————————————————————————————————作者:————————————————————————————————日期:

嵌入式软件开发流程 一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌入式系统的开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程图如图1.1所示。 图1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬件和软件都可以实现的功能,就需要在成本和性能上做出抉择。往往通过硬件实现会增加产品的成本,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌入式操作系统的选择以及开发工具的选择等。比如,对开发成本和进度限制较大的产品可以选择嵌入式Linux,对实时性要求非常高的产品可以选择Vxworks等。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图4.15中“软件设计实现”部分所示,它同通用计算机软件开发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多,为了更好地帮助读者选择开发工具,下面首先对嵌入式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择IBM的Rational Rose等软件,而在程序开发阶段可以采用CodeWarrior(下面要介绍的ADS 的一个工具)等,在调试阶段所用的Multi-ICE等。同时,不同的嵌入式操作系统往往会有配套的开发工具,比如Vxworks有集成开发环境Tornado,WindowsCE的集成开发环境WindowsCE Platform等。此外,不同的处理器可能还有对应的开发工具,比如ARM的常用集成开发工具ADS、IAR和RealView等。在这里,大多数软件都有比较高的使用费用,但也可以大大加快产品的开发进度,用户可以根据需求自行选择。图4.16是嵌入式开发的不同阶段的常用软件。 图1.2 嵌入式开发不同阶段的常用软件 嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分,其中又可以分为编译和调试两部分,下面分别对这两部分进行讲解。 1.交叉编译 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。在第3章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的CPU所能识别的机器代码,由于不同的体系结构有不同的指令系统。因此,不同的CPU需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同CPU的对应可执行二进制文件。要注意的是,编译器本身也是程序,也要在与之对应的某一个CPU平台上运行。嵌入式系统交叉编译环境如图4.17所示。

嵌入式软件开发流程

嵌入式软件开发流程
一、嵌入式软件开发流程 1.1 嵌入式系统开发概述 由嵌入式系统本身的特性所影响,嵌入式系统开发与通用系统的开发有很大的区别。嵌 入式系统的开发主要分为系统总体开发、 嵌入式硬件开发和嵌入式软件开发 3 大部分, 其总 体流程图如图 1.1 所示。
图 1.1 嵌入式系统开发流程图 在系统总体开发中,由于嵌入式系统与硬件依赖非常紧密,往往某些需求只能通过特定 的硬件才能实现,因此需要进行处理器选型,以更好地满足产品的需求。另外,对于有些硬 件和软件都可以实现的功能, 就需要在成本和性能上做出抉择。 往往通过硬件实现会增加产 品的成品,但能大大提高产品的性能和可靠性。 再次,开发环境的选择对于嵌入式系统的开发也有很大的影响。这里的开发环境包括嵌 入式操作系统的选择以及开发工具的选择等。 本书在 4.1.5 节对各种不同的嵌入式操作系统 进行了比较,读者可以以此为依据进行相关的选择。比如,对开发成本和进度限制较大的产 品可以选择嵌入式 Linux,对实时性要求非常高的产品可以选择 Vxworks 等。 由于本书主要讨论嵌入式软件的应用开发,因此对硬件开发不做详细讲解,而主要讨论 嵌入式软件开发的流程。

1.2 嵌入式软件开发概述 嵌入式软件开发总体流程为图 4.15 中“软件设计实现”部分所示, 它同通用计算机软件开 发一样,分为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。其中嵌入式 软件需求分析与硬件的需求分析合二为一,故没有分开画出。 由于在嵌入式软件开发的工具非常多, 为了更好地帮助读者选择开发工具, 下面首先对嵌入 式软件开发过程中所使用的工具做一简单归纳。 嵌入式软件的开发工具根据不同的开发过程而划分,比如在需求分析阶段,可以选择 IBM 的 Rational Rose 等软件, 而在程序开发阶段可以采用 CodeWarrior 下面要介绍的 ADS ( 的一个工具)等,在调试阶段所用的 Multi-ICE 等。同时,不同的嵌入式操作系统往往会有 配套的开发工具,比如 Vxworks 有集成开发环境 Tornado,WindowsCE 的集成开发环境 WindowsCE Platform 等。此外,不同的处理器可能还有对应的开发工具,比如 ARM 的常用 集成开发工具 ADS、IAR 和 RealView 等。在这里,大多数软件都有比较高的使用费用,但 也可以大大加快产品的开发进度,用户可以根据需求自行选择。图 4.16 是嵌入式开发的不 同阶段的常用软件。
图 1.2 嵌入式开发不同阶段的常用软件
嵌入式系统的软件开发与通常软件开发的区别主要在于软件实现部分, 其中又可以分为编译和调试两 部分,下面分别对这两部分进行讲解。 1.交叉编译 . 嵌入式软件开发所采用的编译为交叉编译。所谓交叉编译就是在一个平台上生成可以在另一个平台上 执行的代码。在第 3 章中已经提到,编译的最主要的工作就在将程序转化成运行该程序的 CPU 所能识别的 机器代码,由于不同的体系结构有不同的指令系统。因此,不同的 CPU 需要有相应的编译器,而交叉编译 就如同翻译一样,把相同的程序代码翻译成不同 CPU 的对应可执行二进制文件。要注意的是,编译器本身 也是程序,也要在与之对应的某一个 CPU 平台上运行。嵌入式系统交叉编译环境如图 4.17 所示。

相关主题
文本预览
相关文档 最新文档