免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2620 | 回复: 0
打印 上一主题 下一主题

【转】WIFI常识,及ANDROID平台上调试APM6633 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 02:09 |只看该作者 |倒序浏览

(1)WIFI的网络结构,主要包括以下几部分:

* 站点(Station),网络最基本的组成部分。

* 基本服务单元(Basic Service Set,BSS)。网络最基本的服务单元。最简单的服务单元可以只由两个站点组成,站点可以动态的联结(associate)到基本服务单元中。它是一种特殊的Ad-hoc LAN的应用,一群计算机设定相同的BSS名称,即可自成一个group,而此BSS名称,即所谓BSSID。

* 分配系统(Distribution System,DS)。分配系统用于连接不同的基本服务单元。分配系统使用的媒介(Medium)逻辑上和基本服务单元使用的媒介是截然分开的,尽管它们物理上可能会是同一个媒介,例如同一个无线频段。

* 接入点(Access Point,AP)。接入点即有普通站点的身份,又有接入到分配系统的功能。

* 扩展服务单元(Extended Service Set,ESS)。由分配系统和基本服务单元组合而成。这种组合是逻辑上,并非物理上的,不同的基本服务单元有可能在地理位置相去甚远。分配系统也可以使用各种各样的技术。它是一种infrastructure的应用,一个或多个以上的BSS,即可被定义成一个Extended Service Set ( ESS ),使用者可于ESS上roaming及存取BSSs中的任何资料,其中Access Points必须设定相同的ESSID及channel才能允许roaming。

* 关口(Portal),也是一个逻辑成分。用于将无线局域网和有线局域网或其它网络联系起来。

(2)IEEE 802.11只负责在站点使用的无线的媒介上的寻址(Addressing)。分配系统和其它局域网的寻址不属无线局域网的范围。IEEE802.11没有具体定义分配系统,只是定义了分配系统应该提供的服务(Service)。整个无线局域网定义了9种服务:

* 5种服务属于分配系统的任务,分别为,联接(Association)、结束联接(Diassociation)、分配(Distribution)、集 成(Integration)、再联接(Reassociation)。

* 4种服务属于站点的任务,分别为,鉴权(Authentication)、结束鉴权(Deauthentication)、隐私(Privacy)、 MAC 数据传输(MSDU delivery)。

(3)WiFi工作原理
      WiFi 的设置至少需要一个Access Point(ap)和一个或一个以上的client(hi)。AP 每100ms将SSID(Service Set Identifier)经由beacons(信号台)封包广播一次,beacons封包的传输速率是1 Mbit/s,并且长度相当的短,所以这个广播动作对网络效能的影响不大。因为WiFi规定的最低传输速率是1 Mbit/s ,所以确保所有的WiFi client端都能收到这个SSID广播封包,client 可以借此决定是否要和这一个SSID的AP连线。使用者可以设定要连线到哪一个SSID。

     连接过程:ON->SEARCH->CONNECT->DISCONNECT->AUTO OFF--->----|

                                                                                              |--<-------SEARCH

(4)WIFI的工作参数

     WIFI的信号强度一般在-30db到-60db之间,低于-75db都属于很弱的强度。关于WIFI的漫游(ROAMING),需要同时保证AP的四个设定:A,所有的AP具有同样的SSID;B,所有的AP处于同一个子网络,具有相同的子网掩码;C,网络覆盖范围有重叠;D,所有的AP采用的加密协议必须一致。

      在自己的系统中,ROMING的触发电平是-68db,也就是当目前网络的信号强度低于-68db时,后台搜网开始进行。需要注意的是,在实际处理中,要对这个门限制进行处理。因为信号强度是个震荡值,不能一检测到-68db就触发ROAMING,而是到达稳定的门限后才开始ROMING。

      另一个问题是,决定是否ROMING的另一个条件是新的AP网络强度要高于目前AP网络强度至少8dbm。这样才有接入新网的必要。

(5)无线WIFI的分类

      802.11b的最大传输速率是11Mb,802.11g 的最大传输速率是共享54Mb(当有多个网络设备在同时通讯时,各个设备的通讯速率总和是54Mb);802.11a是每个设备独享54Mb,所以适合于大量数据的高速通讯。802.11b及g在2.4GHz频率上运行,这个频段会受到如无绳电话、微波炉和车库门开关等的干扰,可能造成服务中断。运行在5GHz频率上的802.11a标准很少产生混乱,抗干扰性较强。
(6)WIFI的应用问答

      何谓Access Control?基本上每张无线网卡上都有一组独一无二的硬件地址,即所谓的MAC address,经由Access Control table可定义某些卡可登入此AP,某些卡被拒绝登入,如此便能达到控管的机制,可避免非相关人员随意登入网络,窃取资源。 

      何谓展频 (Spread Spectrum)?展频技术主要又分为「跳频技术」及「直接序列」两种方式。而此两种技术是在第二次世界大战中军队所使用的技术,其目的是希望在恶劣的战争环境中,依然能保持通信信号的稳定性及保密性。对于一个非特定的接受器,Spread Spectrum所产生的跳动讯号对它而言,只算是脉冲噪声。 
      什么是ps方式?ps mode就是节电方式(power save mode)。开启该方式使网卡处于待机方式,如果网卡检测到网络活动,它就被唤醒并进入满电压状态。

