基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell

准备工作:

         硬件:

  1. imx-rt1021野火开发板;
  2. 野火EC20模块;
  3. 云服务器ECS(具有公网IP,我这里用阿里云服务器)。

软件:

  1. RT-Thread操作系统在开发板上移植完成;
  2. EC20 USB驱动移植完成;
  3. PPP和LwIP移植完成;
  4. 开发板上telnet驱动移植完成(跟RT-Thread软件包netutils源码略有不同);
  5. 无线网卡设备远程登录Telnet专用上位机(我自己移植编写的)。

步骤一:

启动开发板,连接好EC20模块和调试串口。

基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell_第1张图片

步骤二:

在开发板上进行PPP拨号,如果获取到IP则认为拨号成功:

基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell_第2张图片

步骤三:

在阿里云服务器打开Telnet工具(实际上是一个TCP服务器):

步骤四:

在开发板进行请求与服务器进行telnet连接,输入telnet_server,可以已经进入telnet状态。

步骤五:

在服务器上可以看到以下熟悉的欢迎界面,后面服务器上就可进行开发板的命令交互了。

基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell_第3张图片

比如输入help:

基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell_第4张图片

比如输入ping和ifconfig命令,有没有一种爽的感觉。它确实香。

基于4G网卡的Telnet远程登录RT-Thread的Finsh/MSH Shell_第5张图片

 

移植部分的简略说明:

         RT-Thread系统:没什么可说。

         EC20 USB驱动:

  • 参考NXP官方SDK在imxrt1052/1021 USB CDC Host驱动进行移植;
  • 参考《Quectel_WCDMA<E_Linux_USB_Driver_User_Guide_V1.8》进行移植。

LwIP没什么好说的;

PPP部分:

  • 参考linux PPP拨号流程进行文件式配置拨号优化,以更加方便地支持不同厂商的网卡。

开发板Telnet-TCP客户端:(这样称它以免与熟悉的Telnet客户端进行概念混淆):

  • 参考RTThread官方的IoT软件包netutils中telnet
  • 因为官方是telnet以TCP服务器形式进行连接的,但是如果使用4G网卡上网一般来说在外网是无法连接它的。(我试过不行,行的话可以告诉我哈)。
  • 因此要讲telnet TCP服务器形式改成TCP客户端形式;

云服务器Telnet-TCP服务端:

  • 我这里的Telnet代码参考:linux中的busybox的telnet代码;
  • 当然telnet的连接将原本的TCP客户端连接改为TCP服务器连接;
  • 目前我这个工具仅支持windows,实现socket和命令行数据监听时,我还参考了dengyejing的代码https://blog.csdn.net/dengyejing/article/details/678444.

 

整体感觉:效果还算不错,细节还需要继续优化。移植细节这里先不说了,已经很久没有写帖子了。

你可能感兴趣的:(嵌入式,物联网,物联网,嵌入式,telnet)