ARM设计的无线网卡设备驱动技术

发布者:cloudsousou6最新更新时间:2021-07-02 来源: eefocus关键字:ARM  无线网卡设备  驱动技术 手机看文章 扫描二维码
随时随地手机看文章

随着移动通信和便携通信的发展,无线局域网WLAN日渐普及。嵌入式系统中无线局域网的接入,既可以实现对嵌人式系统的无线控制和数据传输,又可以满足一些特殊应用的场合。这里通过对USB无线网卡的Linux设备驱动的深入理解和分析,成功地移植在Atmel 9261 ARM处理器上。实现了嵌入式系统的无线局域网接入。利用该平台,可以进一步设计完善医用伽马相机和小型SPECT设备的手持数据采集系统,使得控制人员能够远离数据采集现场,而通过远程终端来控制现场数据和各种控制信号,较好地解决了安全性问题。


1 硬件系统构成
1.1 USB无线网卡介绍
无线网卡是无线局域网(WLAN)的重要组成部分,WLAN的物理层及MAC层是用无线网卡的硬件及其软件完成的,而LLC层以上各层均由计算机软件来实现。WLAN包括进行通信的网络接口卡(简称无线网卡)和接人点/桥接器(AP/网桥)。其中,无线网卡提供了最终用户设备(手持设备)与接人点/桥接器之间的接口。目前,无线网卡主要以PCMCIA,CompactFlash(CF)卡的形式广泛应用。大多数可用的无线网卡都是基于Intersil Prism或Lucent Hermes芯片组的,其中USB设备的无线网卡则由Ateml芯片组支持。该系统采用D-Link的WLG-122无线网卡,芯片组为Prism2,它通过USB host port接入。


1.2 系统构成
主控制器采用Atmel 9261,工作频率180 MHz,具有16 KB数据cache和16 KB指令cache,外接64 MBNAND FLASH和64 MB SDRAM,外围接口由10/100 Mb/s自适应以太网卡,3个USB 2.0接口,2个通用异步收发器(UART),LCD接口以及串行外围接口(SPI)等组成,可以方便地外接工作设备。操作系统采用Linux 2.6.15;Bootloader采用U-boot;根文件系统采用ramdisk。系统启动后挂载yaffs文件系统,该系统采用Ateml公司的Atmel 9261开发板,外围接口包括2个USB host接口,其中一个外接USB无线网卡。无线路由器采用Cisco-Linksys的WRTl60N,支持802.11g标准、TCP协议和TFTP协议,如图1所示。

2 USB无线网卡驱动
2.1 Linux USB驱动模块结构
对于接入系统中的USB无线网卡,从CPU的角度首先看到的是USB总线,然后才是网卡芯片,所以USB驱动要先于网卡驱动实现。USB设备接口有主机端与设备端区别,因而USB驱动程序也有USB主机端驱动程序与USB设备端驱动程序之分。在主控机方面,主要有UHCI和OHCI两种规范。


上层的应用软件对系统的USB设备进行访问是通过文件系统的形式进行的。每个连接到系统总线上的USB设备可以同时对应一个或多个驱动程序,即每个USB设备可以在Linux系统上设置一个或多个节点供应用程序使用。


由于USB接口为主从方式和多设备连接的树状网络结构,所以USB主机必须具备对所有连接在总线上不同类型的USB设备进行配置管理的功能。LinuxUSB主机驱动程序可以同时支持多路USB总线功能,每路USB总线独立工作。USB主机驱动由USB主机控制器驱动(HCD),USB驱动(USBD)和不同的USB设备类型驱动三部分组成。图2描述了Linux USB驱动程序的结构。Linux定义了通用请求块(UniversalReqlaest Block,URB),用来在USB设备类驱动程序与USBD,USBD与HCD间进行数据传输。


