WiFi无线网络短距离数据传输以其无需布线、数据传输速度快等优势,在工业应用中越来越普及。针对这类的应用,英创公司在ESM928x系列Linux嵌入式板卡上集成了带有WiFi和蓝牙功能的模块AP6210,并移植了基于AP6210的驱动,带有WiFi和蓝牙功能的核心板命名为ESM928xW。使用这款板卡,将WiFi和蓝牙功能一同集成在核心板上,客户无需外扩模块和担心接口的稳定性等问题,底板也不需要额外的电路就能够使用WiFi和蓝牙的功能,十分适合工业现场应用,同时避免了硬件的设计,能够节省不少开发的周期。这篇文章将主要讲解在ESM928xW系列核心板上,如果配置和使用板上的WiFi功能。
基于AP6210的无线网络驱动在ESM928xW核心板上,功能和稳定性都已经测试完成。我们将驱动做成一个可加载的模块bcmdhd.ko存放在文件系统中,提供给客户使用。ESM928xW核心板将驱动模块放在目录/lib/modules/4.1.14/目录下,客户使用时只需调用Linux标准命令insmod进行加载。加载驱动的同时,还需要配合两个固件,fw_bcmdhd.bin和bcmdhd.cal,这两个文件都放在文件系统的/etc/目录下,在加载驱动的时候代入即可。
移植工作还有一部分,因为Linux内核中的wireless_tools工具不支持WPA认证,而现在的无线WiFi网络大多是WPA加密,所以需要移植wpa_supplicant工具,目标板上通过运行该工具软件来激活无线网卡。
wpa_supplicant工具分为两个部分,一个是可执行程序wpa_supplicant,大小近2M左右,该文件直接放在根文件系统/usr/bin中,以方便客户操作。
wpa_supplicant工具还有一个很重要的部分,wpa_supplicant运行时所需要的配置文件wpa_supplicant.conf,通过wpa_supplicant.conf配置文件,可以修改一些基本属性,这里客户需要了解的是连接WiFi的名称ssid和验证的密码psk。我们将设置好的一个示例配置文件放在目录/etc下,客户可将示例配置文件复制到/mnt/nandflash中修改成自己需要的配置。
下面就以实际的操作为例,来介绍使用ESM928xW核心板连接上无线网络的整个流程:
1、首先需要设置wpa_supplicant的配置文件wpa_supplicant.conf。该示例配置文件在目录/etc下。
建议客户先把示例文件复制到/mnt/nandflash中,再进行设置。如果出错还能在/etc中找到示例配置文件:
[root@ ESM928x/]#cp /etc/wpa_supplicant.conf /mnt/nandflash/.
复制成功以后,进入VI模式编辑wpa_supplicant.conf:
[root@ ESM928x/]#vi /mnt/nandflash/wpa_supplicant.conf
进入vi模式可以看见wpa_supplicant.conf的配置,按“i”切换到插入模式进行编辑,客户只需修改其中的两项:
ssid=” ” //填入需要连接的WiFi名称
psk=” ” //填入连接WiFi的密码
修改完成以后,按“ESC”进入命令行模式,并在底行输入“:wq”(存盘退出),这样就设置完成。
2、加载无线模块的驱动:
[root@ ESM928x/]#insmod /lib/modules/4.1.14/bcmdhd.ko firmware_path=/etc/fw_bcmd
hd.bin nvram_path=/etc/bcmdhd.cal
加载成功之后,系统能检测到板上的无线模块。
3、调用wpa_supplicant连接无线网:
[root@ESM928x/]#wpa_supplicant -B -Dwext -iwlan0 -c /mnt/nandflash/wpa_supplicant.conf -d
参数说明:
-B 指定以守护进程模式运行,即程序将以后台模式运行。连接WiFi需要supplicant一直运行,所以采用后台模式,不会影响客户其他程序的运行。
-D 指定使用的驱动,这里是无线网,所以用wext。
-i 指定网卡。
-c 指定使用的配置文件,这里是我们之前设置好放在/mnt/nandflash中的配置文件。
-d 添加调试信息。
这条指令调用成功之后,工控主板将成功连接上在supplicant.conf中设置的WiFi。
4、成功连接上WiFi之后,可以输入指令自动获取动态IP:
[root@ ESM928x/]#udhcpc –i wlan0
至此已经成功使用英创ESM928xW系列嵌入式Linux工控主板连接无线WiFi。
成都英创信息技术有限公司 028-8618 0660