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