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.设备接入测试稳定性

 

posted @ 2017-06-29 17:42  mrsandstorm  阅读(813)  评论(1编辑  收藏  举报