5G行业终端与模组07-基于树莓派和英伟达Jetson开发板的华为5G模组扩展模块DIY与调试

举报
姚家伟(X Labs) 发表于 2020/02/27 09:01:14 2020/02/27
【摘要】 AI、5G生态圈的科技公司在做产品原型设计阶段采用最多的两种开发板有英伟达的Jetson和蓝莓派开发板,两种开发板的尺寸都比较小,并有成熟完善的生态圈,适合开发各种类型的终端设备。两种开发板各有特点和优势,英伟达Jetson平台基于超强的GPU算力,并提供开发工具,用于开发和部署 AI 助力的机器人、无人机、IVA 应用程序以及其他独立思考的自主机器。树莓派的尺寸相对于英伟达Jetson平台...

AI5G生态圈的科技公司在做产品原型设计阶段采用最多的两种开发板有英伟达的Jetson和蓝莓派开发板,两种开发板的尺寸都比较小,并有成熟完善的生态圈,适合开发各种类型的终端设备。

1582765041381215.png

两种开发板各有特点和优势,英伟达Jetson平台基于超强的GPU算力,并提供开发工具,用于开发和部署 AI 助力的机器人、无人机、IVA 应用程序以及其他独立思考的自主机器。

1582765051971897.png

树莓派的尺寸相对于英伟达Jetson平台系列开发板要更小,更方便携带、功耗更低、价格更便宜,树莓派虽小,但五脏俱全和普通电脑无异,并同样具有强大的爱好者生态圈,可以实现智慧家庭终端、消费终端、AIoT等应用。

随着5G网络的部署,各类5G终端产品在火热的开发中,这两类开发板的应用接入5G网络的诉求也越发强烈,目前的传统的方案是采用CPE或者手机等消费类终端,这类产品多为消费类终端产品并且软件开放程度不高,不利于二次开发,尤其是采用私有协议的垂直行业类终端。

1582765060695232.png

 

针对这一痛点,本文介绍一种比较好解决方案:基于华为MH5000系列5G通讯模组做二次开发,利用其原生的5G网络接入能力可以非常方便的进行二次开发。华为MH5000系列模组的介绍在前序文章中有过介绍,这里就不重复描述了。基于MH5000系列模组,华为X Labs与合作伙伴一起做了一块尺寸较小的5G模组扩展板,用到了MH5000模组的电源、SIM、天线、USB等接口。

1582765072589696.png

一、硬件连接

以树莓派为例,5G模组扩展模块的整体DIY方案及系统硬件连线图如下图所示。由于华为5G模组已经将基带、射频、存储、电源等芯片整体封装在一起,并对外提供了标准接口,所以整体的硬件连接方式比较简单,原理上就是将华为5G模组的USB接口引出接入到树莓派(或Jetson开发板)上,并供电。

1582765335309299.png

二、Linux内核驱动集成

硬件连接部分主要是完成后,就是在开发板操作系统上完成驱动集成。两种开发板基本上都是基于Linux系统的,下面就以Linux系统为例子介绍一下集成的方法,主要涉及修改的Linux内核源代码文件为:

linux_src/drivers/usb/serial/option.c 

linux_src/drivers/usb/serial/usb_wwan.c 

linux_src/include/linux/usb.h

1usb.hoption.c文件修改

步骤 1 linux_src/include/linux/usb.h 中添加如下宏

1582765096157338.png

步骤 2 linux_src/drivers/usb/serial/option.c 文件中的 static const struct usb_device_id option_ids[] id 列表中增加如下语句,用于匹配设备数据(最新的usb驱动下实际只要更新最后一行即可,如下)。

{ USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7D) },

2、根据 USB 协议,添加关于传输中对于零包的处理。 修改文件为 linux_src/drivers/usb/serial/usb_wwan.c

步骤 1 增加对 bcdUSB 值的定义:#define HW_bcdUSB 0x0110

增加对华为 vid 值的定义:#define HUAWEI_VENDOR_ID 0x12d1

