如何学习嵌入式之基于ARM的无线网卡设备驱动设计

合集下载

基于ARM的LINUX网卡驱动程序的开发与设计

基于ARM的LINUX网卡驱动程序的开发与设计

密摘要Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统、服务器、网络系统、安全等领域。

从而使得掌握在Linux环境下的开发技术,成为了计算机行业中引人注目的焦点。

以Linux为代表的自由操作系统的优点之一,是它们的内部是开放的。

Linux内核保留有大量的复杂代码,通常设备驱动提供了一个门路,使硬件特殊的一部分响应定义好的内部编程接口,它们完全隐藏了设备工作的细节。

用户的活动通过一套标准化来进行,设备驱动就是将这些调用映射到作用于实际硬件和设备相关的操作上。

论文首先介绍了Linux下设备驱动程序设计的基本知识,其中包括对Linux的发展历程、内核、特性的概述,Linux设备的分类及编写驱动程序的一些基本概念等,以及模块的加载和卸载。

其次介绍了ARM驱动程序开发的硬件环境和软件环境。

阐述了该驱动程序在开发时的需求分析。

第三对Linux环境下网卡驱动程序的设计与实现作了理论上的探讨,重点从网卡驱动模块的加载、网络设备的初始化、设备打开与关闭、数据的发送与接收、信息统计、网卡驱动模块的卸载等方面按步骤的进行了详细的讨论。

通过组建在Linux操作系统下的TCP/IP网络,来分配IP地址以及区分网络号和主机号的子网掩码,通过配置DHCP服务器,实现动态地为主机配置IP参数,解决手工配置存在的问题。

最后介绍了在驱动程序开发设计过程中所遇到的问题和困难以及是如何去克服这些困难的,并提出了今后的努力方向。

