新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 54M无线网络适配器在嵌入式系统中的研究与应用

54M无线网络适配器在嵌入式系统中的研究与应用

——
作者:时间:2007-09-27来源:收藏

目前,嵌入式技术已广泛应用于工业控制、消费类电子产品、通信系统等各类市场产品。并且随着互联网的日益发达,具有接入功能的嵌入式系统更加具有发展前景。本文将介绍支持IEEE 802.11g协议的54M USB网卡在嵌入式系统上的应用,嵌入式系统使用了系列的

1 系统硬件体系结构

1.1 系统结构

系统总体结构如图1所示。

 

系统核心芯片采用三星公司的,该处理器是三星公司的一款基于20T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用,运行的频率可以达到203MHz。该处理器集成了很多重要的功能模块,并且支持多种总线。处理器集成了USB HOST控制器,并支持两个USB HOST端口。

系统使用64M NAND FLASH作为仔储器,存储了系统软件部分必需的BOOTLOADER、LINUXKERNEL、FILESYSTEM。系统中的串口、USBDEVICE接口、JTAG接口主要在开发调试时使用。系统通过TOUCH&LCD进行人机信息交换,满足广大消费类电子产品的需求。

网卡是这个移动终端的关键设备,鉴于市面上大部分的llM无线网卡已经停产或者即将停产,以及社会对具有更高接入性能的嵌入式设备的需求,我们选择芯片组型号为rt2573的54M无线网卡。由于已经集成了USB HOST控制器,所以不需要附加额外的芯片,网卡可以直接通过USBHOST PORT接入,非常方便。

1.2 USB主机接口的硬件实现

在USB系统中,各种USB设备要与主机相连,就必须通过一个共同的接口接入丰机。这个接口就是USB丰机控制器(USB Host Controller)。USB总线协议定义了四条信号线,其中两条信号线负责供电,而另外两条信号线负责数据的传输。USB通信模型是一种Host-Slave(主机——外设)主从式结构,因此经由USB总线进行通信的双方必有一方在通信控制中担当主机(HOST)的角色。

USB接口可从主机上获得500mA的电流,并且支持热插拔,真正做到即插即用。一个USB接口可同时支持高速和低速USB外设的访问,有一条4芯电缆连接,其中2条是正负电源,传送的是5V的电源,2条是数据传输线,数据线是单工的,在整个的一个系统中的数据速率是一定的,或者是高速,或者是低速。

S3C2410处理器内部集成了USB HOST控制器,可以直接从CPU引线出来,而不需要添加额外的控制芯片,图2为系统的USB HOST接口扩展。S3C2410处理器可以支持两个USB HOST通信端口。

 

2 USB网卡无线功能的实现

2.1 无线网卡的软件管理层实现

嵌入式系统硬件部分建立好后,需要建立软件系统。本系统中采用了vivi做为BOOTLOADER(引导启动程序),嵌入式Linux作为操作系统,以Cramfs作为主文件系统,为支持可读写功能还添加了Jffs2文件系统。 接着,需要软件上实现无线网卡的功能。

无线网卡的软件包括无线网卡固件(Firmware)、无线网卡驱动程序(Driver)和无线网卡配置管理程序三部分。

无线网卡的软件实现结构图如图3所示。固件是无线网卡上最基本的控制系统,主要基于MAC芯片来实现对整个网卡的控制和管理,并向下提供与物理层的接口,向上提供一个程序开发接口,为程序开发附加的移动主机应用程序提供支持。在嵌入式系统中,IEEE802.11提供的服务,包括认证、解除认证、登录、重登录等均由固件完成。

 

无线网卡的驱动程序使用固件提供的软件编程接口,对无线网卡进行控制,配合固件完成数据的收发以及对信息帧的处理。无线网卡驱动程序主要是针对相应的无线网卡芯片进行设计的,不同的芯片,它们的固件和寄存器相关设置存在很大的差异。除了要完成对下层的控制外,无线网卡驱动还要向上层应用程序和管理程序提供操作和配置无线网卡的应用程序编程接口,以实现其传输功能。

所有的Linux网络驱动程序遵循通用的接口。设计时采用的是面向对象的方法。一个设备就是一个对象(device结构),它内部有自己的数据和方法。每一个设备的方法被调用时的第一个参数都是这个设备对象本身,这样这个方法就可以存取自身的数据(类似面向对象程序设计时的this引用)。一个网络设备最基本的方法有初始化、发送和接收。如图4所示。

 

初始化程序完成硬件的初始化,device中变量的初始化和系统资源的申请,发送程序是在驱动程序的上层协议层有数据要发送时自动调用的。一般驱动程序中不对发送数据进行缓存,直接使用硬件的发送功能把数据发送出去。接收数据一般是通过硬件中断来通知的。在中断处理程序里,把硬件帧信息填入一个skbuff结构中,然后调用 netif_rx()传递给上层处理。

本系统的无线网卡驱动接口主要实现了以下接口函数:

 

无线网卡配置管理程序利用驱动程序提供的信息查询和设置接口,向用户实时提供无线网卡的状态,同时利用该管理软什可以实现对IP、SSID等无线刚卡参数进行必要的配置。常见的无线网卡配置管理程序有iwconfig、iwlistt、iwspy、iwpriv等。这里介绍几个主要的无线网卡配置管理程序:



评论


相关推荐

技术专区

关闭