您的位置 首页 培训

4G通讯模块在ARM平台下的使用

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

  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,运用ifco

  nfig 指令查看网络设备,能看到体系生成了一个名为ppp0 的网络设备,该设备便是拨号成功后生成的网络设备。拨号成功后可经过ping 114.114.114.114.-I ppp0查看外网是否衔接正常。假如没能成功拨号,能够参阅下面的“拨号反常剖析”来扫除问题。

  l 拨号反常剖析

  运转拨号脚本后,运用ps 指令能看到拨号进程的存在。只需拨号成功,拨号进程是一向存在的(与pppd 相关的进程),假如该进程不存在,那么生成的ppp0 网络设备也会伴随消失。

  假如运用 ifconfig 指令,无法看到ppp0 这个网络设备,只需运用ps 指令一向都能看到拨号进程的存在,那么只能耐性的等候拨号程序的反应了。假如ps 指令无法看到拨号进程了,那么从头运转拨号脚本即可。拨号进程的退出,极有或许是由于信号弱或许SIM 卡余额缺乏导致的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/241571.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部