2.2 LinUX网络驱动程序结构
所有的Linux网络驱动程序都遵循通用的接口。设计时采用面向对象的方法,即一个设备就是一个对象(net device结构),它内部有自己的数据和方法。一个网络设备最基本的方法有初始化、发送和接收。Linux网络驱动程序的结构可以划分为网络协议接口、网络设备接口、设备驱动功能和网络媒介四层。网络驱动程序中最主要的工作就是完成设备驱动层功能,使其满足所需要的功能。


2.2.1 USB无线网卡驱动设备的访问和控制
与PCI,ISA等设备不同,USB,1394等新一代总线没有IO/MEM映射、中断和DMA硬件资源,取而代之的是抽象出来的硬件资源概念。对USB设备来说,资源主要包括配置(configuraTIon)、接口(interface)和端点(endpoint)。这些资源中,端点对于USB设备有着最重要的意义,实际的数据传输就是通过端点的读写实现的。驱动程序通过描述符来获取这些资源。在初始化时,USB驱动程序从设备端点0读取描述符,经过解析后保存这些资源的属性,为传输数据做准备。

2.2.2 USB网络设备驱动程序设计
USB无线网卡驱动程序首先向USB子系统注册自己,然后通过vendor id和device id来判断硬件设备是否已经插入总线,摄像头驱动程序需要创建一个



当无线网卡插入USB总线时,USB core就会调用Probe方法来检测被传递进来的信息,以确定无线网卡设备是不是与驱动程序匹配,同时填充struct net_device完成对该网络设备的初始化。当无线网卡被拔出时,USB core就会调用Disconnect方法来完成清除工作。驱动程序通过显示模块的初始化和消除函数注册与注销模块调用module_init来初始化一个模块,并在卸载时调用moduel_exit函数。


其中,open函数主要完成对描述网卡硬件数据结构pAd的初始化,包括urb包接收函数、接口配置函数、初始化发送接收数据结构和MAC地址拷贝函数,以及最后开始的net_dev数据发送接收函数。RTMPSend-Packets函数负责发送包装好的网络数据包。无线网卡驱动与USB core的通信则通过中断/批量的方式来传送。


3 编译与测试
3.1 无线网卡驱动编译
该系统的Linux内核版本为2.6.15,在宿主机上进行内核配置,通过“make menuconfig"将内核中不必要的功能去掉,增加对WLAN的支持。依次点击De-Vice Driver→Network device suppor→Wireless LAN(non-hamradio)→选中Wireless Lan driners(non-hamradio)&Wireless Extensions;然后进入通用USB-WLAN驱动程序源码,修改makefile,将内核文件夹选项重新定位在刚才编译好的Linux内核下,通过“make"在该文件夹下编译生成rt73.ko驱动模块。


在ARM嵌入式Linux开发中文件的传输方式有多种,比如TFTP服务和NFS文件系统。在此采用将rt73.ko驱动模块下载至开发板,由于Linux支持模块的动态加载,所以可以很方便地将该模块用“insmod”加载至内核,通过“lstood”查看加载的模块,之后rt73模块已经被成功加载。


在开发板文件系统中添加无线管理应用程序,和iwconfig,iwapy,iwlist等,用于配置频率、网络、ID、ES-SID、接受灵敏度、接人模式、无线网络标准、加密开关。


最后编写无线网络启动和自配置程序,实现自动配置IP地址和无线网卡。至此整个无线网卡驱动程序全部编译完成。


3.2 测试结果及分析
启动无线网络,编写测试带宽程序。该测试程序采用C/S设计模式,客户端运行在ARM开发板上,服务器运行在局域网内一台Linux PC上。改测试程序的工作流程主要如下,客户端分别发送不同大小的字节流,经服务器处理计算出对应的带宽,可以得到一条宽带曲线,进而得到网络实际能够达到的最大带宽。经反复测试,该无线网卡能够稳定工作,在距离AP 50 m的半径内下带宽为6 Mb/s,距离理论值54 Mb/s还有一定距离,具体原因正在分析中。测试结果如图3所示。

