打工人福音⚡:公牛充电交互协议,建议收藏!

news2024/10/5 13:06:26

分享《一套免费开源充电桩物联网系统,是可以立马拿去商用的!》

协议原文件下载地址:

链接: https://pan.baidu.com/s/1kW15Nfe9cjPDFLGPYJ-zUg?pwd=agq2 提取码: agq2

1 总则

1.1 协议概述

本协议适用于公司所有充电产品包括交直流充电桩、电瓶车桩,交流桩及电瓶车桩在本协议中部分数 据无需上送,具体内容在下面协议部分均有标注。

1.2 通信接口

充电设备和充电运营管理系统之间的通信接口采用基于 TCP/IP Socket 的通信方式实现,按照长连接 工作模式。两个系统可部署在同一个或者不同的企业网络环境中,可以通过局域网或者互联网实现互相连 接通信。
充电设备通信联接方式支持有线或无线连接运营平台服务器或者多个充电设备经过集中器与运营平台 连接。
充电设备支持服务器的直接 IP 地址与网络域名解析,地址与连接端口均为可设置参数。

1.3 接入流程

详见上电流程。

2 通信协议结构

本协议的通信协议结构如图 1 所示。本协议采用的 TCP/IP 传输定义与标准定义一致。
在这里插入图片描述

3 应用层报文帧格式

3.1 应用层数据结构

在这里插入图片描述数据结构定义说明:
● 前导域代表一帧数据的开始,固定为 0x5A、0xA5;
● 版本域为协议版本号,用于协议有升级时,解析新老协议差异内容;本协议版本号为 1.0.0.01,两字节分别为 0x11、0x27(十进制的 10001);
● 序号域即数据包的发送顺序号,用于业务实现收发一致性校验。从 0 开始顺序增加,如是应答 数据包,则与询问数据包序号保持一致,当充电设备与平台网络断开重新建立连接或者溢出后 归0;
● 加密标志只针对消息体(数据单元) ,0x00:不加密,0x01:AES128(CBC);
● 命令字定义了上下行帧类型,表示不同的功能要求,充电设备的帧类型码为奇数,运营平台的帧类型码为偶数;
● 长度域即前导域到校验域的整个数据帧长度,加密时,按加密后的长度,长度不超过 1036 字节;
● 数据域即具体数据帧内容;
● 校验域为从前导域到数据域的 CRC 校验,校验多项式为 0x180D ,低字节在前,高字节在后,计算方式见附录。

3.2 数据格式定义

数据格式包括 BCD 码、ASCII、BIN 码(BIN 码均为低位在前高位在后)。协议中小数值均乘倍率 (保留小数点位数) 上送平台(例如: 电压为 220.1, 保留一位小数, 上送到平台值为 2201,即 0x899)。

3.3 名词解释

● 充电卡:平台默认充电卡为 M1 卡(不带储值),读卡器读取到的卡号为印刷在卡面上的逻 辑卡号,用于充电设备与服务器数据交互。IC 卡或者 CPU 卡均采用平台 M1 卡的鉴权模式,不使用数据储存与写入功能。
● 交易流水号:交易流水号为一次充电操作过程的统一标记,从远程启动充电或者卡鉴权回复 时产生到最后设备结束充电的交易记录均使用同一个流水号,由平台产生(离线模式由设备按此规则生成),生成规则为 格式设备号(7bytes) +枪号(1byte) +年月日时分秒 (6bytes) +自增序号(2bytes);示例 :15010600019236012001061803423060。
● 计损比例:计损比例定义在费率帧中,此项非零时,充电设备需要对上送平台充电量加上此 比例,如<实时监测数据>中“计损电度”,则为“电度”基础上加上此比例得到的值。同理 见<交易记录>中“计损尖电量”、“计损峰电量”、 “计损平电量”、 “计损谷电量”、
“计损总电量”(计损比例置 0,则表示不计损)。
● 设备编号:由平台生成提供给设备使用,不支持设备企自行生成的设备编号。示 例:1501060001923601
● 枪号:由 7 个字节设备编号+1个字节的枪号生成。示例: 1501060001923601/1501060001923602

4 帧类型定义一缆表

