1. 5G通信模组

这次移植的5G通信模组选择的是深圳广和通公司生产的FG650 5G通信模组,对外的通信数据接口为USB2.0, USB3.0两个接口。FG650模组默认工作在NCM驱动模式,如果不是可以通过串口发送AT指令AT+GTUSBMODE=36来修改成工作在NCM模式。

  1. linux内核代码的修改

可以根据厂家的提供的《FIBOCOM Fx650 & FG652系列 ECM & NCM & RNDIS拨号指南 _Linux》文档说明来进行,

内核代码的修改主要修改就2个点。

A.打开内核源码文件 打开内核源码文件 打开内核源码文件 打开内核源码文件 打开内核源码文件 option.c(路径一般为 路径一般为 路径一般为 drivers/usb/serial/option.c)。在源码中找到 。在源码中找到 。在源码中找到 。在源码中找到 。在源码中找到 option_ids数组, 数组, 在数组中添加 在数组中添加 在数组中添加 FG650的 PID/VID。 注意 ECM/NCM/RNDIS等不同模式下的 等不同模式下的 等不同模式下的 等不同模式下的 PID是不一样的。需要根据模 是不一样的。需要根据模 是不一样的。需要根据模 是不一样的。需要根据模 是不一样的。需要根据模 是不一样的。需要根据模 是不一样的。需要根据模 是不一样的。需要根据模 组的 模式添加相应组的 模式添加相应组的 模式添加相应组的 模式添加相应组的 模式添加相应PID/VID(请参考 (请参考 (请参考 USB端口章节),或者可以把 端口章节),或者可以把 端口章节),或者可以把 端口章节),或者可以把 端口章节),或者可以把 端口章节),或者可以把 端口章节),或者可以把 FG650支持的所有模式 支持的所有模式 支持的所有模式 支持的所有模式 ID都添加上 都添加上 都添加上去。

#define FIBOCOM_ VENDOR_ID 0x2CB7
#define FIBOCOM_PRODUCT_FG650_ECM 0x0A04
#define FIBOCOM_ PRODUCT_FG650_NCM 0x0A05
#define FIBOCOM_ PRODUCT_FG650_RNDIS 0x0A06 static const struct usb_device_id option_ids[] = {
#if 1
{ USB_DEVICE(FIBOCOM_ VENDOR_ID, FIBOCOM_PRODUCT_FG650_ECM) },
{ USB_DEVICE(FIBOCOM_ VENDOR_ID, FIBOCOM_ PRODUCT_FG650_NCM) },
{ USB_DEVICE(FIBOCOM_ VENDOR_ID, FIBOCOM_ PRODUCT_FG650_RNDIS) },
#endif

B. 在 USB串口驱动中,过滤 串口驱动中,过滤 串口驱动中,过滤 串口驱动中,过滤 串口驱动中,过滤 ECM/NCM/RNDIS接口。由于 接口。由于 USB串口跟 串口跟 ECM/NCM/RNDIS都属于 都属于 非标准 CDC设备,需要防止 设备,需要防止 设备,需要防止 设备,需要防止 设备,需要防止 设备,需要防止 设备,需要防止 ECM/NCM/RNDIS口被 USB串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常串口驱动加载 而导致无法正常ECM/NCM/RNDIS口驱动。对于linux内核版本在3.8以上的推荐在probe函数内判断当前的interface num进行过滤,具体如下:

if (serial->dev->descriptor.idVendor == cpu_to_le16(FIBOCOM_ VENDOR_ID) && serial->dev->descriptor.idProduct == cpu_to_le16(FIBOCOM_PRODUCT_FG650_ECM) && serial->interface->cur_altsetting->desc.bInterfaceNumber <= 1)
{ printk(KERN_INFO “Discover the 4th interface for fibocom\n”); return -ENODEV;
}
if (serial->dev->descriptor.idVendor == cpu_to_le16(FIBOCOM_ VENDOR_ID) && serial->dev->descriptor.idProduct == cpu_to_le16(FIBOCOM_ PRODUCT_FG650_NCM) &&
serial->interface->cur_altsetting->desc.bInterfaceNumber <= 1)
{ printk(KERN_INFO “Discover the 4th interface for fibocom\n”); return -ENODEV;
}
if (serial->dev->descriptor.idVendor == cpu_to_le16(FIBOCOM_ VENDOR_ID) && serial->dev->descriptor.idProduct == cpu_to_le16(FIBOCOM_ PRODUCT_FG650_RNDIS) && serial->interface->cur_altsetting->desc.bInterfaceNumber <= 1)
{ printk(KERN_INFO “Discover the 4th interface for fibocom\n”); return -ENODEV;
}