4 结 语
Linux作为当今市场上嵌入式系统使用比例最高的操作系统,其驱动模式支持模块堆叠技术,内核开发者已提供了一些通用模块。现从工程应用出发,研究并移植了Linux下USB无线网卡的设备驱动,以此为基础既可以构建嵌入式无线局域网,又可以用于有线网络无法延伸或难以安装,以及有可灵活移动和临时性使用等要求的、诸如外加摄像头和图像处理芯片的场合,还可以用于工业现场中的远程无线视频监控。

关键字:ARM  无线网卡设备  驱动技术 引用地址:ARM设计的无线网卡设备驱动技术

上一篇:基于Windows CE的嵌入式网络收音机
下一篇:uC/OS-II内核移植_时钟节拍函数使用的初步认识

推荐阅读最新更新时间:2024-11-13 13:32

单片机与ARM系列处理器通信问题的解决方案
  1 系统硬件设计   1.1 主机硬件系统结构   1)电源电路 AT9lRM9200需要1.8 V和3.3 V电源,另外,大部分外围器件需要3.3 V电源,小部分外围器件还需要5 V电源。此处选用了Sipex公司生产的SPXlll7M3-3.3型低压差(LDO)稳压器和SPXlll7M3-1.8型低压差(LDO)稳压器进行DC-DC变换后为各个器件提供工作电压。   2)晶振电路 如图2所示,晶体振荡电路用于向AT91RM9200和其他需要时钟的外设电路提供工作时钟。本系统使用无源晶体振荡器X1(18. 432 MHz)和X2(32.768 kHz)作为系统的主振荡器和慢时钟振荡器,其中32.768 kHz晶振为系统
[单片机]
单片机与<font color='red'>ARM</font>系列处理器通信问题的解决方案
ARM体系结构研究
2.1 ARM体系结构对多媒体信号处理的支持 NEON 随着电子消费品市场上,屏幕、触屏越来越大,像素、帧数、分辨率越来越高,各种无线通信扩展雨后春笋般此起彼伏,处理器的处理能力越来越受到这些多媒体应用的考验。在这样的背景下,ARM芯片推出了自己的解决方案 NEON。 NEON技术是ARM公司2004年发布的媒体和信号处理技术,可以加速多种类型的多媒体应用,适用于手机和消费娱乐电子,可灵活地实现多种视频编/解码、三维图像、语音处理、音频解码、图像处理和基带功能。该技术已经应用在了Cortex-A系列的ARM处理器中,同时获得了ARM和第三方工具提供商的广泛支持,适用于高端多媒体设备。 NEON技术使用64/128
[单片机]
基于ARM11和DSP协作视频流处理技术的3G视频安全帽设计
  1.引言   为提高在高危工作场所现场作业的可控性,本文采用仿生学原理和高集成度设计实现了与人眼同视角的3G视频安全帽。本设计由视频安全帽和腰跨式数据处理终端两部分组成,采用高可靠性航空插头连接。其中图像处理采用三星公司的S3C6410ARM11处理器和TMS320DM642 DSP处理器组成。本设计结合DSP处理器在视频压缩方面的优势和运行于ARM之上的Linux操作系统在数据管理与任务调度机制方面的出色表现,由DSP完成图像处理功能,并通过高速接口把视频数据传输给嵌入式微处理系统,完成视频数据的传输、存储功能。   2.系统构成   本设计由视频安全帽和腰跨式视频终端两部分组成。视频安全帽中包含1路视频输入、1路音频