​充电设备的帧类型码为奇数,运营平台的帧类型码为偶数;帧类型码分段定义,已定义的帧类型码 不可重定义为其他定义;

在这里插入图片描述

5 通信协议流程

5.1 上电流程

充电设备在上电或者离线恢复后连接到平台,首先上送充电设备登陆认证,平台对设备的信息进行校验,并回复登陆认证应答,如果不符合则会断开当前建立的连接,如果验证通过,则设备先检查是否有离线状态下本地储存的实时监测数据或者交易数据,如果有则先上送到平台进行处理,随后充电设备发起充电计费模型的请求,平台检测计费模型与当前运营费率是否一致,并回复计费模型请求应答,如果不一致,设备需要向平台请求新的计费模型。
在这里插入图片描述

5.2 app 充电流程

app 充电流程与刷卡充电流程互通,即 app 充电可以用卡结束,app 鉴权时会将用户绑定的卡信息下发到充电设备,用于卡结束验证,卡充电可以用 app 结束充电。
在这里插入图片描述

5.3 刷卡充电

在这里插入图片描述

5.4 离线充电模式

在这里插入图片描述

6 注册心跳帧类型码数据定义

6.1 充电设备登录认证

在这里插入图片描述

6.2 登录认证应答

在这里插入图片描述

6.3 充电设备心跳包

在这里插入图片描述

6.4 心跳包应答

在这里插入图片描述

6.5 计费模型验证请求

在这里插入图片描述

6.6 计费模型验证请求应答

在这里插入图片描述

6.7 充电设备计费模型请求

在这里插入图片描述

6.8 计费模型请求应答

在这里插入图片描述

7 实时数据帧类型码数据定义

7.1 读取实时监测数据

在这里插入图片描述

7.2 上传实时监测数据

在这里插入图片描述

7.3 充电握手

在这里插入图片描述

7.4 参数配置

在这里插入图片描述

7.5 充电结束

在这里插入图片描述

7.6 错误报文

在这里插入图片描述

7.7 充电阶段 BMS 中止

在这里插入图片描述

7.8 充电阶段充电机中止

在这里插入图片描述

7.9 充电过程 BMS 需求与充电机输出

在这里插入图片描述

7.10 充电过程 BMS 信息

在这里插入图片描述

8 运营交互帧类型码数据定义

8.1 充电设备主动申请启动充电

在这里插入图片描述

8.2 运营平台确认启动充电

在这里插入图片描述

8.3 运营平台远程控制启机

在这里插入图片描述

8.4 远程启动充电命令回复

在这里插入图片描述

8.5 运营平台远程停机

在这里插入图片描述

8.6 远程停机命令回复

在这里插入图片描述

8.7 交易记录

在这里插入图片描述

8.8 交易记录确认

在这里插入图片描述

8.9 远程账户余额更新

在这里插入图片描述

8.10 余额更新应答

在这里插入图片描述

8.11 离线卡数据同步

在这里插入图片描述

8.12 离线卡数据同步应答

在这里插入图片描述

8.13 离线卡数据清除

在这里插入图片描述

8.14 离线卡数据清除应答

在这里插入图片描述

8.15 离线卡数据查询

在这里插入图片描述

8.16 离线卡数据查询应答

在这里插入图片描述

9 运营平台设置帧类型码数据定义

9.1 充电设备工作参数设置

在这里插入图片描述

9.2 充电设备工作参数设置应答

在这里插入图片描述

9.3 对时设置

在这里插入图片描述

9.4 对时设置应答

在这里插入图片描述

9.5 计费模型设置

在这里插入图片描述

9.6 计费模型应答

在这里插入图片描述

9.7 二维码信息设置

在这里插入图片描述

9.8 二维码信息应答

在这里插入图片描述

10 车位锁通信协议定义

地锁状态变化需要传输给平台,若地锁出现故障,则传输故障码至平台,若检测出现故障则,默认地锁为降下状态;若为升降出现故障,则保持现有状态

10.1 地锁数据上送

在这里插入图片描述

10.2 遥控地锁升锁与降锁命令

在这里插入图片描述

10.3 充电设备返回数据(上行)

在这里插入图片描述

11 电设备远程维护帧类型码数据定义