(7)WIFI的加密方式

      WPA是 Wi-Fi® Protected Access(Wi-Fi保护接入)的简称,是无线网络的数据加密规格。它通过使用可扩展认证协议 (EAP) 提高了WEP的安全功能,通过一种加密方法提高了数据传送的安全性。

      WPA 使用802.1X认证服务器给每个用户分配不同的密钥。PSK用于家庭和小型办公室网络,每个用户都有同样的密码口令。WPA-PSK 也叫做 WPA-Personal(WPA个人)。

      TKIP是 Temporal Key Integrity Protocol(临时密钥完整性协议)的简称,是一种加密方法。TKIP提供结合信息完整性检查和重新按键机制的信息包密钥。

      AES是Advanced Encryption Standard(高级加密标准)的简称,是Wi-Fi® 授权的高效加密标准。WPA-PSK和TKIP或AES使用预先共享密钥 (PSK)。


http://hi.baidu.com/yyangjjun/blog/item/f6e6e79208136683a877a46d.html
==================================================================

      WIFI+蓝牙驱动部分是由另一个同事来负责的,由于我之前没有处理过数据联通这部分的驱动,所以记录下来以便以后参考。我们部门采用的是APM6633,APM6658和cs168q来选择。用SDIO与6410的SDIO2端口连接。

1,首先是添加电源控制。添加内核文件:drivers/misc/wireless_modem_misc.c 和include/linux/wireless_modem_misc.h。该文件把无线电源控制当成一个模块来处理:module_init(wireless_modem_misc_init);通过注册杂项设备让android上层可以操纵底层的文件IO控制。需要注意几点:

    (1)定义IO控制码。以便和android上层通讯控制。

    (2)定义了atomic_t型变量wireless_modem_available,用来对其进行计数,打开关闭设备时当作可用资源时大于零,如果被占用了等于零。

    (3)定义了wireless_modem_data型结构体,用来标识此时的开关机状态。

    (4)其它的就是控制基础的GPIO口电平来切换供电和复位等。

2,在cupcake中添加开机时IOCTL的发起函数,具体在hardware/ril/reference-ril/reference-ril.c的set_pci_e_power函数,用来打开wireless电源,该函数处在一个建立的线程循环中,如下:

      static int set_pci_e_power(int on)
     {
             int fd = open("/dev/wireless_modem_misc",O_RDWR) ;
             int err = 0;
             if(fd<0)
            { 
                 err = errno ;
                 printf("error in open wireless_modem_misc err = %d: strerror(err) =%s/n",err, strerror(errno) );
                 return -1;
            }
            if(on)
            {
                printf("POWER ON WIRELESS MODEM/n");
                ioctl(fd, WIRELESS_POWER_ON,NULL);
            }
            else
           {
                printf("POWER OFF WIRELESS MODEM/n");
                ioctl(fd, WIRELESS_POWER_OFF,NULL);
           }
           if(fd >0)
                close (fd);
           return 0;

     }

为此,需要把定义的IOCTL的头文件包括进来,在bionic/libc/kernel/common/linux下放入需要的内核头文件,用在来被include。

3,添加WIFI和蓝牙的电源控制,添加内核文件:include/linux/Wlan_bt_misc.h和drivers/misc/Wlan_bt_misc.c,同样初始化了一个模块wifi_bt_misc。(有定义IO号在apm6633_io.h,可忽略)

      (1)定义了一系列关于WIFI和蓝牙的IO控制码,以便android可以控制WIFI和蓝牙的使能,复位,唤醒等操作。

      (2)定义了atomic_t型变量wifi_bt_available,用来对其进行计数,打开关闭设备时当作可用资源时大于零,如果被占用了等于零。

      (3)定义了struct wifi_bt_data { int wifi_power_opened ;  int  bt_power_opened ;};来标志其电源状态。

4,在cupcake中定义对WIFI和蓝牙驱动文件的调用。

      (1)在hardware/libhardware_legacy/wifi目录下定义了wifi_apm.c(针对APM6633,6658),和wifi_csq168.c(针对CSR168)。这两个文件模仿同目录下的wifi.c,完成WIFI底层驱动库的加载,工作状态的切换,WIFI指令的发送,supplicant的建立和终止,以及DHCP的控制。

      工作时获取的driver路径/system/lib/modules/unifi_sdio.ko是开机时系统载入的库文件目录中。firmware路径wlan_loader都是系统工作时system的子目录中。

      (2)在system/bluetooth/bluedroid目录下定义了bluetooth.c,完成对内核蓝牙控制的调用。包括电源控制,使能控制。其中bt_enable最终被蓝牙的JNI调用。

5,supplicant服务,在external/wpa_supplicant有两个目录,apm是apm6633,apm6658用的,cs168q是cs168q用的。

6,WIFI的厂商提供驱动包

      (1)apm6633 在external/wlan/unifi_sdio_driver/unifi_hostsw_linux_147  中,helper 为工具。apm6658 在external/wlan/unifi_sdio_driver/unifi_hostsw_linux_187 中。其中在各自的unifi-linux/os_linux/driver目录下config.android-arm.mk,修改目标内核路径。然后执行:./build android-arm编译

      (2)cs168q在/frameworks/base/wifi/wifi中,ar6000.ko是驱动。

      (3)三个WIFI选一的控制在vendor/sec/smdk6410的BoardConfig.mk中。

7,蓝牙的驱动包

      (1)蓝牙驱动库在external/bluez/

      (2)在system/bluetooth/data/BC06.psr,是CSR BC06-rom 蓝牙设定文件。

原文地址:http://blog.csdn.net/zhandoushi1982/article/details/5386580

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP