OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2260|回复: 0

嵌入式应用选择正确的系统设计方法:第二部分

[复制链接]

42

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2020-4-23
在线时间
22 小时
发表于 2020-6-10 15:29:49 | 显示全部楼层 |阅读模式
        在设计嵌入式系统之前,我们需要知道我们在设计什么。在这种情况下,术语“要求”和“规范”以多种方式使用-有些人将它们用作同义词,而另一些人将它们用作不同的阶段。它们在这里用来表示设计过程中相关但截然不同的步骤。
        需求 是对客户需求的非正式描述,你而规格 则是可用于创建体系结构的系统的更详细,精确和一致的描述。但是,要求和规范都针对系统的外部行为,而不是其内部结构。
        创建需求文档的总体目标是客户与设计人员之间的有效沟通。设计师应该知道他们期望为客户设计什么;客户,无论是事先知道的还是由营销代表的,都应该了解他们会得到什么。
        我们有两种类型的需求:功能需求和非功能需求。功能需求说明了系统必须执行的操作,例如计算FFT。非功能性需求可以是许多其他属性,包括物理尺寸,成本,功耗,设计时间,可靠性等。一组好的要求应该满足几个测试:
        正确性: 需求不应错误地描述客户的需求。正确性的一部分是避免过度需求-需求不应添加不必要的条件。
        明确性: 需求文档应清晰且仅具有一种简单的语言解释。
        完整性: 应包括所有要求。
        可验证性: 应该有一种经济有效的方法来确保最终产品中的每个要求都得到满足。例如,如果没有就吸引力的定义达成一致,就很难验证系统软件包“有吸引力”的要求。
        一致性: 一个要求不应与另一个要求相矛盾。
        可修改性: 应该对需求文档进行结构化,以便可以对其进行修改以满足不断变化的需求,而又不会失去一致性,可验证性等。
        可追溯性: 每个需求应通过以下方式可追溯:
        1)我们应该能够从需求追溯到知道为什么每个需求存在的原因。
        2)我们还应该能够追溯需求之前创建的文档(例如,市场备忘录),以了解它们与最终需求的关系。
        3)我们应该能够向前了解如何在实施中满足每个要求。
        4)我们还应该能够从实现中追溯,以了解他们打算满足哪些要求。
        您如何确定需求?如果该产品是一系列产品的延续,那么许多要求都是众所周知的。但是,即使是最适度的升级,与客户交谈也是很有价值的。在大型公司中,营销或销售部门可能会执行大部分询问客户需求的工作,但是数量惊人的公司却让设计师直接与客户对话。
        直接的客户联系为设计人员提供了客户所说的未经过滤的样本。它还有助于建立与客户的同理心,这通常会在更干净,更易于使用的客户界面中得到回报。与客户交谈还可能包括进行调查,组织焦点小组或要求选定的客户测试模型或原型。
        开发更正式的系统规范
        嵌入式开发工程师可以使用许多先进的技术来制定正式的系统规范。它们分为两大类:(1) 嵌入式开发工程师熟悉的面向控制的规范语言,例如SDL语言,状态图和AND / OR表;和(2) 的高级系统规范的方法,如那些在安全关键系统设计中使用。
        通信行业开发了一种用于指定通信协议,电话系统等的状态机规范语言,即用于在UML中指定控件的SDL语言。
        如在示出的下面的图9.6,SDL规格包括状态,动作,和状态之间既有条件和无条件转移。由于状态之间的转换是由内部和外部事件引起的,所以SDL是面向事件的状态机模型。
       
        图9.6:SDL规范语言
        可以使用其他技术来消除混乱并阐明基于状态的规范的重要结构。该状态图 是用于基于状态的说明书中一个众所周知的技术,该技术引入了一些重要的概念。
        Statechart表示法使用事件驱动模型。状态图允许将状态分组在一起以显示通用功能。有两个基本分组:OR和AND。下面的图9.7 通过比较传统的状态转换图和通过OR状态描述的Statechart来显示OR状态的示例。
       
        图9.7:Statecharts中的OR状态。
        状态机指定当它们接收到输入i2时,它们会从s1,s2 或s3中的任何一个进入状态s4 。Statechart通过在s1,s2 和s3周围绘制OR状态来表示这种共性(OR状态 的名称在该状态顶部的小框中给出)。
        出OR状态的单个过渡S123 指定对机器进入状态S4 ,当它接收到I2 的输入,而在包含在任何状态S123 .the或状态仍然允许其成员状态之间有趣的过渡。进入s123的方式有多种 (通过s1或s2),或者 在OR状态内的状态之间可能存在转换(例如从s1 到s3 或s2 到s3).OR状态只是用于指定一些与这些状态有关的转换。
        下面的图9.8 显示了用Statechart表示法指定的AND状态与传统状态机模型中的等效状态相比的示例。在传统模型中,状态之间存在许多转换。在该状态集群中也有一个入口点,在该集群之外有一个出口过渡点。
       
        图9.8:状态图中的AND状态
        在Statechart中,AND状态sab 分解为两个部分sa 和sb。 当机器进入“与”状态时,它同时驻留在 组件sa的状态s1 和 组件sb的状态s3中。我们可以认为系统的状态是多维的。当它进入sab时,要了解机器的完整状态,需要检查sa 和sb。
        传统状态机中的状态名称揭示了它们与AND状态组件的关系。因此,状态s1-3 对应于状态图机器,其sa 分量在s1中 ,而sb 分量在s3中,依此类推。 只有在传统规范中,我们处于状态s2-4 并接收输入r时,我们才能退出此状态集群以进入状态s5。
实用项目推荐:
基于STM32-WiFi智能小车机器人开发实战
http://www.makeru.com.cn/course/details/3008?s=136257
小米体重秤技术开发解析
http://www.makeru.com.cn/course/details/2997?s=136257
四轴飞行器开发技术解析
http://www.makeru.com.cn/course/details/2986?s=136257
智能交通沙盘
http://www.makeru.com.cn/course/details/2963?s=136257
学习嵌入式技术也挺孤独的这是我个人的群828140021我希望和有识之士我们一同进步一同学习。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-13 19:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表