11.1 远程重启

在这里插入图片描述

11.2 远程重启应答

在这里插入图片描述

11.3 远程更新

在这里插入图片描述

11.4 远程更新应答

在这里插入图片描述

12 附录

12.1 充电停止原因代码表

在这里插入图片描述

12.2 CRC16 校验的计算方法

CRC(Cyclical Redundancy Check)由两字节组成,生成函数如下:

1、CRC 计算函数
WORD ModbusCRC(BYTE * pData, BYTE len)
{
BYTE byCRCHi = 0xff;
BYTE byCRCLo = 0xff;
BYTE byIdx;
WORD crc;
while(len--)
{
byIdx = byCRCHi ^* pData++;
byCRCHi = byCRCLo ^ gabyCRCHi[byIdx];
byCRCLo = gabyCRCLo[byIdx];
}
crc = byCRCHi;
crc <<= 8;
crc += byCRCLo;
return crc;
}
CRC 码表高字节
BYTE gabyCRCHi[] =
{
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,
0x01,0xc0,0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,
0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x01,0xc0,0x80,0x41,0x00,0xc1,0x81,0x40,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40,0x00,0xc1,0x81,0x40,
0x01,0xc0,0x80,0x41,0x01,0xc0,0x80,0x41,0x00,0xc1,
0x81,0x40,0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,
0x00,0xc1,0x81,0x40,0x01,0xc0,0x80,0x41,0x01,0xc0,
0x80,0x41,0x00,0xc1,0x81,0x40
};

CRC 码表高字节

BYTE gabyCRCLo[] =
{
0x00,0xc0,0xc1,0x01,0xc3,0x03,0x02,0xc2,0xc6,0x06,
0x07,0xc7,0x05,0xc5,0xc4,0x04,0xcc,0x0c,0x0d,0xcd,
0x0f,0xcf,0xce,0x0e,0x0a,0xca,0xcb,0x0b,0xc9,0x09,
0x08,0xc8,0xd8,0x18,0x19,0xd9,0x1b,0xdb,0xda,0x1a,
0x1e,0xde,0xdf,0x1f,0xdd,0x1d,0x1c,0xdc,0x14,0xd4,
0xd5,0x15,0xd7,0x17,0x16,0xd6,0xd2,0x12,0x13,0xd3,
0x11,0xd1,0xd0,0x10,0xf0,0x30,0x31,0xf1,0x33,0xf3,
0xf2,0x32,0x36,0xf6,0xf7,0x37,0xf5,0x35,0x34,0xf4,
0x3c,0xfc,0xfd,0x3d,0xff,0x3f,0x3e,0xfe,0xfa,0x3a,
0x3b,0xfb,0x39,0xf9,0xf8,0x40,0x28,0xe8,0xe9,0x29,
0xeb,0x2b,0x2a,0xea,0xee,0x2e,0x2f,0xef,0x2d,0xed,
0xec,0x2c,0xe4,0x24,0x25,0xe5,0x27,0xe7,0xe6,0x26,
0x22,0xe2,0xe3,0x23,0xe1,0x21,0x20,0xe0,0xa0,0x60,
0x61,0xa1,0x63,0xa3,0xa2,0x62,0x66,0xa6,0xa7,0x67,
0xa5,0x65,0x64,0xa4,0x6c,0xac,0xad,0x6d,0xaf,0x6f,
0x6e,0xae,0xaa,0x6a,0x6b,0xab,0x69,0xa9,0xa8,0x68,
0x78,0xb8,0xb9,0x79,0xbb,0x7b,0x7a,0xba,0xbe,0x7e,
0x7f,0xbf,0x7d,0xbd,0xbc,0x7c,0xb4,0x74,0x75,0xb5,
0x77,0xb7,0xb6,0x76,0x72,0xb2,0xb3,0x73,0xb1,0x71,
0x70,0xb0,0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,
0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9c,0x5c,
0x5d,0x9d,0x5f,0x9f,0x9e,0x5e,0x5a,0x9a,0x9b,0x5b,
0x99,0x59,0x58,0x98,0x88,0x48,0x49,0x89,0x4b,0x8b,
0x8a,0x4a,0x4e,0x8e,0x8f,0x4f,0x8d,0x4d,0x4c,0x8c,
0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,
0x43,0x83,0x41,0x81,0x80,0x40
};