关键词:Linux;模块;网络;驱动;寄存器I Abstract Linux technology is a hotspot among computer technology nowadays, and it developes at high speed not only in our country but also in the whole world, and it has applied widely in embedded system, server, network system, security area and so on. So it makes that grasping the development technology under the Linux environment is m ore and more noticeable in computer industry. One of more and more noticeable in computer industry. One of the many advantages of free operating systems, as typified by Linux, is that their internals are open for all to view. The Linux kernel remains large and complex body of code. User activities are performed by means of a set of standardized calls that are independent of the specific driver; mapping those calls to device-specific operations that act on real hardware is then the role of the device driver. This This thesis thesis thesis firstly firstly firstly introduces introduces introduces the the the fundamental fundamental fundamental knowledge knowledge knowledge about about about design design design of of linux device driver, which generally includes the development procedure, kernel, and and characteristic characteristic characteristic of of of linux. linux. linux. Meanwhile, Meanwhile, Meanwhile, the the the categorization categorization categorization of of of linux linux linux device, device, elemental terminology of exploiting network interface card driver, and loading and unloading the driver module are also mentioned in this thesis. Secondly, this thesis also presents both the the hardware hardware hardware and and and software software software environment of the environment of the d river driver development, development, and and and the the the requirement requirement requirement specification specification specification of of of driver driver driver development development development are are elaborated here. Thirdly, combined with the driver of ARM, this thesis discusses the the design design design and and and realization realization realization of of of the the the network network network interface interface interface card card card driver driver driver in in in theory, theory, especially especially makes makes makes more more more detailed detailed detailed discussions discussions discussions step step step by by by step, step, step, such such such as as as loading loading loading the the driver module, initialization of the device, starting and stopping of the device, transmission transmission and and and receiving of data, receiving of data, i nformation information information statistics, statistics, statistics, unloading the unloading the driver module, etc. Allocating IP addresses and subnet masks differentiating network and host, through construction of TCP/IP network in Linux. Configuring host's IP IP arguments arguments arguments dynamically dynamically dynamically to to to well well well solve solve solve the the the problem problem problem of of of manual manual manual configuration, configuration, through configuration of DHCP server. Finally, this thesis lists all the problems and and difficulties difficulties difficulties met met met during the during the whole process of designing driver, a nd how to and how to conquer them and advanced direction of future study are also recounted. Keywords: linux; module; network; driver; register录目 录摘要..................................................................................................................................... I Abstract ..................................................................................................................................... II 绪论 .............................................................................................................................. 1第1章绪论1.1 研究背景研究背景 ..................................................................................................................... 11.2 国内外研究现状、目的及意义国内外研究现状、目的及意义 ................................................................................. 11.3 本文主要工作本文主要工作 ............................................................................................................. 2第2章Linux下设备驱动程序设计的基本知识 ................................................................... 42.1 Linux概述 ................................................................................................................... 42.1.1 Linux内核简介 ................................................................................................ 42.1.2 Linux的特性 .................................................................................................... 62.2 Linux设备驱动程序概述 ........................................................................................... 72.2.1 Linux设备驱动程序分类 ................................................................................ 82.2.2 编写网络驱动程序的一些基本概念编写网络驱动程序的一些基本概念 .............................................................. 9第3章Linux网卡驱动程序设计的理论探讨 ..................................................................... 103.1 Linux下网卡驱动程序设计的数据结构和基本方法 ............................................. 103.1.1 网卡驱动程序设计要用到的数据结构网卡驱动程序设计要用到的数据结构 ....................................................... 103.1.2 网卡驱动程序的基本方法网卡驱动程序的基本方法 ............................................................................ 133.1.3 套接字缓冲区介绍套接字缓冲区介绍 ........................................................................................ 143.2 驱动模块的加载和卸载驱动模块的加载和卸载 ........................................................................................... 17系统分析 .................................................................................................................... 19第4章系统分析4.1 S3C2410 ARM 开发板介绍开发板介绍 ..................................................................................... 19开发板介绍4.2 需求分析以及MII接口接口 ........................................................................................... 194.3 寄存器的访问方式寄存器的访问方式 ................................................................................................... 21第5章网卡驱动的具体实现网卡驱动的具体实现 ................................................................................................ 225.1 驱动程序的设计驱动程序的设计 ....................................................................................................... 225.2 网卡驱动实现网卡驱动实现 ........................................................................................................... 245.2.1 模块的加载及设备初始化模块的加载及设备初始化 ............................................................................ 245.2.2 设备成员及函数的初始化设备成员及函数的初始化 ............................................................................ 265.2.3 设备注册、打开、关闭设备注册、打开、关闭 ............................................................................... 305.2.4 数据的接受和发送数据的接受和发送 ........................................................................................ 325.2.5 参数设置及数据统计参数设置及数据统计 .................................................................................... 345.2.6 网卡数据信息统计网卡数据信息统计 ........................................................................................ 36第6章结论结论 ............................................................................................................................ 37参考文献............................................................................................................................ 38致谢...................................................................................................................................... 39沈阳工业大学本科生毕业设计沈阳工业大学本科生毕业设计1 第1章 绪论1.1 1.1 研究背景研究背景Linux 目前是计算机技术的一大热点,最近几年在我国得到迅猛发展,被广泛应用在嵌入式系统、服务器和桌面应用等领域。

基于ARM的嵌入式Linux无线网卡设备驱动研究

基于ARM的嵌入式Linux无线网卡设备驱动研究

