Skip to content

开放协议 vs 私有协议 对比文档

1 协议概述对比

对比项开放协议 (V0.9)私有协议 (V2.0.6)
来源文档4G充电桩开放协议_V0.9.docx扫码充设备通信指令描述V2.0.6.docx
协议定位面向第三方平台的开放接入协议面向自有平台和设备的内部协议
通信协议MQTT-3.1.1MQTT-3.1.1
服务器架构单服务器直连双服务器架构(注册服务器+业务服务器)
数据加密AES128-CBC-PKCS7,加密参数联系厂商获取AES-128-CBC,Key=(1+imei)转16进制,IV=全零
指令风格语义化指令名(如CHARGE-START)数字指令码(如1=开启充电)
指令序号范围0~655350~999

2 连接参数对比

2.1 MQTT连接参数

参数开放协议私有协议(注册服务器)私有协议(业务服务器)
服务器域名mqtt.xxxxx.com(可自定义)login.goldmel.commqtt.goldmel.com
端口1883(可自定义)18831883
Client IDIMEI设备IMEI设备IMEI
用户名可自定义device_loginuser
密码可自定义device_login@...user

2.2 Topic格式对比

方向开放协议私有协议(注册服务器)私有协议(业务服务器)
上行(设备→平台)gm/open/up/<IMEI>gm/login/dev/(imei)gm/charger/dev/(imei)
下行(平台→设备)gm/open/dn/<IMEI>gm/login/srv/(imei)gm/charger/srv/(imei)

关键差异:

  • 开放协议使用单一Topic对,平台方可自定义
  • 私有协议使用双服务器架构,注册服务器负责设备录入和参数下发,业务服务器负责充电业务

3 数据结构对比

对比项开放协议私有协议
数据格式#<指令类型>,<指令序号>,<消息体>#(cmd type),<1>,<2>,...,<type n><LF>
起始标识##
分隔符逗号逗号
结束符无明确说明<LF>(换行符)
指令类型标识英文语义化名称数字编码或英文缩写

4 指令集对比

4.1 指令映射表

功能开放协议私有协议差异说明
设备注册/登录LOGINLOGIN开放协议上报更详细的出厂参数;私有协议包含设备项目名称和子类型
登录响应LOGINLOGIN开放协议返回UTC时间戳;私有协议返回绑定/录入状态和验证码
心跳HEARTBEAT0开放协议包含注册码编号和端口数据组;私有协议包含信号接收功率和详细费用数据
心跳响应HEARTBEAT0开放协议仅确认;私有协议返回执行结果
设备绑定A私有协议独有,管理设备绑定状态
掉电提醒DROP私有协议独有,设备掉电时上报订单信息
查询充电桩DEVICE-QUERY开放协议独有,查询端口状态与计费模板一致性
查询设备状态4私有协议独有,查询所有插孔充电状态
查询端口状态PORT-QUERY3开放协议按端口查询;私有协议也按端口查询但返回更多费用数据
开启充电CHARGE-START1开放协议传入订单编号+金额;私有协议传入充电类型+时长/电量+自停参数+费率扩展
开启充电响应CHARGE-START1开放协议返回执行结果码;私有协议返回充电时长/电量+计费功率
终止充电CHARGE-STOP2开放协议传入订单编号;私有协议传入插孔序号+充电时长/功率
终止充电响应CHARGE-STOP2开放协议返回订单费用明细;私有协议返回剩余时长+费用明细
充电自停AUTO-STOP5开放协议3种自停类型;私有协议6种结束类型
自停响应AUTO-STOP5开放协议返回订单编号+执行结果;私有协议返回插孔序号
查询计费模型BILLING-QUERY开放协议独有
设置计费模型BILLING-SET开放协议独有;私有协议将费率嵌入开启充电指令
查询工作参数PARAM-QUERY7开放协议查询自停参数+功率限制+心跳间隔;私有协议查询功率阈值+自停计时
设置工作参数PARAM-SET开放协议独有;私有协议通过指令6设置功率阈值
远程重启REBOOTREBOOT开放协议仅含指令序号;私有协议含设备序号
刷卡充电B私有协议独有
业务服务器配置LOGIN-RETURN私有协议独有,注册服务器下发业务服务器参数

