美文网首页
远程控制-通信协议解读

远程控制-通信协议解读

作者: 精灵物联网 | 来源:发表于2020-06-23 14:05 被阅读0次

    这篇文章介绍单片机与云平台的通讯协议,了解硬件和云平台的通信格数据式,以及在此协议基础上如何自定义自己的通信协议!

    通信协议主要是为了解决设计的标准化问题,通信的各方都按照标准化的协议进行通信发送数据,彼此才能正确接收和理解数据。简单来说一个人说四川方言,一个人说德语,这两人是聊不到一块去的。

通信协议下载链接: https://pan.baidu.com/s/1oAhtvED1rEW9tT5OUNpLLA 提取码: trf2

协议的数据包结构和定义如下:

1、数据说明

1.1、数据类型

协议中传输的数据数据类型如上图

1.2、传输规则

协议采用大端模式传输字和双字

2、数据包结构和定义

完整的数据包包含了七部分,起始符、命令单元、唯一设备号、数据单元加密方式、数据单元长度、数据单元、校验码

数据包结构和定义

3、命令单元

3.1、命令标识

命令标识采用两个字节表示,是发起方的唯一标识,告诉对方这条数据具体是用来干啥的,本系统目前只使用到了实时信息上报和控制命令

命令标识定义

3.1、应答表示

    当命令的被动接收方应答标志不是OXFE时,此包表示为应答包。当服务端发送应答时,应变更应答标志,保留报文时间删除其余报文内容并重新计算校验位。

4、时间定义

5、数据单元格式和定义

数据单元由数据采集时间、信息类型标识、信息体构成。其中时间的格式见上面的“4、时间定义”

5.1、信息类型标识定义

这里定义一些信息类型标识,比如0x03是基础控制,单片机收到0x03就知道上位机下发的是控制指令,然后再解析控制的灯、蜂鸣器数据,数据从信息体定义查看。如果你需要自定义,0x80以前的命令都是系统自用,你可以从0x80开始自己定义属于你的命令!

5.2、信息体定义

从这儿能看到信息类型标识0x03,对应的信息体有灯和蜂鸣器两个字节。单片机收到0x03的信息后,肯定有两个字节的控制内容,比如解析灯这个字节是0x02那么就对应的开启灯,对应的解析这两个字节的数据做对应的控制即可;如果发现某个字节是0x00,那么就不做任何操作;

6、校验码

    命令的倒数第一位是校验码,采用BCC异或校验法;从命令单元的第一个字节开始,一直到校验码前一字节为止;我在网上找到一个网站很好用,可以验证BCC加密:http://www.ip33.com/bcc.html

js:

function checkCBC(recv){

var bcc=0x00;

    for(i=0;i<recv.length-1;i++)

    {

  bcc^=recv[i];

    };

    return bcc;

}

c语言:

unsigned char CheckBCC(unsigned char len, unsigned char *recv){

unsigned char bcc = 0x00;

unsigned char i=0;

 for(i=0;i<len-1;i++)

    {

        bcc^=recv[i];

    };

    return bcc;

}

7、通信示例

建议在做硬件开发时,先用一些PC软件模拟硬件和云平台通信,如果这些软件模拟的数据能正常和云平台通信,那么单片机也采用这种数据格式,很快就调试通;

欢迎各位老板转发和点在看!

本文参考 GB∕T 32960.3-2016 电动汽车远程服务与管理系统技术规范 第3部分:通信协议及数据格式

相关文章

  • 远程控制-通信协议解读

    这篇文章介绍单片机与云平台的通讯协议,了解硬件和云平台的通信格数据式,以及在此协议基础上如何自定义自己的通信协...

  • 远程通信协议

    在分布式架构中,有一个很重要的环节,就是分布式网络中的计算机节点彼此之间需要通信。 HTTP 协议通信原理 说到通...

  • Netty实现RPC的思路

    RPC RPC(Remote Procedure Call)远程过程调用,是一个计算机通信协议,可以实现远程调用远...

  • 远程通信协议基础

    一个http请求image.png 应用层协议:httpftpsmtptelnet OSI七层网络模型image....

  • 远程通信协议原理

    一个 http 请求的整个流程 负责域名解析的 DNS 服务 DNS服务提供通过域名来找到对应的ip,使用域名的原...

  • RPC 与 http

    2.1.认识RPC RPC,即 Remote Procedure Call(远程过程调用),是一个计算机通信协议。...

  • 一款免费国产远程控制软件

    前言:ToDesk是一款国产远程控制软件,免费、无广告、不限速、全平台。 跨平台快速远程控制 通过远程控制,我们可...

  • iRemote

    远程智能控制

  • golang实现RPC的几种方式

    什么是RPC 远程过程调用(Remote Procedure Call,缩写为 RPC)是一个计算机通信协议。 该...

  • Java实现简单的RPC框架

    一、RPC简介 RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。...

网友评论

      本文标题:远程控制-通信协议解读

      本文链接:https://www.haomeiwen.com/subject/dbqhfktx.html