慢充设备通讯文档-硬件接口(老版,2018-6以前)

来自东骏科技波塞冬平台开发者文档
跳转至: 导航搜索

描述

杭州东骏科技有限公司的通讯模块主板之间串口通讯的定义。

名词定义

  1. 模块 指我们提供的通信模块。
  2. 设备 指调用“模块”的主机设备,一般指充电站、游戏机等自助设备。

通讯数据格式

模块采用UART串口协议与主机进行问答式串行通讯,波特率为9600,8位数据位,1位停止位,无校验位。

命令格式

SOP LEN CMD SESSION_ID DATA SUM

SOP:单字节字头。命令为EE,应答为66 。

LEN:单字节。从CMD到SUM的字节数(含CMD和SUM)

CMD:单字节,命令字节。

SESSION_ID:服务端回话编号,6个字节,用户服务端识别通讯会话。如果服务端发起的会话设备应答服务端需要带上服务端下发的会话ID。如果设备发起会话则会话ID为“000000”

DATA:数据字节,不定长。

SUM:单字节,LEN、CMD、SESSION_ID、DATA的异或值


业务接口

读取设备每个端口的状态

描述:服务器读取设备每个端口当前的状态。

数据方向:设备→模块

命令:0x01

服务器请求命令帧:

查询参数
1byte

查询参数:固定值0x00


设备响应命令帧:

PORT_NUM PORT1_STATUS PORT2_STATUS
1byte 1byte 1byte

PORT_NUM:端口数量

PORTx_STATUS:端口状态(0x01-端口空闲;0x02-端口正在使用;0x03-端口禁用;0x04-端口故障)

用户付款成功,通知主设备(选择端口)

描述:当用户付款以后,通知主设付款的信息。

数据方向:模块→设备

命令:0x02

服务器请求命令帧:

PORT 功率档位、电量选择 TIME/POWER
1byte 2byte 2byte

PORT:用户选择的充电端口号,0x02表示2号端口。

功率档位、电量选择:用户支付的选择的功率档位:0x00,表示不选择,充电站自动判断,0x01=时间计费第一档功率0x02=时间计费第二档功率,0x03=时间计费第三档功率,0x11

TIME/POWER:表示发送给机器当前端口要充电时间或者充电电量:1.如果是充电时间则以分钟为单位,如 0x0064表示100分钟。2.如果是充电电量则以0.01度(千瓦时)为单位,如0x0064表示100个单位=1度电量

设备响应命令帧:

PORT RESULT
1byte 1byte

PORT: 用户选择的充电端口号,0x02表示2号端口。

RESULT: 0x01-成功,0x02-充电站故障,0x03-端口已经被使用

注意:当RESULT=0x02或0x03 的时候,系统会执行退款操作。

投币上报

描述:使用投币器方式充电后,设备上报投币相关的信息。

数据方向:设备→模块

命令:0x03

服务器请求命令帧:

投币次数 充电端口
1byte 1byte

投币次数:单次充电投币的次数

充电端口:充电的端口


设备响应命令帧:

RESULT
1byte

RESULT:0x01-表示服务端接收成功

刷卡上报(线下充值卡上报方式)

描述:使用刷卡方式充电后,设备上报刷卡相关信息。

数据方向:设备→模块

命令:0x04

服务器请求命令帧:

money
1byte

money:刷卡金额,最小单位为角


设备响应命令帧:

RESULT
1byte

RESULT:0x01表示服务端接收成功

提交充电结束状态

描述:当某个端口的电动车已经充电结束(不管是已经充满自动停止,或是用户手动拔掉电源),调用该接口通知服务器。注意:调用该接口以后,系统会在后台根据用户的充电实际情况(比如本来可以充电100分钟,用户只用了50分钟)做相应的退款(管理员可以设置到底是退款还是不退款)。调用了该接口,该次交易即已经结束,用户再插上线路,肯定是不能再充电的。

数据方向:设备→模块

命令:0x05

服务器请求命令帧:

PORT TIME/POWER REASON
1byte 2byte 1byte

PORT:充电端口号,0x02表示2号端口。

TIME/POWER:用户剩余的充电时间或者剩余电量:1.如果是充电时间则以分钟为单位,如 0x0064表示100分钟。2.如果是充电电量则以0.01度(千瓦时)为单位,如0x0064表示100个单位=1度电量,以分钟0.01度。当该值为0xFFFF的时候,系统会全额退款,表示该次交易不成功(一般为设备损坏,或是用户无法正常充电)。

REASON:停止的原因:0x00-购买的充电时间、电量用完了,0x01-用户手动停止(拔插头,或是按了停止按钮),

0x02-充电满了,自动停止,0x03-设备或是端口出现问题,被迫停止,0x04-因充电器功率超过充电站的单路最大输出功率,切断输出,0x05-刷卡退费结束


