本教程基于 ALINX 開發(fā)板 Z19-P , 實現(xiàn) WIFI 無線通信的功能,WIFI 模塊使用 USB WIFIrtl8188cu。
Z19-P 購買鏈接:https://sourl.cn/SACdvx
使用的 usb wifi 設(shè)備購買鏈接:http://e.tb.cn/h.gy25HiTTj7n5eNg?tk=zvvU3oWX4XZ
特別提醒,本教程 Z19-P 所使用的 Linux 環(huán)境是按照教程“ Xilinx 開發(fā)環(huán)境安裝教程”搭建的,請先按該教程搭建開發(fā)板的 Linux 開發(fā)環(huán)境。
1、創(chuàng)建工程
創(chuàng)建工程可以參考教程“ zynqMPSOC Linux 開發(fā)教程基礎(chǔ)篇”的第一章,創(chuàng)建一個基礎(chǔ)的 petalinux 工程,并完成設(shè)備樹修改,離線編譯配置。(如果不需要改動內(nèi)核,離線內(nèi)核源碼和 uboot 源碼可以不用配置)
2、配置工程
配置 sd 卡根文件系統(tǒng)
- 進入 config 配置界面,命令:petalinux-config
- 在 Image Packaging Configuration 下修改根文件系統(tǒng)類型為 EXT4 類型,設(shè)備節(jié)點為/dev/mmcblk1p2
配置內(nèi)核
- 進入內(nèi)核配置界面,命令:petalinux-config -c kernel
- 在 Device Drivers -> Network device support -> Wireless LAN -> Realtek rtlwifi family of devices 路徑下配置 rtl8188cu 驅(qū)動:Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter
3. 保存配置,退出
配置文件系統(tǒng)
- 進入文件系統(tǒng)配置界面,命令:petalinux-config -c rootfs
- 在 Filesystem Packages -> network -> wpa-supplicant 路徑下配置 wpa-supplicant 和 wpa-supplicant-cli 工具,該工具用于配置 wifi
3. 在 Petalinux Package Groups -> packagegroup-petalinux-benchmarks 路徑下配置 packagegroup-petalinux-benchmarks ,這是一個工具包,里面包含了 iperf3 工具
4. 保存配置,退出
3、制作啟動鏡像
編譯工程,生成啟動鏡像
- 編譯工程,命令:petalinux-build
- 生成 BOOT.BIN ,命令:petalinux-package --boot --u-boot --fsbl --force
- 將 petalinux 工程中的 boot.scr BOOT.BIN image.ub 拷貝到 sd 卡 BOOT 分區(qū)(FAT32),將 rootfs.tar.gz 解壓到 sd 卡 ROOTFS 分區(qū)( EXT4 )
- 將 sd 卡插入開發(fā)板,usbwifi 接到 usb 接口,撥碼為 sd 模式,上電啟動
4、配置 wifi
- 系統(tǒng)啟動后在串口終端登錄賬戶(默認用戶名和密碼都為 root )
- 修改 wpa 網(wǎng)絡(luò)配置文件 wpa_supplicant.conf ,命令:vi /etc/wpa_supplicant.conf
3. 在 network 里添加 wifi 名稱和密碼,ssid 設(shè)置 wifi 名稱,psk 設(shè)置 wifi 的登陸密碼(注意,等號兩端不能有空格),注意,本款 usbwifi 支持的頻率為 2.4GHz ,5G 網(wǎng)點是無法連接的
4. 使用 wpa_supplicant 工具連接 wifi,命令:wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf &
5. 使用 dhcp 服務(wù)分配 ip 地址,命令: udhcpc -i wlan0
5、測速
- ping 測試,命令:ping?http://www.baidu.com
2. iperf3 測試,windows 中打開命令行窗口,切換到 iperf3.exe 所在目錄,運行 iperf3 服務(wù)端,命令:
iperf3.exe -s
3. 在開發(fā)板串口終端運行 iperf3 客戶端,命令:iperf3 -c 主機ip地址
6、tcp 通信收發(fā)測試
- 在主機上運行 socket 通信程序的服務(wù)端: ./tcp_serv 9190 (端口號自定,非 0~1023 即可)
2. 在開發(fā)板上配置好 usbwifi 后,運行 socket 通信程序的客戶端:./tclnt 192.168.8.114 9190 ( ip 地址為服務(wù)端主機 ip 地址,端口號為服務(wù)端指定的端口號)
3. 此時可以輸入想要發(fā)送的信息,服務(wù)端會在收到信息后顯示并返回給客戶端
開發(fā)板(客戶端):
主機端(服務(wù)端):
注意:
在完成傳輸測試后,需要在客戶端輸入 q 結(jié)束傳輸連接(如果直接取消客戶端程序,會導致服務(wù)端的對應(yīng)端口被占用)
服務(wù)端在接收 5 次客戶端的連接請求后會自動關(guān)閉(即客戶端程序運行 5 次,一次連接可以發(fā)送的信息次數(shù)不限,一次發(fā)送不超過 1k 字節(jié))
*相關(guān)文件下載:下載鏈接