|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Tronlong123 于 2024-7-21 17:38 编辑
: ?' G8 H1 Y" x( v: t# ?; r* [) U1 _! p- ^8 o/ @+ ^
2 m$ @$ P+ _8 h {1 O* j* Q- w
目录
7 B3 s3 _6 O, T7 n& A前 言
% V& O" C9 ^& `# F5 y0 |; d+ c1 SDIO WIFI模块测试% p% Y2 R) p% l7 e, I! ^/ i) ~9 r2 v
1.1 STA模式测试' V3 l3 }/ |1 U6 N' E8 `3 R7 C
1.2 AP模式测试) `5 }- q! Y7 x6 o1 e* K4 \2 y
1.3 SDIO WIFI驱动编译
: U0 f( f3 |9 h前言本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例,适用开发环境:! f& _: K5 E5 S
Windows开发环境:Windows 7 64bit、Windows 10 64bit0 Y& u1 i, G2 o4 t& V N# d
虚拟机:VMware15.1.0
5 q5 i8 V: R5 Q" x% NLinux开发环境:Ubuntu18.04.4 64bit
0 N' ]9 q' h* N& J9 K( IU-Boot:U-Boot-2020.047 `/ x% q* Y/ [0 s1 s3 Q: i; P
Kernel:Linux-5.4.70: A I( Q$ U# l
Linux SDK:5.4.70_2.3.0
; |% I+ _1 K! p$ b! D0 q4 o5 w无特殊说明情况下,默认使用USB TO UART1作为调试串口,使用Linux系统启动卡(SD启动模式)启动系统,通过路由器与PC机进行网络连接。
0 D1 r; ~; z3 L, |9 \ r6 }6 N9 S创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
' t: l6 w$ a9 g$ t! \1 SDIO WIFI模块测试本案例使用SDIO WIFI模块型号为:RTL8189,请将SDIO WIFI模块插至评估板SDIO接口,如下图所示。3 _3 s; B, O% r$ t3 b/ Y
SDIO WIFI模块支持STA和AP模式,具体说明如下:) Z5 |! Y" o8 ?8 b6 c# S8 _7 T
(1) STA模式:在STA工作模式下,WIFI模块可接收来自无线路由器发出的信号,实现通过路由器连接互联网。) h+ i( h# }+ E H2 x1 e
(2) AP模式:在AP工作模式下,WIFI模块会创建一个无线局域网热点,手机、电脑等设备可通过此热点组建局域网。
0 _) y6 C% E+ L" c" f9 S本案例测试程序位于产品资料“4-软件资料\Demo\module-demos\sdio_wifi_test\”目录下,具体说明如下。
* r7 x1 I" z# k; [" k8 a4 W请将bin目录下所有文件和driver目录下8189fs.ko驱动文件拷贝至评估板文件系统任意相同路径下,并将SDIO WIFI模块正确连接至评估板SDIO接口。由于SDIO接口与Micro SD接口存在引脚复用关系,因此请务必将Linux系统启动卡从评估板Micro SD卡槽中取出。将评估板启动方式选择拨码开关拨为011000(1~6),此档位为NAND FLASH启动模式。
; F7 e; f+ E: I+ S4 y1.1 STA模式测试
; t2 F" m" B7 R9 [( _8 O进入评估板文件系统,在SDIO WIFI模块驱动8189fs.ko所在路径下,执行如下命令加载驱动。
9 D! M5 y% w% \) J; JTarget# insmod 8189fs.ko
) d& N+ ]" I9 Q0 |% t' P, A$ Z# |8 Z5 q; c' ?" K
* X" t- ~/ r4 w. s
执行如下命令关闭其他网络和wpa_supplicant进程,仅保留WIFI网络。
& L3 a; b+ p, s) }) o+ FTarget#ifconfig eth0 down
1 O" P( o& \3 JTarget#ifconfig eth1 down# |: G* V8 |+ s' V: p9 h. t
Target#killall -9 wpa_supplicant! X& d5 K. b% P4 c, s
Target#ifconfig wlan0 up
( b1 w3 Y, X! j2 X. ~- zTarget#ifconfig
1 R, }% ~. B, \/ X% t" F3 S在wifi_setup.sh文件所在路径下执行如下命令,将评估板通过WIFI模块连接至路由器。"-i"指定WIFI名称,"-p"指定WIFI密码,请根据实际情况修改。6 e; N+ _; {% ]! W% n9 T- X
Target#./wifi_setup.sh -i Tronlong-test -p omapl138" n, R) m# |" y% ]" K4 D+ e
执行如下命令查看获取的IP地址,并通过ping命令测试评估板与PC机通信是否正常。192.168.1.100为PC机实际IP地址,请确保评估板与PC机在同一局域网内。
$ U4 v7 ~ `/ T2 K% j) H" } qTarget#ifconfig
3 l, D2 o2 h1 d) S( ?4 h! ^Target#ping 192.168.1.100
; @5 \+ j. w- O* p7 M/ h) T- |* _ H" ?在评估板文件系统执行如下命令,查看评估板IP地址,使用IpeRF3工具测试评估板与PC机的网络通信带宽。: O2 Q6 v8 e/ z7 T6 F6 f
Target#ifconfig+ [) T4 H& C# R, }; S
Target#iperf3 -s" {2 B( I6 z; [ K
在Ubuntu系统执行如下命令测试网络通信带宽,192.168.1.103为评估板实际IP地址。测试完成后,Ubuntu和评估板均会打印测试结果。测试结果受网络环境影响,仅供参考。
3 x6 N; x% G# w4 @4 WHost#iperf3 -c 192.168.1.103 -i 1
( |& Z9 U5 l! q8 U- s6 w8 ]1.2 AP模式测试" B! c; Q( t b% T0 b0 u: t
请重启评估板系统,在SDIO WIFI模块驱动8189fs.ko所在路径下执行如下命令加载驱动。
" r1 r+ o/ j$ O7 u* }) X4 jTarget# insmod 8189fs.ko
# ?+ e+ @2 |& t! a执行如下命令关闭其他网络和wpa_supplicant进程,仅保留WIFI网络。
8 z# S, n' z4 qTarget#ifconfig eth0 down
9 @2 R5 U4 a' u* aTarget#ifconfig eth1 down
6 o4 }" V* @0 g, y2 s9 I6 fTarget#killall -9 wpa_supplicant
1 E& f" Z5 V. g* d e, f* ^4 }/ bTarget#ifconfig wlan0 up* L! A+ H; N+ _3 B" e
Target#ifconfig
6 F6 N# G; D* x' L% Z在ap_setup.sh文件所在路径下执行如下命令,将SDIO WIFI模块设置为AP模式。9 h! f9 R) {+ J2 E E. O8 k; T
Target#./ap_setup.sh
; A8 p( U3 q4 B6 H如启动AP功能过程中,出现如下问题,是由于random熵不够引起,需重启评估板,执行如下命令更换熵池,再重新测试。, X e# |" t2 c
Target# mv /dev/random /dev/random_ori2 ~8 } b. ]- X* G% H9 s
Target# ln -s /dev/urandom /dev/random
* {! E9 c! ?; z. ?, J! u1 l程序默认设置的WIFI名称为:rtl8188fs,密码为:88888888,可在rtl_hostapd_2G.conf配置文件内进行修改。
; u2 F2 z% |4 l将具有WIFI功能的PC机(比如笔记本电脑或装有USB WIFI的台式电脑)连接至此无线局域网热点,并断开已有的有线网络连接。连接成功后,串口调试终端将会打印如下信息,显示Ubuntu已分配的IP地址。如使用虚拟机 + Ubuntu的开发方式,将会获取到两个IP地址,其中一个为Windows端IP地址,一个为Ubuntu端IP地址。
/ T2 z3 W0 Y& u执行如下命令测试无线局域网设备之间网络连接是否正常。若出现连接超时或失败,可尝试关闭PC机防火墙后再次连接。7 i! y d* N- ?
Target#ping 192.168.0.21 //192.168.0.21为Ubuntu端IP地址
' U, V& B. x# ^) j' I( n& O在评估板文件系统执行如下命令,查看评估板IP地址并等待PC机连接。2 r- n7 q8 ]1 R7 A* j8 s0 f
Target#ifconfig8 @5 m. |7 }& u! o. s/ z, a
Target#iperf3 -s" a* g( S ?! K; E
在Ubuntu系统执行如下命令测试网络通信带宽,192.168.0.1为评估板实际IP地址。测试完成后,Ubuntu和评估板均会打印测试结果。测试结果受网络环境影响,仅供参考。
+ Y( ^0 S# Q$ r+ i" P( n8 OHost#iperf3 -c 192.168.0.1 -i 1/ X' n6 P) Z ~% K J: D4 t! b
测试完成,请将评估板断电,拔出SDIO WIFI模块,将Linux系统启动卡插入Micro SD卡槽,启动方式选择拨码开关拨为010100(1~6) SD启动模式。! L: J7 l" f$ d5 Z" R" _& F+ S) p
1.3 SDIO WIFI驱动编译: }; E$ Y- E" I* H. u; n/ y
请将案例src目录下的驱动源码rtl8189FS.tar.gz拷贝至Ubuntu工作目录下,执行如下命令将源码压缩包解压至该目录下。
6 E0 }6 s9 K* P& ^& }1 e& LHost#tar -xf rtl8189FS.tar.gz( W4 n' G$ \1 F1 s3 r
执行如下命令,进入驱动源码目录,修改顶层Makefile文件
+ G( ?: B5 Y8 w c$ L l# D3 IHost#cd rtl8189FS/
( D2 G2 Z- Q. N$ |Host#vim Makefile' M- N" `3 U$ c( Y' B. s
Makefile文件内容请按如下说明进行修改。% L, q- f8 N! N. K- P9 B7 E
KSRC = /home/tronlong/IMX6/Kernel/Linux-5.4.70 //指定内核源码实际路径( M T8 P: \8 K) R
在驱动源码所在路径执行如下命令,使能SDK环境变量并编译SDIO WIFI驱动。0 }. ]/ F7 O6 X% U2 W8 J- V, u& u
Host# source /home/tronlong/SDK/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi
0 b/ r5 b# g% ~" l8 M: |2 I; ~2 o) mHost#make
. f3 Q2 j% Y7 c编译完成后,即可在当前路径下生成驱动镜像。$ [ l5 {2 A: c1 J' B
|
|