linux 下的4g、5g模组的拨号

1、有线网卡的网络模型 

  先看一下在linux嵌入式设备中有线网卡是怎么样的:

  

  

  从分层网络模型看,数据链路层和物理层是有硬件实现的,其余层是由内核和应用程序实现的。在上图的有线网络中,数据链路层就是芯片的mac控制器,物理层就是phy芯片。linux中用struct net_device结构体表示一张网卡,这张网卡实际上是对应的mac控制器和phy,用register_netdev注册后就可以用ifconfig命令看到一张网卡。

2、4g/5g网卡网络模型

  4g/5g网卡在linux中在网络层开始到应用层都是一样的,不一样的是有硬件实现的底下两层。5G模组集成了完整的无线接入层协议栈(包含物理层、MAC层、RLC层、PDCP层、RRC层以及NAS层(非接入层)控制面功能),对主机端呈现为一个标准的网络接口。在数据面,5G模组负责将主机发来的IP数据包(网络层)进行PDCP加密、RLC分段、MAC调度,最终通过物理层(RF)发送出去;4g/5g网卡可以用usb、pcie等接口与主控连接,它们的通信主要分为数据面和控制面。

数据面(Data Plane):负责承载用户的IP上网数据。  常见的承载协议包括ECM(以太网控制模型)、NCM(网络控制模型)、MBIM或高通的QMAP格式。其中,ECM/NCM是CDC(通信设备类)下的标准数据面协议。

控制面(Control Plane):负责管理模组状态(注册网络、激活PDP/PDU会话等)。控制面通常通过USB虚拟串口(ttyUSBx)(AT指令)

3、ECM/NCM

  ECM 和 NCM 可以看作是,当4G/5G模组通过USB接口连接时,主控(Host)与模组网卡之间用于承载数据面(Data Plane)IP网络包交互的底层传输协议,它们负责解决‘数据怎么通过USB线收发’的问题。NCM是ECM的升级版,数据传输更高效。这个是个标准协议,linux内核默认支持,需要加载cdc_ether.ko 或 cdc_ncm.ko驱动。驱动加载后,系统就会生成一个名为usb0或wwan0的网络接口。口语中会说用EMC或者NCM拨号,这个其实根拨号没关系,只是延续了ppp拨号,习惯这么叫。

 

 

posted @ 2025-05-23 17:56  YYFaGe  阅读(1707)  评论(0)    收藏  举报