12.3 协议需知

在这里插入图片描述

协议原文件下载地址:

链接: https://pan.baidu.com/s/1kW15Nfe9cjPDFLGPYJ-zUg?pwd=agq2 提取码: agq2

分享《一套免费开源充电桩物联网系统,是可以立马拿去商用的!》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1717726.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SDK开发

为什么需要Starter&#xff1f; 理想情况:开发者只需关心调用哪些接口&#xff0c;传递哪些参数就跟调用自己写的代码一样简单。 开发starter的好处&#xff1a;开发者引入之后&#xff0c;可以直接在application.yml中写配置&#xff0c;自动创建客户端。 starter开发流程 …

bhyve:FreeBSD下的原生虚拟机管理器

hbyve简介 自 FreeBSD 10.0-RELEASE 起&#xff0c;BSD 许可的 bhyve 虚拟机管理器已成为底层系统不可或缺的一部分。bhyve 强大而灵活&#xff0c;支持多种客户机操作系统&#xff0c;涵盖 FreeBSD、OpenBSD 以及多个 Linux 发行版。在默认配置下&#xff0c;bhyve 提供对串行…

中建环能 | “农村生活污水治理稳质增效与智能运维技术研究及成套装备应用” 科技成果评价

中华环保联合会组织召开了中建环能科技股份有限公司申请的“农村生活污水治理稳质增效与智能运维技术研究及成套装备应用”技术成果评价会。会议由中华环保联合会水环境治理专业委员会秘书长刘愿军主持。 评审会委员 本次评价会邀请了7位相关专业领域的专家组成专家评价委员会。…

Meterpreter工具使用

Meterpreter属于stage payload&#xff0c;在Metasploit Framework中&#xff0c;Meterpreter是一种后渗透工具&#xff0c;它 属于一种在运行过程中可通过网络进行功能扩展的动态可扩展型Payload。这种工具是基于“内存DLL注 入”理念实现的&#xff0c;它能够通过创建一个新进…

RocketMq broker源码解析

broker 集群工作流程 NameSrv启动成功后&#xff0c;等待broker、Consumer和producer启动后也与NameSrv保持长连接, NameSrv相当于是路由控制中心。启动broker, broker与所有的NameSrv建立长连接, broker&#xff0c;通过定时线程定时向NameSrv发送心跳&#xff0c;broker信息…

mysql中子查询的语法和执行过程

大家好。我们在日常开发过程中&#xff0c;肯定都经常用到了子查询。今天我们就来聊一下mysql中子查询的一些语法以及子查询的执行过程。 一、子查询的语法 首先在开讲之前&#xff0c;我们先创建t1、t2两张表&#xff0c;并分别在表中插入三条数据&#xff0c;方便我们下面内…

JDK环境配置、安装

DK环境配置&#xff08;备注&#xff1a;分32位与64位JDK&#xff0c;32位电脑只能按照32位JDK&#xff0c;64位电脑兼容32、64位JDK&#xff09; 一、检查自己电脑是否安装过JDK 1.在电脑屏幕左下角&#xff0c;输入命令提示符CMD&#xff0c;打开命令提示符应用 2.在打开界…

AI视频下载:ChatGPT数据科学与机器学习课程

ChatGPT是一个基于OpenAI开发的GPT-3.5架构的AI对话代理。作为一种语言模型,ChatGPT能够理解并对各种主题生成类似人类的响应,使其成为聊天机器人开发、客户服务和内容创作的多用途工具。 此外,ChatGPT被设计为高度可扩展和可定制的,允许开发人员对其响应进行微调并将其集成到…

[stm32]——定时器与PWM的LED控制

目录 一、stm32定时器 1、定时器简介 2、定时器分类 3、通用定时器介绍 二、PWM相关介绍 1、工作原理 2、PWM的一般步骤 三、定时器控制LED亮灭 1、工程创建 2、代码编写 3、实现效果 四、采用PWM模式&#xff0c;实现呼吸灯效果 1、工程创建 2、代码编写 3、实现效果 一、stm3…

