简单的单片机项目需要分层设计吗?

cathy的头像
cathy 发布于:周一, 07/15/2024 - 09:24 ,关键词:

有小伙伴说:我一个很简单的单片机项目,就点个灯,一个AD采集并通过串口传输一下数据,这还需要分层设计吗?

这个问题,其实没有标准答案,你可以不用分层设计,也可以分层设计,这取决于你,或你们公司对软件的要求。

当然,作为工作十年有余的过来人,我的建议:能采用分层设计,尽量分层设计。

分层设计的好处

这么说吧,小项目不分层设计也没问题,但你想一辈子只做这么简单的“点灯”小项目吗?

当你今后项目做大了,你就知道分层设计会有很多好处了。

1、模块化:分层设计可以让软件被划分为不同的逻辑或功能模块,每个模块都负责一组相对独立的任务,这样做可以提高了代码的模块化和重用性。

2、易于维护:当系统需要修改或扩展时,分层设计使开发者可以专注于修改或添加特定层的功能,而不需要深入了解整个系统的内部细节,这降低了维护的复杂度和成本。

3、提高可读性:清晰的层次结构使得代码更加容易理解和阅读,尤其是对于新加入项目的开发者来说(不要相信网上的段子,代码越乱才不会被人替代)。

4、增强可测试性:分层设计有助于实现单元测试或集成测试,因为你可以独立地测试每一层的功能,而不需要运行整个系统。

所以,为了提升自己,准确的说,为了今后能做大项目,挣大钱,单片机项目很有必要分层设计。


常见的分层结构

我们在很多地方都会看到分层的架构,比如类似下图这样的:


1.jpg

当然,我们在单片机软件设计中,常见的分层结构可能包括:

1、硬件抽象层(HAL):负责与硬件直接交互,提供对硬件设备的抽象访问,如GPIO、ADC、UART等。

2、驱动层:建立在HAL之上,提供更高层次的接口来操作硬件设备,例如具体的传感器或外设的驱动程序。

3、业务逻辑层:处理应用程序的核心业务逻辑,如数据处理、算法实现等。

接口层(或称为通信层):负责与其他设备或系统的通信,如通过串口、I2C、SPI等协议与其他单片机或上位机通信。

4、应用层:面向用户或用户的程序,直接响应用户的操作或请求,如控制LED灯的闪烁、读取传感器的数据等。

最后

虽然单片机软件设计是否需要分层,没有标准的答案。但分层设计通常是一种值得推荐的做法,特别是在处理复杂、大型的项目时,它能够提高代码的可维护性、可读性和可扩展性,同时也便于团队协作和测试。

然而,在实际项目中,开发者应根据具体需求灵活选择是否采用分层设计,并合理设计各层的边界和接口。

来源:嵌入式专栏

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 7