[单片机]
基于<font color='red'>ARM</font>11和DSP协作视频流处理<font color='red'>技术</font>的3G视频安全帽设计
技术驱动与国家政策支持下 用机器人替代人工的应用越来越多
近年来,伴随我国社会经济快速发展,生产要素也在不断发生变化,劳动力成本逐年上涨,工业制造业青壮年劳动力人数呈现断崖式下跌;土地租金上涨;资本不断向医疗、教育、互联网等新兴行业聚集,银行贷款难度增加,传统制造业随时面临资金紧张的问题,多重因素迫使企业加快转型升级。在技术驱动与国家政策支持下,越来越多的企业积极引进自动化设备,用机器人替代人工,构建智能制造系统和智能物流系统。 但是在实际引入过程中,由于缺乏经验,不少企业对智能物流的概念还比较模糊,对打造智慧物流需要具备哪些基本条件,智慧物流又具备哪些特点及智能物流所产生的价值不够明确,经常会因为前瞻性不足导致短期内多次投入,造成资源浪费。 智能物流区别于传统物流应该在于其智
[机器人]
OK6410A 开发板 (八) 84 linux-5.11 OK6410A arm-gdb+kgdb+串口 调试 linux
理论知识 调试过程 调试过程都是 这样子的 : 让核心停下来,查询信息,让核心继续运行 我们看一下 kgdb 是怎么做的 kgdb: 让核心停下来: 1. linux启动前期会自动进入kgdb 或 2. linux启动完成,挂载了procfs,用echo g /proc/sysrq-trigger 来进入 kgdb 查询信息 1. bash#gdb vmlinx 2. gdb target remote /dev/ttyS0 3. gdb set remotebaud 115200 // set serial baud 115200 4. gdb bt // 查询信息 6. gdb
[单片机]
Keil(MDK-ARM-STM32)系列教程(五)Configuration(Ⅰ)
Ⅰ、写在前面 本文带来的内容正如标题“Configuration”,只是标题包含的内容较多,我计划将其分为:Configuration(Ⅰ)和Configuration(Ⅱ)两篇文章来讲述。 我们常见的字体大小、颜色、关键字、快捷键等这些都是在“Configuration”中进行设置。本文讲述Configuration中的前面3项Editor、Colors & Fonts、User KeyWords。 本文讲述的Configuration配置和前面文章Options for Target目标选项在保存上有一个明显的区别:Configuration修改过后并保存的配置是保存在你Keil(电脑)软件上;而Options for
[单片机]
Keil(MDK-<font color='red'>ARM</font>-STM32)系列教程(五)Configuration(Ⅰ)
ST iMOTION™ IMC300赋予Arm® MCU最佳灵活性
英飞凌科技股份公司(FSE: IFX / OTCQX: IFNNY)发布IMC300全新电机驱动控制器系列。该系列将iMOTION™运动控制引擎(MCE)和新增的基于Arm® Cortex®-M0内核的微控制器整合在一起。该系列是对IMC100系列的提升,主要针对有着非常高的应用灵活性需求的变频驱动。这两个系列都采用了MCE 2.0,能助力驱动电机,可选PFC控制功能。通过使用MCE进行电机控制,客户将能把精力集中在完全独立运行于嵌入式Arm®微控制器的系统应用上。 英飞凌经实践验证的MCE 2.0实现了永磁同步电机(PMSM)的高效的FOC(Field Oriented Control)控制。MCE集成了所需的所有硬件和软件
[工业控制]
Arm的连环“劫”解密?
在见证历史的2020年,Arm也正在经受史上的最大考验。 可以说,Arm流年不利:Arm总部与安谋中国的夺权闹剧还未停歇,近期关于Arm的IP授权费用涨价的消息亦不胫而走,而最让人关注的莫过于“金主” 软银因财务压力将会让Arm重新上市或选择部分甚至整体出售的传闻,接盘侠从苹果、三星延伸到英伟达,风口浪尖的Arm究竟该何去何从? 夺权“纷争” 而无论是出售还是上市,对Arm的信心预期当是重要因子。 6月初,Arm发生了沸沸扬扬的“换帅门”事件,投资方Arm和厚朴投资联手想罢免Arm合资公司安谋中国的董事长兼CEO,但公司部分投资人认为董事会决议有争议,并诉诸法律途径予以解决。毕竟,中国市场占据了Arm全球营收的两成,在Arm全
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved