WinCE下WIFI模块AR6102的调试

开发
今天调试了一款SDIO的无线网卡AR6102,由于该芯片是板载的,所以写了一个应用程序,模拟无线网卡的插入拔出,然后简单修改了SDHC驱动,检测应用程序发出的模拟卡插拔的动作,并控制芯片的PWR和RST引脚。幸运的很,改完之后,就可以用了。

今天调试了一款SDIO的无线网卡AR6102,由于该芯片是板载的,所以写了一个应用程序,模拟无线网卡的插入拔出,然后简单修改了SDHC驱动,检测应用程序发出的模拟卡插拔的动作,并控制芯片的PWR和RST引脚。幸运的很,改完之后,就可以用了。通过应用程序模拟无线网卡的插入动作后,在超级终端看到了加载无线网卡驱动的打印信息,在控制面板的网络连接里也看到了WIFI设备,AR6K_SD1。

 

 

用于测试的无线AP是Cisco的,加密方式是WPA-Personal,根据路由器的设置,选择加密方式并输入网络密钥,如下图所示。

 

 

 

点击确定后,正常连接至无线AP,但信号强度极低,可能跟天线有关系。

 

 

连接至AP后,AR6K_SD1的IP信息如下图所示。

 

 

连接过程中的日志如下图所示。

 

 

下面简单介绍一下调试的思路。我们知道,WinCE下SD卡驱动主要由三部分组成,BusDriver、HostControllerDriver和ClientDrivers。他们三者与应用程序和操作系统的关系如下图所示。

 

 

可以看到,BusDriver是介于ClientDriver和HostControllerDriver之间的一个抽象管理层。它为ClientDriver提供了标准的API,使其能在不同的WinCE系统上运行。BusDriver的真实存在为SDBUS.dll。这部分代码由微软提供,与平台和应用无关。所以,在移植驱动的过程中无需做任何修改。

ClientDriver通过BusDriver提供的抽象接口,控制并操作SD设备。WinCE下SDIO的ClientDriver类型有Memory、BlueTooth、GPS和WIFI等几种。这部分的驱动根据设备类型不同而不同,当SD设备插入时,BusDriver根据注册表的配置,加载相应的ClientDriver。ClientDriver一般由模块厂商提供,基本不用做修改即可使用。

HostControllerDriver是BusDriver和HostController之间的一个硬件抽象层,这部分代码随着平台和芯片的不同而不同。在调试SD设备的过程中,需要做相应修改。

根据以上分析,调试AR6102的驱动时,仅仅修改了HostControllerDriver的代码,其他两个部分都没有动。实际上原厂也没有提供ClientDriver的代码,只给了DLL文件而已。
 

【编辑推荐】

  1. C#和Java骨子里是两种不同的语言
  2. Hibernate 3.5.5和3.6 Beta3同时发布
  3. Java创始人:Android只为竞争不为钱
责任编辑:张攀 来源: cnblogs
相关推荐

2009-07-17 14:35:27

WinCE系统 GSM

2018-07-17 14:42:50

2010-03-26 13:12:27

2021-04-19 09:25:39

鸿蒙HarmonyOS应用

2010-01-22 11:01:04

linux内核模块

2009-08-13 18:30:45

WinCE 6.0USB功能定制

2009-01-06 09:10:33

WAPIWiFi终端芯片

2009-06-30 10:48:49

WinCEWindows Mob

2009-05-25 19:15:56

WinCE应用程序flash设备

2009-07-17 13:38:32

OEMIoControWinCE

2010-05-28 10:31:28

模块化IT

2018-10-18 09:32:39

WiFi网络数据

2013-08-21 09:35:19

Vistual Stu调试

2009-07-03 13:41:44

WinCE编译过程

2011-03-21 11:14:24

LinuxNagios

2014-07-11 11:20:03

5Gwifi车联网

2021-04-29 09:52:25

鸿蒙HarmonyOS应用

2023-03-09 10:46:21

2017-04-21 10:54:44

AR广告现实

2017-02-14 07:36:16

AR苹果
点赞
收藏

51CTO技术栈公众号