# RS485Tool.git **Repository Path**: ukiot/rs485-tool ## Basic Information - **Project Name**: RS485Tool.git - **Description**: 基于PyQt5实现的RS485通信上位机工具,使用xprotocol协议格式。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-05-15 - **Last Updated**: 2025-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RS485通信上位机 基于PyQt5实现的RS485通信上位机工具,使用xprotocol协议格式。 ## 页面展示 ![输入图片说明](images/003.png) ![输入图片说明](images/005.png) ## 协议格式 ``` /********************************设备传输协议***************************************/ ***************************************************** * JSON * * HTTP(s)、TCP/UDP、MQTT * ***************************************************** * * * * * 中间层:缓存转换 * * * * * ***************************************************** * XProtocol * * TTL、RS232、RS485、SPI、CAN、IIC等 * * * ***************************************************** Copyright(c) @Chenwr 2024 , all rights reserved. /**********************************************************************************/ 1、XProtocol进行协议封装,解析; 通信介质:UART、SPI、IIC、CAN等 UART协议:TTL&232&485 波特率:115200 数据位:8 校验位:N 停止位:1 协议格式: head len dtype addr cmd payload crc 2bytes 2bytes 2bytes 2bytes 2bytes Nbytes 2btyes(小端格式) 字段解释:除CRC字段其他字段采用大端模式 head : 2bytes,固定为 0xfeed,匹配帧头 len : 2bytes,整帧数据的总长度,大于等于12 dtype : 2bytes,设备类型自定义 addr : 2bytes,设备地址,0xffff为广播地址 cmd : 2bytes,命令类型,数据返回时,cmd|=0x8000 0xffff~0xfff0 为广播命令,特殊指令,需要同addr==0xffff配合使用, payload : Nbytes,N>=0 crc : 前面所有数据的CRC校验值,多项式:0xA001 ``` - head: 帧头,默认使用FEED - len: 数据长度,包括(dtype + addr + cmd + payload)的长度 - dtype: 数据类型 - addr: 目标地址 - cmd: 命令码 - payload: 数据负载 - crc: CRC16校验值 ## 依赖项 - Python 3.6+ - PyQt5 - pyserial ## 安装依赖 ```bash pip install PyQt5 pyserial ``` ## 运行方式 ```bash python rs485_tool.py ``` ## 功能特性 - 串口配置:支持选择COM口、波特率 - 支持xprotocol协议发送和接收 - 自动解析接收到的协议数据 - 十六进制显示数据 - 自动计算CRC校验值 ## 使用说明 1. 选择串口和波特率,点击"打开串口" 2. 在发送区填写对应的协议字段 3. 点击"发送数据"发送 4. 接收区会显示发送和接收的数据