一、USB设备驱动程序的构成
1、设备的探测,用于检查传递给探测函数的设备信息,确认驱动程序是否适合该设备。
2、数据的发送和接收,负责主机到设备的发送和设备到主机的数据接收。
3、设备断开,当设备断开时候,模块负责清除和该设备关联的所有资源。
4、模块的加载和卸载,用于加载和卸载usb接口的无线网卡驱动程序。
二、USB无线网卡的构成
USB无线网卡主要由USB接口、MAC控制器、基带处理、调制解调器、功率放大器和收发器及天线等组成。
MAC控制器是核心部件,它负责从主机读取数据并发送出去,或者接收数据并发送给主机等。它负责通道选择、速率选择、加密解密等等的控制。固件存储区是用来存储MAC控制器要运行的微码。固件是一种经过编译的可执行代码,一般是由设备的芯片来执行的。帧缓存就是用来存储数据的暂时场所。EEPROM是否有没有要看具体的设备,有的设备是没有的,EEPROM一般都存放一些本设备的一些参数,例如本设备的MAC地址,本设备在家族产品中的型号等等。基带处理和ADC、DAC是数模拟转换的功能部分。要发送的数据或者接收的模拟信号在这个地方进行转换。收发器的功能类似调制解调器,收发器内部有个功率放大器,把弱信号增强到一定的强信号,收发器还负责滤波等工作。天线系统就是负责把数据通过天线发送或接收。天线的作用是使传输距离更远。
USB接口无线网卡的硬件逻辑:
三、模块的加载
在编写USB无线网卡驱动函数之前,首先先了解一下设备在插入到USB接口到设备成功找到它自己的驱动这一过程。
过程一(获取设备一些信息,发生在USB核心):当把USB设备插到USB接口上后,USB主机控制器会检测到有设备插入USB接口了,Linux内核会给设备分配一个数据结构来代表这个设备。本文中涉及的硬件是