<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 4G通信模塊在ARM平臺下的應(yīng)用

          4G通信模塊在ARM平臺下的應(yīng)用

          作者:ZLG致遠(yuǎn)電子 時間:2016-12-08 來源:電子產(chǎn)品世界 收藏

            模塊是連接物與物的重要載體,是終端設(shè)備接入物聯(lián)網(wǎng)的核心部件之一,隨著的普及,許多新興市場對通信模塊的需求都在日益擴(kuò)大,那么在平臺的嵌入式設(shè)備上如何快速的應(yīng)用4G模塊呢?

          本文引用地址:http://www.ex-cimer.com/article/201612/341325.htm

            4G通信模塊把頻率接收器和信號增幅器等部件全都整合在一起,實(shí)現(xiàn)了一體化。隨著工業(yè)發(fā)展,嵌入式設(shè)備接入網(wǎng)絡(luò)的需求日益增多,在沒有有線或WiFi等無線的環(huán)境下,直接通過4G通訊模塊連接運(yùn)營商網(wǎng)絡(luò)來接入互聯(lián)網(wǎng)不失為一個好方法。因此,本文就為讀者介紹一下基于平臺的嵌入式設(shè)備在Linux下使用4G模塊的方法。

            一、開發(fā)環(huán)境

            1) 開發(fā)主機(jī)環(huán)境:

            Ubuntu12.04(64位)、arm-fls-linux-guneabi-gcc系列交叉編譯鏈。

            2) 硬件清單:

            IoT-3960工控板、龍尚 4G模塊U8300C或U8300W。

            3) 軟件資源:

            光盤EPC-280_283_287V1.04.iso中的內(nèi)核源碼包:linux-2.6.35.3-fec60fa.tar.bz2。

            二、硬件概述

            IoT-3960L 是廣州致遠(yuǎn)電子股份有限公司以Freescale i.MX287處理器為核心開發(fā)的工業(yè)IoT網(wǎng)絡(luò)控制器,集成多路通信接口,支持多種通信協(xié)議,具有性價比高、功能豐富、工作穩(wěn)定、兼容性強(qiáng)等特點(diǎn),產(chǎn)品實(shí)物如圖1所示。

          1.png

            圖1 IoT-3960L工控板

            通過自定義的 Mini-PCIE 接口,IoT-3960L 可外擴(kuò)3G、4G、GPRS、ZigBee、RFID 等無線通信模塊。本文外擴(kuò)的是龍尚4G 模塊,所用的型號如圖2所示。

          2.jpg

            圖2 龍尚4G模塊U8300C、U8300W

            三、技術(shù)實(shí)現(xiàn)

            1、解壓內(nèi)核源碼

            將 EPC-280_283_287 V1.04.iso 光盤中的linux-2.6.35..3-fec60fa.tar.bz2 源碼包復(fù)制到ubuntu 系統(tǒng)的“~/”目錄下,將其解壓后可得到linux-2.6.35.3 目錄,參考命令如下:

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

            2、修改配置文件

            在內(nèi)核源碼目錄“drivers/gpio/”下的Kconfig 文件中有設(shè)定了CONFIG_GPIO_M28X 宏的默認(rèn)配置,用vim編輯器打開這個Kconfig 文件,搜索“GPIO_M28X”,找到其配置設(shè)定,將其修改為可獨(dú)立配置的選項,修改后的配置如下所示(紅色標(biāo)識的為修改部分):

            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、修改內(nèi)核編譯腳本

            Linux 源碼目錄下的build-kernel 腳本文件主要用于切換內(nèi)核默認(rèn)配置,但因光盤中的該腳本文件設(shè)置不夠靈活,建議直接將build-kernel文本內(nèi)容整體替換為如圖 3所示的代碼:

          3.png

           

            圖3 build-kernel 文件內(nèi)容

            4、配置內(nèi)核源碼

            進(jìn)入解壓后的 Linux 源碼根目錄,使用IoT-3960L 的默認(rèn)內(nèi)核配置,參考命令如下:

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

            然后輸入6 選擇Iot3960,如果是其他工控板或開發(fā)套件,則選擇對應(yīng)的選項即可,如果對應(yīng)的Linux 源碼根目錄下沒有.config 文件,運(yùn)行該步驟操作后會提示cp 命令執(zhí)行錯誤,直接忽略此錯誤即可。

            工控板或開發(fā)套件使用 USB 接口來與龍尚4G 模塊通信,需要配置內(nèi)核以支持USB轉(zhuǎn)串口功能。參考命令如下:

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

            進(jìn)入配置界面后,按回車鍵進(jìn)入“Device Drivers --->”選項,配置完內(nèi)核后,保存并退出內(nèi)核配置操作。

            5、 修改&編譯內(nèi)核源碼

            對龍尚4G模塊,我們需要在linux-2.6.35.3 目錄下對三個數(shù)組中的內(nèi)容進(jìn)行修改:

            l 使用vi 或者vim 命令打開drivers/gpio/gpio_m28x.c 文件,在all_gpios_info[ ]數(shù)組作中作修改;

            l 使用vi 或者vim 命令打開arch/arm/mach-mx28/mx28evk_pins.c 文件,在mx28evk_fixed_pins []數(shù)組中作修改;

            l 使用vi或者vim命令打開drivers/usb/serial/option.c 文件,在option_ids[]數(shù)組中作修改。

            按上述操作修改完成之后,就可以編譯內(nèi)核了,內(nèi)核編譯參考命令如下:

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

            待內(nèi)核編譯完成后,將生成的uImage 文件(可在arch/arm/boot 目錄下找到)燒寫到工控板或開發(fā)套件上,燒寫方法請參考《IoT-3960 用戶手冊.pdf》第6 章的內(nèi)容。

            四、4G 模塊測試

            這里主要介紹龍尚4G模塊的電話、網(wǎng)絡(luò)等控制接口以及IoT-3960L工控板對其操作的通信流程。用于測試的工控板必須燒寫EPC-280_283_287 V1.04.iso 光盤中V1.03的uboot 及文件系統(tǒng),因為其中包含必要的撥號上網(wǎng)工具。

            1、電話控制接口

            電話接聽和撥打命令如表1所示。通過向串口發(fā)送相應(yīng)的命令就可以實(shí)現(xiàn)電話的接聽和撥打。如:可以向串口發(fā)送“ATD12345678901;nr”就可以向12345678901撥打電話。

            表1 電話撥打和接聽控制命令表

            命令語法及作用

            ATD撥打電話:ATD+電話+;rn”如ATD10010;后面分號

            不能少,返回OK 或ERROR

            AT+COPS?“AT+COPS?rn”檢測運(yùn)營商,返回OK 或ERROR

            AT+CVHU=0和ATH掛斷電話:“AT+CVHU=0rn”再發(fā)“ATHrn”

            ATA接聽電話:“ATAnr”

            電話撥打接聽代碼執(zhí)行流程如圖4所示。代碼首先會顯示可供使用的菜單,如電話撥打,短信接收等。等待用戶輸入?yún)?shù),執(zhí)行參數(shù)對應(yīng)的流程。然后判斷是否執(zhí)行成功,如果執(zhí)行成功就會返回顯示菜單代碼處繼續(xù)執(zhí)行下一下循環(huán)。

             

          4.png

            圖4 電話撥打接聽流程圖

            2、網(wǎng)絡(luò)控制接口

            4G 模塊上網(wǎng)功能通過PPP 撥號提供的接口連接網(wǎng)絡(luò)。在開發(fā)套件文件系統(tǒng)的“/etc/ppp”目錄下預(yù)置了可以參考的撥號腳本。撥號成功后(執(zhí)行PPP 撥號腳本),內(nèi)核會生成PPP 網(wǎng)絡(luò)設(shè)備。通過創(chuàng)建套接字就可以訪問網(wǎng)絡(luò)。

            3、演示程序?qū)嵅?/p>

            l 使能4G 模塊

            默認(rèn)內(nèi)核啟動時,把4G模塊的復(fù)位引腳拉低,使模塊處于非工作的狀態(tài)。要想完全使能模塊,運(yùn)行/opt 目錄下的upmodule.sh 腳本即可。

            此時板子的WWAN 這個LED 會出現(xiàn)閃爍的現(xiàn)象,閃爍頻率大概為800 毫秒,然后設(shè)備開始入網(wǎng),入網(wǎng)成功后,板子的WWAN 這個LED 的閃爍頻率變?yōu)? 秒左右。同時,大概10 秒之后,板子開始檢測到USB 設(shè)備的插入,然后板子自動安裝USB 轉(zhuǎn)串口的驅(qū)動,驅(qū)動安裝完成后,會在板子的/dev 目錄下自動生成ttyUSB0~ttyUSB5 這6 個串口設(shè)備。

            l 編譯演示程序

            將/works/mx28x/app/目錄下的longsung-test文件夾拷貝到Linux 開發(fā)主機(jī),編譯了longsung-test 下的代碼,將生成的longsung-test 文件拷貝到板子即可進(jìn)行后續(xù)的電話功能測試。

            l 電話功能測試

            使用U8300C,以中國聯(lián)通4G卡為例進(jìn)行電話功能測試,設(shè)備上電之前需要先插入SIM 卡,且保證已經(jīng)按前面介紹使能了4G模塊,并能成功入網(wǎng)。進(jìn)入 longsung-test 測試程序存放的目錄,然后運(yùn)行l(wèi)ongsung-test 程序。

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

            longsung-test 測試程序運(yùn)行結(jié)果及其中各數(shù)字代表功能如圖5所示。需要注意,輸入“1”撥打電話之后,必須需要輸入“2”掛斷電話之后方可繼續(xù)撥打電話。

          5.png

            圖5 代碼啟動運(yùn)行結(jié)果

            l 4.4.4 上網(wǎng)功能測試

            這里使用U8300C,以中國移動4G卡為例進(jìn)行撥號上網(wǎng),設(shè)備上電之前需要先插入SIM 卡,保證以使能4G

            模塊并成功入網(wǎng)。

            進(jìn)入板子的/etc/ppp/目錄,創(chuàng)建一個名字為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 的運(yùn)行屬性,然后直接運(yùn)行該腳本,進(jìn)行撥號操作,參考操作如下:

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

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

            執(zhí)行后,等待大概10~20s,使用ifco

            nfig 命令查看網(wǎng)絡(luò)設(shè)備,能看到系統(tǒng)生成了一個名為ppp0 的網(wǎng)絡(luò)設(shè)備,該設(shè)備就是撥號成功后生成的網(wǎng)絡(luò)設(shè)備。撥號成功后可通過ping 114.114.114.114.-I ppp0檢查外網(wǎng)是否連接正常。如果沒能成功撥號,可以參考下面的“撥號異常分析”來排除問題。

            l 撥號異常分析

            運(yùn)行撥號腳本后,使用ps 命令能看到撥號進(jìn)程的存在。只要撥號成功,撥號進(jìn)程是一直存在的(與pppd 相關(guān)的進(jìn)程),如果該進(jìn)程不存在,那么生成的ppp0 網(wǎng)絡(luò)設(shè)備也會隨同消失。

            如果使用 ifconfig 命令,無法看到ppp0 這個網(wǎng)絡(luò)設(shè)備,只要使用ps 命令一直都能看到撥號進(jìn)程的存在,那么只能耐心的等待撥號程序的反饋了。如果ps 命令無法看到撥號進(jìn)程了,那么重新運(yùn)行撥號腳本即可。撥號進(jìn)程的退出,極有可能是因為信號弱或者SIM 卡余額不足導(dǎo)致的。



          關(guān)鍵詞: 4G ARM

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();