基于ARM的嵌入式Linux无线网卡设备驱动研究
杨勇;叶梅;张秦艳;初元萍;胡磊
【期刊名称】《核电子学与探测技术》
【年(卷),期】2010(030)004
【摘要】介绍了D-Link无线网卡在嵌入式Linux下的驱动设计与实现.基于医用伽玛相机和小型SPECT设备的手持数据采集系统,首先搭建好嵌入式开发的软硬件环境,分析Linux内核USB驱动模块和网络驱动工作原理,然后针对D-Link无线网卡对通用的无线网卡驱动进行修改和交叉编译,最终移植到ARM平台上,建立嵌入式无线局域网,为进一步的无线网络研究搭建好开发平台.
【总页数】5页(P519-523)
【作者】杨勇;叶梅;张秦艳;初元萍;胡磊
【作者单位】北京邮电大学自动化学院,北京,100876;中科院高能物理所,北
京,100049;北京邮电大学自动化学院,北京,100876;中科院高能物理所,北
京,100049;中科院高能物理所,北京,100049
【正文语种】中文
【中图分类】TP391
【相关文献】
1.基于ARM和嵌入式Linux疲劳检测系统研究 [J], 陈刚
2.基于ARM的嵌入式Linux字符设备驱动设计研究 [J], 梁金宏;叶海蓉;孙世菊
3.基于ARM的无线网卡设备驱动设计 [J], 王标;郭敏;单保慈
4.基于嵌入式Linux系统的设备驱动实现研究 [J], 李革梅;刘福岩
5.基于ARM920T嵌入式通信控制系统设备驱动开发研究 [J], 王松月;杨福兴因版权原因,仅展示原文概要,查看原文内容请购买。

基于ARM-Linux平台的无线网络功能设计与实现

基于ARM-Linux平台的无线网络功能设计与实现

t h e wi r e l e s s n e w o t r k d e v i c e . Ba s e d o n t h e a n a l y s i s o f n e t wo r k d e v i c e d r i v e r s t r u c t u r e a n d wo r k i n g p r i n c i p l e i n L i n u x s y s t e m, a s c h e me i s
1 引言
近年来 ,嵌入式系统越来越广泛应用于人们生活的方方 面面 。在很 多的应用场景下 ,嵌入式设备需要与外界进行网
络 通 信 。传 统 的有 线 组 网 方 案 对 设 备 的移 动 性 和 灵 活 性 限 制
相 应 的 驱 动 例程 ,使 控 制 从 用 户 例 程 转 移 到驱 动 例 程 ,完 成 相 关 操 作 后 返 回用 户 例 程 。 L i n u x 的 内 核部 分 与 设 备 驱 动 之 间 通过 接 口 的形 式 进 行 标 准 化 的互 操 作 。对 于每 一 类 设 备 ,如 块 设 备 、字 符 设 备 和
很大,越来越 多的嵌入式设备需要采用无线 网络进行数据传
输 。 嵌入 式 A R M微 处 理 器 及 技 术 的 应 用 几乎 已经 深 入 到 各 个
网络设备都存在相应 的通用接 口以供硬件 为内核提供相关服
务 。有 了这 些通 用接 口, 内核 就 可 以采 用相 同 的方 式 来 处 理
可裁减性 和可 定制性 ,并且对硬件设备具有丰 富的支持 ,因 而在嵌入 式开发 中得到 了广泛的应用。基于 以上 ,本文分析
p r o po s e d t o i m pl e me n t t h e wi r e l e s s n e t w or k f un c t i o n o n AR M —Li nux pl a t f o r m .W i r e l e s s ne t wo r k c a r d i s us e d a s t he wi r e l e s s ne w o t r k de vi c e , a nd i s t r a ns p l a nt e d t o t he e m be d de d s y s t e m t o i mp l e me nt t h e wi r e l e s s ne t wo r k u nc f t i on. Ke y wo r d s : wi r e l e s s ne t wor k c a r d; c r os s c om pi l e ;d r i v e r t r a n s p l a nt a t i o n;e mb e d de d s y s t e m

嵌入式开发教程之基于ARM9嵌入式网管系统的设计与实现

嵌入式开发教程之基于ARM9嵌入式网管系统的设计与实现

千锋嵌入式学院 最专业的嵌入式培训机构

为了能够在arm上运行Web服务器Boa,需要对其运行 环境、参数等进行设置,并将最终的配置文件boa.conf置于 适当位置。通过修改配置文件boa.conf可实现对Web服务器 的配置。部分配置为:侦听端口使用80端口,访问日志 AccessLog存放于/var/log/boa/access_log,错误日 志ErrorLog位于/var/log/boa/error.log,文件的根目 录DocumentRoot设在/home/web/,KeepAliveMax 值和KeepAliveTimeout值采用默认值,设置CGI脚本程序 Path为/cgi-bin/,服务器名ServerName值设置为 webServer;将修改好的配置文件boa.conf存放于嵌入式文 件系统根文件/home/web目录下。最后将含有Boa应用 程序、boa.conf配置文件及其他相关CGI脚本程序的 ramdisk文件系统通过TFTP服务器下载到Flash存储器中。