跨境电商多店铺:怎么管理?风险如何规避?

跨境电商的市场辽阔&#xff0c;有非常多的商业机会。你可能已经在Amazon、eBay、Etsy等在线平台向潜在客户销售产品了。为了赚更多的钱&#xff0c;你可能还在经营多个店铺和品牌。 但是&#xff0c;像Amazon、eBay、Etsy等知名平台会有自己的规则&#xff0c;他们开发了很多…

风电功率预测 | 基于TCN-GRU时间卷积门控循环单元的风电功率预测(附matlab完整源码)

完整代码 clc; clear close allX = xlsread(风电场预测.xlsx); X = X(5665:8640,:); %选取3月份数据 num_samples =

linux系统——性能检测工具glances

在linux系统中&#xff0c;由python开发的glances工具是一个功能强大的性能检测工具 可以通过yum进行安装 安装glances后&#xff0c;进入命令界面 glance支持网站模式&#xff0c;将监控到的数据以网站形式显示出来 这里需要用python包管理命令 使用glances -w开放…

STM32 HAL库USART的接收数据方法实现(STM32Cube_FW_F1_V1.8.5)

目录 概述 1 使用STM32Cube生成项目 1.1 软件版本信息 1.2 配置串口相关参数 1.3 生成工程 2 问题描述 3 解决问题 3.1 修改代码 3.2 编写新的回调函数 4 测试 概述 本文主要介绍STM32 HAL库USART的接收数据方法实现&#xff0c;笔者使用的HAL库为STM32Cube_FW_F1_V1.…

声音的归宿:恢复手机录音的3个步骤与策略

“手机录音删除了怎么恢复&#xff0c;没有云备份。本人平时喜欢用手机录音机录一些唱的歌&#xff0c;上次录过之后就再也没有打开&#xff0c;今天一打开发现上个月的录音都没了&#xff01;里面都是我的歌&#xff0c;还有期末重点&#xff0c;还有声乐课的录的音频&#xf…

R语言绘图 | 双Y轴截断图

教程原文&#xff1a;双Y轴截断图绘制教程 本期教程 本期教程&#xff0c;我们提供的原文的译文&#xff0c;若有需求请回复关键词&#xff1a;20240529 小杜的生信笔记&#xff0c;自2021年11月开始做的知识分享&#xff0c;主要内容是R语言绘图教程、转录组上游分析、转录组…

JS脚本打包成一个 Chrome 扩展(CRX 插件)

受这篇博客 如何把CSDN的文章导出为PDF_csdn文章怎么导出-CSDN博客 启发&#xff0c;将 JavaScript 代码打包成一个 Chrome 扩展&#xff08;CRX 插件&#xff09;。 步骤&#xff1a; 1.创建必要的文件结构和文件&#xff1a; manifest.jsonbackground.jscontent.js 2.编写…

每日一题——Python实现PAT甲级1035 Password(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码逻辑分析&#xff1a; 时间复杂度分析&#xff1a; 空间复杂度分析&a…

CDH6.3.2集成Flink1.12.2

一、Linux下载httpd服务并开启 yum install y httpd systemctl start httpd systemctl enable httpd 二、获取已制作好的安装包 flink-1.12.2-bin-scala_2.11.tar ​ FLINK_ON_YARN-1.12.2.jar ​ flink-shaded-hadoop-2-uber-3.0.0-cdh6.3.2-10.0.jar 三、集成CM 1.上传编…

「多客」圈子论坛社区交友系统开源版小程序源码|圈子社区系统

简述 社交圈子论坛系统是一种面向特定人群或特定话题的社交网络&#xff0c;它提供了用户之间交流、分享、讨论的平台。在这个系统中&#xff0c;用户可以创建、加入不同的圈子&#xff0c;圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、点赞等互…

Windows系统安装openvino(2024.1.0)

一、openvino下载&#xff1a; 下载地址&#xff1a;下载英特尔发行版 OpenVINO 工具套件 (intel.cn) 下载完之后将压缩包解压&#xff0c;然后重命名文件夹为openvino_2024.1.0。 二、环境配置 以python环境为例&#xff1a;&#xff08;建议使用moniconda虚拟环境来安装&am…