【百问网智能家居7】分层思想
本博客是结合自身经验和百问网视频学习所做的总结,如有错漏,欢迎指正。
一、驱动层
驱动层一般实现硬件上相关设备的驱动,如一个的OLED屏幕,驱动层需要做的工作就是提供该型号OLED的初始化函数,发送命令函数,发送数据函数,发送多个字节数据函数,画点函数,画字符函数等。主要是提供该模块的所有功能函数。
二、硬件抽象层
如上述OLED屏幕,存在有IIC驱动方式,也有SPI驱动方式,还有8080并口驱动方式。这些就涉及到具体的MCU外设了也就是IIC、SPI接口和GPIO,当然IIC和SPI可以通过GPIO用软件来模拟时序。这就属于硬件实际的控制对象,一般来说,这些是某款芯片涉及的各个硬件寄存器控制的封装好的部分,如ST封装的HAL库。
三、平台层
对不同平台进行封装驱动层需要使用的功能。
四、设备层
对使用的平台层功能进行登记。
五、协议层
六、中间件层
一般有RTOS,文件系统,GUI等中间件,由第三方已经封装好了各项功能,我们来将他运用到我们程序的某个功能上来。
七、应用层
对具体的功能进行处理使用或者协作。
一般而言,对于我们实现一个项目的功能,可以参考网络资源的驱动程序,根据自己的用到的平台进行封装,再通过设备层来确认使用的具体功能,最后再自己编写具体的控制代码来实现该项目的具体功能。在项目中可能会涉及使用RTOS来提高实时性,或者涉及文件系统来管理外部SD内存,这时需要我们将这些功能移植到我们程序上来。