千锋嵌入式学院 最专业的嵌入式培训机构

千锋嵌入式学院 最专业的嵌入式培训机构

在本义的系统中,硬件平台基于 AT91RM9200芯片,该芯片采用16/32位 arm920T内核,工作速度达180MHz,内部集成 有64K RAM和128K ROM,并有外部总线扩展接 口(EBI)支持多种类型的外部存储器。对操作系统, 本文选择了开放源代码及网络资源丰富的Linux。 嵌入式Linux操作系统可移植性强,用户通过重新 配置,编译内核后,内核文件小于500K。
千锋嵌入式学院 最专业的嵌入式培训机构
前言 嵌入式网管系统设计概述 交叉编译环境的建立 Web服务器的配置 嵌入式数据库的移植 嵌入式临近系统的软件结构设计 结语

基于嵌入式ARM-Linux无线ZigBee协调器驱动设计.

基于嵌入式ARM-Linux无线ZigBee协调器驱动设计.

基于嵌入式ARM-Linux无线ZigBee协调器驱动设计农田中大范围的环境信息监测已成为网络应用范围重点之一。

针对农田布线不便的特点,ZigBee无线节点网络成为农田信息采集系统的首选,可对其所分布区域内的各种环境和检测对象的信息进行实时的监控[1]。

然而,控制下层整个网络状态的核心是上位机ARM处理器,而且上位机与下位机通信大多以串口模式来实现[2-3]。

但串口通信模式存在串口传输速率低(波特率双方一致)、传送距离短[4]、数据冗余差(数据校验)以及设计串口协议繁琐(帧格式)等不足。

因此本文研究了ZigBee在ARM9内核中的协调器字符驱动,利用I/O传输数据,控制具有协调器驱动的设备在农田任何位置即可组网,以减少协调器的布局,实现方便快捷的动态数据监测。

1 田间监测系统的要求因监测节点需要零散分布在田间,以监测田间的空气和地表的温度,因此,田间监测系统所需要的技术指标应满足:(1)低功耗。

田间采电受到布线限制,因此节点模块的耗电量应尽可能低。

(2)低成本。

田间需要大量布局节点,投资成本成为广泛实施的制约因素。

(3)低复杂度和高可靠性。

田间节点开发设备应采用结构简单、采集数据尽可能精确又廉价的设计。

综合上述特点,ZigBee可以作为田间无线协议首选。

ZigBee协议是基于IEEE802.15.4标准的低功耗、低速率、低复杂度的双向通信技术。

它可工作在国际上免授权的2.4 GHz,具有250 Kb/s的最高数据传输速率和10~75 m的可靠传输距离。

ZigBee支持星型、树型、对等和混合型网络拓扑结构,网络中的从设备高达254个。

根据如图1所示的节点在网络分布的特点,节点在网络中可实现多条数据链路通信,以选择最佳的路径进行传输,提高了网络通信的可靠性。

协调器是整个网络的核心部分,负责完成整个网络的无线接入和组建,是维持路由器和终端节点之间的数据通信的关键。

在田间固定放置协调器节点会浪费大量的资源,若动态地测量田间任意位置的数据,把协调器作为移动设备动态地测量数据则是最好的选择,并且可以减少田间协调器的放置,降低设计难度的成本。

基于ARM嵌入式系统无线移动自组织网的设计和实现

基于ARM嵌入式系统无线移动自组织网的设计和实现

基于ARM嵌入式系统无线移动自组织网的设计和实现
随着高速信息化时代的来临,人们越来越希望能够随时随地使用高速无线上网环境快速分享信息。

虽然国内3G技术已经日渐普及,但较高的业务费用、有限的传输速率和固定的基站设施等等因素阻碍了人们自由、快速分享信息的脚步。

