资料介绍
随着嵌入式系统不断普及,我们可以从积累的开发知识中获得巨大优势,构建更出色的系统。E工程师一刻也没忘记交付达到质量、时间安排和预算目标的项目的需求。您可以借鉴嵌入式系统开发人员社区多年来累计的经验教训,确保您下一个嵌入式系统项目达成这些目标。下面我们来了解一些为嵌入式开发带来了最佳实践的重要经验。
系统地思考
系统工程是一个广泛的专业领域,覆盖从航空母舰及卫星到实现其性能的嵌入式系统的所有开发工作。我们可以运用系统工程方法管理从概念到使用周期结束处置的嵌入式系统工程生命周期。系统工程方案的第一阶段跟常人想象的不一样,,不是确立系统需求,而是制定系统工程管理规划。这一规划不仅将为系统定义工程生命周期以及开发团队将要开展的设计评审,而且还将定义这些评审的预期输入输出。该规划可根据工程事件的次序和每个阶段的先决条件,为项目管理、工程和客户群体做出明确的定义。简而言之,它可展示预期和可交付项。在清楚理解工程生命周期的情况下,系统思考的下一步是确立正在开发嵌入式系统的需求。良好的需求集应覆盖三个方面。功能需求定义嵌入式系统如何开展工作。非功能需求定义法规遵从与可靠性等方面的问题。环境需求定义工作温度和冲击与振动以及电气环境(例如 EMI 和 EMC)等方面的需求。在较大规模的开发工作中,这些需求将从较高层次的规范向下延伸并且可跟踪,比如系统或子系统规范(图 1)。如果没有较高层次的规范,我们必须在开发过程中接触利益相关方,确立一套明确的利益相关方需求,然后将其用于确立嵌入式系统需求。
生成一个良好的需求集,需要我们充分思考每一个需求,才能确保其符合这些标准:
1. 它是必要的。没有需求,我们的项目就不会取得成功。
2. 它是可验证的。我们必须确保该需求能通过检验、测试、分析或演示实现。
3. 它是可实现的。在给定的约束条件下,该需求在技术层面上是可以实现的。
4. 它是可追踪的。该需求能够从较低层次的需求进行追踪,而且可追踪较高层次的需求。
5. 它是唯一的。这项标准可防止需求之间的界限不清。
6. 它是简单清晰的。每条需求指定一项功能。
为体现意图,在定义需求时还常常使用特定语言。一般我们对强制性要求使用“必须”,对非强制性要求使用“应该”。非强制性要求可让我们表达必要的系统属性。
在我们确立了我们的需求底线后,最佳实践就是创建一个合规矩阵,说明符合每项需求。我们还可以通过为每项需求分配一种验证方法开始确立我们的验证策略。这些方法一般是测试、分析、检验、演示和交叉读取。根据合规及验证矩阵创建需求能让我们:
• 清晰地了解系统行为。
• 向内部测试团队和外部客户都演示验证方法。这不仅可在开发过程的早期阶段发现任何困难的测试方法,而且还可帮助我们确定所需的资源。
• 确定技术性能指标。这些指标来自合规矩阵,由存在无法合规的风险的各种需求构成。
分配工程预算
每个工程项目都涵盖一定数量的预算,我们应将其分配给在架构中识别的解决方案。预算分配不仅可确保项目实现整体需求,而且还可确保每个模块的设计牵头人理解模块的分配,以创建适当的解决方案。我们分配预算的典型领域有功能的总质量、功能的总功耗、用平均故障间隔时间或成功概率定义的可靠性以及设计中信号类型间的正当串扰(一般是一套适用于大量功能的通用规则集)。确立工程预算最重要的方面之一是确保我们有足够的应急分配。但我们必须战胜应急再加应急的想法,因为这会成为影响时间安排和成本的严重技术问题。
管理技术风险
从合规矩阵及工程预算的生成看,我们应该能够识别在技术上有难度的需求。每一个为在我们架构中使用的每项技术分配一个技术就绪指数,再结合合规矩阵,可帮助我们确定技术风险的所在位置。
这类有风险的需求都应该有明确的规避计划,其将说明我们将如何实现这一需求。展示这一点的最佳途径之一是使用技术就绪指数 (TRL)。TRL 有 9 级,从所观察到的基本原理 (TRL1) 到完整功能与实地部署 (TRL9) 描述设计成熟度级数。把 TRL 分配给我们架构中使用的每一项技术,再结合合规矩阵,可帮助我们确定技术风险的所在位置。我们随后可启动一个 TRL 开发规划,确保在项目不断推进时,低 TRL 领域会提升到所需的 TRL 水平。该规划涉及的内容可确保我们在项目推进时实现和测试正确的功能,或是在项目推进的过程中执行功能或环境/动态测试。
该架构不应仅限于硬件(电气)解决方案,还应包含 FPGA/SoC 及相关软件的架构。
创建架构
理解嵌入式系统要求的行为后,我们就需要为解决方案创建一个架构。该架构将由分组成功能块的需求构成。例如,如果嵌入式系统必须处理模拟输入或输出,架构就将包含模拟 I/O 模块。其它模块可能会更加明显,比如电源调节、时钟和复位生成。
该架构不应仅限于硬件(电气)解决方案,还应包含 FPGA/SoC 及相关软件的架构。当然,模块化设计的关键是针对模块及功能行为的良好接口文档编制。
该架构的一个关键方面是展现如何在高层次上创建系统,这样工程团队就能轻松理解其实现方式。该步骤也是在系统运行生命周期中为系统提供支持的关键。
在确定我们的架构时,我们需要考虑模块化方法,这样不仅能在当前项目上进行复用,而且还能在未来的项目上进行复用。模块化要求我们从第一天起就考虑可能的复用,并要求我们把每个模块存档为一个独立的单元。就内部 FPGA/SoC 模块而言,像 ARM® AMBA® 高级可扩展接口 (AXI) 这样的通用接口标准有助于实现复用。
模块化设计的一个重大优势就是能够针对某些需求使用商用现成的模块。商用现成(COTS)模块让我们能够以更快的速度开发系统,因为借助 COTS,我们能够把我们的工作重点放在项目从我们的专业能力产生的增值中获益最大的部分上。
系统电源架构是一个需要缜密思考的的设计方面。许多嵌入式系统会要求隔离 AC/DC 或 DC/DC 转换器来确保嵌入式系统的故障不会扩散。图 2 显示的是电源架构的示例。来自该模块的输出轨需要二级调整来为处理内核和转换装置提供电压。我们必须仔细防范这些阶段发生严重的开关损耗和效率下降。因为效率降低意味着系统热耗散增大,如果不正确解决就会影响单元的可靠性。
我们必须仔细了解使用的线性调整器的行为以及在电源线上进行进一步滤波的要求。这一要求的原因是 FPGA 和处理器等器件的开关频率远远高于线性调整器的控制环路所能应对的水平。随着噪声频率提高,线性调整器的噪声抑制能力下降,导致需要采用额外的滤波和去藕技术。如果不了解这一关系,会造成混合信号设备出现问题。
另一个重要的考虑因素是时钟和复位架构,尤其是在有多个需要同步的开发板的情况下。在架构层面我们必须考虑时钟分配网络:我们是否在跨多个开发板扇出单个振荡器,或是使用多个频率相同的振荡器?为确保时钟分配的稳健可靠性,我们必须考虑:
• 振荡器启动时间。我们必须确保在整个时间周期内激活复位(如果需要)。
• 振荡器歪斜。如果我们要在跨多个开发板扇出振荡器,时序是否至关重要?如果是,我们需要考虑线路卡上的歪斜(连接器引起的)和缓冲器自身引起的歪斜。
振荡器抖动。如果我们在开发混合信号设计,我们需要确保使用低抖动时钟源,因为抖动的增大会降低混合信号转换器的信噪比。在我们使用千兆位级串行链路时情况也是一样,因为我们需要使用低抖动时钟源在链路上取得良好的误码率。
我们也必须注意复位架构,确保只在需要的地方使用复位。例如基于 SRAM 的 FPGA 一般不需要复位。
如果我们在使用复位的异步激活,我们需要确保移除它不会导致亚稳态问题。
系统地思考
系统工程是一个广泛的专业领域,覆盖从航空母舰及卫星到实现其性能的嵌入式系统的所有开发工作。我们可以运用系统工程方法管理从概念到使用周期结束处置的嵌入式系统工程生命周期。系统工程方案的第一阶段跟常人想象的不一样,,不是确立系统需求,而是制定系统工程管理规划。这一规划不仅将为系统定义工程生命周期以及开发团队将要开展的设计评审,而且还将定义这些评审的预期输入输出。该规划可根据工程事件的次序和每个阶段的先决条件,为项目管理、工程和客户群体做出明确的定义。简而言之,它可展示预期和可交付项。在清楚理解工程生命周期的情况下,系统思考的下一步是确立正在开发嵌入式系统的需求。良好的需求集应覆盖三个方面。功能需求定义嵌入式系统如何开展工作。非功能需求定义法规遵从与可靠性等方面的问题。环境需求定义工作温度和冲击与振动以及电气环境(例如 EMI 和 EMC)等方面的需求。在较大规模的开发工作中,这些需求将从较高层次的规范向下延伸并且可跟踪,比如系统或子系统规范(图 1)。如果没有较高层次的规范,我们必须在开发过程中接触利益相关方,确立一套明确的利益相关方需求,然后将其用于确立嵌入式系统需求。
生成一个良好的需求集,需要我们充分思考每一个需求,才能确保其符合这些标准:
1. 它是必要的。没有需求,我们的项目就不会取得成功。
2. 它是可验证的。我们必须确保该需求能通过检验、测试、分析或演示实现。
3. 它是可实现的。在给定的约束条件下,该需求在技术层面上是可以实现的。
4. 它是可追踪的。该需求能够从较低层次的需求进行追踪,而且可追踪较高层次的需求。
5. 它是唯一的。这项标准可防止需求之间的界限不清。
6. 它是简单清晰的。每条需求指定一项功能。
为体现意图,在定义需求时还常常使用特定语言。一般我们对强制性要求使用“必须”,对非强制性要求使用“应该”。非强制性要求可让我们表达必要的系统属性。
在我们确立了我们的需求底线后,最佳实践就是创建一个合规矩阵,说明符合每项需求。我们还可以通过为每项需求分配一种验证方法开始确立我们的验证策略。这些方法一般是测试、分析、检验、演示和交叉读取。根据合规及验证矩阵创建需求能让我们:
• 清晰地了解系统行为。
• 向内部测试团队和外部客户都演示验证方法。这不仅可在开发过程的早期阶段发现任何困难的测试方法,而且还可帮助我们确定所需的资源。
• 确定技术性能指标。这些指标来自合规矩阵,由存在无法合规的风险的各种需求构成。
分配工程预算
每个工程项目都涵盖一定数量的预算,我们应将其分配给在架构中识别的解决方案。预算分配不仅可确保项目实现整体需求,而且还可确保每个模块的设计牵头人理解模块的分配,以创建适当的解决方案。我们分配预算的典型领域有功能的总质量、功能的总功耗、用平均故障间隔时间或成功概率定义的可靠性以及设计中信号类型间的正当串扰(一般是一套适用于大量功能的通用规则集)。确立工程预算最重要的方面之一是确保我们有足够的应急分配。但我们必须战胜应急再加应急的想法,因为这会成为影响时间安排和成本的严重技术问题。
管理技术风险
从合规矩阵及工程预算的生成看,我们应该能够识别在技术上有难度的需求。每一个为在我们架构中使用的每项技术分配一个技术就绪指数,再结合合规矩阵,可帮助我们确定技术风险的所在位置。
这类有风险的需求都应该有明确的规避计划,其将说明我们将如何实现这一需求。展示这一点的最佳途径之一是使用技术就绪指数 (TRL)。TRL 有 9 级,从所观察到的基本原理 (TRL1) 到完整功能与实地部署 (TRL9) 描述设计成熟度级数。把 TRL 分配给我们架构中使用的每一项技术,再结合合规矩阵,可帮助我们确定技术风险的所在位置。我们随后可启动一个 TRL 开发规划,确保在项目不断推进时,低 TRL 领域会提升到所需的 TRL 水平。该规划涉及的内容可确保我们在项目推进时实现和测试正确的功能,或是在项目推进的过程中执行功能或环境/动态测试。
该架构不应仅限于硬件(电气)解决方案,还应包含 FPGA/SoC 及相关软件的架构。
创建架构
理解嵌入式系统要求的行为后,我们就需要为解决方案创建一个架构。该架构将由分组成功能块的需求构成。例如,如果嵌入式系统必须处理模拟输入或输出,架构就将包含模拟 I/O 模块。其它模块可能会更加明显,比如电源调节、时钟和复位生成。
该架构不应仅限于硬件(电气)解决方案,还应包含 FPGA/SoC 及相关软件的架构。当然,模块化设计的关键是针对模块及功能行为的良好接口文档编制。
该架构的一个关键方面是展现如何在高层次上创建系统,这样工程团队就能轻松理解其实现方式。该步骤也是在系统运行生命周期中为系统提供支持的关键。
在确定我们的架构时,我们需要考虑模块化方法,这样不仅能在当前项目上进行复用,而且还能在未来的项目上进行复用。模块化要求我们从第一天起就考虑可能的复用,并要求我们把每个模块存档为一个独立的单元。就内部 FPGA/SoC 模块而言,像 ARM® AMBA® 高级可扩展接口 (AXI) 这样的通用接口标准有助于实现复用。
模块化设计的一个重大优势就是能够针对某些需求使用商用现成的模块。商用现成(COTS)模块让我们能够以更快的速度开发系统,因为借助 COTS,我们能够把我们的工作重点放在项目从我们的专业能力产生的增值中获益最大的部分上。
系统电源架构是一个需要缜密思考的的设计方面。许多嵌入式系统会要求隔离 AC/DC 或 DC/DC 转换器来确保嵌入式系统的故障不会扩散。图 2 显示的是电源架构的示例。来自该模块的输出轨需要二级调整来为处理内核和转换装置提供电压。我们必须仔细防范这些阶段发生严重的开关损耗和效率下降。因为效率降低意味着系统热耗散增大,如果不正确解决就会影响单元的可靠性。
我们必须仔细了解使用的线性调整器的行为以及在电源线上进行进一步滤波的要求。这一要求的原因是 FPGA 和处理器等器件的开关频率远远高于线性调整器的控制环路所能应对的水平。随着噪声频率提高,线性调整器的噪声抑制能力下降,导致需要采用额外的滤波和去藕技术。如果不了解这一关系,会造成混合信号设备出现问题。
另一个重要的考虑因素是时钟和复位架构,尤其是在有多个需要同步的开发板的情况下。在架构层面我们必须考虑时钟分配网络:我们是否在跨多个开发板扇出单个振荡器,或是使用多个频率相同的振荡器?为确保时钟分配的稳健可靠性,我们必须考虑:
• 振荡器启动时间。我们必须确保在整个时间周期内激活复位(如果需要)。
• 振荡器歪斜。如果我们要在跨多个开发板扇出振荡器,时序是否至关重要?如果是,我们需要考虑线路卡上的歪斜(连接器引起的)和缓冲器自身引起的歪斜。
振荡器抖动。如果我们在开发混合信号设计,我们需要确保使用低抖动时钟源,因为抖动的增大会降低混合信号转换器的信噪比。在我们使用千兆位级串行链路时情况也是一样,因为我们需要使用低抖动时钟源在链路上取得良好的误码率。
我们也必须注意复位架构,确保只在需要的地方使用复位。例如基于 SRAM 的 FPGA 一般不需要复位。
如果我们在使用复位的异步激活,我们需要确保移除它不会导致亚稳态问题。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 嵌入式系统系列丛书-时间触发嵌入式系统设计模式 0次下载
- 嵌入式系统定义
- VivadoHLS嵌入式实时图像处理系统的构建与实现优先出版 0次下载
- 嵌入式系统与嵌入式PLC
- 嵌入式操作系统的介绍和嵌入式操作系统的发展状况和应用前景说明
- 基于DaVinci平台和嵌入式Linux系统构建图形桌面环境详细中文资料 13次下载
- TI的嵌入式分析技术使设备更加智能 9次下载
- 安全嵌入式的操作系统的构建与配置 10次下载
- 嵌入式的系统构建 37次下载
- 嵌入式MostaVistaLinux操作系统的BusyBox构建 0次下载
- 嵌入式系统的构建 11次下载
- 嵌入式系统Windows CENET的系统分析 0次下载
- 嵌入式系统的构建教程
- 嵌入式系统的构建
- 嵌入式系统关键技术分析与开发应用
- 什么是嵌入式系统?嵌入式系统的具体应用 2096次阅读
- 嵌入式系统的全面解析 3146次阅读
- 如何实现嵌入式系统远程调试 5077次阅读
- 关于嵌入式系统以及嵌入式平台下的学科分工详解 1855次阅读
- 构建eCos嵌入式系统的步骤教程 3823次阅读
- 关于嵌入式系统8大关键特性详解 1059次阅读
- 嵌入式系统的特点大汇总 5743次阅读
- 嵌入式系统有哪些部分组成_嵌入式系统的应用领域 3.3w次阅读
- 嵌入式行业发展状况_嵌入式行业人才需求_嵌入式系统就业前景分析 2.3w次阅读
- 什么是嵌入式操作系统 常见的嵌入式系统有哪些 4w次阅读
- 嵌入式开发就业前景分析_嵌入式领域的职业发展方向 1.8w次阅读
- 基于XC2VP30的双核处理器嵌入式系统的构建与实现 1590次阅读
- 嵌入式视觉系统的构建模块 1567次阅读
- 技术分析:典型的嵌入式系统设计 2645次阅读
- 典型的嵌入式系统设计 2650次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多