另外5G模组上电后,要通过POWER_KEY按键来进行开机操作,这个可以通过shell脚本程序如下操作IO来实现,另外注意5G模组的USB接口的VBUS信号要保持5V供电,否则USB连接一会后,5G模组会主动断开。

#!/bin/bashcase $1 in
power_on)echo "--------- control 5G module power on-----------"#5G module powerkey low level for 1s-2.5s startupecho 1 > /sys/class/leds/5G-powerkey/brightnesssleep 1.5echo 0 > /sys/class/leds/5G-powerkey/brightness#reset the 5G module low level for 40ms-750msecho 1 > /sys/class/leds/5G-reset/brightnesssleep 0.5echo 0 > /sys/class/leds/5G-reset/brightness#USB VBUS power onecho 1 > /sys/class/leds/5G-USB-VBUS/brightnessecho "-------------5G module alread open -------------";;
power_off)echo "--------- control 5G module power off-----------"#5G module powerkey low level for 3s-7s startupecho 1 > /sys/class/leds/5G-powerkey/brightnesssleep 4echo 0 > /sys/class/leds/5G-powerkey/brightness#5G USB VBUS power offecho 0 > /sys/class/leds/5G-USB-VBUS/brightnessecho "-------------5G module alread close -------------";;
*)echo "please input the $0 {power_on or power_off}";;
esac

3. 5G模组枚举

5G模组执行开机操作后,linux操作系统会对5G模组进行枚举,这个过程是先通过USB2.0接口进行枚举,之后通过USB2.0接口进行3.0接口的枚举。整个过程如下图:

枚举后可以通过lsusb来查看设备;

通过上图可以看到5G模组已经正常枚举成功了,可以通过ifconfig来查看5G网卡。

4. 5G模组拔号上网

经过上面的操作,5G网卡已经出来了,但是执行ping -I enx8ec564fd4e18 www.baidu.com,ping不通,这是由于5G模组未进行拔号,无法连接到公网。

5G模组的AT指令串口虚拟为ttyUSB0,在调试阶段,先执行cat /dev/ttyUSB0 & 运行一个后台程序来读取AT串口, 发送指令可以通过echo -e "at\r" > /dev/ttyUSB0的方式来发送AT指令后模组。

拔号流程可以参考厂家文档,其中上网的最关键的一步操作就是使用用 AT+GTRNDIS=1,1 激活上网,激活成功后返回IP地址就表示上网了。

到此5G网卡已经可以连接外网,完成了调试,拔号的过程是AT指令的操作,建议最后写成程序来控制拔号,模组的开机,关机操作等。

