匿名
未登录
登录
丢石头百科
搜索
查看“Jetson Nano系列教程10:采用4G模块上网(一)”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Jetson Nano系列教程10:采用4G模块上网(一)
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 1.说明 == 本章将介绍Jetson Nano如何采用SIM7600 4G模块进行无线上网,并描述其相关细节,本章将先讲解NDIS拨号。 == 2.采用4G模块的上网方式有哪些? == Jetson Nano 通过SIM7600模组,可采用以下几种方式进行无线上网: <li style="margin-bottom: 0.5em;"> 采用AT指令使用封装好的TCP,MQTT,HTTP(S) <blockquote style="display: block; padding: 15px 15px 15px 1rem; font-size: 0.9em; margin: 1em 0px; color: rgb(129, 145, 152); border-left: 6px solid rgb(220, 230, 240); background: rgb(242, 247, 251); overflow: auto; overflow-wrap: normal; word-break: normal;"> 该方式适用于资源比较紧张的微处理器,如MCU等,或适用于对数据量比较少的应用场景,如通过http(s),MQTT给服务器,云平台等上传传感器数据。 对于Jetson Nano,如果网络应用不复杂,数据量比较小时(比如传输传感器数据至服务器,接收服务器下发的控制指令),采用AT指令即可快速使用功能。 </blockquote> </li> <li style="margin-bottom: 0.5em;"> 采用NDIS驱动上网 <blockquote style="display: block; padding: 15px 15px 15px 1rem; font-size: 0.9em; margin: 1em 0px; color: rgb(129, 145, 152); border-left: 6px solid rgb(220, 230, 240); background: rgb(242, 247, 251); overflow: auto; overflow-wrap: normal; word-break: normal;"> 该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,将驱动加载到内核后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到wwan0网口,可通过该网口上网。 该方式底层依赖于SIM7600的USB虚拟串口。 该方式为官方推荐的上网方式,同样,建议采用该种方式进行拨号上网。 </blockquote> </li> <li style="margin-bottom: 0.5em;"> 采用ppp拨号上网 <blockquote style="display: block; padding: 15px 15px 15px 1rem; font-size: 0.9em; margin: 1em 0px; color: rgb(129, 145, 152); border-left: 6px solid rgb(220, 230, 240); background: rgb(242, 247, 251); overflow: auto; overflow-wrap: normal; word-break: normal;"> 该方式必须依赖于Linux系统,适用于需要采用Linux网络套接字编程开发的应用场景,配置并运行相关脚本后,将SIM7600和Jetson Nano采用USB线连接,待SIM7600开机后,即可识别到ppp0网口,可通过该网口上网。 该方式底层依赖于SIM7600的USB虚拟串口。 </blockquote> </li> <li style="margin-bottom: 0.5em;"> 采用wvdial拨号上网 <blockquote style="display: block; padding: 15px 15px 15px 1rem; font-size: 0.9em; margin: 1em 0px; color: rgb(129, 145, 152); border-left: 6px solid rgb(220, 230, 240); background: rgb(242, 247, 251); overflow: auto; overflow-wrap: normal; word-break: normal;"> 该方式的底层实现同ppp拨号上网,不再阐述。 </blockquote> </li> == 3. 准备工作 == 接下来,将介绍Jetson Nano采用NDIS驱动通过SIM7600 4G模块上网的过程。 === 3.1 硬件准备 === <li style="margin-bottom: 0.5em;"> SIM7600CE 4G HAT 及其配件</li> <li style="margin-bottom: 0.5em;"> Jetson Nano 及其配件</li> * 可上网的4G SIM卡 === 3.2 硬件连接 === 硬件连接如下图所示: [[File:20191115140317.png]] == 4. 正式开始 == === 4.1 检查硬件连接,网络连接 === <li style="margin-bottom: 0.5em;"> 长按SIM7600CE 4G HAT上的PWKKEY键,使得SIM7600CE 4G HAT开机,正常开机后,NET灯应当闪烁(若未闪烁,请检查SIM卡是否可用,或是否进入了飞行模式)。 </li> <li style="margin-bottom: 0.5em;"> 检查Jetson Nano的Ubuntu系统是否内置了高通USB串口驱动,非新版本Ubuntu镜像系统可能未内置该驱动,查看方式如下图所示: <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> # 查看Ubuntu版本 uname -a lsb_release -a cat /proc/version # 查看是否有高通USB虚拟串口驱动 lsusb </syntaxhighlight></syntaxhighlight> [[File:20191115144137.png]] 如果能看到Qualcomm/Option字样,则说明内置了高通USB虚拟串口驱动 </li> <li style="margin-bottom: 0.5em;">输入AT指令,设置为4G上网,查看网络连接状态<syntaxhighlight lang="python"> <syntaxhighlight lang="python"> # 关闭ModemManager进程,以防止minicom调试AT串口时,显示没用的数据 sudo su killall ModemManager # 安装minicom串口工具 apt-get install minicom # 查看串口设备,AT指令串口,为/dev/ttyUSB2 ls /dev/ttyUSB* # 用minicom打开串口 sudo minicom -D /dev/ttyUSB2 # 强制设置为4G上网 AT+CNMP=38 # 查询网络质量 AT+CSQ # 查询网络注册状 AT+CREG? # 查询网络运营商 AT+COPS? # 查询网络波段 AT+CPSI? </syntaxhighlight></syntaxhighlight> [[File:20191115170503.png]]</li> 至此,SIM7600CE和Jetson Nano连接正常,网络连接正常。 === 4.2 编译并安装驱动模块文件 === 在Jetson Nano默认没有simcom的用于wwan0网口的驱动模块文件,可用以下命令查看 <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> lsmod </syntaxhighlight></syntaxhighlight> [[File:20191115172607.png]] 将编译以下驱动模块源程序: [[File:20191115175209.png]] <strong style="font-weight: bold;">该源程序及其Makefile将在文章末尾出给出</strong> 为了避免交叉编译的繁琐(交叉编译需要在虚拟机Ubuntu下编译Jetson Nano内核后,再编译驱动模块),可直接将以上两个文件保存到Jetson Nano文件系统中,再编译,注意该过程需要使用超级用户,如下图所示: <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> make </syntaxhighlight></syntaxhighlight> [[File:20191115174747.png]] 由上图可查看到,已编译成内核驱动模块文件。 接下来,将安装该驱动模块文件,注意需要使用超级用户: <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> insmod simcom_wwan.ko lsmod </syntaxhighlight></syntaxhighlight> [[File:20191115175626.png]] 此时,simcom_wwan驱动模块已安装上 可查看到内核的打印信息 <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> dmesg </syntaxhighlight></syntaxhighlight> [[File:20191115180339.png]] === 4.3 开始拨号,并分配IP === 此时,可看到已经出现wwan0网口: <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> ifconfig -a </syntaxhighlight></syntaxhighlight> [[File:20191115180615.png]] 但是该网口并未分配IP地址,如需分配IP,需要 * 首先开启网口 <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> ifconfig wwan0 up </syntaxhighlight></syntaxhighlight> * 然后拨号 <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> minicom -D /dev/ttyUSB2 AT$QCRMCALL=1,1 </syntaxhighlight></syntaxhighlight> [[File:20191115181625.png]] * 最后,分配IP <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> apt-get install udhcpc udhcpc -i wwan0 </syntaxhighlight></syntaxhighlight> [[File:20191115182613.png]] 此时,已经分配到IP,可对该网口进行测试: <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> ifconfig -a ping -I wwan0 www.baidu.com </syntaxhighlight></syntaxhighlight> [[File:20191115182856.png]] 由上图可知,wwan0网口测试通过。 如果出现dns解析异常,输入以下命令可解决: <syntaxhighlight lang="python"> <syntaxhighlight lang="python"> route add -net 0.0.0.0 wwan0 </syntaxhighlight></syntaxhighlight> == 5 测速 == 最后,对采用NDIS拨号上网进行测速: [[File:20191115185342.png]] == 6 驱动源码 == simcom_wwan.c&Makefile:<a class="attach" href="portal.php?mod=attachment&id=1894" target="_blank">simcom_wwan.c和Makefile.rar
返回至
Jetson Nano系列教程10:采用4G模块上网(一)
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志