EDA365电子论坛网

标题: RK3588的4G模组如何使用 [打印本页]

作者: 罗罗诺亚    时间: 2023-6-28 15:03
标题: RK3588的4G模组如何使用

8 g* z$ }1 t6 W& E% ]+ R0 P, G

2 w' }4 ?# V. ^4 g一、Gobinet/QMI-WWAN/PPP拨号概述
4 y: ~5 k: ^! \$ R2 G
1. Gobinet拨号
0 n  h" R4 `/ b2 F9 X" d. P
4 I' o. Q$ q+ p( C' K7 T, B
GOBI 高通Gobi无线宽带芯片技术,只需一个模块即可支持多种移动宽带网络和众多移动运营商。高通公司称全新的芯片将基于Gobi 4G LTE无线基带、MDM9615和MDM9215。这种技术可以在FDD和TDD网络下进行LTE连接,同时支持HSPA+和EV-DO网络、2G/3G网络。这意味着用户可以在本地使用高速4G LTE网络,在其他地方使用3G网络。Gobi平台在MDM芯片组的基础上还提供了软件增强层,这样可以使用不同技术下的无线连接更简单。8 T) u& `3 I6 R. h0 W% \$ M. }% b+ W
2 u( `& K8 H' I5 T
2. QMI-WWAN协议拨号
$ R! @: O' C# q% y: M
/ }7 u% F) c/ i( F& X3 \
QMI: Qualcom Message Interface
' M2 S% x5 T- }0 {: Y7 v. M
3 M! G! z* y- b* r
MSM: Mobile station mode
) x# d$ o5 {% f9 Q1 K
& R* ^2 o8 P( P9 P% ]' o% A
AP: Application Procesor5 V* `+ ?; ~2 ]* E" x$ Z* H
, X% M5 B# ^- ?4 r8 J6 r
高通平台目前都是非对称多核心,最主要的是AP和Modem。两个处理器怎么进行通信呢,我们把AP和Modem当作两个主机,问题就变得了很简单,TCP/IP协议不是一种非常成功的进程间跨主机通信方式。高通没有采用这种方式,但是借鉴了TCP/IP的框架设计。4 G8 d" x& K. y+ D
1 A: N, \3 V" ]  k  r0 w, x
Qualcomm MSM Interface,作用用于AP和BP侧的交互,通俗说法就是让设备终端TE(可以是手机,PDA,计算机)* i8 `: d6 j" @' R- o) f& z! A

) i% g* ~. ^9 q5 @0 @' G对高通BP侧的AMSS系统进行操作,如调用函数,读取数据,设置其中的NV项等。. b# K+ y+ \# o" x& }0 D: h: L3 V
$ G, h* c4 o) N& K* |& y* P/ \* N, E
3.PPP协议拨号:点对点协议
: V7 }3 ~3 |( s6 l

; ]! u- H/ Q; c  t  E' @PPP(点到点协议)在拨号过程中用于MS和PC间数据交互、协商。在拨号流程的初期首先开启的就是PC和MS直接的PPP过程,在拨号成功后,还需要依靠PPP协议对IP包进行封装传输数据
: M3 a0 @+ b6 C* z
% V- [( O' _& S9 d% j
官网源码:https://ppp.samba.org4 L( L) V0 I3 p/ |3 ?

) J5 E6 s6 |& L. C$ {9 x二 、驱动检查
% l/ B* C$ D( c7 K9 D; H* [- P
# |, A4 I, J+ g9 G" x/ U  w9 b( c
4 h8 a) U3 W8 H$ j7 _8 k  |

8 y. O1 r6 F' b* j$ Q4 }, l首先检查是否有USB设备信息。% B, }. j6 D- B1 m

1 s3 h) I7 i0 m: e3 Y
: Z' j9 h, U, Y
" f/ R, I+ i  {: q) H" ?

/ h! z" T: W, E6 X' D  |
[backcolor=rgba(18, 18, 18, 0.5)]​
7 K- Y8 G4 D1 Y3 v: g" n& A3 h8 P% ?% z- D) Q7 j( t

9 O  m9 I( D" v2 O. U) q
3 v, J  w9 K. \- Y  n7 J$ P# U/ `! _" e2 Z. V( o
编辑切换为居中
0 |) Q7 [$ h+ Y2 y5 [& _& r5 N& J0 O- j, c. s8 V7 r

2 s6 W9 M7 X" p8 k9 a' \+ l1 S6 z1 S2 V- t4 ]! `! x

4 Z& C. C4 S# s0 y; A/ ?8 l7 ~
3 j# T, {- k$ Y9 w% s
" b; X! S' q1 c; q; g6 f+ q
, L. R4 _. R1 _! j( g/ R( m2 L" y2 y1 d2 B/ `: X3 {

, B% `1 h+ ~& e2 C' `然后在dev目录下查看设备。/ @# O/ H7 S8 h4 j
8 w6 C* }5 L: i) @
6 k9 [2 S$ Z0 a; _" h! u* L# y

  `0 ]& a0 `: R! M0 X3 }* T9 s2 y( t

1 f. Y, Y) r) s/ ~/ c
[backcolor=rgba(18, 18, 18, 0.5)]​
5 g7 }+ [3 \/ _. l0 I9 }5 k0 L% {* H/ M
! m- o% p5 J4 G& l2 E
' K$ t& @! B& J2 U5 F
. L9 d3 Q: N/ w5 P" Q" m
编辑切换为居中3 l) K5 {+ L6 J; J& ~! ^% {: P
: O8 V6 I. h5 G9 E4 z# |
6 C: h& V) ?% ^% Q
" B9 Y1 U( C4 `  d& V! q, u' g) b

8 U- ?5 |% w7 |5 m9 ?% t2 Z# l
" k# l8 e' R' @) v! P  c
1 g: \, q) q) H* O
0 m8 l( n2 F. X, a) i' g) o

/ q) J/ i9 l3 E& g+ n" Q  c& w$ X. g2 O6 z另外在dev下还有一个qcqmi0。) q2 w  T$ B, J4 \! d9 M- b& b! H

