模块与手机通讯协议详解V1.0

需积分: 9 2 下载量 173 浏览量 更新于2024-09-02 收藏 2.33MB DOC 举报
"通讯流程及通讯协议V1.0-2015-10-18.doc" 在本文档中,我们详细探讨了模块与手机之间的通讯流程和协议,主要涉及TCP和UDP两种通讯方式。模块并不直接与服务器交互,而是通过手机作为中介,将服务器的数据转发给模块。这种设计简化了通讯结构,同时也可能提高了通讯的安全性,因为手机可以进行数据的预处理和验证。 首先,我们来看数据通讯方式。在这个系统中,模块与手机之间的通讯基于TCP和UDP两种协议。当使用TCP(传输控制协议)时,手机充当服务器角色,而模块作为客户端发起连接请求。TCP提供了一种面向连接的、可靠的、基于字节流的传输服务,确保了数据的完整性和顺序。在TCP通讯中,模块的端口号是固定的50000,而手机的TCP端口号暂时设定为1000,但需要测试后确认可用。 另一方面,UDP(用户数据报协议)通讯则采用广播方式。模块和手机的UDP端口同样为50000和1000,但需要注意的是,UDP是无连接的、不可靠的协议,适合于对实时性要求较高的应用场景,但它不能保证数据包的顺序和完整性。 接下来,我们分析基本协议V1.0的帧结构。每个数据包由帧头、数据长度、流水号、功能码等组成。帧头的初始字节是0x01,用于标记不同的功能。例如: - 0x01 发送无线名称,数据以双引号包围的字符串形式表示,如"TestWiFi"。 - 0x02 发送无线密码,同样以字符串形式,如"1234"。 - 0x03 连接请求,包含IP地址(如192.168.1.104)和端口号(5000),用于建立TCP连接。 手机通过UDP广播这些指令,模块接收后会给出相应的应答,如0x04应答指令,它回应了之前的0x01、0x02、0x03等功能码的请求。此外,还有其他功能码的应答数据,如工作状态(0x06)、请求ID(0x08)、工作模式(0x09)和任务完成(0x0A)等。 工作状态包括不同的烹饪模式,如炒菜、爆炒、个性炒等,用不同的数字编码来标识。而请求ID的应答数据则是模块的ID,用于唯一识别模块。工作模式的应答数据0xFB可能表示当前模块的工作模式设置,而任务完成的应答数据0xFA则表明某个烹饪任务的完成情况。 这个通信系统结合了TCP的可靠性和UDP的高效性,通过手机作为桥梁,实现了模块与服务器之间的数据交互。协议的帧结构清晰,功能码明确,方便了模块与手机之间的数据解析和处理。在实际应用中,这样的设计可以确保设备的稳定运行,并且易于扩展新的功能和服务。