登录站点

用户名

密码

无线通信相关开发技术

已有 1012 次阅读  2009-10-09 10:16   标签无线通信  技术  开发 

1无线网络接入技术

 

近年来,随着网络及通信技术的不断发展,无线通信技术得到了迅速发展,无线通信技术在人们生活中发挥着越来越重要的作用。

 

    1Wi-Fi(80211)

 

Wi-Fi(Wireless Fidelity)是一种无线通信协议,正式名称是IEEE 8021l(bag)Wi-Fi速率最高可达54Mbs,传输距离在100 m左右。

 

80211系列标准是IEEE推出WLAN标准,最早的8021l协议速率只有2Mbps,但随后推出的80211b80211a则分别将速率提高到了11Mbps54Mbps,传输距离也得到了加强。此外,由于作为下一代标准的80211a80211b无法进行互通,因此IEEE又推出了80211g作为两个阶段之间的过渡,其构筑在8021lb的基础上,并提供了54Mbps的传输速率。改进后的80211b/g协议以其成本低、灵活性高、移动性强、吞吐量高、通信可靠等诸多特性,迅速得到了广大厂商的支持,目前已成为了无限局域网通信的主要技术。

 

IEEE 80211bg的工作频段为24GHz,与蓝牙使用的频段相同,使用直接序列扩频技术传输数据,分频方式为正交频分多路复用(OFDM),虽然在数据安全性、通信稳定性、设备体积、功耗等方面略逊于蓝牙技术,但它的传输距离和通信速率都比较高,将其功率提高到一定程度后,覆盖面积可达数百米,很适合用于无线局域网。由于Intel和微软对Wi-Fi的支持,8021lbg得以迅速普及,广泛应用于个人电脑、PDA、数字终端等各种设备中。

 

2UWB超宽带无线电

 

现代意义上的超宽带UWB(Ultra Wide Band)无线电,又称冲激无线电(Impulse Radio)技术,但早期其应用一直仅限于军事、灾害救援搜索雷达定位及测距等方面。2002年,这项无线技术首次获得了美国联邦通信委员会(FCC)的批准用于民用通信,从而引起了世界各国的广泛关注,自1998年起,FCC对超宽带无线设备对原有窄带无线通信系统的干扰及其相互共容的问题开始广泛征求业界意见,在有美国军方和航空界等众多不同意见的情况下,FCC仍开放了UWB技术在短距离无线通信领域的应用许可,这充分说明此项技术所具有的广阔应用前景和巨大的市场诱惑力。

 

由于UWB是一种无载波通信技术,它不采用正弦载波,而是利用纳秒至微秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。UWB的带宽非常宽,目前FCC开放的频段是31106 GHz,故UWB系统发射的功率谱密度可以非常低,甚至低于FCC规定的电磁兼容背景噪声电平(-413dBmFCC Partl5),由此可见,短距离UWB无线通信系统与其他窄带无线通信系统可以共存。

 

UWB的传输速率可达几十Mbps~几Gbps;其收发信机结构简单,成本低于全数字化;并且其固有的抗多径衰落功能很强。

 

目前,国际上关于UWB在短距离无线通信领域的研究与开发已经进入制定标准的阶段,IEEE802153a工作组已收到多项提案。UWB目前采用的主要调制方式有:脉冲幅度调制PAM;通断键控调制OOK;跳时脉位调制TH-PPM;跳时/直扩二进制移频键控调制THDS-BPSK

 

3.无线网络接入方案选择

 

为实现无线通信要求,这里进行各种方案的讨论。若不使用现有的通信协议来实现,如采用NORDIC公司的nRF40l芯片,自定通信协议,虽然价格便宜,但系统就不能直接与现有的无线网络互连,而且nRF40l的传送速率只能达到20kbps

 

为此可以考虑采用已有的无线通信协议,其中可以选择的方案有:蓝牙(Bluetooth)HomeRFWLAN(80211abg)等。由于考虑到Bluetooth的通信距离只有10左右,HomeRF在国内使用比WLAN要少,最后采用了80211b作为无线方案。

 

目前校园和家庭的WLAN的使用越来越多,这为该方案的推广提供了便利。实现WIAN有两个方案。

 

一个方案是购买80211b芯片自己设计电路,这个方案可以将80211b芯片集成到电路板上,减小电路板的大小。可以采用的芯片有:Intersil公司的Prism2253芯片组[4]Realtek公司的RTL8180L芯片,TI公司的ACXl00芯片等。但是这些公司的网站上不提供这些芯片的详细使用文档,难以进行开发。这些芯片的WLAN解决方案是需要购买的,且价格比较高。

 

    另外一个可以采用现有的无线网卡的方案,采用该方案有利于系统的升级,即如果80211b协议升级以后不用重新制作硬件电路板,只要购买新的网卡即可。

 

2基于PCMClA的无线网卡接口

 

无线网卡的主要接口形式有:用于台式机的PCI接口、CF卡接口、。MiniPCI、用于笔记本电脑的PCMCIA接口、USB接口。由于考虑到PCI卡接口体积过大,CF卡和MiniPCI使用不是很普及,USB接口的无线网卡虽然体积比较小,但是相对PCMCIA的价格贵一些。这里可以使用PCMCIA接口形式。

 

