? 英创Linux嵌入式工控主板支持4G网卡--技术天地

英創Linux嵌入式工控主板支持4G網卡

 2015/6/8    

  隨著數據通訊業務的日益增加,對數據傳輸效率的要求也越來越高,目前普遍使用的有第二代移動通信技術(2G)最高傳輸速率為115kbit/s,第三代移動通訊技術(3G)可提供5.76Mbits/s的數據上行和高達21.6Mbit/s的數據下行速度,英創公司對2G和3G的支持已經有了成熟的方案,2G可以使用ETA301套件通過串口控制,3G可以使用ETA303轉接模塊將3G模塊的MiniPCIe接口轉換成USB接口與板卡連接進行撥號等操作。現在第四代移動通訊技術(4G)也逐漸的發展起來,4G從數據傳輸的速度或者通信的靈活度上講,都有著不可比擬的優越性,理論上最大速度可達100Mbit/s,如果對網絡性能有較高的要求時,4G將是不錯的選擇。

 

  英創公司已經完成了對中興的4G模塊ME3760的評估,硬件和驅動都已經測試通過。硬件部分和3G模塊相同,使用ETA303轉接模塊將4G模塊的MiniPCIe接口轉換成USB接口與板卡連接,這樣硬件的連接就已經完成。所以以前通過ETA303模塊使用3G網絡的客戶如果想升級為4G,硬件上面不需要做任何改動,將3G模塊換成4G模塊即可。下面英創公司就使用ME3760模塊為例,介紹如何在EM335x和EM928x系列的Linux工控主板上成功連接上4G網絡。

 

 

1、驅動的移植

 

  4G模塊和3G模塊有較大的區別,文件系統中USB轉串口的通用驅動不能夠直接使用到4G模塊上,還要加入USB轉網絡的驅動,根據中興官方提供的資料,需要對驅動文件usbserial.c和cdc_ether.c做一些修改,具體的修改方法可以在模塊的手冊中查看。修改完成后內核中的驅動選項如下,我們還是使用模塊的形式來編譯:

 

  Device Drivers --->
    [*] Network device support --->
      USB Network Adapters --->
        Multi-purpose USB Networking Framework
        -M- CDC Ethernet support (smart devices such as cable modems)

 

  編譯完成后,我們需要用到的模塊有usbserial.ko、usb_wwan.ko、option.ko、cdc_encap.ko這四個ko文件。

 

2、驅動加載

 

  插入ETA303模塊上電后,還是需要加載編譯好的ko文件才能識別,usbserial.ko加載的時候帶上vendorID和productID,ME3760模塊的vendorID為0x19d2,productID為0x0199,所以加載命令為:

 

  insmod /lib/modules/3.12.10/usbserial.ko vendor=0x19d2 product=0x0199
  usbserial.ko、usb_wwan.ko、option.ko這三個模塊有依賴的關系,所以需要按照usbserial.ko->usb_wwan.ko->option.ko這樣的順序加載:
  insmod /lib/modules/3.12.10/usbserial.ko
  insmod /lib/modules/3.12.10/usb_wwan.ko
  insmod /lib/modules/3.12.10/option.ko

 

  加載完成后,終端會打印一些信息,顯示USB已經轉換成串口ttyUSB0、ttyUSB1和網絡eth1(如果是雙網口則是轉換成eth2),這樣就說明驅動加載成功了。

 

 

  也可以使用命令ifconfig -a可以在終端查模塊轉換出來的網絡設備。

 

3、連接網絡

 

  4G模塊和以往的2G、3G在網絡連接方面也有一些區別,不再使用pppd撥號腳本了,而是使用AT指令直接獲取IP和DNS設置到模塊轉換成的網絡設備上(本次示例中的eth1)。接下來看一下詳細的步驟:

 

  ①首先發送指令“AT+CFUN=1'設置4G模塊為完全功能模式,這里大約需要等待40秒左右的時間,模塊才能將功能啟動起來。

 

  ②發送指令“AT+CGACT=1,1”獲取IP地址和DNS地址,命令的應答格式為:

 

 

  這里需要將返回的一個IP地址和兩個DNS地址記錄下來以便等一下設置到4G模塊中。

 

  ③發送指令“AT+ZGACT=1,1” 用于連接RNDIS鏈路。

 

  ④使用命令ifconfig eth1 10.72.172.95將前面獲取的IP地址設置到eth1中,然后使用命令ifconfig eth1 up將eth1啟用,通過這幾步操作模塊就已經連上網絡了。接下來需要設置一下默認網關,使用命令:route add default gw 10.72.172.95將默認網關修改為4G網卡。

 

 

 

  ⑤如果需要使用DNS的功能,那么需要將第二步中通過AT指令獲取到的兩個DNS設置到/etc/resolv.conf中:

 

 

  經過以上步驟,就能夠通過4G模塊訪問外網了,測試如下:

 

 

  考慮到以上的步奏較為繁瑣,為了方便用戶操作,英創公司已經將以上的操作全部整合到例程test_4g中了,用戶運行程序能夠實現自動發送AT指令,記錄下IP和DNS,并且將IP設置到4G網卡中,實現上網的功能,如需要相關代碼,可以向英創相關工程師索取。