OpenHarmony WLAN驱动框架 原创

杀手来过
发布于 2022-3-5 08:02
浏览
3收藏

WLAN Model

本系列文章准备深入了解OpenHarmony的WLAN驱动模型,由于WLAN驱动模型非常庞大,我尝试根据WIFI 驱动模型的设计特点来给整个模式分模块进行介绍,本文是本系列文章的导读。

学习OpenHarmony的最好途径就是从官网的文档入手,我们可查看官网对于WLAN驱动模型的介绍:

zh-cn/device-dev/driver/driver-peripherals-external-des.md · OpenHarmony/docs - 码云 - 开源中国 (gitee.com)

前提必读

OpenHarmony WIFI 驱动模型是基于 HDF 驱动框架开发的,需要先理解 HDF 驱动开发框架,才能来学习WIFI 驱动模型。HDF 驱动的介绍:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/driver/driver-hdf-overview.md

计算机技术是为了解决实际问题而产生,而我们学习WIFI驱动框架,就需要知道这个软件技术是为了解决什么问题。答案可在官网找到:

首先WIFI 驱动模型的基本功能就是提供给上层WLAN能力:

HDI层开发人员可根据WLAN模块提供的向上统一接口获取如下能力:建立/关闭WLAN热点、扫描、关联WLAN热点等。

其次,提供给驱动开发人员接口:

各WLAN厂商驱动开发人员可根据WLAN模块提供的向下统一接口适配各自的驱动代码.

最后是模型的优点:

基于OpenHarmony驱动框架的WLAN驱动模型,可实现跨操作系统迁移,自适应器件差异,模块化拼装编译等功能。

WIFI

WIFI是一种无线传输技术,一般由WIFI芯片实现,通过SDIO或USB接口等与主控芯片连接。WIFI芯片与主控有两种通信通路:命令和数据。数据和命令以分时复用的方式使用SDIO总线。

命令

命令有三种:base,station,ap。

base命令包括:电源、复位等。

station命令包括扫描,连接等。

ap命令包括建立热点,获取连接状态等。

数据

数据包含接受和发送,WIFI是网络设备,其数据需要经过网络协议栈处理,例如LWIP协议栈。

协议栈的数据最终通过SDIO发送到WIFI芯片,WIFI芯片的网络数据也是通过SDIO最终输入到协议栈。

代码

在代码上就可以分为命令和数据两个部分。

命令部分又可以分为三类,分别以feature的方式来命名:

  • base feature
  • sta feature
  • ap feature

这三个概念会贯穿命令传输的通路。

数据通路主要是实现与网络协议栈的适配对接。

具体框架

由于OpenHarmony的驱动框架采用的是C语言面向对象的编程方法,所以在学习中也尽量使用面向对象的方法来入手。着重理解各个对象之间的调用关系,以及对象的创建方法。

下图所示是WLAN 命令通路:

OpenHarmony WLAN驱动框架-鸿蒙开发者社区OpenHarmony WLAN驱动框架-鸿蒙开发者社区

以hdf_wifi_core.c为界,可将通路分为两部分:HDI 层和核心层。

WIFI系列的博客已经更新如下,可在我主页看看:

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2022-4-9 09:58:41修改
3
收藏 3
回复
举报
1条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

感谢楼主整理分享

回复
2022-3-7 11:14:37
回复
    相关推荐