1582765104834661.png

步骤 2 linux_src/drivers/usb/serial/usb_wwan.c 文件中的usb_wwan_write函数内增加 定义:struct usb_host_endpoint *ep=NULL;

1582765114895545.png

步骤 3 usb_wwan_write 函数增加对零包的判断,增加位置如红框所示:

1582765123719815.png

3、内核文件的编译配置

文本配置方式,修改 linux_src/目录下的.config 文件。

1)         USB 串口驱动相关的配置项:

CONFIG_USB_SERIAL=y

CONFIG_USB_SERIAL_OPTION=y

CONFIG_USB_SERIAL_WWAN=y

2)         PPP 拨号的相关配置项:

CONFIG_PPP=y

CONFIG_PPP_MULTILINK=y

CONFIG_PPP_FILTER=y 

CONFIG_PPP_ASYNC=y 

CONFIG_PPP_SYNC_TTY=y 

CONFIG_PPP_DEFLATE=y 

CONFIG_PPP_BSDCOMP=y

4、编译和安装完成后,重启模组。

1)         重启设备,模组上电,查询是否新增了wwan0ttyUSB设备;

 命令:dmesg

1582765134957621.png

2)         wwan0网卡自动获取IP sudo dhclient wwan0

1582765146566117.png

详细的操作可以参考《华为模块 Linux内核驱动集成指导》

 

三、连接网络及测试

以上完成后,开发板与5G模组直接已经连通了,可以执行拨号与速率测试了。

1、  选用minicom等串口工具,登录模组,执行下面的AT命令进行拨号及调试。

1)         拨号入网

命令:at^ndisdup=1,1

若加APN直接在后面添加”APN名称如:

AT^NDISDUP=1,1,"CloudVision"

2)         查询IP

AT命令:at+cgpaddr

相关的执行结果可以参考如下:

1582765165404626.png

其他的一些模组及网络连通性测试命令,可以详细参考下面的文章,这里不做详细描述:

链接:https://bbs.huaweicloud.com/forum/thread-42145-1-1.html

2、  ifconfig检查系统当前的状态,可以看到拨号完成后,wwan0获取到了IP

1582765178962135.png

3、  选用灌包测试工具测试网速(受限于测试网络及信号状态,实际网速仅做参考)

上行测试结果:80Mbps

1582765186777304.png

下行测试结果:200Mbps

1582765195272527.png

 

至此,树莓派或Jetson开发板已经完成了与模组的连接及调试,新增了5G网络连接的功能,可以正常连接到网络中作为一个5G终端原型进行实际业务开发了。后续将介绍一些基于“树莓派+5G扩展板”的5G行业终端原型及5G行业业务模拟器,欢迎大家持续关注。

 

大家对于5G模组及行业终端有兴趣的话可以参考以下的系列文章,有相关问题欢迎交流和咨询:华为X Labs实验室:yjw.yao@huawei.com

第一篇:《5G 行业终端与模组系列 01 - 行业终端痛点与通讯模组》

链接:https://bbs.huaweicloud.com/forum/thread-41869-1-1.html

第二篇:《5G行业终端与模组02 - 行业终端环境可靠性设计》

链接:https://bbs.huaweicloud.com/forum/thread-42044-1-1.html

第三篇:《5G 行业终端与模组系列 03 - 5G行业终端(集成华为MH5000模组)网络连通性测试指导书》

链接:https://bbs.huaweicloud.com/forum/thread-42145-1-1.html

第四篇:《5G行业终端与模组04 - X Labs 5G行业终端应用集成验证服务》

链接:https://bbs.huaweicloud.com/forum/thread-42182-1-1.html

第五篇:《5G行业终端与模组05 - 功耗与散热设计》

链接:https://bbs.huaweicloud.com/forum/thread-42421-1-1.html

6篇:《5G行业终端与模组06 天线设计》

链接:https://bbs.huaweicloud.com/forum/thread-43905-1-1.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。