Linux下Wi_Fi驱动程序的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[ 3]

由 于 ARM 嵌 入 式 技 术已 广 泛 应 用 于 各 种 便 携 式电 子设备 的开发, 因 此, 在 ARM 设 备 上增 加 W iF i 无 线通 信 功 能 已 成 为 热门 话 题 。常 见 的 连 接 ARM 与 Wi F i模块的接 口有 SP I 、SD I O 和 U SB 等, 其中 SP I 具 有硬件连 接 方 便、 软 件设 计 简 单 及 节省 系 统 资 源 等 优点
SDO、 SD I和 CLK 引 脚相连 接; 88W 8686的 SP I_S I NTn 是低电 平中断 输出引脚, 它与 S3C2440的 EI NT1 引脚 相连, 用于在 通信 过程中 检测 W i F i的 状态; S3C2440 的 nSS0 是片选引脚, 低电平有效, 用于激活从设备。
dev -> open = w lan_open; dev -> hard_start_xm it = w lan_hard_start_xm it ; dev -> stop = w lan_close ; dev -> do_ ioctl = w lan_do_ioct; l dev -> set_mac_address = w lan_se t_m ac_address 。
2 Wi F i驱动程序实现
2 . 1 Wi F i驱动体系结构 M arvell 88W 8686 W i F i模块正常工作所需的 H ost
驱动包括 W LAN 和 SP I接口驱动两部分。W LAN 驱动 在整个数据收发过 程中充当 数据 中转的 角色, 即 接收 上层用户应用程序的数据流, 通过 SP I口转发到 W iF i 硬件或响应 W i F i硬件 中断, 并从 硬件 的缓 冲区 读取 数据流, 通过驱动程序注册的接口函数, 发送到上层应 用程序。W i F i设备在 L inux 下的软件结构层次如图 2 所示。
2 . 2 W LAN 驱动程序 2. 2. 1 W LAN 设备初始化 W LAN 模块初始 化函数 w lan _ in it_modu le( ) 的主
要工作是注册回调函 数
图 1 SP I接口连接图 F ig . 1 Connec tion o f SP I interface
[ 5]
, 将 完成设 备添 加和删 除功
[ 2]
。目前, 对 L inux 下 SPI 驱动 的研 究 已较 为
广 泛且深入 , 但 还 没有 针 对 W i F i驱 动 的专 门 研 究。 本 文分析了 W i F i模块 通过 SPI 接口 与 ARM 连接 时 Wi F i驱动 程序的 设计与 实现 , 并 在此 基 础上 总结 出 L inux 下 M arvell系 列 W i F i模 块 驱 动 程 序 开 发 的 一 般 方法。
本文介绍了基于arm硬件平台和linux操作系linux下wifi驱动程序的设计与实现刘芳华自动化仪表第32卷第集的数据信息需要把该数据存到临时数组里依据地址表采集下一个节点的数据信息当整个监测区域的节点数据采集完毕后根据临时数组里的数据作融合并把最终结果传给监控中心
L inux 下 W i F i驱动程序的设计与实现
刘芳华, 等
L inux 下 W i F i驱动程序的设计与实现
Design and I m p lementa tion o fW i F i D river Under Linux
刘芳华