RK3568移植5G通信模组相关推荐

  1. 今日,首款国产超小体积5G通信模组商用!

    7月8日上午10:00,从长虹控股获悉,首款国产超小体积5G通信模组"AI-NR11"已在四川爱联科技有限公司(以下简称四川爱联)成功下线,标志着该5G模组进入商用阶段. 该5G模 ...

  2. rk3568 移植 GPS/GNSS 模组

    rk3568 移植 GNSS 模组 (SIM68D UM220) 部分LTE模组(EC20 M750) 仅有 GPS ,但场景需求 GNSS 定位功能,此时需要额外增加 GNSS的模组功.单GPS/G ...

  3. 供货理想等近20家主流车企,移远通信5G车载模组交付量大幅增长

    5G车联网已经进入发展的快车道,一批较早布局5G车载通信模组的企业也迎来了交付量的大幅提升. 9月28日,全系标配搭载移远通信5G车载模组AG551Q的理想L9第10000台量产车下线交付.移远通信相 ...

  4. 美格智能5G R16模组SRM825N顺利通过国内CCC、SRRC、CTA认证

    5G网络技术的蓬勃发展,赋予了物联网产业更多的定义和内涵,也催生出了更多的数字应用场景.新一代5G无线通信模组作为物联网领域实现海量连接的载体,更是为千行百业的数字化转型贡献着积极力量. 近日,美格智 ...

  5. 5g通用模组是什么_目前主流的5G模组有哪些?

    美格智能2019年7月份就发布了基于高通SDX55 5G基带芯片两款不同封装(LGA.M.2)的5G通信模组SRM815和SRM825W,并基于5G模组同步推出了针对eMBB等行业的定制化解决方案.该 ...

  6. 广和通实现基于5G R16模组的FWA Open CPU方案技术突破

    随着物联网终端设备迅速向各行各业渗透增长,以无线模组作为处理器的Open CPU应用方式越来越成为主流选择.Open CPU通过精简的通信应用开发流程与硬件结构设计,大大推动轻量级物联网终端发展.为帮 ...

  7. 要闻君说:阿里云联合8家芯片模组商推出“全平台通信模组”;北汽与小桔车服联合“京桔”;IBM要帮助印度公司打造5G战略!...

    关注并标星星CSDN云计算 每周三次,打卡即read 更快.更全了解泛云圈精彩news go go go  嗨,大家好!偶是要闻君.盼望着.盼望着,放假的日子又临近了一步,抢先祝福各位看官们新年快乐哈 ...

  8. 基于高通骁龙X75和X72平台,移远通信5G R17模组为全球FWA和eMBB市场赋能

    日前,移远通信率先推出了符合3GPP Release 17标准的新一代工规级5G NR模组RG650E系列和RG650V系列. 相比前代5G产品,此次推出的5G R17模组在数据传输速率.网络容量.功 ...

  9. m5310模组数据上传至onenet_5G通信模组799元限量发售,中国移动意欲何为?

    "一年一度双十一,通信模组亦疯狂."日前,中国移动方面宣布,其自有品牌OneMO模组在11月1日-11日期间推出双十一5G模组产品"放价"营销活动,799元限量 ...

最新文章

  1. python从零基础到项目实战怎么样-2018完整Python零基础到项目精通的学习书籍
  2. mysql每一步花费时间_MySQL花费更多时间发送数据
  3. Vue组件基础知识总结
  4. 一文详解超参数调优方法
  5. C语言学习之编写一个C程序,运行时输人abc三个值,输出其中值最大者。
  6. 【Qt】QModbusRtuSerialMaster类
  7. 使用@JsonIdentityInfo的Spring自定义序列化器
  8. hive kerberos java_Kerberos身份验证错误 - Sqoop通过Hive从SQL导入HDFS
  9. VMware vCenter Server6.5安装及群集配置介绍
  10. 聊一聊开发常用小工具
  11. 10个必知的网页设计术语计算机与网络,入学测试计算机与网络应用基础知识题库(公开题)教学文稿(10页)-原创力文档...
  12. ias日志察看器(.net)
  13. 改变计算技术的9个伟大算法
  14. android中的ActionBar和ToolBar
  15. 神经网络与深度学习(邱锡鹏版本)学习笔记11.23
  16. 黎活明给程序员的几个经典的忠告!
  17. 【青岛seo基础知识教程】SEO优化:10分钟制定一个超越竞争对手网站的方案
  18. 【大咖有约】子衿技术团队徐戟:DBA职场进阶之路
  19. [毒]QQ空间出现的伪装QQ登录窗口诈骗
  20. 马云5年实现“无现金社会”,必须迈过这几道坎?

热门文章

  1. 万字长文揭秘今日头条、抖音的推荐算法原理!
  2. 如何通过origin压缩进行压缩图片
  3. #HTML5-CSS-transition-过渡特效
  4. 加油站油气回收自动监测系统中的流量传感器
  5. 当研究院成为一种现象
  6. 比肩“南水北调”,大火的“东数西算”会给云计算带来什么?
  7. 春节Python抢票神器,支持候补抢票
  8. 设计个性的windows鼠标样式
  9. md5 collision(md5碰撞)
  10. uni-app(7)— 数据绑定以及 v-bind,v-for,v-on