设备响应命令帧:

RESULT
1byte

RESULT:0x01表示服务器接收成功

查询端口当前的充电状态 (只有升级板有)

描述:服务器会主动查询当前充电端口的充电状态。

数据方向:模块→设备

命令:0x06

服务器请求命令帧:

PORT
1byte

PORT:充电端口号,0x02表示2号端口。


设备响应命令帧:

PORT TIME\POWE INSTANT POWER
1byte 2byte 2byte

PORT:端口号,0x03表示端口3

TIME\POWE:表示这一路充电端口的剩余充电时间或者充电电量:1.如果是充电时间则以分钟为单位,如 0x0064表示100分钟。2.如果是充电电量则以0.01度(千瓦时)为单位,如0x0064表示100个单位=1度电量,以分钟0.01度,0x00表示不在充电(包括空闲、故障)

INSTANT POWER:这一路当前充电的瞬时功率,单位为W。如0x0001表示1W。若没有该数据,请填写0xFFFF

查询消费总额数据

描述:服务器会去查询投币、刷卡的消费总额数据。

数据方向:模块→设备

命令:0x07

服务器请求命令帧:

参数
1byte

参数:固定值0x00


设备响应命令帧:

CARD_MONEY COIN_MONEY
2byte 2byte

CARD_MONEY:机器消费刷卡总金额(以角为单位),0x0001表示0.1元

COIN_MONEY:机器消费投币总金额(以元为单位),0x0001表示1元

IC卡、投币、最大功率设置

描述:用户在服务的设置IC卡一次刷卡的金额,不同投币金额的充电时长、充电电量,机器输出最大功率值,并发送给设备端。

数据方向:模块→设备

命令:0x08

服务器请求命令帧:

MAX_POWER IC_MONEY TIME1/POWER1 TIME2/POWER2 TIME3/POWER3
2byte 1byte 2byte 2byte 2byte

MAX_POWER:最大输出功率,以W(瓦)为单位。若该值为0xFFFF,表示不设置这个值

IC_MONEY:用户每次刷IC卡需要消耗的金额,单位为角。如0x01表示0.1元

TIME1/PWOER1:第一个币的充电时间(0-999分钟)或者充电电量(0-9.99度)

TIME2/POWER2:第二个币的充电时间(0-999分钟)或者充电电量(0-9.99度)

TIME3/POWER3:第三个币的充电时间(0-999分钟)或者充电电量(0-9.99度)

设备响应命令帧:

NULL
1byte

NULL:固定为0x01,表示成功

设置IC卡、投币器是否可用

描述:在服务端设置IC卡、投币器是否可用。

数据方向:模块→设备

命令:0x09

服务器请求命令帧:

COIN IC
1byte 1byte

COIN :投币器设置,0x00-不可用;0x01-可用。

IC:刷卡器设置,0x00-不可用;0x01-可用。

设备响应命令帧:

NULL
1byte

NULL :固定为0x01

锁定、解锁某一个端口 (只有保险丝板有)

描述:当某一个端口外接插座损坏,可以通过后台锁定这个充电端口,不让客户使用。

数据方向:模块→设备

命令:0x0A

服务器请求命令帧:

PORT STATUS
1byte 1byte

PORT :端口号,如0x01

STATUS:表示指令,0x01-解锁(可用),0x00-锁定(不可用)

设备响应命令帧:

null
1byte

null:0x01设置成功

远程停止某个端口的充电

描述:服务器可以远程停止某个端口的充电。

数据方向:模块→设备

命令:0x0B

服务器请求命令帧:

PORT
1byte

PORT :端口号,如0x01,


设备响应命令帧:

PORT TIME/POWER
1byte 2byte

PORT :充电端口号,0x02表示2号端口。

TIME/POWER :用户剩余的充电时间或者充电电量,单位参考第4

读取设备IC卡、投币、最大功率设置

描述:服务器读取设备的IC卡一次刷卡的金额,不同投币金额的充电时长、充电电量,机器输出最大功率值等设置值。

数据方向:设备→模块

命令:0x0C

服务器请求命令帧:

NULL
1byte

查询参数:固定值0x00


设备响应命令帧:

MAX_POWER IC_MONEY TIME1/POWER1 TIME2/POWER2 TIME3/POWER3
2byte 1byte 2byte 2byte 2byte

MAX_POWER:最大输出功率,以W(瓦)为单位。

IC_MONEY:用户每次刷IC卡需要消耗的金额,单位为角。如0x01表示0.1元

TIME1/POWER1:第一个币的充电时间(0-999分钟)或者充电电量(0-9.99度)

TIME2/POWER2:第二个币的充电时间(0-999分钟)或者充电电量(0-9.99度)

TIME3/POWER3:第三个币的充电时间(0-999分钟)或者充电电量(0-9.99度)

