介绍

上位机和下位机的通信方式多种多样,一般有usart、can、usb、ethernet等,走什么通信方式视下位机的设备资源而定;以ethernet tcp通信为例,大部分情形下,下位机即嵌入式设备作为server端,PC端作为client端;嵌入式设备需要默认一个IP地址,比如192.168.137.22,还要有一个端口号,比如8738

帧格式

帧格式的设计应包含四个部分:帧头 + 长度 + 数据段 + 校验

  1. 帧头:两个字节,例如固定为0xaa 0x55
  2. 长度:uint16,大端,整个包的长度,包含帧头、长度、数据段和校验四个部分的总长 度。单个包的最大长度为512
  3. 数据段:包荷载的内容,长度不固定
  4. 校验:两个字节,帧头、长度和数据段的CRC16计算值,当然也可以用异或校验

心跳包

心跳包设计原则:

  1. 最好仅支持一个设备连接
  2. 客户端请求,服务器应答
  3. 约定一个心跳时间,如30秒进行一次心跳查询;还要一个超时时间,如300秒没有任何应答则视为连接已经断开

请求

请求报文格式参考:协议码 + 消息类型 + 功能码 + 序号 + 功能数据

应答

应答报文格式参考:协议码 + 消息类型 + 功能码 + 序号 + 错误码 + 功能数据

总结

以上请求和应答设计范例其实是一种web服务的思想


© 2025 hywing 使用 Stellar 创建
总访问 113701 次 | 本页访问 326