* a5 }5 u) y/ A2 `9 N0 w: @1 V9 M* J( T0 d9 u) t/ t6 j" n4 R
' Q: \4 I/ [+ k% M7 S6 z# Q
7 ~; L# g' y' a3 B8 n" H: f
[backcolor=rgba(18, 18, 18, 0.5)]​
; Y# s4 p$ s% l' G. @4 r
8 Y& p8 i! A( m0 A6 |: N

" q9 o& n, q" D$ G! A  g' r. g" q3 ~2 \7 v$ f5 l5 x
) i1 l, ?9 R1 X0 W: g8 T
编辑切换为居中+ Q; f7 h- i' l* N% ?' ^/ _/ X8 Y

, S' Q* O& [/ F4 E' f: s; g* V: b8 m+ U

+ s0 y1 m7 G) r. K% w9 r9 a% Y2 h  Q5 S
: m% C% I4 Z8 M3 ~5 A+ ?

& O( U: M3 t; T- Q* D
) i/ s" X+ Y4 N, Z
4 Y1 _2 m# U! H3 w; B  ^! `- X

: J9 l9 W7 \8 {4 h6 d5 {* [说明驱动已经集成了GobiNet。
1 U3 ^' z& b8 r7 n+ _+ G7 B
8 j3 e* v& e! E4 S" [' P
三、拨号上网+ a$ g4 y8 c* z! h
拨号程序使用移远提供的quectel-CM,这是一个4G连接管理程序,交叉编译后得到可执行bin“quectel-CM”,将quectel-CM下的Makefile文件修改成如下,然后 make+ H& @9 V( Y+ X0 I
* X9 ?! q5 o: K2 R7 v, B
CC:= aarch64-linux-gnu-gcc
' l0 U4 a7 q! s
. T9 `5 [* y5 d! F* M4 G5 G8 M
[backcolor=rgba(18, 18, 18, 0.5)]​
8 @- a+ m$ S1 D0 t, s) M, v4 s& `  `  D/ v* V3 K9 _2 G7 s0 W
. Z7 Z% `9 B2 @

0 q6 b! p( [7 Y5 F) V$ s# o( n& U  r6 R6 z8 c
编辑切换为居中
9 U9 U6 C* j( g, j. B8 A9 L2 O; }/ \, M+ {* ?$ T7 ^, g# L

7 v0 ?. n$ B& O* n
6 }( i% `' Q, H% B7 b
) b6 J  N& x) g4 X6 K! g; w4 z' Q6 W+ _% ?% I( D- p1 P
  H. ^) k: Y; h1 T( G
把这个bin放到OK3588-C开发板上启动后上述一、二驱动没有问题的情况下直接执行该bin就可以。将quectel-CM可执行程序拷贝到OK3588-C开发板中。- q8 O& W4 J7 n8 l/ [  C- a
: t6 [7 |/ r# }6 l6 w3 s; S
【注】移动是[cmnet],电信是[ctnet]。+ k0 T; S" o/ \, J

; r$ [* G% Q% I0 [" {) d7 ^; D6 t
$ ./quectel-CM -s ctnet &root@ok3588:~# [03-16_23:36:36:353] WCDMA<E_QConnectManager_Linux&Android_V1.1.34[03-16_23:36:36:356] ./quectel-CM profile[1] = ctnet///0, pincode = (null)[03-16_23:36:36:364] Find /sys/bus/usb/devices/1-1 idVendor=2c7c idProduct=0125[03-16_23:36:36:370] Find /sys/bus/usb/devices/1-1:1.4/net/usb0[03-16_23:36:36:375] Find usbnet_adapter = usb0[03-16_23:36:36:380] Find /sys/bus/usb/devices/1-1:1.4/GobiQMI/qcqmi0[03-16_23:36:36:386] Find qmichannel = /dev/qcqmi0[03-16_23:36:36:454] Get clientWDS = 7[03-16_23:36:36:486] Get clientDMS = 8[03-16_23:36:36:518] Get clientNAS = 9[03-16_23:36:36:550] Get clientUIM = 10[03-16_23:36:36:583] Get clientWDA = 11[03-16_23:36:36:614] requestBaseBandVersion EC20CEFAGR06A08M4G[03-16_23:36:36:710] requestGetSIMStatus SIMStatus: SIM_READY[03-16_23:36:36:710] requestSetProfile[1] ctnet///0[03-16_23:36:36:774] requestGetProfile[1] ctnet///0[03-16_23:36:36:806] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:36:837] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED[03-16_23:36:36:902] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:40:870] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:41:958] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW[03-16_23:36:42:118] requestRegistrationState2 MCC: 0, MNC: 0, PS: Attached, DataCap: 1XEVDO_REVB[03-16_23:36:42:182] requestRegistrationState2 MCC: 0, MNC: 0, PS: Attached, DataCap: 1XEVDO_REVB[03-16_23:36:42:214] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe[03-16_23:36:44:166] requestRegistrationState2 MCC: 460, MNC: 11, PS: Detached, DataCap: UNKNOW[03-16_23:36:45:158] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE[03-16_23:36:45:222] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE[03-16_23:36:45:285] requestSetupDataCall WdsConnectionIPv4Handle: 0x871aef60[03-16_23:36:45:382] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE[03-16_23:36:45:413] requestQueryDataCall IPv4ConnectionStatus: CONNECTED[03-16_23:36:45:478] ifconfig usb0 up[03-16_23:36:45:496] Fail to access /usr/share/udhcpc/default.script, errno: 2 (No such file or directory)[03-16_23:36:45:500] busybox udhcpc -f -n -q -t 5 -i usb0udhcpc: started, v1.30.1udhcpc: sending discoverudhcpc: sending select for 10.21.127.53udhcpc: lease of 10.21.127.53 obtained, lease time 7200[03-16_23:36:46:534] requestRegistrationState2 MCC: 460, MNC: 3, PS: Attached, DataCap: 1XEVDO_REVB[03-16_23:36:46:566] requestRegistrationState2 MCC: 460, MNC: 3, PS: Attached, DataCap: 1XEVDO_REVB
2 e: q" s' c9 U5 E. a5 R+ x
这就是拨号成功了,当然也可查看IP信息。9 N9 `$ P  X% O, Z# \  f

. d8 y+ B1 f; r' t! ~2 _
+ k. v6 D7 k; F# A  y* a$ n* q2 w! \4 e) l6 S* w- t8 {
( f# h, ~" o2 M3 g4 S5 f
[backcolor=rgba(18, 18, 18, 0.5)]​
/ \* ]1 E" o8 n7 r- ~, ]7 |
/ J: `  }; U- [! C
" a8 D5 ]/ s7 Q3 v

4 |8 p2 [+ g& [# G( r* W9 a8 Q5 J
9 p6 f3 w5 T5 ], X- m编辑切换为居中. M) w% `% G* K' ?+ \" p
* N' n' p7 j0 }( X/ r+ Y+ ]
9 @6 ~0 A$ P5 d  \! P
) z- x. `4 q& v

# E9 l2 h" H" v6 X
* {# ?& e' c" c. f0 h
# T1 H& \4 @  |$ o" X1 d" j6 c0 J$ v% i) ^. x/ @

& E% f& O* ?1 Q+ V$ @% K" l

. C: ]/ b. o0 e( `# y' h5 f1 s3 b& P

# `, ~: W- f( D4 b; B1 R
/ s( k  @+ D3 I! z/ w' }; p& F! m
接下来就是ping一下看是否可以联网。
* W; A6 H$ M) C8 p

! k- R) v4 ^1 A: F& z3 u7 I# ping 211.149.226.120
& P4 p+ ~7 t1 G7 i9 s: l$ \4 q9 P1 x

5 c7 Z4 j  m0 w$ J  r
9 D' A: P. U& H, o+ [* w1 X5 @8 S: S6 k- p4 k! u

  J1 l# l6 S/ i
[backcolor=rgba(18, 18, 18, 0.5)]​& y! H; _$ ~# d/ y

" e  m# l: g0 H& B0 b# `* V
  [7 |( g, \/ P% v! k* b% B0 {

- t; j- }1 D4 Y, @% l, z9 v: w
/ I2 C0 q8 L# }5 q+ r编辑切换为居中
( t8 }: ]1 Q3 j2 T& X6 c: p
! D& _, f0 }2 C7 H; n8 Y# c4 d& L, E. R& z, m3 z

( X) L' A! M5 M, W4 y. P4 c. M% ]6 {4 p( A5 ^2 N0 {* x

* c# m  {# ]( t+ J- g) G( D' z1 h, F5 E, A& l: ^# B' c$ M% W

& u7 k) k6 T9 J7 W6 r: N
7 s  \' ]) g7 ^( T& ]

7 h7 z# v+ O, z. }可以看到能ping通外网。
  g$ R& H- N) {! E' c
  c) ^/ G' [' h  b
这样设备就可以作为一个移动的网关的,配上无线网络,就可以做一个无线路由器了。
5 ~$ e7 ?$ C. w0 c

6 E0 E: C( F! l4 e, j; p
6 I2 e  Z3 [; E3 F  U
作者: ggfhkl45    时间: 2023-6-28 18:07
有模块的开发板嘛
3 S5 A( z8 x/ k! |+ M




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2