|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Tronlong123 于 2024-7-21 17:38 编辑 . L0 i8 Z8 D2 o2 c3 W
s r& l; t! ^+ H2 }- Z/ _1 @7 { @
目录
9 Q" m( X- h/ {. g: `( K前 言
Z& L+ R9 w1 F; ]1 SDIO WIFI模块测试
, [ o0 X1 [, b5 I) [4 Q. l5 D; B1.1 STA模式测试( Y1 `' @: R; `
1.2 AP模式测试0 |, {9 p0 S1 r$ D1 q! F
1.3 SDIO WIFI驱动编译9 Q5 \/ d7 [8 O8 k# O6 \+ Y0 m
前言本文主要介绍基于创龙科技TLIMX6U-EVM评估板的物联网模块开发案例,适用开发环境:3 g2 _4 X; A* ^. |8 N8 \
Windows开发环境:Windows 7 64bit、Windows 10 64bit6 f+ m: H. ?9 P1 b( Y- M8 u2 O9 o
虚拟机:VMware15.1.0/ K: L+ H# n7 [$ n% O. q
Linux开发环境:Ubuntu18.04.4 64bit* s5 {8 X2 \ H# {, p
U-Boot:U-Boot-2020.04
& r! E1 f; p2 a0 Q* T+ K( H) eKernel:Linux-5.4.70: f# G4 s8 }: ]1 ^
Linux SDK:5.4.70_2.3.0$ h! i# z8 I; s- ?3 y
无特殊说明情况下,默认使用USB TO UART1作为调试串口,使用Linux系统启动卡(SD启动模式)启动系统,通过路由器与PC机进行网络连接。4 t, b/ C5 }& o( o
创龙科技TLIMX6U-EVM是一款基于NXP i.MX 6ULL的ARM Cortex-A7高性能低功耗处理器设计的评估板,由核心板和评估底板组成。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。3 U: l# q E: d6 K0 q
1 SDIO WIFI模块测试本案例使用SDIO WIFI模块型号为:RTL8189,请将SDIO WIFI模块插至评估板SDIO接口,如下图所示。
: T3 m0 h/ E7 ~$ {, J |' KSDIO WIFI模块支持STA和AP模式,具体说明如下:
. }1 U0 A; |/ K1 t* G5 ?8 m(1) STA模式:在STA工作模式下,WIFI模块可接收来自无线路由器发出的信号,实现通过路由器连接互联网。
( {) ]; j4 ~, e; J' q(2) AP模式:在AP工作模式下,WIFI模块会创建一个无线局域网热点,手机、电脑等设备可通过此热点组建局域网。* I0 ]5 {! R, t, ^7 A
本案例测试程序位于产品资料“4-软件资料\Demo\module-demos\sdio_wifi_test\”目录下,具体说明如下。4 N# u' x2 t _8 c) Q5 t% T7 r
请将bin目录下所有文件和driver目录下8189fs.ko驱动文件拷贝至评估板文件系统任意相同路径下,并将SDIO WIFI模块正确连接至评估板SDIO接口。由于SDIO接口与Micro SD接口存在引脚复用关系,因此请务必将Linux系统启动卡从评估板Micro SD卡槽中取出。将评估板启动方式选择拨码开关拨为011000(1~6),此档位为NAND FLASH启动模式。
* A8 _5 j4 h: E* Y; g0 ^1 R1.1 STA模式测试
1 Q! X, a4 |$ O8 V0 O/ P3 P进入评估板文件系统,在SDIO WIFI模块驱动8189fs.ko所在路径下,执行如下命令加载驱动。
% g6 o4 Z K" `) T' k3 g8 x0 ETarget# insmod 8189fs.ko' m7 ]% {6 H0 {
+ V0 O9 L, w8 Y: _4 [/ k7 T+ e) ?" x4 L n- M( X5 W/ s
执行如下命令关闭其他网络和wpa_supplicant进程,仅保留WIFI网络。
/ f7 l! F% S4 j7 v8 uTarget#ifconfig eth0 down! V: Y) U2 u6 J1 f5 Z- t8 `# F
Target#ifconfig eth1 down# a2 C, |: f4 h: _- Y) g' F
Target#killall -9 wpa_supplicant' k5 L' R! l# Z
Target#ifconfig wlan0 up
V0 K' t, O/ H& fTarget#ifconfig# ^1 v4 n" S: z K
在wifi_setup.sh文件所在路径下执行如下命令,将评估板通过WIFI模块连接至路由器。"-i"指定WIFI名称,"-p"指定WIFI密码,请根据实际情况修改。
* `: H2 e0 w2 o' J6 g$ }0 K- WTarget#./wifi_setup.sh -i Tronlong-test -p omapl138
" @! O! v6 y* `; ^0 k执行如下命令查看获取的IP地址,并通过ping命令测试评估板与PC机通信是否正常。192.168.1.100为PC机实际IP地址,请确保评估板与PC机在同一局域网内。7 [' B6 Z' {0 p
Target#ifconfig- R0 J$ Y0 b# I- h
Target#ping 192.168.1.100+ K) |7 {; \* J: r9 v7 g
在评估板文件系统执行如下命令,查看评估板IP地址,使用IpeRF3工具测试评估板与PC机的网络通信带宽。6 i! O) g5 \ n( T$ y: [
Target#ifconfig
$ @2 n# K d/ b( v% n1 LTarget#iperf3 -s. \# G) s6 F, r6 @3 r
在Ubuntu系统执行如下命令测试网络通信带宽,192.168.1.103为评估板实际IP地址。测试完成后,Ubuntu和评估板均会打印测试结果。测试结果受网络环境影响,仅供参考。; Y2 `4 V0 J8 S, t: Z
Host#iperf3 -c 192.168.1.103 -i 1
" Z3 e! w/ ?/ G r1.2 AP模式测试
: o% J* ?8 F$ j& F, N8 ~9 }请重启评估板系统,在SDIO WIFI模块驱动8189fs.ko所在路径下执行如下命令加载驱动。
) R4 G1 @& S4 {Target# insmod 8189fs.ko
. i& _/ q1 h |- Q# l& z执行如下命令关闭其他网络和wpa_supplicant进程,仅保留WIFI网络。
, ~6 f) D0 o* w, \Target#ifconfig eth0 down
7 ^( `. P( D2 M2 sTarget#ifconfig eth1 down4 Y3 [6 `. Z0 r; n! f
Target#killall -9 wpa_supplicant6 n4 i% W# j& m. ^5 K
Target#ifconfig wlan0 up
2 b8 a/ B) |. A1 K1 N6 QTarget#ifconfig
* h( t% N+ z' p! D( x在ap_setup.sh文件所在路径下执行如下命令,将SDIO WIFI模块设置为AP模式。
( \% H4 K- z: V# X0 {Target#./ap_setup.sh, ~7 A4 R- ^) F4 m2 N
如启动AP功能过程中,出现如下问题,是由于random熵不够引起,需重启评估板,执行如下命令更换熵池,再重新测试。% v" i, ~0 `/ ^8 b' b
Target# mv /dev/random /dev/random_ori1 X3 l* l4 y4 f- q6 Y" x/ j
Target# ln -s /dev/urandom /dev/random7 ?# u! w3 ~$ `/ d1 O0 z1 V
程序默认设置的WIFI名称为:rtl8188fs,密码为:88888888,可在rtl_hostapd_2G.conf配置文件内进行修改。; E5 A" Z+ O- f' u" s5 d2 \/ U4 X
将具有WIFI功能的PC机(比如笔记本电脑或装有USB WIFI的台式电脑)连接至此无线局域网热点,并断开已有的有线网络连接。连接成功后,串口调试终端将会打印如下信息,显示Ubuntu已分配的IP地址。如使用虚拟机 + Ubuntu的开发方式,将会获取到两个IP地址,其中一个为Windows端IP地址,一个为Ubuntu端IP地址。# s( W: Y5 q5 y/ R
执行如下命令测试无线局域网设备之间网络连接是否正常。若出现连接超时或失败,可尝试关闭PC机防火墙后再次连接。' g) ~7 b8 @7 [, z4 N5 h; C) K' h
Target#ping 192.168.0.21 //192.168.0.21为Ubuntu端IP地址1 k. m {& c% W# K6 `, @! C
在评估板文件系统执行如下命令,查看评估板IP地址并等待PC机连接。
! H2 M7 S" O. B- }) T' kTarget#ifconfig
$ N: B2 J" Z% hTarget#iperf3 -s8 A8 u/ c0 S$ c& x+ g% E
在Ubuntu系统执行如下命令测试网络通信带宽,192.168.0.1为评估板实际IP地址。测试完成后,Ubuntu和评估板均会打印测试结果。测试结果受网络环境影响,仅供参考。
` J, h0 k! a5 o, H& J" J0 fHost#iperf3 -c 192.168.0.1 -i 1
0 |3 l9 V5 s" z) M测试完成,请将评估板断电,拔出SDIO WIFI模块,将Linux系统启动卡插入Micro SD卡槽,启动方式选择拨码开关拨为010100(1~6) SD启动模式。
: U# B* T$ ^% L& k/ z. B. g/ j1.3 SDIO WIFI驱动编译2 e; I! \ o7 C! K( W3 l
请将案例src目录下的驱动源码rtl8189FS.tar.gz拷贝至Ubuntu工作目录下,执行如下命令将源码压缩包解压至该目录下。7 L7 y0 b' h2 X* S
Host#tar -xf rtl8189FS.tar.gz( d% B8 ?& U! ~: w( _
执行如下命令,进入驱动源码目录,修改顶层Makefile文件0 y: V Q8 [# J X4 {6 l6 i8 l' t
Host#cd rtl8189FS/! A0 F- w$ c- f% S* L H6 R v
Host#vim Makefile+ R$ |" b, T' ^, y. i
Makefile文件内容请按如下说明进行修改。
) ]. _6 o; b( pKSRC = /home/tronlong/IMX6/Kernel/Linux-5.4.70 //指定内核源码实际路径
j( G# _( o5 E+ \& ^! d在驱动源码所在路径执行如下命令,使能SDK环境变量并编译SDIO WIFI驱动。
3 h' r/ G' u- J: ~Host# source /home/tronlong/SDK/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi
4 K* ~, g1 B+ o3 M8 RHost#make! F) q- R( u/ H6 J
编译完成后,即可在当前路径下生成驱动镜像。
* |" q3 ^% y2 q7 B; L |
|