OCPP-J-1.6 解读

一、简介

        OCPP1.6 分为-J、-S,不用关注-S,目前基本只用-J,如下。那好,主包接下来的讲解,站在充电桩角度的哈~

因此,主包推荐如下学习文档:

        1、ocpp-1.6 edition 2,OCPP 业务层报文,重要!!!

        2、ocpp-j-1.6-specification,HTTP 握手、Cjson帧格式,重要!!!

        3、其他,按需学习

二、整体流程图

        在OCPP1.6 整个流程中,从TCP连接开始的流程如下,主要有:
        1、TCP 三次握手(TCP 流程主包这里不赘述)

        2、若需加密,则还需要走TLS流程(TLS 流程主包这里不赘述)

        3、HTTP 握手(HTTP 转 WebSocket)

        4、OCPP1.6 的业务流程

三、HTTP 握手

        在 TCP 建立后,紧接着就是发起一次 HTTP 握手了。

3.1、URL

        URL 的全称是 Uniform Resource Locator,中文译为统一资源定位符。URL 是互联网上用来标识和定位资源(如网页、图片、文件等)地址的字符串,也就是我们平常说的"网址"。

通常格式:协议://主机名:端口/路径?查询参数#片段

       所以 EVSE 在连接 OCPP 平台前,肯定是要有 URL 才能连接的,OCPP 的 URL 如下:

3.2、HTTP Req

        当 TCP 连接后,EVSE 发起 HTTP 握手请求,请求内容如下:

        1、黑色加粗字体是固定的

        2、其他根据 URL 填充

        3、KEY值生成规则:

        

3.3、HTTP Res

        OCPP 平台收到 EVSE 的 HTTP Req 后,需要返回如下的 HTTP 响应信息

        As we all know,当 HTTP Req 的路径或其他信息出错了,平台可以回复 404 等其他错误码。

3.4、Accept 值

        因此,EVSE 在收到 HTTP Res 响应后需要做以下验证:

        1、HTTP 响应码是否为 101

        2、用自身生成的 KEY 进行同样的运算得到的 My_Accept 和 Accept 对比是否一致

        至此,HTTP 握手阶段工作完成,后续 EVSE 和 OCPP 平台的通信机制,将遵循 WebSocket

四、WebSocket

4.1、为啥要用 WebSocket 呢?

        HTTP 的机制是“请求-响应”,只能客户端发起Req,服务端响应Res,这种机制不方便。因此,我们在握手的时候发起 HTTP请求的同时 Upgrade WebSocket,后续通信机制变为WebSocket。

        WebSocket 的核心价值:全双工(Full-Duplex)持久连接

        1、一次握手,长期保持连接
        2、服务器和客户端都能主动发送消息、主动断开、主动探测心跳 Ping Pong
        3、这正是 OCPP 需要的(中央系统要主动下发"远程启动充电"等指令)

4.2、WebSocket 帧格式

4.2.1、帧格式

4.2.2、Hi 举例说明

4.2.3、举例说明

4.2.4、多包发送

4.3、WebSocket 通信机制

        WebSocket 阶段,简单来说就三个,数据传输、心跳、断连

4.3.1、三种心跳

        OCPP 通信基于三层分别是 TCP、WebSocket、OCPP应用层,因此通常会有三层的心跳机制。

4.3.2、断连处理

五、业务层报文定义

        在 HTTP 握手通过以后,接下来就是进行业务流程的通信了,OCPP 报文是基于 Cjson 帧格式的。

5.1、请求/响应的机制

        首先,我们知道业务层的通信机制也是 请求/响应 的模式

5.2、OCPP 帧格式

5.2.1、消息类型

5.2.2、消息ID

5.2.3、Call

5.2.4、CallResult

5.2.5、CallError

例如,当某个协议不支持的时候,可以如下回复 CallError

5.3、安全

        关于 OCPP 安全方面的内容,可以参考 OCPP1.6 OCA,OCPP1.6 白皮书,下面简单讲解一下。

5.3.1、With TLS

        What can I say,通信要安全就只能 TCP 连接后走 TLS 的四次握手咯,TLS 还可以选择单端or双端验证,验证双方的证书.....那主播这里就不讨论 TLS 内容,TLS 内容还是很多滴。

5.3.2、HTTP Basic 认证

        当 TLS 阶段完成加密和证书验证后,接着就是 HTTP 握手,这里要进行 HTTP Basic 认证。

六、业务层报文

        接下来,将要讲解 OCPP 业务层的报文了,重点内容来了~,那主包将用正常充电流程(例如刷卡启动)的业务场景,来讲解报文吧,其他的业务场景自行阅读协议学习吧~

6.1、充电流程

6.2、报文详解

6.2.1、BootNotification

        登录注册,上线通知

举例说明

6.2.2、Heartbeat

        按 interval 定期发送,保持心跳

举例说明

6.2.3、StatusNotification

        当桩状态变化时上报,如空闲->插枪->充电中....

举例说明

6.2.4、Authorize

        当桩端启动(如刷卡启动),需要走鉴权,鉴权通过后才能 StartTransaction

举例说明

6.2.5、StartTransaction

        启动充电事务,启动交易。

举例说明

6.2.6、MeterValues

        充电中周期上报电表数据。

举例说明

6.2.7、StopTransaction

        停止充电事务,停止充电

举例说明

七、总结

        其他的业务场景流程,自行阅读 OCPP 文档学习吧,主包就将这么多~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值