搜索
bottom↓
回复: 0

embedall--i.mx6ul开发板4G模块EC20-C集成与测试

[复制链接]

出0入0汤圆

发表于 2017-11-2 10:14:56 | 显示全部楼层 |阅读模式
本帖最后由 szypf2011 于 2017-11-2 10:14 编辑

i.MX 6系列应用处理器是目前NXP主推的一个功能和性能可扩展的多核平台,其中,基于高能效比的ARM Cortex-A7处理器的i.MX 6系列产品,因为具备较强的可扩展性、高性能和低功耗等特性,非常适合目前流行的物联网、车载信息处理、家庭能源管理系统、工控领域等应用。
说明:
不久前拿到了盈鹏飞基于ARM Cortex-A7处理器的NXP i.MX 6UL系列处理器的工控板EVB-P6UL,板子适配了高速4G LTE模块!第一眼看到EVB-P6UL,会让人觉得外设资源非常的丰富,到底还是有别于简单的微控制器板,EVB-P6UL板卡采用了核心模块CoM-P6UL以及底板的设计,通过双列直插式排针接口连接,可靠性要比很多SODIMM接口稳定,同时也便于工程师日后的扩展或者直接将核心板移植到现有的项目中去,非常方便!
开发板:

这次使用的模块是移远EC20-C!


EC20-C的驱动使用模块官方提供GobiNet,而非USB CDC子类协议。使用GobiNet驱动与APN工具联网,有别于CDC EMC,方法在下文中介绍。
驱动信息:
EC20模块的端口映射关系如表下图所示:

其中,/dev/ttyUSB0~3为USB串口,第四个接口用于网络连接。
        在Linu系统中使用 usb-devices 指令查看模块的详细信息,如图3-20所示:

说明:从图中并未看到CDC相关的驱动端口,使用模块配套的驱动程序。
驱动集成:
EC20驱动集成,首先添加USB串口驱动,然后解除USB串口驱动对NDIS接口的绑定,最后将驱动程序添加到内核源码树中。
添加串口驱动
        若想Linux支持USB串口,需在option.c文件的ID列表中添加设备ID。过程如下:
步骤1在内核源码的 imx6ul/drivers/usb/serial/option.c文件的option_ids列表中添加EC20的ID。如图3-21、3-22红色矩形框标注所示:

代码清单如下:
        #define QUECTEL_VENDOR_ID                        0x2c7c
        #define QUECTEL_PRODUCT_EC20                    0x0125

代码清单如下:
        { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC20) },
解绑NDIS接口
        步骤1在内核源码的imx6ul/drivers/usb/serial/option.c文件的option_probe结构体添加以下语句。如图3-23所示;

代码清单如下:
           if (dev_desc->idVendor == cpu_to_le16(0x2c7c) &&
            dev_desc->idProduct == cpu_to_le16(0x0125) &&
            iface_desc->bInterfaceNumber == 0x04)
                return -ENODEV;
添加驱动程序
        Quectel提供了EC20的源码与APN工具。如图3-24所示:

步骤1、把GobiNet驱动源码保存到imx6ul/ drivers/net/usb目录。即,图3-20 中“Quectel_Linux_GobiNet_SR01A02V15.zip”文件中“src”目录下的*.c与*.h文件。
host$ cp ../Quectel_Linux_GobiNet_SR01A02V15/src/*.c  drivers/net/usb/
host$ cp ../Quectel_Linux_GobiNet_SR01A02V15/src/*.h  drivers/net/usb/

步骤2、添加内核配置菜单,将“config USB_GOBI_NET”到imx6ul/drivers/net/usb/Kconfig中。如图3-25红色矩形框标注所示:

代码清单如下:

config USB_GOBI_NET
        tristate "Gobi USB Net driver for Quectel module"
        help
        Support Quectel module.
        
        A modem manager with support for GobiNet is recommended.
        To compile this driver as a module, choose M here: the module will be called GobiNet.
步骤3、修改imx6ul/driver/net/usb/Makefile,Makefile文件的末尾添加图3-26红色矩形框标注的内容。

代码清单如下:
obj-y += GobiNet.o
GobiNet-objs := GobiUSBNet.o QMIDevice.o QMI.o
配置内核与编译:
在宿主机的Linux内核源码根目录执行以下指令,配置内核。添加GobiNet驱动:
host$ make ARCH=arm menuconfig
Kernel Configuration 界面,依次选择:
        Device Drivers  --->
          
  • Network device support  --->
                      USB Network Adapters  --->
                            <*> Gobi USB Net driver for Quectel module

    在Linux内核源码目录执行make,编译内核:
    host$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
    移植APN工具:
    解压Quectel_Linux_ConnectManager_SR01A01V21.zip,并交叉编译。
    host$ unzip -x Quectel_Linux_ConnectManager_SR01A01V21.zip
    host$ make CROSS_COMPILE=arm-linux-gnueabihf-                //APN工具源码目录编译
            编译完成后,生成APN工具,名为quectel-CM。如图3-28所示;


    EC20-C联网测试:
    在未上电前安装SIM卡、模块,模块连接天线。
            将3.2.3节编译的内核,下载到EVB-P6UL。驱动若正确加载,显示图3-29所示的信息:

    从上图可以看出,网络设备为eth1,在/dev目录分别穿件了USB串口ttyUSB0~3 ,以及qcmqi1设备。以上信息说明驱动已经正确加载。
            将APN工具下载到评估,先查看该是否有执行权限,再拨号。成功拨号后会获取IP,如图3-30所示:
    target$ ./quectel-CM &

    说明:quectel-CM 拨号工具需要udhcpc 指令支持,请确保文件系统中有该指令。驱动加载成功后,在/dev目录生成 qcqmi1设备,网络设备名为eth1。“PS:Attached,DataCap:LTE”表示链接至4G网络。
            查看获取的IP地址情况。如图3-31所示:
    target$ ifconfig

    指定网络设备号,ping外部网络,如图3-32所示则表示EC20-C工作正常。


  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

    GMT+8, 2024-4-20 14:12

    © Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

    快速回复 返回顶部 返回列表