An overview of embedded system development methods

Time:2023-05-24 Reading times:1567

随着科技的发展,嵌入式系统在我们的生活中得到了广泛的应用。从传统的家电主控模块、投影仪、路由器、手机等等,发展到目前的无人机、智能家居、扫地机器人、智能手表、健康手环等等。除了生活消费方面,汽车、工业、医疗器械甚至智慧城市等都各类嵌入式系统的应用。

嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。

与嵌入式系统相对应的,则是通用计算机系统,如个人电脑、工控机、服务器等。通用计算机系统不针对特定应用需求,而是可以运行各种软件和程序,具有极高的通用性和扩展性。可以通过下表的对比,来提高对嵌入式系统的理解。

嵌入式系统的设计方案会随应用领域千差万别,但其分析和设计方法也遵循一般原则,许多成熟的分析和设计方法都可以使用。嵌入式系统开发的步骤一般可分为需求分析、系统设计、硬件设计、软件设计、系统集成、测试和维护。

一、需求分析

需求分析阶段的主要任务是:

1.问题的识别和分析

对目标应用相关的问题进行抽象识别以产生如下的需求:功能需求、性能需求、环境需求、可靠性需求、安全需求、用户界面需求、资源使用需求、软件成本与开发进度需求。

2.制定规格说明文档

经过对问题的识别,产生了系统各方面的需求。通过对规格的说明,文档得以清晰、准确地描述。这些说明文档包括需求规格说明书和初级的用户手册等。

3.需求评审

需求评审作为系统进入下一阶段前最后的需求分析复查手段,在需求分析的最后阶段对各项需求进行评估,以保证需求的质量。需求评审的内容包括正确性、无歧义性、安全性、可验证性、一致性、可理解性、可修改性、可追踪性等多个方面。

二、系统设计

嵌入式系统设计阶段,需要解决以下几个方面的问题:

1.硬件的取舍:在满足需求和控制成本的约束下,合理选择处理器、储存器、外设等等硬件模块。

2.系统性能:除提高处理器速度的方法外,综合多种因素考虑设计以满足应用对性能的需求。

3.系统功耗:无论是否采用电池供电,系统功耗都是嵌入式系统的敏感问题。需在满足性能需求的基础上降低功耗。

4.系统可升级性:系统的硬件平台可能使用较长时间,或产生不同的型号,系统设计时,必须考虑通过改变软件来提供现在未能开发的功能或性能。

5.系统可靠性:可靠性是嵌入式系统重要的指标。

6.测试:嵌入式系统往往难以测试,也不能离开其工作环境而测试,需要在早期就加以设计。

解决上述方面的问题后,根据上一阶段的需求分析,设计嵌入式系统的硬件和软件架构,选择合适的微处理器、存储器、外设、操作系统等,确定系统的模块划分和接口定义。

这部分的输出包括系统设计的初步说明文档、设计方案和设计描述文档。这些文档的确立是使用系统流程图或其他工具,描述每一种可能的系统组成,估计每一种方案的成本和效益,在充分权衡各种方案利弊的基础上,选择一个较好的方案。

在开始软硬件具体设计之前,需要最后确定设计方案与用户需求之间的合理性,并对设计方案的正确性、无歧义性、安全性、可验证性、可理解性、可修改性等多个方面进行综合评估,以确定是否进入下一步的实施阶段。

三、硬件设计

根据系统设计,设计电路原理图和PCB布局图,选购电子元器件,制作电路板,进行硬件调试和测试。

四、软件设计

根据系统设计,编写软件需求规格说明书,确定软件的功能、流程、数据结构等,选择合适的编程语言、开发工具、编译器等,编写软件代码,进行软件调试和测试。

五、系统集成

将测试完成的软件系统装入制作好的硬件系统中,进行系统的综合测试,验证系统功能是否能被正确无误的实现。

六、测试和维护

对系统进行各种场景和条件下的测试,验证系统的正确性、可靠性、安全性等,记录并修复测试中发现的缺陷,对系统进行必要的更新和优化。