4G 通信模块在ARM 平台下的应用

发布者:清晨微风最新更新时间:2016-12-07 来源: ZLG致远电子关键字:通信模块  增幅器 手机看文章 扫描二维码
随时随地手机看文章

4G模块是连接物与物的重要载体,是终端设备接入物联网的核心部件之一,随着4G的普及,许多新兴市场对4G通信模块的需求都在日益扩大,那么在ARM平台的嵌入式设备上如何快速的应用4G模块呢?

4G通信模块把频率接收器和信号增幅器等部件全都整合在一起,实现了一体化。随着工业发展,嵌入式设备接入网络的需求日益增多,在没有有线或WiFi等无线的环境下,直接通过4G通讯模块连接运营商网络来接入互联网不失为一个好方法。因此,本文就为读者介绍一下基于ARM平台的嵌入式设备在Linux下使用4G模块的方法。

一、开发环境

1)   开发主机环境:

Ubuntu12.04(64位)、arm-fls-linux-guneabi-gcc系列交叉编译链。

2)   硬件清单:

IoT-3960工控板、龙尚 4G模块U8300C或U8300W。

3)   软件资源:

光盘EPC-280_283_287V1.04.iso中的内核源码包:linux-2.6.35.3-fec60fa.tar.bz2。

二、硬件概述

IoT-3960L 是广州致远电子股份有限公司以Freescale i.MX287处理器为核心开发的工业IoT网络控制器,集成多路通信接口,支持多种通信协议,具有性价比高、功能丰富、工作稳定、兼容性强等特点,产品实物如图1所示。

1.png

1  IoT-3960L工控板

通过自定义的 Mini-PCIE 接口,IoT-3960L 可外扩3G、4G、GPRS、ZigBee、RFID 等无线通信模块。本文外扩的是龙尚4G 模块,所用的型号如图2所示。

2.jpg

2  龙尚4G模块U8300C、U8300W

三、技术实现

1、解压内核源码

将 EPC-280_283_287 V1.04.iso 光盘中的linux-2.6.35..3-fec60fa.tar.bz2 源码包复制到ubuntu 系统的“~/”目录下,将其解压后可得到linux-2.6.35.3 目录,参考命令如下:

vmuser@Linux-host:~$ tar -jxvf linux-2.6.35..3-fec60fa.tar.bz2 

2、修改配置文件

在内核源码目录“drivers/gpio/”下的Kconfig 文件中有设定了CONFIG_GPIO_M28X 宏的默认配置,用vim编辑器打开这个Kconfig 文件,搜索“GPIO_M28X”,找到其配置设定,将其修改为可独立配置的选项,修改后的配置如下所示(红色标识的为修改部分):

config GPIO_M28X

tristate "GPIO support for MiniPCI-E slot control"

#depends on IoT_3960 || IoT_3962

help

Say yes here to enable the IoT_396x board gpio driver.

3、修改内核编译脚本

Linux 源码目录下的build-kernel 脚本文件主要用于切换内核默认配置,但因光盘中的该脚本文件设置不够灵活,建议直接将build-kernel文本内容整体替换为如图 3所示的代码:

3.png

3  build-kernel 文件内容

4、配置内核源码

进入解压后的 Linux 源码根目录,使用IoT-3960L 的默认内核配置,参考命令如下:

vmuser@Linux_host:~/ linux-2.6.35.3$ ./build-kernel                                                     

然后输入6 选择Iot3960,如果是其他工控板或开发套件,则选择对应的选项即可,如果对应的Linux 源码根目录下没有.config 文件,运行该步骤操作后会提示cp 命令执行错误,直接忽略此错误即可。

工控板或开发套件使用 USB 接口来与龙尚4G 模块通信,需要配置内核以支持USB转串口功能。参考命令如下:

vmuser@Linux-host:~/ linux-2.6.35.3 $ make menuconfig                                                

进入配置界面后,按回车键进入“Device Drivers --->”选项,配置完内核后,保存并退出内核配置操作。

5、 修改&编译内核源码

对龙尚4G模块,我们需要在linux-2.6.35.3 目录下对三个数组中的内容进行修改:

