UART ETH E 系列模块设置协议 注意 : 通讯协议有两个版本, 针对 V4.2 固件版本之后的协议, 请看每段的标题 (E45 系列支持新版本的协议, 但只能在静态 IP 模式下 ) 新版本固件向前兼容, 如果不用到新功能 ( 独立 ID 和子网掩码 ), 依然可以用老协议进行操作 版本更新历史 V1: 版本建立 V3: 增加 USR-TCP-E,-400,-500 的串口设置命令 V4: 文档格式修整 1. 新协议 ( 针对固件版本 V4.2 及以上 ) 2012-10-19 改动, 串口通过 VR 指令 ( 串口读取固件版本号举例 : 发送字符 VR, 返回字符 VR4.: 代表固件版本是 4.10, 这里 10 的得来, 为 ascii 码值减去 0x30 后所得 ) 读取版本显示 V4.2 及之后的程序支持以下协议 现发布的大部分产品均符合此协议 1.1. 网络指令 ( 仅适用 T24 系列 ) 网络配置通过 UDP 广播包形式完成, 通过网络配置时不需要且不能将 CFG 接低, 如果将 CFG 接低将不能进行网络配置 注意, 目标地址及端口号如下 : UDP 广播目标地址 255.255.255.255,UDP 本地端口 1500,UDP 目标端口 1500 1.1.1. 搜索设备 40 字节新协议 : 搜索设备 : 通过 UDP 向网络广播一个任意 40 字节的数据包, 将返回 35 个字节, 后面 28 个字节为原基础 ( 旧协议 ) 上增加 3 个独立 ID 功能控制位,4 位子网掩码 ( 低位在前 ) 注 : 1) 物理上在同一个局域网内 ( 模块的 IP 可以和计算机的 IP 不在同一个网段 ) 的模块将作出回应 返回如下 : 名称长度说明举例 MAC 6 字节网络模块的 MAC 地址 00 CE 83 25 4D 60 状态字 1 字节 版本号,BCD 码表示主次版本号, 如 4.2 表示为 0x42 第 1 页共 9 页 42
配置参数 21 字节 这 21 个字节为网络模块的配置参数, 内容与串口设置部分表格中除包头和检验位之外的内容一致 C9 00 A8 C0 2A 20 07 00 A8 C0 8C 4E C9 00 A8 C0 01 00 C2 01 03 独立 ID 3 字节 ID-H,ID-L,ID-type, 不启用请填 0 00 00 00 子网掩码 4 字节 子网掩码, 低位在前, 比如 255.255.255.0 00 FF FF FF 1.1.2. 设置参数 发送设置命令也是 40 个字节 发送命令如下 : 名称 长度 说明 举例 (16 进制 ) MAC 6 要设置的模块的 MAC 地址 00 CE 83 25 4D 60 旧密码 6 网络模块的配置密码,110415 为万能密码 31 31 30 34 31 35 配置参数 21 这 21 个字节为网络模块的配置参数, 内容与串口设置部分表格中除包头和检验位之外的内容一致 c9 00 a8 c0 2a 20 07 00 a8 c0 8c 4e c9 00 a8 c0 01 00 c2 01 03 独立 ID 3 ID-H,ID-L,ID-type, 不启用请填 0 00 00 00 子网掩码 4 子网掩码, 低位在前, 比如 255.255.255.0 00 FF FF FF 1.2. 串口指令 要进入串口配置模式, 首先需要将 CFG 引脚接地, 不同的硬件版本 CFG 所在的位置不同, 请参考对应产品手册 模块的设置命令格式如下表, 你也可以用我们提供的设置软件生成和测试配置字, 发送数据的波特率为 9600, 无奇偶校验,8 位数据位,1 位停止位, 9600,n,8,1 无论之前工作的波特率是多少, 模块在进入配置模式后自动切换到 9600 波特率, 并向串口发送字符 U, 以表示已进入配置状态, 收到完整的数据包并校验处理正确后会返回字符 K, 如果校验出错, 将返回字母 E 和模块计算的校验位, 此位在手动测试发送命令时非常有用, 在其他错误仅发送 E, 如包头不正确, 位数不正确等 注意 : 设置完成后, 需要释放 CFG 使其悬空或接高, 以使模块恢复到工作状态 ( 对于 E45 系列, 释放 cfg(reload) 将会使模块保存参数并且重启 ) 命令的包头 ( 支持 E45 系列串口设置 ) 第 2 页共 9 页
55 BA 写 Port0 配置,55 BC 读 Port0 配置, 55 C1 写 Port1 配置,55 C3 读 Port1 配置, 55 C2 写 Port2 配置,55 C4 读 Port2 配置 (Port1 Port2 操作对 -E,-400,-500 有效 ) 写端口配置时, 各个数据位要根据下面的表格来 ; 读取端口配置时, 只需发送包头即可, 比如发送 55 BC, 即可读取端口 0 配置参数 第 3 页共 9 页
www.waveshare.net UART ETH E 系列模块设置协议 深圳市微雪电子有限公司 各数据位含义如下 : 功能 位 16 进制低位在说明举例数前 包头 2 55 BA/55 C1/55 C2/ 包头 55 BA 目标 IP 4 连接目标的 IP 192.168.0.201 C9 00 A8 C0 目标端口 2 连接目标的端口 8234 2A 20 模块 IP 4 模块的 IP 192.168.0.7 07 00 A8 C0 模块端口 2 模块的端口 20108 8C 4E 网关 4 网关 IP 192.168.0.201 C9 00 A8 C0 1 为 TCP Client,0 为 UDP 工作模式 1 2 为 UDP Server, 3 为 TCP TCP Client 01 Server 波特率 3 串口端工作率 115200 00 C2 01 串口参数位 1 数据位停止位校验位 ( 详见 N,8,1 03 附 ) 独立 ID 3 ID-H,ID-L,ID-type, 不用请不启用 00 00 00 填 0 子网掩码 4 子网掩码, 低位在前 255.255.255.0 00 FF FF FF 加和校验, 从目标 IP 开始算 和校验 1 起, 到和校验之前为止 ( 结果 和校验 B9 保留低字节 ) 完整命令串 :55 BA C9 00 A8 C0 2A 20 07 00 A8 C0 8C 4E C9 00 A8 C0 01 00 C2 01 03 00 00 00 00 FF FF FF B9 注意 : 1 写时 28 位读时 29 位最后一位为版本号, 版本号位不可写 2 TCP232-E45 系列产品, 在串口设置完成后 ( 也就是 Reload 由低恢复到高电平后, 模块将自动复位,4s 后启动完成, 在此期间请不要操作 Reset 脚拉低, 避免恢复出厂设置 ) 第 4 页共 9 页
2. 旧协议 2.1. 串口配置协议 要进入串口配置模式, 首先需要将 CFG 引脚接地, 不同的硬件版本 CFG 所在的位置不同, 请参考对应产品手册 模块的设置命令格式如下表, 你也可以用我们提供的设置软件生成和测试配置字, 发送数据的波特率为 9600, 无奇偶校验,8 位数据位,1 位停止位, 9600,n,8,1 功能位数说明举例 包头 2 包头恒为 55 AA 包头 55 AA 目标 IP 4 连接目标的 IP 192.168.0.20 目标端口 2 连接目标的端口 8234 2A 20 第 5 页共 9 页 1 16 进制低位在 前 C9 00 A8 C0 模块 IP 4 模块的 IP 192.168.0.7 07 00 A8 C0 模块端口 2 模块的端口 20108 8C 4E 网关 4 工作模式 1 网关 IP 192.168.0.20 1 为 TCP Client,0 为 UDP 2 为 UDP Server, 3 为 TCP Server 1 TCP Client 01 C9 00 A8 C0 波特率 3 串口端工作率 115200 00 C2 01 串口参数位 1 数据位停止位校验位 ( 详见附 ) N,8,1 03 和校验 1 加和校验, 从目标 IP 开始算起, 到和校验之前为止 和校验 完整命令串 :55 AA C9 00 A8 C0 2A 20 07 00 A8 C0 8C 4E C9 00 A8 C0 01 00 C2 01 03 BC 无论之前工作的波特率是多少, 模块在进入配置模式后自动切换到 9600 波特率, 并向串口发送字符 U, 以表示已进入配置状态, 收到完整的数据包并校验处理正确后会返回字符 K, 如果校验出错, 将返回字母 E 和模块计算的校验位, 此位在手动测试发送命令时非常有用, 在其他错误仅发送 E, 如包头不正确, 位数不正确等 串口读取配置 : 在配置模式下, 在以上描述的 9600,n,8,1 设置下, 通过串口发送两个 16 进制数 0x55 0xBB, 模块将按照配置协议的顺序返回, 例如 : 55 BB C9 00 A8 C0 2A 20 07 00 A8 C0 8C 4E C9 00 A8 C0 01 00 C2 01 03 BC 注意 : 设置完成后, 需要释放 CFG 使其悬空或接高, 以使模块恢复到工作状态 BC
2.2. 网络配置协议 网络配置通过 UDP 广播包形式完成, 通过网络配置时不需要且不能将 CFG 接低, 如果将 CFG 接低将不能进行网络配置 这里以 VB 为例子, 假定已经在工程中加入了名称为 Win sock 的 Microsoft Win sock Control 控件 UDP 设置 :UDP 广播目标地址 255.255.255.255,UDP 本地端口 1500,UDP 目标端口 1500 如在 VB 中可使用如下代码 : Win sock.close Win sock.ghostwrote = "255.255.255.255" Win sock.remote Port = "1500" Win sock.allocator = "1500" Win sock.protocol = protocolist 第 6 页共 9 页
搜索设备 : 通过 UDP 向网络广播一个任意 39 字节的数据包, 物理上在同一个局域网内 ( 模块的 IP 可以和计算机的 IP 不在同一个网段 ) 的模块将作出回应 用 VB 发送数据的方法如下 : Win sock.senator "123456789012345678901234567890123456789" 处理数据 : 模块在收到 39 个字节的广播包后, 将回应 28 字节数据 名称长度说明举例 MAC 6 字节网络模块的 MAC 地址 00 CE 83 25 4D 60 状态字 1 字节默认 0 00 配置参数 21 字节 这 21 个字节为网络模块的配置参数, 内容与串口设置部分表格中除包头和检验位之外的内容一致 C9 00 A8 C0 2A 20 07 00 A8 C0 8C 4E C9 00 A8 C0 01 00 C2 01 03 下图是 Wire shark 软件抓包截图, 供参考 第 7 页共 9 页
配置模块 : 通过广播带有指定模块 MAC 地址的广播包即可对模块进行配置, 配置数据包共 39 字节 配置包的数据格式为 : 名称 长度 说明 举例 (16 进制 ) MAC 6 要设置的模块的 MAC 地址 00 CE 83 25 4D 60 旧密码 6 网络模块的配置密码,110415 为万能密码 31 31 30 34 31 35 配置参数 20 与串口配置协议部分表格, 除前两位和末两位外, 描述一致 c9 00 a8 c0 2a 20 07 00 a8 c0 8c 4e c9 00 a8 c0 01 00 c2 01 新密码 6 如果要改变密码, 让新密码与旧密码不一致即可 31 31 30 34 31 35 串口参数位 1 数据位停止位校验位 ( 详见附 ) 03 下图是 Wire shark 抓包截图供参考 第 8 页共 9 页
3. 附 : 串口参数位 bit 含义说明 位号 说明 值 描述 1:0 数据位选择 00 5 位数据位 01 6 位数据位 10 7 位数据位 11 8 位数据位 2 停止位 0 1 位停止位 1 2 位停止位 3 校验位使能 0 不使能校验位 1 使能检验位 5:4 校验位类型 00 ODD 奇校验 01 EVEN 偶校验 10 Mark 置一 11 Clear 清零 8:6 无定义 000 请写 0 第 9 页共 9 页