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