l  使用vi 或者vim 命令打开drivers/gpio/gpio_m28x.c 文件,在all_gpios_info[ ]数组作中作修改;

l  使用vi 或者vim 命令打开arch/arm/mach-mx28/mx28evk_pins.c 文件,在mx28evk_fixed_pins []数组中作修改;

l  使用vi或者vim命令打开drivers/usb/serial/option.c 文件,在option_ids[]数组中作修改。

按上述操作修改完成之后,就可以编译内核了,内核编译参考命令如下:

vmuser@Linux-host:~/ linux-2.6.35.3 $ make uImage                                                    

待内核编译完成后,将生成的uImage 文件(可在arch/arm/boot 目录下找到)烧写到工控板或开发套件上,烧写方法请参考《IoT-3960 用户手册.pdf》第6 章的内容。

四、4G 模块测试

这里主要介绍龙尚4G模块的电话、网络等控制接口以及IoT-3960L工控板对其操作的通信流程。用于测试的工控板必须烧写EPC-280_283_287 V1.04.iso 光盘中V1.03的uboot 及文件系统,因为其中包含必要的拨号上网工具。

1、电话控制接口

电话接听和拨打命令如表1所示。通过向串口发送相应的命令就可以实现电话的接听和拨打。如:可以向串口发送“ATD12345678901;\n\r”就可以向12345678901拨打电话。

1   电话拨打和接听控制命令表

命令

语法及作用

ATD

拨打电话:ATD+电话+;\r\n”如ATD10010;后面分号

不能少,返回OK 或ERROR

AT+COPS?

“AT+COPS?\r\n”检测运营商,返回OK 或ERROR

AT+CVHU=0和ATH

挂断电话:“AT+CVHU=0\r\n”再发“ATH\r\n”

ATA

接听电话:“ATA\n\r”

电话拨打接听代码执行流程如图4所示。代码首先会显示可供使用的菜单,如电话拨打,短信接收等。等待用户输入参数,执行参数对应的流程。然后判断是否执行成功,如果执行成功就会返回显示菜单代码处继续执行下一下循环。

4.png

4  电话拨打接听流程图

2、网络控制接口

4G 模块上网功能通过PPP 拨号提供的接口连接网络。在开发套件文件系统的“/etc/ppp”目录下预置了可以参考的拨号脚本。拨号成功后(执行PPP 拨号脚本),内核会生成PPP 网络设备。通过创建套接字就可以访问网络。

3、演示程序实操

l  使能4G 模块

默认内核启动时,把4G模块的复位引脚拉低,使模块处于非工作的状态。要想完全使能模块,运行/opt 目录下的upmodule.sh 脚本即可。

此时板子的WWAN 这个LED 会出现闪烁的现象,闪烁频率大概为800 毫秒,然后设备开始入网,入网成功后,板子的WWAN 这个LED 的闪烁频率变为3 秒左右。同时,大概10 秒之后,板子开始检测到USB 设备的插入,然后板子自动安装USB 转串口的驱动,驱动安装完成后,会在板子的/dev 目录下自动生成ttyUSB0~ttyUSB5 这6 个串口设备。

l  编译演示程序

将/works/mx28x/app/目录下的longsung-test文件夹拷贝到Linux 开发主机,编译了longsung-test 下的代码,将生成的longsung-test 文件拷贝到板子即可进行后续的电话功能测试。

l  电话功能测试

使用U8300C,以中国联通4G卡为例进行电话功能测试,设备上电之前需要先插入SIM 卡,且保证已经按前面介绍使能了4G模块,并能成功入网。进入 longsung-test 测试程序存放的目录,然后运行longsung-test 程序。

[root@M28x opt]# ./longsung-test /dev/ttyUSB1                                                         

longsung-test 测试程序运行结果及其中各数字代表功能如图5所示。需要注意,输入“1”拨打电话之后,必须需要输入“2”挂断电话之后方可继续拨打电话。

5.png

5  代码启动运行结果

l  4.4.4 上网功能测试

这里使用U8300C,以中国移动4G卡为例进行拨号上网,设备上电之前需要先插入SIM 卡,保证以使能4G

