关键词:WT6104CLVG;802.11a/b/g;WLAN;S3C2410
引言
目前,WLAN作为一种实现宽带无线IP接入的典型方式,由于其接入速率高、架构使用灵便、可支持移动计算、系统费用低及可扩展性较好等优点,越来越受到人们的青睐。本文将详细介绍一款支持802.11a/b/g协议的高速基带芯片,以及它在通信系统中的典型应用设计,包括硬件设计和驱动开发。
WT6104CLVG功能介绍
WT6104CLVG是北京六合万通微电子技术有限公司生产的无线基带控制芯片。它是一款高度集成的无线局域网芯片,完整实现IEEE标准所规定的802.11a/b/g基带信号处理、协议处理以及各种附加增强功能模块。完全支持802.11b/g和802.11a所要求的各种调制方式,能够完整提供协议规定的1Mbps~54Mbps传输速率。该芯片还提供了大量的安全和加密算法,例如AES、TKIP、WEP、WPI等。针对移动设备的特点,它提供多种工作模式,其工作频率为40MHz,有效地降低了功耗.它能够与多种RF无缝集成,并提供了多种主机接口,如Cardbus、MiniPCI、Memory 接口。该芯片内部主要功能模块包括MAC、基带、ADC/DAC 以及RF接口。向上提供HCI接口,向下提供RF和SPI配置接口。各模块功能如下:MAC模块完成了媒体接入层所规定的所有协议,其中包括安全和加密算法协议;基带模块完全支持802.11b 和802.11a 所要求的所有调制方式;ADC/DAC是低功耗、单通道、差分输入/输出器件,内部集成采样/保持放大器。同时具有节能功能,采用模拟电源3.3V、数字电源1.8V的双电源供电。芯片内部集成了44KB的存储单元。
无线模块硬件电路设计
WT6104CLVG与主控制器的接口设计
本设计的主控制器采用三星公司的S3C2410。通过TST_MOD[2:0]=3b:010将芯片设置为 Memory 接口工作模式,直接和S3C2410的数据、地址、控制总线连接。P_AD_OUT_[15:0]接S3C2410的低16位数据总线D[15:0];P_AD_OUT_[31:16]接低16位地址总线A[15:0];P_CBEN _[1:0]总线高低字节使能, 低有效,分别接nWBE[1:0]引脚;P_CBEN_[3:2]分别接nWE、nOE引脚。P_IDSEL片选信号接nGCS2引脚,P_INIT接EINT9外部中断引脚。具体连接电路如图1所示。
图1 WT6104CLVG与D3C2410的连接电路
WT6104CLVG与RF收发器的接口设计
RF芯片采用络达科技公司的AL2230S。它是一款支持802.11b/g无线协议的收发芯片。
WT6104CLVG通过RF接口和AL2230S连接。SHDN_OUT RF使能控制信号接AL2230S的PLLON引脚。A_RX_ENA、A_TX_ENA接收、发送通道使能信号分别接RXON、TXON引脚。PA_PE_11A、PA_PE_11G为802.11a/g模式使能信号,一起接PAON引脚。B[6:0]收发控制信号线接AL2230S的GC[7:1]引脚。TR_SW、TR_SW_BAR为收发切换控制信号。RF_CS片选信号接AL2230S的LE引脚。RF_SCLK、RF_SD_OUT为IIC接口信号线,分别接AL2230S的CLK、DATA引脚,具体连接如图2所示。WT6104CLVG通过IIC接口来配置AL2230S。
图2 WT6104CLVG与AL2230S的连接电路
基带芯片和RF收发芯片分开虽然增加了设计难度,但是设计起来更加灵活,可以根据需要选择发射功率大的收发芯片,从而增加数据的传输距离。
无线模块驱动软件设计
此设计采用微软的嵌入式操作系统Windows CE,下面详细介绍以WT6104CLVG芯片为的无线网卡的NIC驱动程序设计。
Windows CE平台下的网络驱动模型
Windows CE.NET引入了NDIS(网络驱动程序接口规范,Network Driver Interface Specification)。NDIS 支持以太网(802.3)、802.11、IrDA、WAN以及令牌环网(802.5)微端口。NDIS库将网络硬件抽象为网络驱动程序。NDIS也说明了网络驱动程序间的标准接口,因此,它将用来管理硬件的底层驱动程序抽象为上层驱动程序,NDIS支持以下几种类型的网络驱动程序:微端口驱动程序、中间层驱动程序、协议驱动程序。
Windows CE平台下无线局域支持组件配置
在WinCE平台下要支持802.11x无线网络,除需要注册NIC驱动之外,还要将以下组件添加到内核:
1) Wired Local Area Network [802.3, 802.5] (SYSGEN_ ETHERNET=1)
2) Wireless LAN [802.11]-Automatic Configuration and 802.1x (SYSGEN_ETH_80211=1)
3) Wireless Access Point [802.11] Support (SYSGEN_WIFI_AP=1)
4) Networking Utilities [ipConfig, Ping, Route] (SYSGEN_NETUTILS =1)
5) TCP/IP (SYSGEN_TCPIP=1)
6) Core Server Support (SYSGEN_SERVICES=1)
7) Web Server [HTTPD] (SYSGEN_HTTPD=1)
8) "Cisco 802.11b PC Card". SYSGEN_ETH_CISCO=1
WT6104CLVG和RF的初始化以及NIC驱动程序设计
主控制器通过WT6104CLVG的Memory接口实现其初始化和数据的发送和接收。对AL2230S可以通过IIC接口进行初始化配置和控制。该系统针对WT6104CLVG芯片开发了基于WinCE的NDIS微端口驱动程序,它负责与WT6104CLVG通信,完成协议包数据的收发。在驱动程序中向NDIS_MINIPORT_ CHARACTERISTICS结构体变量 WTChar赋值了一系列在驱动中实现的、为微端口向上提供的一组入口函数(MiniportXxx函数)的指针,然后调用系统函数NdisMRegister Miniport,向NDIS注册这些函数,并同时调用系统函数NdisMRegister Interrupt,向NDIS注册一个系统中断。具体源程序代码就不在此详述了。
数据包的具体发送流程见图3(接收流程与此相似)。
图3 发送流程图
WT6104CLVG NIC驱动程序的注册
WT6104CLVG NIC驱动程序的注册需要在platform.reg注册表文件中添加以下几项(其中,WTWLAN.DLL为驱动编译以后生成的动态库):
[HKEY_LOCAL_MACHINE\ Comm\ WTWLAN]
"DisplayName"="WLAN 802.11"
"Group"="NDIS"
"ImagePath"="WTWLAN.dll"
[HKEY_LOCAL_MACHINE\Comm \WTWLAN\Linkage]
"Route"=multi_sz:"WTWLAN1"
[HKEY_LOCAL_MACHINE\Comm\ WTWLAN1]
"DisplayName"="WLAN 802.11"
"Group"="NDIS"
"ImagePath"="WTWLAN.dll"
[HKEY_LOCAL_MACHINE\ Comm\WTWLAN1\Parms]
"BusNumber"=dword:0
"BusType"=dword:0
"InterruptNumber"=dword:26
"IoBaseAddress"=dword: 0xa2000000
"Transceiver"=dword:3
"CardType"=dword:1
"sysintr"=dword:26
"NetworkAddress"="001217534633"
[HKEY_LOCAL_MACHINE \Comm\WTWLAN1\Parms\TcpIp]
"EnableDHCP"=dword:1
"DefaultGateway"="10.0.0.138"
"LLInterface"=""
"UseZeroBroadcast"=dword:0
"IpAddress"="10.0.0.125"
"Subnetmask"="255.255.255.0"
"DNS"="10.0.0.1"
"AutoCfg"=dword:00000001
[HKEY_LOCAL_MACHINE\ Comm\Tcpip\Linkage]
"Bind"="WTWLAN1"
结语
本文介绍了WT6104CLVG无线基带芯片以及它在无线通信系统中的典型设计,采用该芯片设计的无线通信系统工作在802.11g模式下,具有较高的传输速度,可广泛应用于安全监控、工业控制、医疗监护和视频监控等场合。■
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。