4.2 私有协议独有指令

指令指令码说明
设备绑定A设置/切换设备绑定状态
掉电提醒DROP设备掉电时上报订单信息
查询设备状态4查询所有插孔充电状态
刷卡充电BIC卡刷卡充电请求
业务服务器配置LOGIN-RETURN注册服务器下发业务服务器连接参数
设置功率阈值(弃用)6设置设备自停相关参数
设置功率档位(弃用)8设置功率计费档位
查询功率档位(弃用)9查询功率计费档位
校时(弃用)TIME后台校时

4.3 开放协议独有指令

指令说明
DEVICE-QUERY查询充电桩端口运行状态与计费模板一致性
BILLING-QUERY查询当前计费模型
BILLING-SET设置计费模型
PARAM-SET在线修改充电桩运行参数

5 核心功能详细对比

5.1 登录/注册

对比项开放协议私有协议
指令标识#LOGIN#LOGIN
上报方向设备→平台设备→后台
设备标识注册码编号(15字节) + IMEI + IMSI + ICCID设备项目名称(NCS12等) + IMEI + IMSI + ICCID + subtype
固件版本cat1Ver
设备类型充电桩类型(1=电动自行车充电桩)通过项目名称区分(NCS01/NCS02/NCS06/NCS12等)
端口数量无(通过项目名称隐含)
计费模型编号
自停参数有(自停开关/触发功率/时延/最大功率/最大时长)
响应内容执行结果 + UTC时间戳执行结果 + 绑定状态 + 录入状态 + 验证码
双服务器支持有(LOGIN-RETURN下发业务服务器参数)

5.2 心跳

对比项开放协议私有协议
指令标识#HEARTBEAT#0
上报周期2分钟2分钟
设备标识注册码编号
信号信息信号强度信号强度 + 信号接收功率
计费模型计费模型编号
端口数据端口号|工作状态|有功功率|剩余金额剩余时长/电量|实时功率|电费|服务费|余额|电量
数据格式List(|分隔)单端口数据直接排列
多端口支持每端口一组List数据通过插孔数量+连续数据表示

5.3 开启充电

对比项开放协议私有协议
指令标识#CHARGE-START#1
下发方向平台→充电桩后台→设备
端口指定端口号(1~12)设备序号 + 插孔序号
订单标识订单编号(<=30字节)无(或通过扩展字段传入)
充电金额有(单位:分)无(通过充电时长/电量间接体现)
充电类型无(仅按金额充电)计时/计量/按功率/按时段 四种模式
自停参数无(使用设备预设值)充满自停开关/功率/延时 + 空载自停功率/延时/开关 + 超载功率 + 最大时长
费率数据无(通过BILLING-SET单独下发)嵌入指令扩展数据(按电量/功率/时段三种扩展)
响应内容执行结果码(1~4)执行结果 + 充电类型 + 充电时长/电量 + 服务时长 + 计费功率

5.4 终止充电

对比项开放协议私有协议
指令标识#CHARGE-STOP#2
下发方向平台→充电桩后台→设备
订单标识订单编号
端口指定端口号设备序号 + 插孔序号
同步功能充电时长/功率(0=关闭设备)
响应费用明细充电时长 + 充电量 + 预付金额 + 电费 + 服务费 + 剩余金额剩余时长/电量 + 充电类型 + 实时功率 + 服务费类型 + 使用时长 + 电费 + 服务费 + 余额 + 使用电量
金额单位分(100=1元)分(50=0.5元)
电量单位0.01度(150=0.15度)Wh(100=100Wh)
时长单位分钟

