USR-K2 设置协议 V1.0
目录 目录... 2 1. 通讯协议... 3 2. 上位机发送命令... 4 2.1. 命令查询表... 4 2.2. 发送命令的校验和算法... 4 2.3. 搜索命令... 4 2.4. 复位命令... 4 2.5. 读取配置命令... 5 2.6. 基础配置指令... 5 2.7. 端口配置... 6 3. 网络模块返回结果... 8 3.1. 搜索指令的返回结果... 8 3.2. 复位指令的返回结果... 8 3.3. 读取命令的返回结果... 9 3.4. 储存配置指令的返回结果... 9 3.5. 基础配置命令的返回结果... 9 3.6. 其他返回 :... 9 4. 举例... 10 4.1. 举例... 10 4.2. 报文监听方法... 10 5. USR- K2 串口设置协议... 11 5.1. 功能介绍... 11 5.2. 基础配置... 12 5.3. 端口设置... 13 5.4 读取配置指令... 14 附录 : 文档修改历史... 16
1. 通讯协议 配置流程 : 为了方便跨网段进行配置, 所有通讯协议的操作均采用 UDP 广播方式完成, 排列方式均为低位在前 UDP 通信时必须保证目标端口号 1500, 本地端口号随机, 所有通信协议均为 UDP 广播通信流程描述为 ( 一次完整的参数读取与配置过程, 每次配置参数, 都必须先读取全部参数才可以 ): 注意 : 在第二章中的参数表内, 一些未标注内容 或者是标注请讲读取回的值原样写入的, 请在此位置, 填写原来读取回来的数据内容
2. 上位机发送命令 2.1. 命令查询表 功能 包头 长度 ( 命令 ~ 参数 1 字节 ) 命令 MAC 地址 (6 字节 ) 用户名密码 (12 字节 ) 参数 校验位 (sum) 搜索 FF 01 01 - - - 02 复位 FF xx 02 [MAC] 读取配置 FF xx 03 [MAC] 基础设置 FF xx 05 [MAC] 串口 0 设置 FF xx 06 [MAC] [usrname] [password] [usrname] [password] [usrname] [password] [usrname] [password] - xx - xx 基础参数 xx 串口参数 xx 扩展设置 - - - - - - - 2.2. 发送命令的校验和算法 校验位为和校验, 从长度字节 ( 包含长度 ) 开始, 加到校验之前 ( 不包含校验 ) 为止, 结 果为校验值, 只保留低字节 2.3. 搜索命令 搜索命令固定为 : Ff 01 01 02... 和校验 02 = 01 + 01 2.4. 复位命令 发送 FF 13 02 00 71 77 7c 42 2f 61 64 6d 69 6e 00 61 64 6d 69 6e 00 fc 和校验 fc = 13 + 02 +... + 6E + 00 红色部分为网络模块的 MAC 地址最后的 12 个字节为网络模块的用户名与密码
2.5. 读取配置命令 发送 (22 字节 ):ff 13 03 00 71 77 7c 42 2f 61 64 6d 69 6e 00 61 64 6d 69 6e 00 fd 和校验 fd = 13 + 03 + 00 +... + 6E + 00 其中, 绿色跟红色的部分, 分别代表用户名与密码, 均为 6 字节, 不足, 补 0 2.6. 基础配置指令 基础参数, 一共 67 字节 名称 字节 例子 说明 ucsequencenum 1 00 预留包头 uccrc 1 00 预留包头 ucversion 1 00 预留包头 ucflags 1 80 IP 地址类型 : 第 8 位为 0:DHCP;1: 静态 IP uslocationurl Port 2 00 00 不启用, 预留协议 ushttpserverp ort 2 50 00 HTTP 服务端口 ucuserflag 1 00 不启用, 预留协议 ulstaticip 4 07 00 A8 C0 静态 IP 地址 ulgatewayip 4 C9 00 A8 C0 网关 ulsubnetmask 4 00 FF FF FF 子网掩码 ucmodname 6 55 53 52 2D 4B 32 模块名称 协议预留 10 00 00 00 必须为零 username 6 61 64 6D 69 6E 00 用户名 password 6 61 64 6D 69 6E 00 密码 ucnetsendtime 1 00 不启用, 预留协议 uiid 2 01 00 设备 ID ucidtype 1 00 INDEX 功能 ucusermac 6 00 00 00 00 00 00 不启用, 预留协议 ucreserved 8 00 00 00 00 00 00 00 00 Unused 举例 : FF 56 05 00 71 77 7c 42 2f 61 64 6d 69 6e 00 61 64 6d 69 6e 00 95 63 03 00 00 00 50 00 00 07 00 a8 c0 c9 00 a8 c0 00 ff ff ff 55 6c 6c 2d 66 32 00 00 00 00 00 00 00 00 00
00 61 64 6d 69 6e 00 61 64 6d 69 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 校验字节仍为和校验算法 03 = 56 + 05 + 00+... + 2E 红色部分为 MAC 地址, 再往后的是 12 字节的用户名 + 密码再往后就是固定长度的基础配置参数最后一个字节为和校验字节 2.7. 端口配置 共 63 字节名称 字节 例子 说明 ulbaudrate 4 00 C2 01 00 串口波特率 ucdatasize 1 08 串口数据位 (0X05/0x06/0x07/0x08) ucparity 1 01 串口校验位 1:no,2:odd,3:even,4:mark,5: space ucstopbits 1 01 串口停止位 (0x01/0x02) ucflowcontrol 1 00 不启用, 预留协议 ultelnettimeout 4 00 00 00 00 不启用, 预留协议 ustelnetlocalport 2 8C 4E 本地端口 ustelnetremoteport 2 2a 20 远程端口 31 39 32 2E 31 36 38 2E uitelneturl 30 00 00 00 00 00 00 30 2E 31 00 00 00 00 00 IP 地址或域名都以 ASCII 码发送 00 00 00 00 00 00 00 00 例子为 :192.168.0.1 ultelnetipaddr 4 00 00 00 00 不采用 ucflags 1 00 不启用, 预留协议 ucworkmode 1 01 工作方式 : 0:UDP, 1:TCP Client, 2:UDP Server, 3:TCP Server uipacklen 4 00 00 00 00 不启用, 预留协议 ucpacktime 1 0A 串口打包时间 uctimecount 1 91 请将读取回的值原样写入 TCP server type 1 00 不启用, 预留协议 ucreserved 4 00 00 00 00 其余字节保留扩展 举例 : Ff 52 06 00 71 77 7c 42 2f 61 64 6d 69 6e 00 61 64 6d 69 6e 00 00 c2 01 00 08 01 01 01 00 00 00 00 8c 4e 2a 20 31 39 32 2e 31 36 38 2e 30 2e 32 30 31 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 c9 00 a8c0 00 01 00 00 00 00 00 00 00 00 00 00 00 eb 校验字节算法 eb = 52 + 06 +... + 00 红色部分为 MAC 地址, 随后的是用户名 + 密码 + 端口参数 + 1 字节校验
3. 网络模块返回结果 3.1. 搜索指令的返回结果 字节名称例子说明 0 TAG_STATUS FF 固定数字 1 Packet_length 24 固定数字 2 CMD_DISCOVER_TARGET 01 固定数字 3 Board_type 00 固定数字 4 Board_ID 00 固定数字 5~8 Client_IP_address C0 A8 00 07 设备 IP( 高位在前 ) 9~14 MAC_address AC CF 23 20 FE 3D 设备 MAC( 高位在前 ) 15~18 Firemware_version 01 00 00 19~34 Application_title 55 53 52 2D 4B 32 00 00 00 00 00 00 00 00 00 00 35 checksum F0 设备名称 ( 这个校验值用户可以不用考虑 ) Checksum 初始值为 0x00, 依次减去 TAG_STATUS 字节, 一直往后, 直到数据部分的最后一个字节为止, 最后的结果为 checksum 举例 : 搜索指令的返回结果 (36 字节 ): Ff 24 01 00 00 c0 a8 00 07 00 71 77 7c 42 2f 01 0c 00 00 55 53 52 2d 4b 32 00 00 00 00 00 00 00 00 00 00 f2 校验字节为减和校验, 初始值为 0x00, 依次减去每个字节, 算法如下 : F2 = 00 - FF - 24-01 - 00-4B -... - 31-00 - 00 3.2. 复位指令的返回结果 回应 (4 字节 ):FF 01 02 4B 如果用户密码正确 4B = 'K'
FF 01 02 50 用户名密码错误 45 ='P' 3.3. 读取命令的返回结果 描述 返回的是网络模块的所有参数, 一共是 256 字节, 不带校验 举例 没有协议, 直接返回参数 读取方式参考 基础参数表 和 串口参数表 回应 (256 字节 ): 95 63 03 80 00 00 50 00 00 07 00 a8 c0 c9 00 a8 c0 00 ff ff ff 55 53 52 2d 4b 32 00 00 00 00 00 00 00 00 00 00 61 64 6d 69 6e 00 61 64 6d 69 6e 00 00 00 00 00 00 71 77 7c 42 2f 00 00 00 00 00 00 00 00 00 c2 01 00 08 01 01 01 00 00 00 00 8c 4e 2a 20 31 39 32 2e 31 36 38 2e 30 2e 32 30 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c9 00 a8 c0 00 01 00 00 00 00 00 00 00 00 00 00 00 密码错误回应 :FF 01 03 45 返回的数据是不带校验的 3.4. 储存配置指令的返回结果 设置正确返回 : FF 01 04 4B 3.5. 基础配置命令的返回结果 设置成功返回 : FF 01 05 4B 3.6. 其他返回 : 校验和错误 : 返回 'E' + 正确的校验值正确执行 :FF 01 CMD 'K' 用户名密码错误返回 :FF 01 CMD 'P' 其他错误返回 :FF 01 CMD 'E'
4. 举例 4.1. 举例 搜索 : 发送 (4 字节 ): Ff 01 01 02 回应 (36 字节 ): Ff 24 01 00 00 c0 a8 00 a6 00 71 77 7c 44 14 01 0c 00 00 55 53 52 2d 4b 32 00 00 00 00 00 00 00 00 00 00 f2 复位 : 发送 : Ff 13 02 00 71 77 7c 44 14 61 64 6d 69 6e 00 61 64 6d 69 6e 00 e3 回应 (4 字节 ):FF 01 02 4B 如果用户密码正确 4B = 'K' FF 01 02 45 用户名密码错误 50 = P' 4.2. 报文监听方法 如果你那边想拿网络模块实际抓取一些报文, 可以使用如下方式 :
5. USR- K2 串口设置协议 5.1. 功能介绍 要进入串口配置模式, 首先需要将 CFG 引脚接地, 不同的硬件版本 CFG 所在的位置不同, 请参考对应产品手册 模块的设置命令格式如下表, 你也可以用我们提供的设置软件生成和测试配置字, 发送数据的波特率为 9600, 无奇偶校验,8 位数据位,1 位停止位, 9600,n,8,1 无论之前工作的波特率是多少, 模块在进入配置模式后自动切换到 9600 波特率, 并向串口发送字符 U, 以表示已进入配置状态, 收到完整的数据包并校验处理正确后会返回字符 K, 如果校验出错, 将返回字母 E 和模块计算的校验位, 此位在手动测试发送命令时非常有用, 在其他错误仅发送 E, 如包头不正确, 位数不正确等 注意 : 设置完成后, 需要释放 CFG 使其悬空或接高, 以使模块恢复到工作状态 命令的包头 ( 支持 E45 系列串口设置 ) 55 Bf 写 Port0 配置,55 Bd 读 K2 配置, 55 Be 写基础配置
5.2. 基础配置 各数据位含义如下 : 基础参数, 一共 67 字节 名称字节例子说明 包头 2 55 be ucsequencenum 1 00 预留包头 uccrc 1 00 预留包头 ucversion 1 00 预留包头 ucflags 1 80 uslocationurl Port ushttpserverp ort IP 地址类型 : 第 8 位为 0:DHCP;1: 静态 IP 2 00 00 不启用, 预留协议 2 50 00 HTTP 服务端口 ucuserflag 1 00 不启用, 预留协议 ulstaticip 4 07 00 A8 C0 静态 IP 地址 ulgatewayip 4 01 00 A8 C0 网关 ulsubnetmask 4 00 FF FF FF 子网掩码 ucmodname 6 55 53 52 2D 4B 32 模块名称 协议预留 10 00 00 00 必须为零 username 6 61 64 6D 69 6E 00 用户名 password 6 61 64 6D 69 6E 00 密码 ucnetsendtime 1 00 不启用, 预留协议 uiid 2 01 00 设备 ID ucidtype 1 84 INDEX 功能 ucusermac 6 00 00 00 00 00 00 不启用, 预留协议 ucreserved 8 Unused 和校验 1 xx 校验字节算法 xx= 00 + 00 +00+80... + 00 :
5.3. 端口设置 6. 共 65 字节 名称 字节 例子 说明 包头 2 55 bf ulbaudrate 4 00 C2 01 00 串口波特率 ucdatasize 1 08 串口数据位 (0X05/0x06/0x07/0x08) ucparity 1 01 串口校验位 1:no,2:odd,3:even,4:mark,5: space ucstopbits 1 01 串口停止位 (0x01/0x02) ucflowcontrol 1 00 不启用, 预留协议 ultelnettimeout 4 00 00 00 00 不启用, 预留协议 ustelnetlocalport 2 8C 4E 本地端口 ustelnetremoteport 2 2A 20 远程端口 uitelneturl 30 31 39 32 2E 31 36 38 2E 30 2E 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ultelnetipaddr 4 00 00 00 00 IP 地址或域名都以 ASCII 码发送 例子为 :192.168.0.1 ucflags 1 00 不启用, 预留协议 ucworkmode 1 03 工作方式 : 0:UDP, 1:TCP Client, 2:UDP Server, 3:TCP Server, 4 uipacklen 4 00 00 00 00 不启用, 预留协议 ucpacktime 1 00 串口打包时间 uctimecount 1 91 请将读取回的值原样写入 TCP server type 1 00 不启用, 预留协议 ucreserved 4(60) 任意值 和校验 1 校验字节算法 xx= 00 +c2 +01+00... + 00 其余字节保留扩展 ( 在 Httpd Clientheader 版本中, 做存储参 数用 )
5.4 读取配置指令 名称 字节 例子 说明 包头 2 55 bd ucsequencenum 1 00 预留包头 uccrc 1 00 预留包头 ucversion 1 00 预留包头 ucflags 1 80 IP 地址类型 : 第 8 位为 0:DHCP;1: 静态 IP uslocationurl Port 2 00 00 不启用, 预留协议 ushttpserverp ort 2 50 00 HTTP 服务端口 ucuserflag 1 00 不启用, 预留协议 ulstaticip 4 07 00 A8 C0 静态 IP 地址 ulgatewayip 4 01 00 A8 C0 网关 ulsubnetmask 4 00 FF FF FF 子网掩码 ucmodname 6 55 53 52 2D 4B 32 模块名称 协议预留 10 00 00 00 必须为零 username 6 61 64 6D 69 6E 00 用户名 password 6 61 64 6D 69 6E 00 密码 ucnetsendtime 1 00 不启用, 预留协议 uiid 2 01 00 设备 ID ucidtype 1 84 INDEX 功能 ucusermac 6 00 00 00 00 00 00 不启用, 预留协议 ucreserved 8 Unused ulbaudrate 4 00 C2 01 00 串口波特率 ucdatasize 1 08 串口数据位 (0X05/0x06/0x07/0x08) ucparity 1 01 串口校验位 1:no,2:odd,3:even,4:mark,5:space ucstopbits 1 01 串口停止位 (0x01/0x02) ucflowcontrol 1 00 不启用, 预留协议 ultelnettimeo ut ustelnetlocal Port 4 00 00 00 00 不启用, 预留协议 2 8C 4E 本地端口
ustelnetremot eport 2 2A 20 远程端口 31 39 32 2E 31 36 38 2E uitelneturl 30 30 2E 31 00 00 00 00 00 IP 地址或域名都以 ASCII 码发送 00 00 00 00 00 00 00 00 例子为 :192.168.0.1 00 00 00 00 00 00 ultelnetipadd r 4 00 00 00 00 ucflags 1 00 不启用, 预留协议 ucworkmode 1 03 工作方式 : 0:UDP, 1:TCP Client, 2:UDP Server, 3: TCP Server, 4 uipacklen 4 00 00 00 00 不启用, 预留协议 ucpacktime 1 00 串口打包时间 uctimecount 1 91 请将读取回的值原样写入 TCP server type 1 00 不启用, 预留协议 ucreserved 其余字节保留扩展 4(60 任意值 ( 在 Httpd Clientheader 版本中, 做存储参数 ) 用 ) 当前 IP 4 07 00 A8 C0 版本号 1 01
附录 : 文档修改历史 2015/7/14 V1.0 创建新版本