隨著3G和4G網(wǎng)絡(luò)的普及,在嵌入式產(chǎn)品中越來越多的使用到他們,特別是在沒有以太網(wǎng)的環(huán)境中,使用3G或者4G無線模塊能夠有效的解決網(wǎng)絡(luò)通訊問題。英創(chuàng)公司也針對各種型號的主板,推出了通用的3G和4G的通訊方案,這篇文章主要總結(jié)了各種在主板上評估過的3G和4G模塊,以及使用方法和常見的一些問題。
基礎(chǔ)介紹
英創(chuàng)公司支持的為MINI-PCIe接口的全長或者半長尺寸模塊,3G和4G模塊只使用了MINI-PCIe接口中的供電、復(fù)位和USB信號,所以這種接口的模塊在英創(chuàng)公司所有型號的主板上都能夠適用,并且為了方便客戶評估,英創(chuàng)公司在ESMARC通用評估底板上已經(jīng)增加了接口,可以直接和評估底板連接測試。MINI-PCIe接口的模塊如下圖:
ESMARC系列主板和MINI-PCIe接口模塊
目前測試過的3G和4G模塊整理如下:
型號 | 廠商 | 網(wǎng)絡(luò)制式 | Vendor ID | Product ID | Modem口 |
MU709S-2 | 華為 | 3G,聯(lián)通WCDMA | 0x12d1 | 0x1c25 | /dev/ttyUSB0 |
MC2716 | 中興 | 3G,電信CDMA2000 | 0x19d2 | 0x5238 | /dev/ttyUSB0 |
ME909S-821 | 華為 | 4G,全網(wǎng)通 | 0x12d1 | 0x15c1 | /dev/ttyUSB1 |
ME3630 | 中興 | 4G,全網(wǎng)通 | 0x19d2 | 0x1476 | /dev/ttyUSB1 |
EC20 | 移遠(yuǎn) | 4G,全網(wǎng)通 | 0x05c6 | 0x9215 | /dev/ttyUSB1 |
無線模塊和英創(chuàng)公司主板在物理上是通過USB虛擬串口進(jìn)行通訊的,而軟件上通過ppp協(xié)議轉(zhuǎn)換提供給客戶一個標(biāo)準(zhǔn)的網(wǎng)絡(luò)設(shè)備。英創(chuàng)公司在主板中已經(jīng)添加了3G和4G模塊的驅(qū)動(USB虛擬串口驅(qū)動)和ppp協(xié)議的支持。板卡中的驅(qū)動是以模塊(usbserial.ko)的形式提供,usbserial.ko是一個通用的驅(qū)動,已經(jīng)集成了大部分常用模塊的支持。驅(qū)動加載成功后系統(tǒng)會生成多個虛擬串口,他們分別有不同的用處,比如作為數(shù)據(jù)通訊口(即modem口)、響應(yīng)AT指令的設(shè)備口以及傳輸GPS信息的設(shè)備口等,生成USB虛擬串口后通過ppp調(diào)用modem口撥號即可連接上網(wǎng),需要注意的是3G模塊的modem口一般都為/dev/ttyUSB0,而4G模塊的modem口一般為/dev/ttyUSB1。
撥號使用的文件在/etc/ppp/peers/目錄下,英創(chuàng)公司已經(jīng)編寫好了3G和4G的撥號文件,客戶只需要選用對應(yīng)的撥號文件即可,本文使用的是4G模塊MU909S-2作為例子,所以使用/etc/ppp/peers/目錄下的lte-connect-script文件,對于4G來說,移動、聯(lián)通和電信的SIM卡都可以使用這一個撥號文件。如果客戶使用的是3G模塊,就需要根據(jù)不同的網(wǎng)絡(luò)制式選擇腳本,如果是聯(lián)通的3G,需要使用wcdma-connect-script這個撥號文件,如果是使用的電信3G,就需要使用cdma-connect-script這個撥號文件,若客戶有其他特殊的要求,可以根據(jù)英創(chuàng)公司提供的這三個撥號文件進(jìn)行修改,滿足自己的需要,下表列出了網(wǎng)絡(luò)制式和撥號文件的對應(yīng)關(guān)系:
無線信道 | 網(wǎng)絡(luò)制式 | 對應(yīng)撥號文件 |
3G | 聯(lián)通CDMA | /etc/ppp/peers/wcdma-connect-script |
3G | 電信CDMA 2000 | /etc/ppp/peers/cdma-connect-script |
4G | 通用 | /etc/ppp/peers/lte-connect-script |
使用步驟
接下來以4G模塊MU909S-2作為例,說明具體的使用步驟:
1、插入無線模塊,上電啟動英創(chuàng)Linux主板。在沒有加載驅(qū)動的時候,會被識別成CDROM或者USB移動存儲設(shè)備。
2、加載驅(qū)動模塊,需要代入上面的vender id和product id,英創(chuàng)Linux主板的驅(qū)動模塊都放在/lib/modules//下面,例如使用ESM6800加載驅(qū)動模塊,因為ESM6800的內(nèi)核版本為4.1.15,輸入命令為:insmode /lib/modules/4.1.15/usbserial.ko vendor=0x12d1 product=0x15c1,注意如果使用的主板為ESM7000,ESM6802,ESM6800H或者ESM6800V系列的板卡,可以使用命令:modprobe usbserial vendor=0x12d1 product=0x15c1,不需要代入路徑了,輸入驅(qū)動后會自動生成usb虛擬串口,如下:
轉(zhuǎn)換成虛擬串口
可以看到系統(tǒng)生成了多個USB虛擬串口。注意,如果客戶使用的無線模塊不在上面的表格之中,可以通過模塊的手冊來確定vendor id和product id,或者使用一臺裝有Linux系統(tǒng)的PC,將模塊連接到PC上使用lsusb命令也可以查看到兩個id號。
3、接下來就可以撥號了,輸入命令:pppd call lte-connect-script 使用4G網(wǎng)絡(luò)的撥號文件lte -connect-script進(jìn)行撥號,完成以后,可以使用ifconfig命令查詢,如果成功聯(lián)網(wǎng),會有ppp0的網(wǎng)絡(luò)信息。如圖所示:
ppp0節(jié)點信息
常見問題
如果撥號后遇到無法生成ppp0節(jié)點的情況,客戶可以通過修改撥號文件來查看調(diào)試信息,撥號文件中有一行為#nodetch,去掉前面的#,就可以輸出調(diào)試信息了,如下圖:
撥號文件內(nèi)容
再調(diào)用ppp撥號,就能看見調(diào)試信息了。如果是發(fā)現(xiàn)調(diào)試信息出現(xiàn)模塊沒有回復(fù)指令的情況,可能是由于撥號文件使用的設(shè)備節(jié)點不是模塊作為modem口的設(shè)備,可以通過模塊的手冊來確定作為modem口的設(shè)備節(jié)點,同時嘗試更改撥號文件中使用的usb虛擬串口設(shè)備,比如上圖中使用的是/dev/ttyUSB0,可以更換為/dev/ttyUSB1嘗試。如果是遇到無法建立連接的情況,建議可以檢查天線和SIM卡是否接好。
在生成ppp0節(jié)點之后,如果要通過ppp0訪問外網(wǎng),那么默認(rèn)網(wǎng)關(guān)就需要設(shè)置為ppp0節(jié)點,客戶可以使用route命令查看當(dāng)前的默認(rèn)網(wǎng)關(guān)。在沒有默認(rèn)網(wǎng)關(guān)的情況下,ppp撥號成功之后會自動將ppp0設(shè)置為默認(rèn)網(wǎng)關(guān),英創(chuàng)主板可以通過把userinfo.txt中DefaultGateway這一項的值填為0,來取消設(shè)置默認(rèn)網(wǎng)關(guān)。如果主板在撥號的時候已經(jīng)有了默認(rèn)網(wǎng)關(guān),或者需要設(shè)置多個網(wǎng)關(guān),可以參考文章:《Linux主板多網(wǎng)絡(luò)的優(yōu)先級設(shè)置》進(jìn)行設(shè)置。
-
Linux
+關(guān)注
關(guān)注
87文章
11314瀏覽量
209807 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35427
發(fā)布評論請先 登錄
相關(guān)推薦
評論