嵌入式学习小组
直播中

陈光琦

7年用户 936经验值
私信 关注

请问Jetson Nano/Raspberry Pi如何采用SIM7600 4G模块进行无线上网?

Jetson Nano/Raspberry Pi如何采用SIM7600 4G模块进行无线上网

回帖(4)

涂舒男

2020-11-10 14:09:05
  采用4G模块的上网方式有哪些?
  Jetson Nano 或Raspberry Pi通过SIM7600模组,可采用以下几种方式进行无线上网:
  采用AT指令使用封装好的TCP,MQTT,HTTP(S)
  该方式适用于资源比较紧张的微处理器,如MCU等,或适用于对数据量比较少的应用场景,如通过http(s),MQTT给服务器,云平台等上传传感器数据。
  对于Jetson Nano,如果网络应用不复杂,数据量比较小时(比如传输传感器数据至服务器,接收服务器下发的控制指令),采用AT指令即可快速使用功能。
  采用NDIS驱动上网
  该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,将驱动加载到内核后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到wwan0网口,可通过该网口上网。
  该方式底层依赖于SIM7600的USB虚拟串口。
  该方式为官方推荐的上网方式,同样,建议采用该种方式进行拨号上网。
  采用ppp拨号上网
  该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,配置并运行相关脚本后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到ppp0网口,可通过该网口上网。
  该方式底层依赖于SIM7600的USB虚拟串口。
  采用wvdial拨号上网
  该方式的底层实现同ppp拨号上网,不再阐述。
举报

张奕

2020-11-10 14:09:53
  准备工作
  接下来,将介绍Jetson Nano或Raspberry Pi采用NDIS驱动通过SIM7600 4G模块上网的过程。
  3.1 硬件准备
  SIM7600CE 4G HAT及其配件
  Jetson Nano及其配件,或Raspberry Pi 及其配件
  可上网的4G SIM卡
  3.2 硬件连接
  硬件连接如下图所示:
  
  树莓派4B接上SIM7600CE 4G扩展板
  注意:
  1.若接到40Pin引脚上使用,则注意将SIM7600的Flight Mode,PWR引脚拉低,即需要设计初始化脚本,详情见相关产品页面,否则将进入飞行模式。
  2. 若树莓派通过USB线单独给SIM7600供电,则可能出现供电不稳定,导致SIM7600开机后关机的现象。
  3.若仅仅使用拨号上网功能,则可以不接到Jetson Nano或Raspberry Pi的40Pin上。
举报

石利军

2020-11-10 14:14:22
正式开始

4.1 检查硬件连接,网络连接(该步骤必须检查并确认)


  • 长按SIM7600CE 4G HAT上的PWKKEY键,使得SIM7600CE 4G HAT开机,正常开机后,NET灯应当闪烁(若未闪烁,请检查SIM卡是否可用,或是否进入了飞行模式)。
  • 检查Jetson Nano的Ubuntu系统或树莓派的Raspbian系统是否内置了高通USB串口驱动,非新版本镜像系统可能未内置该驱动,查看方式如下图所示:
    # 查看Ubuntu版本uname -al***_release -acat /proc/version# 查看是否有高通USB虚拟串口驱动lsu***
    如果能看到Qualcomm/Option字样,则说明内置了高通USB虚拟串口驱动
  • 输入AT指令,设置为4G上网,查看网络连接状态
    # 关闭ModemManager进程,以防止minicom调试AT串口时,显示没用的数据sudo sukillall ModemManager# 安装minicom串口工具apt-get install minicom# 查看串口设备,AT指令串口,为/dev/ttyUSB2ls /dev/ttyUSB*# 用minicom打开串口sudo minicom -D /dev/ttyUSB2# 强制设置为4G上网AT+CNMP=38# 查询网络质量AT+CSQ# 查询网络注册状AT+CREG?# 查询网络运营商AT+COPS?# 查询网络波段AT+CPSI?
至此,SIM7600CE和Jetson Nano或Raspberry Pi硬件连接正常,网络连接正常。
4.2 编译并安装驱动模块文件

在Jetson Nano的Ubuntu系统默认没有simcom的用于wwan0网口的驱动模块文件,可用以下命令查看
lsmod
但是对于Raspberry Pi的Raspbian系统,默认是安装了高通的用于wwan0网口的驱动模块文件,如下图:


对于Raspberry Pi,需要先卸载该驱动(不然会与新装的驱动冲突),再安装上simcom的用于wwan0网口的驱动模块文件,卸载方式如下:
sudo surmmod qmi_wwan


在此基础上,执行后续步骤。
将编译以下驱动模块源程序:


该源程序及其Makefile将在文章末尾出给出
为了避免交叉编译的繁琐(交叉编译需要在虚拟机Ubuntu下编译Jetson Nano内核后,再编译驱动模块),可直接将以上两个文件保存到Jetson Nano文件系统中,再编译,注意该过程需要使用超级用户,如下图所示:
make
由上图可查看到,已编译成内核驱动模块文件。
接下来,将安装该驱动模块文件,注意需要使用超级用户:
insmod simcom_wwan.kolsmod
此时,simcom_wwan驱动模块已安装上。
可查看到内核的打印信息:
dmesg
Raspberry Pi编译及安装驱动模块的操作同Jetson Nano。
4.3 开始拨号,并分配IP

此时,可看到已经出现wwan0网口:
ifconfig -a
但是该网口并未分配IP地址,如需分配IP,需要

  • 首先开启网口
ifconfig wwan0 up

  • 然后拨号
minicom -D /dev/ttyUSB2AT$QCRMCALL=1,1

  • 最后,分配IP
apt-get install udhcpcudhcpc -i wwan0
此时,正常可以分配到IP。当然,没有绝对!如果一直出现“udhcpc: sending discover”,那么要反思是否没有听麻麻的话。比如树莓派下没有先按照上文卸载驱动 rmmod qmi_wwan 驱动,或者拨号时间太长又断开了,又或者上面其他步骤操作错了。。
接下来开始该网口进行测试:
ifconfig -aping -I wwan0 www.baidu.com
由上图可知,wwan0网口测试通过。
如果出现dns解析异常,输入以下命令可解决:
route add -net 0.0.0.0 wwan0
举报

张华

2020-11-10 14:15:17
测速

最后,对采用NDIS拨号上网进行测速:


注意,以上数值仅供参考,不同地域,不同运营商,测速所得出的数据略有差距,在理想的情况下,在SIMCOM实验室测试,理想上行与下行速度为20Mbps。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分