PCMCIA接口驱动是针对8021lb芯片组的,大部分芯片驱动支持80211bPCMCIA全称为Personal Computer MemoryCard International Association,中文是“国际个人电脑存储卡协会”。凡符合此协会定义的界面规定技术所设计的界面卡,便可称为PCMCIA卡或简称为PC卡。以前这项技术标准只适用于存储器扩充卡,但后来还扩展到存储器以外的外部设备,如网络卡、视频会议卡及调制解调器等。

 

PCMCIA接口信号定义有3种模式:存储器模式(MemoryMode)、输入/输出模式(I/OMode)、卡总线模式(CardBus Mode),每种模式下的接口信号定义都有所不同。PCMCIA无线网卡接口信号定义属于:IO模式。如图ll-4所示给出了PCMCIA的体系结构,PC卡接口(基于PD6710芯片)主要实现两种功能:一是与ARM上的扩展总线相连。二是对无线网卡内部的操作,包括对缓冲RAM的读写、MAC芯片的控制、读写存储空间,以及IO空间等。


PCMCIA卡共分成4种规格,分别是TypeⅠ、Type TypeⅢ,以及CardBus。由于CardBus属于需要高频宽外设的界面规格,而且不常见。而TypeⅠ、TypeⅡ及TypeⅢ,它们常被应用于一般的外设规格上。

 

·TypeⅠ的规格:面积为856×54cm,厚度则为033cm;适用于一般存储器扩充卡。

 

·TypeⅡ的规格:面积为856×54cm,厚度则为05cm;应用范围包括MODEM卡、Network卡、视频会议卡等。

 

·TypeⅢ的规格:面积为856×.54cm,厚度为105cm;应用范围为硬盘。

 

从外观上看,这3PCMCIA卡的尺寸都是856cm×54cm,实际上,它们的区别在卡的厚度。TypeⅠ的厚度最薄,最适合用于存储器扩充卡;TypeⅡ则常用于数据传输、网络连接等产品,MODEM卡和Network卡都是TypeⅡ规格的;Type Ⅲ因为较厚,所以它适合取代机械式的储存媒体,如硬盘。

 

    PCMCIA卡除了轻巧、方便携带外,它有个和USB(Universal Serial Bus)外设相同的特色,就是“热插拔”(Hot Plugging)功能。所以PCMCIA规格的设备可于电脑开机状态时安装插入,并能自动通知操做系统做设备的更新,省去安装的麻烦。

 

3 PCMCIA驱动程序

 

PCMCIA驱动程序的编写中,主要涉及Linux内核的内存管理机制、PC卡的时序要求、PCMCIA接口的信号选择。

 

首先,要在编写PCMCIA驱动程序之前定义一个新的存储空间;其次,要编写init函数,该函数要在内核启动期间完成PCMCIA各个寄存器参数的填写和正确描述;再次,在init函数正确的前提下,编写读写函数;最后,编写interrupt函数,这类的函数只要对个别寄存器的情况。

 

硬件上系统采用CS片选标志来选中PCMCIA的空间,这一点,必须在arch/目录下的heads文件中重新描述,否则,系统不能合法地访问这个空间。然后在编写驱动之前,要在initc文件中的--initfunc(void MMU-init(void))函数里加入如下代码:



这样做的意义是为PCMCIA定位一个空间,空间的地址是PCMCIA_ADDR,大小是PCMCIA-SIZE

 

在嵌入式Linux系统中,CPU不能按物理地址来访问存储空间,而必须使用虚拟地址,必须“反向”地从物理地址出发找到一片虚拟空间并建立起映射。Ioremap的作用正是把物理空间映射成内核接受的虚拟内存空间,之后,可以利用函数返回的地址来访问系统需要的物理地址,但是,要在这里说明的是,如果使用了上面给出的代码,PCMCIA卡内存的物理地址和虚拟地址是一样的,不需使用返回值,而直接使用物理地址。

 

编写PCMCIAinit函数。init函数所做的工作就是“打开”PCMCIA的接口,使之能够完成通信。该init函数里应完成以下4个步骤:

 

(1)把所有的PCMCIA base register’和option register全部置零,如果不这么做的话,有可能和别的memory冲突,造成读写错误:

 

(2)需要检测目标存储卡是否已经接上,这点可以在PCMCIA intexface Input PisRegister(PIPR)里读到。如果已经接上的话,清空PCMCIA interface Status ChangeRegister(PSCR),以免在初始化的时候,遇上中断;接着,使能PCMCIA interface EnableRegister(PER),这是为了启动接口。然后,根据目标卡的时序要求,通过改变PCMCIAinterface General Control Register B(PGCRB)的值,使reset引脚产生要求的reset信号,如果没有reset信号的话,PC卡是不能工作的;

 

(3)启动nREG作为GPIO口使用,用来作为rdw信号的标志信号。也就是说,使这个引脚在写的时候置低,读的时候置高;

 

(4)注册PCMCIA的主设备号。

 

一旦正确完成了init函数,读写将变得十分简单,读者只要仔细阅读下面的例子就会明白是怎么做到的。比如说,如果已经在pcmciah文件里设定了一个未附值的词组hyy[3],只需要在write()里写上以下的代码就可以完成:



然后在read()中写入以下的代码:



  会发现读出的数值和写入的数值相同,说明对PC卡的读写是正确的。但同时也发现,如果没有在pcmcia.h文件里预先设定这么一个数组,将无法做到对属于PCMCIA存储空间的地址的读写,容易产生错误。


上一篇: SDRAM模块设计 下一篇: RF电路布线的几点总结

分享 举报