5.5 充电自停

对比项开放协议私有协议
指令标识#AUTO-STOP#5
上报方向充电桩→平台设备→后台
自停类型3种(充满自停/充电完成/超载保护)6种(充满自停/空载自停/充电完成/设备超载/计时超时/充电器拔出)
费用明细充电时长 + 充电量 + 预付金额 + 电费 + 服务费 + 剩余金额剩余时长/电量 + 实时功率 + 充电类型 + 计费功率 + 服务费类型 + 使用时长 + 电费 + 服务费 + 余额 + 使用电量
响应内容端口号 + 订单编号 + 执行结果插孔序号 + 执行结果

5.6 工作参数查询/设置

对比项开放协议私有协议
查询指令#PARAM-QUERY#7
设置指令#PARAM-SET#6(已弃用,现通过开启充电指令传入)
参数内容自停开关 + 触发功率 + 触发时延 + 端口最大功率 + 充电桩最大功率 + 最大充电时长 + 心跳间隔充满自停功率/延时 + 超载功率 + 空载功率/延时/开关 + 最大充电时长 + 累计充电时长 + 自停计时
计费模型管理独立的BILLING-QUERY/BILLING-SET指令费率数据嵌入开启充电指令扩展字段

6 数据单位对比

数据项开放协议私有协议
金额分(100=1元)分(50=0.5元)
功率W(整数,1234=123.4W,注意此处有歧义)W(整数或小数,200=200W,235.05=235.05W)
电量0.01度(150=0.15度)Wh(100=100Wh)
充电时长分钟
端口编号1~124G+蓝牙:0=左侧/1=右侧;4G:1~12

7 架构差异总结

7.1 设计理念差异

维度开放协议私有协议
设计目标标准化、开放性、第三方接入功能完整、设备管控、内部使用
指令命名语义化英文命名,可读性强数字编码,传输效率高
费率管理独立指令(BILLING-QUERY/SET)嵌入开启充电指令
订单管理基于订单编号的全生命周期管理基于端口的充电状态管理
设备管理简化,关注充电业务完整,包含绑定/录入/双服务器切换
充电模式按金额充电计时/计量/按功率/按时段 四种模式

7.2 私有协议特有架构

  1. 双服务器架构:注册服务器(login.goldmel.com)负责设备录入和参数下发,业务服务器(mqtt.goldmel.com)负责充电业务
  2. 设备录入流程:设备先连接注册服务器上报信息,录入成功后注册服务器下发业务服务器参数,设备切换到业务服务器
  3. 刷卡充电:支持IC卡刷卡充电,包含卡号校验和余额管理
  4. 掉电保护:设备掉电时主动上报订单信息
  5. 多种充电模式:计时/计量/按功率/按时段四种收费模式,费率数据嵌入充电指令

7.3 开放协议特有架构

  1. 单服务器直连:第三方平台直接配置MQTT服务器参数
  2. 订单编号机制:每笔充电订单有唯一编号,贯穿开启/终止/自停全流程
  3. 计费模型管理:独立的计费模型查询和设置指令
  4. 工作参数管理:独立的工作参数查询和设置指令
  5. 设备查询:支持查询充电桩端口状态与计费模板一致性校验

8 迁移/兼容建议

  1. 指令映射:开放协议的语义化指令需要映射为私有协议的数字指令码
  2. 金额单位:两协议均使用"分"为单位,但电量单位不同(0.01度 vs Wh),需做转换
  3. 时长单位:开放协议使用分钟,私有协议使用秒,需乘以60
  4. 订单编号:开放协议依赖订单编号管理订单,私有协议依赖端口号,需建立映射
  5. 费率下发:开放协议通过独立指令设置计费模型,私有协议在开启充电时一并下发费率
  6. 自停类型:开放协议3种类型需映射到私有协议6种类型
  7. 双服务器切换:私有协议的注册→业务服务器切换流程在开放协议中不存在