上传设备故障

描述:设备上传机器故障码给服务器。

数据方向:设备→模块

命令:0x0D

服务器请求命令帧:

PORT ERROR_CODE
1byte 1byte

PORT:充电端口号,0x02表示2号端口。若错误的地方不包括端口号,则填写0xFF。0xff代表整机

ERROR_CODE:错误码,0x01-端口输出故障,0x02-机器整体充电功率过大,0x03-电源故障


设备响应命令帧:

NULL
1byte

NULL :固定为0x01

关闭或者打开充电站充电

描述:模块向设备发送打开或者关闭充电指令。

数据方向:模块→设备

命令:0x0E

服务器请求命令帧:

null
1byte

null :0x01代表关闭充电,0x00代表打开充电


设备响应命令帧:

NULL
1byte

NULL :固定为0x01

刷卡向模块发送卡号和扣费金额

描述:设备向模块发送IC卡号和扣费金额。

数据方向:设备→模块

命令:0x11

服务器请求命令帧:

卡号 扣费金额 卡余额 卡类型 端口 状态
4byte 1byte 2byte 2byte 1byte 1byte

卡号 :如0x01 0x02 0x03 00x04

扣费金额:0x01,表示0.1元 ,0x00表示不扣费

卡里余额:2个字节,高位在前,最小单位0.1元,余额是未扣费或者退费之前的

卡类型:2个字节,高位在前

端口:1个字节,表示充电的端口

状态:0x01 扣款成功,0x02 扣款失败 余额不足,0x03 退费

充值指令:给卡充值+发送卡余额给后台数据同步

描述:设备向模块发送IC卡号、余额、充值指令。

数据方向:设备→模块

命令:0x12

服务器请求命令帧:

卡号 卡里余额 卡类型
4byte 2byte 2byte

卡号 :如0x01 0x02 0x03 0x04

卡里余额:0x0001,表示0.1元

卡类型:2个字节,高位在前

设备响应命令帧:

卡号 充值金额 卡类型
4byte 2byte 2byte

卡号 :如0x01 0x02 0x03 0x04

充值金额:2个字节,高位在前,最小单位0.1元,如没有充值,发送0x0000,充值金额不是卡里余额

卡类型:2个字节,高位在前

设备再回复数据:

命令:0x16,此应答需要可靠上报

卡号 充值完成余额 卡类型 充值结果
4byte 2byte 2byte 1byte

卡号:如0x01 0x02 0x03 0x04

充值完成余额:2个字节,高位在前,最小单位0.1元

卡类型:2个字节,高位在前

充值结果:0x01 充值成功 0x02 不成功

设置充电站充满自停、刷卡是否退费

描述:在服务端设置充电站是否充满自停、是否刷卡退费。

数据方向:模块→设备

命令:0x13

服务器请求命令帧:

充满自停 刷卡退费
1byte 1byte

充满自停:充满自停设置,0x00-充满不自停;0x01-充满自停。

刷卡退费:0x00-刷卡不退费,0x01-刷卡退费

设备响应命令帧:

NULL
1byte

NULL :固定为0x00

设置充电站3档计费功率、比例

描述:服务器设置充电站5档计费的充电电量功率和相应的比例

数据方向:设备→模块

命令:0x14

服务器请求命令帧:

第一档功率 对应比例 第二档功率 对应比例 第三档功率 对应比例 第四档功率 对应比例 第五档功率 对应比例
2byte 1byte 2byte 1byte 2byte 1byte 2byte 1byte 2byte 1byte

第一档功率:设置第一档的功率范围0-第一档功率

对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%

第二档功率:设置第二档的功率范围:第一档功率—第二档功率

对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%

第三档的功率:设置第三档的功率范围:第二档功率—第三档功率

电动车在此功率范围内充电时间对应机器设置时间的百分比, 充电时间=设置时间*对应比例%

...


设备响应命令帧:

设置结果
1byte

设置结果 :0x01-成功,0x00-失败(与主板要求的不符,比如功率超出了主板的最大功率,功率大小限制与主板要求不符等)

读取设备3档计费功率、比例

描述:服务器读取设备每个端口当前的状态。

数据方向:设备→模块

命令:0x15

服务器请求命令帧:

NULL
1byte

NULL:固定值0x00


设备响应命令帧:

第一档功率 对应比例 第二档功率 对应比例 第三档功率 对应比例 第四档功率 对应比例 第五档功率 对应比例
1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte

第一档功率:设置第一档的功率范围0-第一档功率

对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%

第二档功率:设置第二档的功率范围:第一档功率—第二档功率

对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%

第三档的功率:设置第三档的功率范围:第二档功率—第三档功率

电动车在此功率范围内充电时间对应机器设置时间的百分比, 充电时间=设置时间*对应比例%

...