前 言
本文檔主要介紹基于iMX6ULL開發(fā)板分享 物聯(lián)網(wǎng)模塊開發(fā)案例,其中內(nèi)容包括SDIO WIFI模塊測(cè)試、STA模式測(cè)試、NB-IoT模塊測(cè)試、Zigbee模塊測(cè)試、LoRa模塊測(cè)試和4G模塊測(cè)試由于篇幅過長(zhǎng),案例分為上下兩部分,歡迎各位感興趣的用戶查看更多。
適用開發(fā)環(huán)境:
Windows開發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit 虛擬機(jī):VMware15.1.0 U-Boot:U-Boot-2020.04 Kernel:Linux-5.4.70 Linux SDK:5.4.70_2.3.0
本案例測(cè)試板卡為創(chuàng)龍科技的TLIMX6U-EVM,它是一款基于 NXP i.MX 6ULL的 ARM Cortex-A7高性能低功耗處理器設(shè)計(jì)的評(píng)估板,由核心板和評(píng)估底板組成。核心板經(jīng)過專業(yè)的 PCB Layout和高低溫測(cè)試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。
評(píng)估板接口資源豐富,引出雙路網(wǎng)口、雙路RS485、雙路CAN、三路 USB、多路DI/DO、 LCD等接口,板載WIFI、Bluetooth模塊,支持LoRa、NB-IoT、Zigbee、4G模塊,可選配外殼直接應(yīng)用于工業(yè)現(xiàn)場(chǎng)。
無特殊說明情況下,默認(rèn)使用USB TO UART1作為調(diào)試串口,使用Linux系統(tǒng)啟動(dòng)卡(SD啟動(dòng)模式)啟動(dòng)系統(tǒng),通過路由器與PC機(jī)進(jìn)行網(wǎng)絡(luò)連接。
SDIO WIFI模塊測(cè)試
本案例使用SDIO WIFI模塊型號(hào)為:RTL8189,請(qǐng)將SDIO WIFI模塊插至評(píng)估板SDIO接口,如下圖所示。
圖 1
SDIO WIFI模塊支持STA和AP模式,具體說明如下:
本案例測(cè)試程序位于產(chǎn)品資料“4-軟件資料\Demo\module-demos\sdio_wifi_test\”目錄下,具體說明如下。
表 1
請(qǐng)將bin目錄下所有文件和driver目錄下8189fs.ko驅(qū)動(dòng)文件拷貝至評(píng)估板文件系統(tǒng)任意相同路徑下,并將SDIO WIFI模塊正確連接至評(píng)估板SDIO接口。由于SDIO接口與Micro SD接口存在引腳復(fù)用關(guān)系,因此請(qǐng)務(wù)必將Linux系統(tǒng)啟動(dòng)卡從評(píng)估板Micro SD卡槽中取出。將評(píng)估板啟動(dòng)方式選擇撥碼開關(guān)撥為011000(1~6),此檔位為NAND FLASH啟動(dòng)模式。
STA模式測(cè)試
進(jìn)入評(píng)估板文件系統(tǒng),在SDIO WIFI模塊驅(qū)動(dòng)8189fs.ko所在路徑下,執(zhí)行如下命令加載驅(qū)動(dòng)。 Target# insmod 8189fs.ko
圖 2
圖 3
執(zhí)行如下命令關(guān)閉其他網(wǎng)絡(luò)和wpa_supplicant進(jìn)程,僅保留WIFI網(wǎng)絡(luò)。 Target# ifconfig eth0 down Target# ifconfig eth1 down Target# killall -9 wpa_supplicant Target# ifconfig wlan0 up Target# ifconfig
圖 4
在wifi_setup.sh文件所在路徑下執(zhí)行如下命令,將評(píng)估板通過WIFI模塊連接至路由器。"-i"指定WIFI名稱,"-p"指定WIFI密碼,請(qǐng)根據(jù)實(shí)際情況修改。
Target# ./wifi_setup.sh -i Tronlong-test -p omapl138
圖 5
執(zhí)行如下命令查看獲取的IP地址,并通過ping命令測(cè)試評(píng)估板與PC機(jī)通信是否正常。192.168.1.100為PC機(jī)實(shí)際IP地址,請(qǐng)確保評(píng)估板與PC機(jī)在同一局域網(wǎng)內(nèi)。 Target# ifconfig Target# ping 192.168.1.100
圖 6
在評(píng)估板文件系統(tǒng)執(zhí)行如下命令,查看評(píng)估板IP地址,使用Iperf3工具測(cè)試評(píng)估板與PC機(jī)的網(wǎng)絡(luò)通信帶寬。
Target# ifconfig Target# iperf3 -s
圖 7
在Ubuntu系統(tǒng)執(zhí)行如下命令測(cè)試網(wǎng)絡(luò)通信帶寬,192.168.1.103為評(píng)估板實(shí)際IP地址。測(cè)試完成后,Ubuntu和評(píng)估板均會(huì)打印測(cè)試結(jié)果。測(cè)試結(jié)果受網(wǎng)絡(luò)環(huán)境影響,僅供參考。
Host# iperf3 -c 192.168.1.103 -i 1
圖 8
圖 9
AP模式測(cè)試
請(qǐng)重啟評(píng)估板系統(tǒng),在SDIO WIFI模塊驅(qū)動(dòng)8189fs.ko所在路徑下執(zhí)行如下命令加載驅(qū)動(dòng)。 Target# insmod 8189fs.ko
圖 10
圖 11
執(zhí)行如下命令關(guān)閉其他網(wǎng)絡(luò)和wpa_supplicant進(jìn)程,僅保留WIFI網(wǎng)絡(luò)。 Target# ifconfig eth0 down Target# ifconfig eth1 down Target# killall -9 wpa_supplicant Target# ifconfig wlan0 up Target# ifconfig
圖 12
在ap_setup.sh文件所在路徑下執(zhí)行如下命令,將SDIO WIFI模塊設(shè)置為AP模式。 Target# ./ap_setup.sh
圖 13
如啟動(dòng)AP功能過程中,出現(xiàn)如下問題,是由于random熵不夠引起,需重啟評(píng)估板,執(zhí)行如下命令更換熵池,再重新測(cè)試。
Target# mv /dev/random /dev/random_ori Target# ln -s /dev/urandom /dev/random
圖 14
圖 15
程序默認(rèn)設(shè)置的WIFI名稱為:rtl8188fs,密碼為:88888888,可在rtl_hostapd_2G.conf配置文件內(nèi)進(jìn)行修改。
將具有WIFI功能的PC機(jī)(比如筆記本電腦或裝有USB WIFI的臺(tái)式電腦)連接至此無線局域網(wǎng)熱點(diǎn),并斷開已有的有線網(wǎng)絡(luò)連接。連接成功后,串口調(diào)試終端將會(huì)打印如下信息,顯示Ubuntu已分配的IP地址。如使用虛擬機(jī) + Ubuntu的開發(fā)方式,將會(huì)獲取到兩個(gè)IP地址,其中一個(gè)為Windows端IP地址,一個(gè)為Ubuntu端IP地址。
圖 16
執(zhí)行如下命令測(cè)試無線局域網(wǎng)設(shè)備之間網(wǎng)絡(luò)連接是否正常。若出現(xiàn)連接超時(shí)或失敗,可嘗試關(guān)閉PC機(jī)防火墻后再次連接。
Target# ping 192.168.0.21 //192.168.0.21為Ubuntu端IP地址
圖 17
在評(píng)估板文件系統(tǒng)執(zhí)行如下命令,查看評(píng)估板IP地址并等待PC機(jī)連接。 Target# ifconfig Target# iperf3 -s
圖 18
在Ubuntu系統(tǒng)執(zhí)行如下命令測(cè)試網(wǎng)絡(luò)通信帶寬,192.168.0.1為評(píng)估板實(shí)際IP地址。測(cè)試完成后,Ubuntu和評(píng)估板均會(huì)打印測(cè)試結(jié)果。測(cè)試結(jié)果受網(wǎng)絡(luò)環(huán)境影響,僅供參考。
Host# iperf3 -c 192.168.0.1 -i 1
圖 19
圖 20
測(cè)試完成,請(qǐng)將評(píng)估板斷電,拔出SDIO WIFI模塊,將Linux系統(tǒng)啟動(dòng)卡插入Micro SD卡槽,啟動(dòng)方式選擇撥碼開關(guān)撥為010100(1~6) SD啟動(dòng)模式。
SDIO WIFI驅(qū)動(dòng)編譯
請(qǐng)將案例src目錄下的驅(qū)動(dòng)源碼rtl8189FS.tar.gz拷貝至Ubuntu工作目錄下,執(zhí)行如下命令將源碼壓縮包解壓至該目錄下。 Host# tar -xf rtl8189FS.tar.gz
圖 21
執(zhí)行如下命令,進(jìn)入驅(qū)動(dòng)源碼目錄,修改頂層Makefile文件 Host# cd rtl8189FS/ Host# vim Makefile
圖 22
Makefile文件內(nèi)容請(qǐng)按如下說明進(jìn)行修改。 KSRC = /home/tronlong/IMX6/Kernel/Linux-5.4.70 //指定內(nèi)核源碼實(shí)際路徑
圖 23
在驅(qū)動(dòng)源碼所在路徑執(zhí)行如下命令,使能SDK環(huán)境變量并編譯SDIO WIFI驅(qū)動(dòng)。
Host# source /home/tronlong/SDK/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi Host# make
圖 24
圖 25
編譯完成后,即可在當(dāng)前路徑下生成驅(qū)動(dòng)鏡像。
|