由于Linux操作系统的开源特性和USB无线网卡逐渐成为标准设备,网络上存在一部分开放的驱动源码程序。本文在此基础上做一些修改,移植到嵌入式平台下即可成功驱动设备。NETGEAR公司的MA111型网卡,其芯片为prism2系列,故可选用linux-wlan-ng系列的驱动程序,驱动程序可以在http://www.linux-wlan.com网站上下载。编译目标文件需要建立宿主机平台,宿主机的操作平台为:X86+Redhat 9.0操作系统,在此基础上建立交叉编译环境arm-linux-gcc。编译的具体步骤如下:
①下载USB无线网卡驱动程序并解压:
tar zxvf linux-wlan-ng-0.2.1-pre11.tar.gz
②vi src/mkmeta/Makefile
在Makefile文件中添加变量HOST_CC= gcc
③运用make config命令配置运行脚本
Build Prism2.5 USB (_usb) driver? (y/n) [y]: y
Linux source directory:根据具体情况而定
Prefix for build host compiler? (rarely needed) []: arm-linux-
④运用make命令对配置好的驱动程序进行编译
⑤驱动程序编译好后(prism2_usb.o和p80211.o)插上无线网卡,手动加载驱动程序,命令
如下:
#insmod prism2_usb.o
#insmod p80211.o prism2_doreset=1
4.无线传输测试
无线数据的传输测试包括两种测试: AP模式和 ADHOC模式。在具体的测试过程中需要
关闭etho,打开wlan0。在 AP模式情况下设置开发板的 IP地址为:192.168.0.221,而无线路由器的 IP地址为:192.168.0.1,SSID为:AIBO_W_NET。对 USB 无线网卡设备进行配置, 包括设置网络名称、安全密码、以及IP 地址等,AP模式下具体命令和测试结果如下:
./wlanctl wlan0 lnxreq_ifstate ifstate=enable
./wlanctl wlan0 lnxreq_autojoin ssid=AIBO_W_NET authtype=opensystem
./ifconfig eth0 down
./ifconfig wlan0 192.168.0.221 netmask 255.255.255.0 broadcast 192.168.0.255
经过以上命令配置后,运用PING命令测试开发板和路由器之间的通信完全畅通,说明开发板和上位机可以无线通信,为项目实现无线传输图像数据奠定基础。如图4.1所示:
5. 无线传输的应用
针对S3C2410芯片和Linux操作系统平台移植Linux-Wlan-ng主要应用到嵌入式数控系统中采集加工零件的图像数据,监视数控系统中零件加工过程和精确测量。因为Linux操作系统中嵌有ov511芯片的驱动,故在编译Linux操作系统时需要加载ov511驱动,有动态和静态两种加载方式。本文采用静态加载方式,在系统启动时就不需要手动加载驱动程序。主要步骤:
①(*)选择Multimedia device->下的Video for linux。加载video4linux模块, 为视频采集设备提供了编程接口;
②在usb support->目录下(*)选择support for usb和usb camera ov511 support。这使得在内核中加入了对采用OV511接口芯片的USB数字摄像头的驱动支持。