模块并成功入网。

进入板子的/etc/ppp/目录,创建一个名字为ppp_dial_LTE.sh的脚本,写入如下程序:

echo "TIMEOUT 5 '' AT OK ATE0V1 OK AT OK ATS0=0 OK AT OK ATE0V1 OK AT OK ATDT*99*# CONNECT ''" > /tmp/chatscript                                                                           

pppd /dev/ttyUSB3 persist connect "chat -v -f /tmp/chatscript"  

保存退出后,修改ppp_dial_LTE.sh 的运行属性,然后直接运行该脚本,进行拨号操作,参考操作如下:

[root@M28x ppp]# wr chmod 755 ppp_dial_LTE.sh                                                      

[root@M28x ppp]# ./ppp_dial_LTE.sh 

执行后,等待大概10~20s,使用ifconfig 命令查看网络设备,能看到系统生成了一个名为ppp0 的网络设备,该设备就是拨号成功后生成的网络设备。拨号成功后可通过ping 114.114.114.114.-I ppp0检查外网是否连接正常。如果没能成功拨号,可以参考下面的“拨号异常分析”来排除问题。

l  拨号异常分析

运行拨号脚本后,使用ps 命令能看到拨号进程的存在。只要拨号成功,拨号进程是一直存在的(与pppd 相关的进程),如果该进程不存在,那么生成的ppp0 网络设备也会随同消失。

如果使用 ifconfig 命令,无法看到ppp0 这个网络设备,只要使用ps 命令一直都能看到拨号进程的存在,那么只能耐心的等待拨号程序的反馈了。如果ps 命令无法看到拨号进程了,那么重新运行拨号脚本即可。拨号进程的退出,极有可能是因为信号弱或者SIM 卡余额不足导致的。


关键字:通信模块  增幅器 引用地址:4G 通信模块在ARM 平台下的应用

上一篇:如何实现动态域名与DTU连接
下一篇:Ixia实现虚拟数据中心空前未有的流量可视性

推荐阅读最新更新时间:2024-05-07 17:17

基于ARM处理的CAN-Ethernet通信模块实现
  近20 年来工业测控系统发展的趋势是:分散控制和集中管理、标准化和开放性。工业测控系统从传统的集中测量控制系统转向网络化的集散控制系统。随着现场总线技术高速发展和标准化程度不断提高,以现场总线技术为基础的开放型集散测控系统—现场总线测控系统得到了广泛的应用。同时,以太网的应用也迅速向工业测控系统渗透,在工业自动化应用中异军突起。   这种趋势的出现与计算机技术、信息技术、网络通信技术的高速发展相关。现代工业系统信息交换的需求也已经从管理层内部迅速覆盖到控制、现场设备等各个层次,连接上层网络和现场总线的通信设备成为工厂自动化系统中的关键设备之一。CAN-Ethernet通信模块,是一种直接连接以太网和CAN现场总线的设备,
