《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 4G 通信模塊在ARM 平臺下的應用

4G 通信模塊在ARM 平臺下的應用

2016-12-10
來源: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(光盤內容可在致遠電子官網下載http://www.zlg.cn)。

  二、硬件概述

  IoT-3960L 是廣州致遠電子股份有限公司以Freescale i.MX287處理器為核心開發的工業IoT網絡控制器,集成多路通信接口,支持多種通信協議,具有性價比高、功能豐富、工作穩定、兼容性強等特點,產品實物如圖1所示。

1.gif

  圖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   電話撥打和接聽控制命令表

4.png

    電話撥打接聽代碼執行流程如圖4所示。代碼首先會顯示可供使用的菜單,如電話撥打,短信接收等。等待用戶輸入參數,執行參數對應的流程。然后判斷是否執行成功,如果執行成功就會返回顯示菜單代碼處繼續執行下一下循環。

5.gif

  圖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”掛斷電話之后方可繼續撥打電話。

6.png

  圖5  代碼啟動運行結果

  l4.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 卡余額不足導致的。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:[email protected]
主站蜘蛛池模板: 成人18免费 | 亚洲精国产一区二区三区 | 男人的亚洲天堂 | 欧美一级毛片在线播放 | 国产成人精品免费视频大全可播放的 | 国产色在线观看 | 普通话对白国产精品一级毛片 | 宅男66lu国产乱在线观看 | 久久橹| 波多野结衣aⅴ在线 | 在线观看免费视频国产 | 国产大尺度福利视频在线观看 | 日韩 欧美 中文 亚洲 高清 在线 | 亚洲一二区 | 亚洲三级成人 | 九九热视频精品在线观看 | 成人黄网18免费观看的网站 | 天天五月天丁香婷婷深爱综合 | 精品一区二区三区波多野结衣 | 国产精品一区二区手机在线观看 | 色悠久| 国产精品黄页网站在线播放免费 | 一本三道a无线码一区v | 午夜精品一区二区三区在线观看 | 喷潮白浆直流在线播放 | 久久爱噜噜噜噜久久久网 | 91精品免费看 | 日本三级网站在线线观看 | 国产高清国产专区国产精品 | 美女一丝不佳一级毛片香蕉 | 亚洲欧洲日产国码一级毛片 | 国产精品秒播无毒不卡 | 国产高清在线视频 | 免费观看大片毛片 | 尹人成人 | 日本黄色大片在线播放视频免费观看 | 亚洲成人免费网址 | 日韩一区二区在线播放 | 国产精品反差婊在线观看 | 黄色三级视频 | 久久久香蕉视频 |