移动自组网(Mobile Ad-Hoc Network, Ad-Hoc)作为通信领域一个新的研究热点有效地缓解了当前无线网络的主要问题。

本文提出并实现了一种基于
Linux2.6.38内核的嵌入式操作系统、采用ARMv6架构的S3C6410嵌入式处理器为软硬件平台的实时无线通信系统的设计方案。

该系统在无线连接方面采用兼容性较好的IEEE802.11协议,能够在不同系统之间快速搭建Ad-Hoc网络,实现高速信息传输。

论文中首先介绍了Ad-Hoc组网的相关理论,结合嵌入式ARM开发平台的特性对其进行了可行性分析。

随后进行了网络硬件方面的设计与实现,重点进行了器件的选型、原理图的设计、PCB 的布局与布线、器件的焊接与贴片以及后期的调试工作。

接着在PCB板上安装操作系统并进行组网调试工作,包括:Linux内核裁剪、无线网卡驱动移植以及多平台连通性测试。

最后设计了一款基于Qt-Creator的图形化界面程序,以便用户快速掌握其使用方法。

本系统设计简洁、界面友好、可靠易用,适用于快速搭建无线自组织网,实现局域网内信息的传递。

基于ARM与ZigBee的嵌入式无线传感器网络网关的设计.

基于 ARM 与 ZigBee 的嵌入式无线传感器网络网关的设计房好帅李楠王慧娟(北华航天工业学院计算机科学与工程系 , 河北廊坊 065000摘要 :针对 ZigBee 无线传感器网络与传统 Internet 网络之间进行数据交换的需求 , 设计实现了一种嵌入式网关 , 采用 S3C2440A ARM 芯片与 CC2431ZigBee 芯片作为核心 , 扩展多个功能模块构成硬件平台 , 软件方面移植 Linux 作为嵌入式操作系统 , L ighttpd 作为嵌入式 W eb 服务器 , Sqlite 作为嵌入式数据库 , 通过CGI 技术实现用户与嵌入式 Web 服务器之间的数据交互 , 网关节点中的S3C2440A 芯片与 Sink 节点的 CC2431芯片之间采用串口进行通信 , 具有无线传感器网络的数据管理、存储及远程查询的功能 , 从而实现了传统 Internet 协议网络与 Z igBee 协议无线网络之间的数据交换。

关键词 :无线传感器网络 ; 网关 ; A RM ; ZigBee; CG I中图分类号 :T P393. 05 文献标识码 :A 文章编号 :1673-7938(2010 03-0023-04基金项目 :北华航天工业学院科研基金项目 (KY 2008 10 收稿日期 :2009-12-290 引言无线传感器网络 (Wireless Sensor Netw ork, WSN 就是由部署在监测区域内大量的微型传感器节点组成 , 通过无线通信方式形成的一个多跳的自组织的网络系统 , 其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息。

无线传感器网络在实际使用时 , 很多情况下用户需要进行有关节点数据的查询和控制 , 故需要通过网关设备接入外部网络 , 通常是传统的 Internet 协议网络如通过 H ttp 协议 , 提供用户对无线传感器网络的远程访问 , 网关节点的作用如图 1所示。

基于ARM的嵌入式系统硬件设计

基于ARM的嵌入式系统硬件设计随着科技的不断发展,嵌入式系统在人们的生活中扮演着越来越重要的角色。

而ARM作为一款流行的嵌入式处理器架构,被广泛应用于各种嵌入式设备中。

本文将介绍基于ARM的嵌入式系统硬件设计的相关技术和方法,并探讨如何实现高效的硬件设计。

ARM处理器架构是一种流行的32位嵌入式处理器架构,具有低功耗、高性能、低成本等优点。

ARM处理器分为ARMARMARM11等多个系列,每个系列又分为多个子型号。

ARM还提供了一系列开发工具和生态系统,以支持嵌入式系统开发。

基于ARM的嵌入式系统硬件设计需要从以下几个方面考虑:处理器选型:根据应用需求,选择合适的ARM处理器系列和型号。

例如,如果需要高性能的计算能力,可以选择ARM11系列处理器;如果需要低功耗,可以选择ARM7系列处理器。

存储器设计:嵌入式系统需要高效的存储器来存储程序和数据。

可以通过选择合适的存储器类型和容量来满足应用需求。

输入输出接口设计:根据应用需求,需要设计合适的输入输出接口。

例如,如果需要连接传感器和执行器,需要设计相应的接口电路。

电源设计:电源是嵌入式系统的核心组件之一。

需要根据应用需求,选择合适的电源类型和容量,并设计相应的电源电路。

基于ARM的嵌入式系统硬件设计的实现过程如下:确定应用需求:需要根据具体应用场景,明确硬件设计的需求和功能。

进行硬件选型:根据应用需求,选择合适的ARM处理器、存储器、输入输出接口等硬件组件。

设计硬件电路:根据硬件选型的结果,需要设计相应的硬件电路,包括电源电路、存储器电路、输入输出接口电路等。

制作硬件板卡:根据设计的硬件电路图,需要制作硬件板卡,将各个硬件组件集成在一起。

调试与优化:在硬件板卡制作完成后,需要进行硬件调试,检查硬件电路是否正常工作,并优化硬件性能和功耗。

通过基于ARM的嵌入式系统硬件设计,我们可以得到一个高效、可靠、低功耗的嵌入式系统。

在实际应用中,基于ARM的嵌入式系统可以运行各种操作系统和应用软件,实现各种复杂的功能,例如数据采集、处理、传输等。

基于ARM的嵌入式工业无线网关的设计


工业 以 太 网 技 术 与 工 业 无 线 通 信 技 术 是 目前 工业 自动 化领 域 的研 究 热 点 , 若将 两 门技术 有 效 结
仪 表 和 家 庭 自动 化 应 用 领 域 ,在 这 些 领 域 中 与
G P R S 、 蓝 牙等 其他无 线 通信技 术 相 比具有 较强 的优
入 网的方 式 进行 网络 监控 , 作 为 以太 网 的补 充 和延
伸. 这样 大 大加 强 了作 业 管理 . 并 降低 了成本 f l 】 。
Z i g b e e是 基 于 I E E E 8 0 2 . 1 5 . 4标 准 的 低 功 耗 个 域 网协 议 , 工作 在 2 0 ~ 2 5 0 k b / s的较低 速率[ 2 1 。Z i g b e e 无 线通 信 技 术 以其 低 成本 、 低功耗 、 时 延短 、 网 络容
( T i a n j i n I n s t r u m e n t s G r o u p C o . , L t d . , T i a n j i n 3 0 0 3 8 4 , C h i n a )
Ab s t r a c t : T h i s p a p e r d e s c r i b e s t h e d e s i g n o f a n e mb e d d e d i n d u s t r i a l w i r e ] e s s g a t e w a y b a s e d o n ARM p l a t f o r m, i n o r d e r t o r e a l i z e t h e c o mmu n i c a t i o n b e t we e n i n d u s t i r a l E t h e r n e t a n d Z i g b e e wi r e l e s s a r e a n e t wo r k .T h e G a t e wa y p l a t f o m r t a k e s A t — me l ’ S ARM9 一 AT 9 1 S AM9 G2 0 a s t h e h a r d w a r e p l a t f o r m, w h i c h wa s e mb e d d e d L i n u x i n n e r c o r e , a n d u s e s T I ’ S C C 2 5 3 0 F 2 5 6 a s w i r e l e s s d a t a t r a n s c e i v e r b y e mb e d d i n g Z— S t a c k p r o t o c o 1 . I n ma n n e r o f mu l t i t h r e a d p r o c e s s i n g , t h i s d e s i g n s a t i s i f e s t h e

基于ARM9的嵌入式工业无线网关设计

基于ARM9的嵌入式工业无线网关设计宋兴儒;凌志浩【摘要】介绍了一种基于ARM9处理器和嵌入式Linux操作系统的工业无线网关的设计方案。

网关系统的硬件平台以ARM920T核处理器S3C2440为主处理器,采用无线通讯协议建立工业设备网络,提出了一种基于无线网关的工业通信异构网络互联方式,详细介绍了系统的软硬件设计及工作原理。

%Design of an industrial wireless gateway based on ARM 9 and embedded Linux operating system is presented.An S3C2440 is used as the central processor in the gateway hardware.The wireless communication protocol is used to build an industrial equipment network.A heterogeneous network interconnection approach for industrial communication is proposed based on wireless gateway,and the system's hardware and software design and operating principle are described in detail.【期刊名称】《上海电机学院学报》【年(卷),期】2012(015)004【总页数】6页(P231-236)【关键词】无线网关;ARM;Linux;嵌入式【作者】宋兴儒;凌志浩【作者单位】华东理工大学化工过程先进控制和优化技术教育部重点实验室,上海200237;华东理工大学化工过程先进控制和优化技术教育部重点实验室,上海200237【正文语种】中文【中图分类】TN915.05在工业应用现场,对诸如温度、压力和流量等变量的监控对生产的安全有序进行至关重要。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


千锋3G嵌入式移动互联网技术研发培训中心

主控制器采用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所示。

千锋3G嵌入式移动互联网技术研发培训中心



3.1 无线网卡驱动编译 该系统的Linux内核版本为2.6.15,在宿主机上进行 内核配置,通过“make menuconfig"将内核中不必要的功 能去掉,增加对WLAN的支持。依次点击De-Vice Driver→Network device suppor→Wireless LAN(nonhamradio)→选中Wireless Lan driners(non-hamradio) &Wireless Extensions;然后进入通用USB-WLAN驱动程 序源码,修改makefile,将内核文件夹选项重新定位在刚才 编译好的Linux内核下,通过“make"在该文件夹下编译生成 rt73.ko驱动模块。 在arm嵌入式Linux开发中文件的传输方式有多种,比 如TFTP服务和NFS文件系统。在此采用将rt73.ko驱动模 块下载至开发板,由于Linux支持模块的动态加载,所以可 以很方便地将该模块用“insmod”加载至内核,通过“lstood” 查看加载的模块,之后rt73模块已经被成功加载。

千锋3G嵌入式移动互联网技术研发培训中心

千锋3G嵌入式移动互联网技术研发培训中心

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

千锋3G嵌入式移动互联网技术研发培训中心

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

千锋3G嵌入式移动互联网技术研发培训中心

千锋3G嵌入式移动互联网技术研发培训中心

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

千锋3G嵌入式移动互联网技术研发培训中心


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


千锋3G嵌入式移动互联网技术研发培训中心


在开发板文件系统中添加无线管理应用程序,和 iwconfig,iwapy,iwlist等,用于配置频率、网络、 ID、ES-SID、接受灵敏度、接人模式、无线网络标 准、加密开关。 最后编写无线网络启动和自配置程序,实现自 动配置IP地址和无线网卡。至此整个无线网卡驱动 程序全部编译完成。

千锋3G嵌入式移动互联网技术研发培训中心

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

千锋3G嵌入式移动互联网技术研发培训中心

USB无线网卡驱动程序首先向USB子系பைடு நூலகம்注册自己,然后通过vendor id和device id来判断硬件设备是否已经插入总线,摄像头驱动程序需 要创建一个


千锋3G嵌入式移动互联网技术研发培训中心

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

千锋3G嵌入式移动互联网技术研发培训中心

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

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

千锋3G嵌入式移动互联网技术研发培训中心

千锋3G嵌入式移动互联网技术研发培训中心



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间进行数据传输。
千锋3G嵌入式移动互联网技术研发培训中心
引言 1 硬件系统构成 1.1 USB无线网卡介绍 1.2 系统构成 2 USB无线网卡驱动 2.1 Linux USB驱动模块结构 2.2 LinUX网络驱动程序结构 2.2.1 USB无线网卡驱动设备的访问和控制 2.2.2 USB网络设备驱动程序设计 3 编译与测试 3.1 无线网卡驱动编译 3.2 测试结果及分析 4结语
相关文档
最新文档