[单片机]
基于ARM处理<font color='red'>器</font>的CAN-Ethernet<font color='red'>通信模块</font>实现
现代摩比斯宣布成功开发车载5G通信模块技术
现代摩比斯近日宣布成功开发出车载5G通信模块技术,并称该技术基于5G移动通信技术,被视为推动自动驾驶和车联网大容量数据处理、实时连接技术发展的关键。 据介绍,摩比斯研发的5G通信模块把通信芯片、存储器、射频电路和GPS集成到一起,今后将应用于5G互联车辆的远程信息处理服务。    其中,远程信息处理技术是指利用移动通信网络与外部控制中心共享车辆信息,例如远程车辆控制、OTA更新、实时交通数据共享和紧急呼叫服务等,为驾驶者提供更安全、更便利、更娱乐的驾乘体验。 据了解,摩比斯还计划将此次开发的5G通信模块技术与此前成功开发的V2X通信技术融合,为自动驾驶、车联网提供集成解决方案。摩比斯的5G+V2X集成解决方案能实现车辆间
[汽车电子]
单片机和MCP2510的CAN总线通信模块设计
CAN(Controller Area Network)总线,即控制器局域网。由于具有高性能、高可靠性以及独特的设计,CAN总线越来越受到人们的重视。德国的Bosch公司最初为汽车监控和控制系统设计了CAN总线,现在,其应用已面向过程工业、机械工业、纺织工业、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN总线已经形成国际标准,并已经公认为是最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制订为国际标准ISO11898,并得到众多半导体器件厂商的支持,推出各种集成有CAN协议的产品。CAN总线系统智能节点是网络上报文的接收和发送站,一般由单片机和CAN控制器或二者合二为一组成。 MCP25l0是Micro
[工业控制]
PIC单片机与PC机串行通信模块的设计
PIC 单片机与PC机串行通信模块的设计思路:该模块利用了PlC16F877的异步串行通信端口,实现与PC机的串行通信。PC机中串口的编程采用Visual C++,利用Visual C++中的CMSComm控件进行编程。PC机串口程序采用定时发送中断接收方式。单片机采用中断控制方式,当中断收到8个数据后,将收到的8个数据以中断的方式发送给PC机。 如图所示为上位机串口调试界面: 图 上位机串口调试界面
[单片机]
PIC单片机与PC机串行<font color='red'>通信模块</font>的设计
基于ARM处理的网关通信模块研制
MVB多功能车辆总线是在国际标准IEC61375列车通信网络(TCN)中被详细定义的一种现场总线,按照TCN标准,列车通信网分为两级,第一级绞线式列车总线实现车辆间的数据通信,第二级多功能车辆总线MVB主实现同车辆内各个功能控制单元之间的数据通信。MVB以其高实时性、高可靠性及可管理性等多方面的优势而广泛应用在列车总线控制当中。但是由于MVB是专门针对列车通信网络而开发的,其实用范围、供货商、经济型均不如CAN总线。CAN总线作为现场设备级的通信总线具有很高的可靠性和性价比。目前很多机车车辆的列车通信网络系统都采用MVB总线和CAN总线共同组成的异构网络。因此,本文提出了一种基于μC/OS-Ⅱ的ARM7内核芯片LPC2294的M
[单片机]
基于ARM处理<font color='red'>器</font>的网关<font color='red'>通信模块</font>研制
基于IDP卫星通信模块的远洋船舶实时监控系统
针对远洋中无GPRS信号不能进行无线通信的问题,设计了以STM32F103VCT6单片机与IDP卫星通信模块为平台的远洋船舶实时监控系统。本系统具有高精准度、实时性强、全天候监控等特点。给出了系统的工作原理、硬件设计与软件实现方法,详细分析了中央控制模块、GPS定位信息采集模块、无线通信模块。实验结果验证了采用STM32F103VCT6单片机与IDP卫星通信模块设计远洋船舶监控系统的可行性。通过该系统,可实时监控远洋船舶的地理位置信息以及其他信息,最大限度地确保远洋船舶航运中的安全。 引言 本文采用ARM芯片作为控制核心,设计了一款以GPS定位模块与卫星通信模块为依托的远洋船舶实时监控系统。该系统能够按照用户要求定时上传远洋船舶的
[单片机]
基于IDP卫星<font color='red'>通信模块</font>的远洋船舶实时监控系统
数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010)在嵌入式系统上的开发
摘要:介绍3GPP提出的一种终端设备和移动台串行通信的复用协议及嵌入式Linux系统下串行通信模块的结构和功能划分,在此基础上,提出一种实现这一复用协议的方案。目前,这一设计方案已经开发成功并广泛应用于所开发的车载移动终端产品中。 关键词:TS27.010 串行链路复用 GPRS移动终端 嵌入式Linux 随着移动通信技术的迅速发展,具备无线通信功能的移动终端也迅速发展起来。这些移动终端支持普通的话音、短消息等业务,随着GPRS网络覆盖的迅速扩大,越来越多的手持/车载移动终端也开始支持GPRS上网业务。如何在一个终端设备上整合这些业务,这是许多移动终端设备开发者面对的问题。笔者在开发一款车载移动终端过程中,采用了3GPP的TS
[应用]
小广播
最新网络通信文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved