chc0_0chc 2022-05-24 13:34 采纳率: 100%
浏览 176
已结题

4G转以太网用到什么技术原理

想要实现一个4G转以太网的设备,使用的是stm32+4G模块+phy芯片

期望实现的功能是 :原本不能访问公网的电脑通过网线连接设备后,电脑能访问公网

现在的问题是
一、MCU和4G模块通过串口通信,一般的MCU是通过AT指令和4G模块进行交互的,进行网络通信一般是知道要和什么ip进行通信,通过AT指令建立TCP连接后发送数据,但是想这个要实现4G数据转网口,网口数据转4G,根本就确定不了电脑端要发来什么样的数据(比如进行TCP连接,http请求等,AT指令模式下有相关的AT指令能操作),显然用不了AT指令的方式和模块进行通信,我是要对4G模块进行Ppp拨号么,然后把以太网口来的数据帧直接发给模块

二:MCU和以太网口:一般的应用都是路由器接入设备,路由器给设备分配ip的,然后本设备能上网,现在是反过来了,本设备要让其他设备能上网,那本设备是不要要给其他接入的设备分配ip,那ip要怎么分配

三:以太网口的数据和模块数据的转发:怎么实现对以太网的数据转发到4G,网口出来的数据帧应该是链路层的数据,数据带有MAC地址IP地址等,我是直接把这一串数据转发给4G模块么?

总体系统框图如下:

img

  • 写回答

1条回答 默认 最新

  • qllaoda 2022-05-24 13:45
    关注

    一, 肯定不能用AT,PPP可以,拨号后作为一个网络连接使用,但更方便的是RNDIS接口模式,4G模块自己实现了拨号,同时通过一个RNDIS接口提供给下面的设备用
    二,需要实现DHCP服务器功能。
    三,参考NAT原理。
    如果是做产品,建议用路由器(比如MT7620)+4G模块,STM32做这个,成本高,性能低。
    用支持RNDIS的4G模块接到路由,在路由器上,它的就相当于一个网口,作为路由的WAN口使用。

    当然如果你只是做着玩,一定要用STM32做,也是类似的,用USB接RNDIS接口的设备,STM32驱动RNDIS,是有现成驱动的。
    然后你得用STM32实现路由器的NAT转发功能,分配IP使用DHCP服务器,这个也要STM32去实现。

    实际上,如果你只是给一台电脑用,把具有RNDIS接口的4G模块直接插到电脑USB上就可以了。

    比如移远ec20模块就可以(不是广告)
    有些4G模块本身就带了以太网接口。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月1日
  • 已采纳回答 5月24日
  • 赞助了问题酬金20元 5月24日
  • 创建了问题 5月24日

悬赏问题

  • ¥15 对于这个复杂问题的解释说明
  • ¥50 三种调度算法报错 采用的你的方案
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败