• lwip学习 0.学习计划


    个人初次基础 lwip,所以在这里记录学习过程。如果有什么问题,欢迎交流。

    一.开发环境

      硬件环境:

        主要芯片:STM32F207VET6 + DP83848

      软件环境:

        系统版本:RT-THREAD2.1.0 + LWIP1.4.1

        编译环境:IAR7.8

    二.学习计划

      1.lwip应用初体验

        任务要求:设备1<----->设备2

        总的通信流程:

          1. 设备2通过UDP通过8000端口广播 “!Dev2_SearchValidMac$

          2. 设备1通过监听UDP8000端口,收到广播包“!Dev2_SearchValidMac$”,并回复TCP服务器地址(假如为192.168.4.132)和端口号(假如为9876),例如“!Dev1_192.168.4.132_09876_00:60:6e:3a:00:39$”(项目中可固定字节数)

          3. 设备2通过设备1回复的ACK中的地址和端口号,连接相应的服务器,建立通信

          4. 设备2根据4455协议发送ch+opcode+arg_len+arg给设备1,设备1根据4455协议回复ch+opcode+0XFF

          异常备注:a. 步骤3完成之后,设备2理论上30S会发送一条心跳报文给设备1,如果设备1连续2分钟都没有收到心跳,直接断开此连接

          设备单独分析:

            设备1:

              设备上电:

                a.开启TCP_Server的Soket端口6000,等待客户端连接通信,连接成功之后,心跳包不可超过2分钟,否则重启TCP_Server

                b.开启UDP的Soket端口6000,等待接收广播包,如果收到有效广播包,回复相应的自身TCP_Server信息

            设备2:(第一阶段用PC代替)

              设备上电:

                a.开启UDP的Socket端口,定期发送广播包“!Dev2_SearchValidMac$”,收到有效数据包后

                b.开启TCP_Client的Soket,根据UPD收到数据包连接服务器,连接成功之后,心跳包30S一次,发送失败,重新连接。

      2.lwip应用提高篇

        任务要求:

          a.梳理初体验篇中的各种异常情况并处理

          b.梳理Lwip中的多个重要函数使用方法

      3.Lwip项目实践篇

        任务要求:EMW3165+红外转发器可以用手机远程控制。

    三.Lwip学习计划变化

      1.根据网关协议,做一个逻辑简单的网关

        设备的所有硬件BSP包支持+所有软件BSP包支持+platform包支持

      2.设备接入测试稳定性

  • 相关阅读:
    什么是架构
    intellij idea新建maven项目,一直loading archetype list.....
    maven使用出现的错误
    mock使用中出现的错误
    9个最好用的在线编译/调试工具
    Junit测试中找不到junit.framework.testcase
    mysql图形化界面MySQL_Workbench
    win7下mysql免安装版使用
    qemu安装
    逻辑卷管理
  • 原文地址:https://www.cnblogs.com/mrsandstorm/p/7095642.html
Copyright © 2020-2023  润新知