周凤星
430081)
( 武汉科技大学冶金自动化与检测技术教育部工程中心, 湖北 武汉
要 : 针对目前流行的 W i F i无线通信模块在嵌入式系统开发中的应用要求 , 设计开发了 L inux下基于 ARM 9 处理器 S3C2440 的
0 引言
近年来, W i F i无 线 通信 技 术发 展 迅速。 相比 有 线接入技术, W i F i网络连 接更具 灵活性; 而与其 他无 线技术 相 比, W i F i则 具 有 传 输 数据 快、 距离远等优 势。目前, 很多公共场所都提供 免费 W i F i服 务, 只要 随身携带支持 W i F i功 能的 电子 产品, 即可 方便 地接 入因特网
F ir mware 是在 W iF i设备硬件中执行的一段程 序, 系统 上电后 由 W LAN 驱动 将其下 载到 W i F i模块 中
[ 4]
, 实现 W i F i硬 件接 口控制、 数据 缓冲、802. 11 与
802. 3帧类型 转 换、 802. 11 MAC 层 管理、 W LAN M AC 中断管理以及硬件 控制 等功能。发 送数 据时, H ost驱 动程序将从上 层接 收到的 标准 802. 3 帧发 送给 F ir mw are , F ir mw are 将收到的数据帧转换成 802. 11帧, 再通 过无线连接将数据传输出去; 接 收数据时, F ir mware将
图 2 Wi F i软件结构层次图 F ig . 2 H ierarcha l structure o f theW i F i soft w are
调 用 reg ister_ netdev( ) 注册 网络 设备, 供上 层 访问。该函数返回设备 的主 设备号, 之后 对网络 设备 的所有调用都通过这个设备号来实现。 2. 2. 2 W LAN 数据包发送 W LAN 驱动 程 序 的数 据 发 送函 数 是 w lan _ hard _ start_xm it( ) 。该函数已经在 w lan _add _card ( ) 中设置。 此 外, 在 W LAN 驱 动 程 序 中 还 引 入 了 WMM ( W iF i mu ltim ed ia) 机制来规范数据流量优先 权, 从而实 现无 线网络流量的优先级管理。与一般的网络设备驱动程 序一样, sk_bu ff数据结构用来存 放从上 层应用程 序接
湖北省教育厅重点研究基金资助项目 (编号: D200711004) 。 修改稿收到日期 : 2010- 10- 19 。 第一作者刘芳华 , 女 , 1984 年生 , 现为武汉科技大学电路与系统专业 在读硕士研究生 ; 主要从事嵌入式系统与应用方面的研究。
自动化仪表 第 32 卷第 3 期
2011 年 3 月
调 用 w lan _ create_ th read ( ) 创 建主 线 程 w lan _ service_m ain _ thread。 该线 程处 理 W LAN 驱 动 的主 要 工作, 包括处理 F irmware产生的事件、 接收从 F ir mw are 发送过来的数据, 并发送从内核传递过来的数据。 通过 w lan_ create_ thread ( ) 创建 w lan _reassocia tion_ thread 线程。该线程负责在 连接自 动断开时 重新 连接 AP。 通过 sb i_reg ister_dev( ) 注册 W LAN 设 备, 填写 代表网卡设备的私有结构体中的网卡硬件设备相关信 息和 I RQ 请求。 调 用 w lan _ in it_ f w ( ) 初 始 化 F ir mw are 并下 载 F ir mw are 到 W i F。 i
1
L inux 下 W i F i驱动程序的设计与实现
刘芳华, 等 接收到的 所有 802. 11 帧转 换成 802. 3帧 后, 通过 SP I 口发送给 Host驱动。由 此可 见, W i F i无 线网 卡设 备 在 L inux 中是被当作普通的以太网设备对待的, 在 W i F i驱动程 序中无需 实现 802. 11 帧与 802. 3 帧之 间的 类型转换。
M arvell 88 W 8686 W i F i驱动程序。结合 S3C2440与 88W 8686 的硬件连接以及 W i F i驱动程序体系结构, 给出了网络设备初始化和数 据传递Байду номын сангаас 转发的实现过程。实验结果表明 , 该 W i F i驱动程序能够实现预期目标, 并已成功应用于系统开发。 关键词 : W i F i 无线通信 中图分类号 : TP316 . 2 L inux ARM 驱动程序 文献标志码: A 网络设备
A bstract : Am i ing at the applicable require m ents o f e m bedded system developm ent using popularW i F i w ireless co mm unica tion m odule , the M arvell 88 W 8686 W i F i dr iver based on ARM 9 processor S3C2440 under L inux has been designed and developed. Co m b ining w ith the hard ware connection bet w een S3C2440 and 88W 8686 , and the architecture o fW i F i dr iver , the m i ple m enta tion processes o f the initialization o f net work device , data trans m ission and for w arding are g iven. The result of exper m i ents ind icates that thisW i F i driver reaches desired target and can be successfully applied in syste m deve lopm en. t K eyw ords : WiF i W ireless co mm un ication L inux ARM D river N et w ork dev ice
1 . 2 Wi F i与 ARM 的硬件连接 S3C2440通过 SPI0 接口与 M arvell 88W 8686的 SP I
接口 连 接, 实 现 数 据 的 收 发, 如 图 1 所 示。 其 中, S3C2440是数 据 的发 送 源, 所以 将 其 配 置为 主 设 备, 88W 8686 配置为从 设 备。 SP I 采用 全 双工 通 信模 式, 主设 备 的 M ISO、 M OS I 和 CLK 引脚 分 别 与从 设 备 的
[ 1]
1 Wi F i技术及模块介绍
1 . 1 Wi F i技术及 88 W 8686 芯片介绍 Wi F i技术是 IEEE 定义的无线局域网通信工业标 准 IEEE 802 . 11。该标准包括 IEEE 802 . 11 a 、 802. 11b和
802. 11g , 其中 802. 11b 是使用 历史最长 的 W i F i技 术, 其工作在 2. 4 GH z频段, 可提供 11 M b it / s的无 线传输 速率 。 88W 8686 是 M arvell推 出 的一 款 面 向移 动 电 话、 PDA 及数字摄像机 等移 动设备 的高 整合 W i F i芯片。 其在单一 的 芯 片 上 集 成 了 可 以 工 作 于 2. 4 GH z 和 5 GH z 的双频 射频无 线收发器、 物质层、 媒介接入 控制 器和一个 ARM 处理器, 实现 了无线 局域 网通信、 电源 管理和加密等功能, 并支持视频、 语音和多媒体应用。 88W 8686 向用户提供了 SD I O 和 SP I数 据传 输接 口。该模块将从 SD IO 或 SP I接 口传过 来的 用户 数据 封装成数据帧, 通过 W LAN 传送给远 程的客 户端。本 设计采用的是 SP I接口。
能的回调函数分别注册为 w lan_add_card( )和 w lan_ re move_card( ) 。 w lan _add_ card ( ) 实现了 W LAN 设 备初 始化的所有操作, 并依次完成以下几部分工作。 通过 sb i_p rob e_card( ) 检测设备, 探测到无线网 卡; 然后, 和一般 L inux 下网络设备驱动程序一样, 调用 alloc_etherdev( )来分配代表网络设备的 structnet_device 结构, 并在该结 构中初 始化 内核对 网卡操 作的 接口函 数, 主要接口初始化如下:
相关文档
最新文档