单片机编程系列之分层设计2(怎样合理拆分子系统)

前言

本次学习了百问网的七天物联网直播课收获很多,写下笔记记录一下。

1、拆分原则

各个子系统之间要尽可能的独立。
按键点灯示例程序我们可以划分为按键系统、LED系统、业务系统:
单片机编程系列之分层设计2(怎样合理拆分子系统)_第1张图片
按键系统就专注于按键的操作,LED系统就专注于LED的操作,业务系统会把这两个子系统组合起来完成业务的操作。那怎么拆分呢?

2、按照数据流向分:输入/输出/业务

单片机编程系列之分层设计2(怎样合理拆分子系统)_第2张图片
按键就相当于输入,LED就相当于输出,业务系统就相当于把他们联系起来。

a.细分输入部分

输入部分又可以细分为:用户输入、传感器、远程控制等等。就是根据输入源来拆分出各个输入的子系统。
单片机编程系列之分层设计2(怎样合理拆分子系统)_第3张图片

b.细分输出部分

输出部分又可以细分为:显示屏、控制各类设备、数据保存等等。就是根据输出项来拆分出各个输入的子系统。
单片机编程系列之分层设计2(怎样合理拆分子系统)_第4张图片

c.业务

单片机编程系列之分层设计2(怎样合理拆分子系统)_第5张图片
业务是系统是一个综合处理,当输入了什么信息后,进入业务系统进行处理,然后输出相应的操作。

驱动和应用分开

在Linux驱动开发中,驱动只提供功能,不提供策略。
驱动和应用各司其职,不能越界。
以LCD的使用为例,可以分为3层:

  • 驱动程序。提供像素操作的功能,怎么显示字符,显示字体大小,在什么位置显示,它不负责。
  • 库函数/功能函数。提供显示字符、显示图片的功能,但是显示什么字符、在哪显示,它不负责。
  • APP。使用库函数来显示字符、显示图片,我甚至不需要看驱动程序。

例子:下面是对一个远程控制系统程序的结构划分。

单片机编程系列之分层设计2(怎样合理拆分子系统)_第6张图片

你可能感兴趣的:(单片机,团队开发,嵌入式硬件)