车联网场景中 JT/T 808协议 是一种在中国广泛应用的车载终端通信协议,用于车辆与监控中心之间的数据通信。
01、JT/T808 协议
JT/T808 协议是指交通部颁布的《道路运输车辆卫星定位系统终端通讯协议及数据格式》,广泛应用于车辆远程监管、物流管理、车辆安防等领域。它为车辆监管和服务提供了统一的数据通信标准,实现了信息的快速传输和远程控制。
JT/T808 协议规定了车辆与监管平台之间的通信规范,用于实现对道路车辆的远程监管和服务,主要包含以下几个方面的内容:
消息结构:定义了不同类型的消息格式,包括消息头、消息体和校验码等部分。消息体中包含了车辆相关的信息,如车辆位置、状态、报警等。
消息分类:将不同功能的消息分为不同的消息类别,如位置信息汇报、报警信息上传、车辆控制等。每个消息类别都有独特的消息ID。
终端与平台通信:规定了终端和监管平台之间的通信方式,包括消息的传输、数据加密解密、连接管理等。
位置信息:定义了采集车辆位置信息的方式和格式,如经纬度、速度、方向等,并规定了位置信息上报的频率和条件。
报警信息:定义了不同类型的报警信息,如超速报警、紧急报警等。规定了报警信息的上报和处理方式。
车辆控制:规定了终端对车辆某些功能的控制,如车辆远程锁车、解锁等。
数据转发:定义了终端之间的数据转发方式,允许终端之间相互通信。
02、阿里云 JT/T808 云网关
阿里云 IoT 物联网平台的 JT/T808 云网关兼容JT/T 808-2019版协议,支持通过TCP 和 TLS 两种方式接入车机终端设备。采用TLS方式接入时,支持使用服务端单向认证、设备端OCSP、设备和服务端双向安全接入等能力。JT/T808 云网关能够无缝接入各种品牌终端(博实结、海康、大华等),协助企业快速构建企业的车联网应用系统。
云网关设备接入物联网平台并进行通信的完整流程如下图。
云网关支持 JT/T 808 协议的消息及类型如下表所示。
消息 | 消息类型 |
终端通用应答 | 0x0001 |
平台通用应答 | 0x8001 |
终端心跳 | 0x0002 |
终端注册 | 0x0100 |
终端注册应答 | 0x8100 |
终端注销 | 0x0003 |
终端鉴权 | 0x0102 |
数据透传下行 | 0x8900 |
数据上行透传 | 0x0900 |
位置信息汇报 | 0x0200 |
定位数据批量上传 | 0x0704 |
03、JT/T808 云网关开发实战
创建云网关和注册设备
阿里云 IoT 物联网平台仅华东2(上海)、华北2(北京)和华南1(深圳)地域的尊享型企业版实例支持使用JT/T 808协议云网关。开通入口: https://common-buy.aliyun.com/?commodityCode=iot_instc_public_cn
尊享型企业实例创建完成后,在设备管理的云网关下,添加 JT/T808 协议网关,如下图:
稍待片刻,创建完成后,你可以看到 JT/T808 网关接入域名和端口,以及关联产品 productKey,如下图:
为了方便后续管理和运维,你可以把产品改名 JT808车机
接下来你需要在设备管理的设备列表页面,预登记终端设备标识,如下图
批量上传的csv文件内容包含 Manufacturer ID、Terminal Model 和Terminal ID列表,如下图
注册成功后,在设备列表可以查看到预登记的设备信息,如下图:
JT/T808 终端接入
JT/T808 协议终端设备接入涉及以下指令:
终端注册 [0x0100]
终端发起注册信息,数据如下
7e0100405401000000000156488270990000001f0073333230313030373034343641452d41433432303400000000000000000000000000000000000000000042323032373944000000000000000000000000000000000000000000000001d5e34130303030316b7e
注册成功后,服务端返回如下数据
8100405301000000000156488270990000000000564770425a4770324d7a564f4f4668614e6d4e465330354b556a64724d445179656a42664e324d30596d51795a544e6b5a6a4d354d6a59314f544e684e4464684e7a6c6c5a6a4e6d4d7a51314d54633d9d
你可以提取出身份鉴权的 token ,并保存在硬件终端中,用于后续身份鉴权
VGpBZGp2MzVOOFhaNmNFS03KUjdrMDQyejBfN2M0YmQyZTNkZjM6MjY1OTNhNDdhNzllZjNmMzQ1MTc=
终端鉴权 [0x0102]
终端发起鉴权请求,数据如下
7e01024073010000000001564882709900004f564770425a4770324d7a564f4f4668614e6d4e465330354b556a64724d445179656a42664e324d30596d51795a544e6b5a6a4d354d6a59314f544e684e4464684e7a6c6c5a6a4e6d4d7a51314d5463333538383832303436313736353430352e312e32333400000000000000000000000000437e
终端位置信息汇报 [0x0200]
终端鉴权成功后,即可按需发送位置信息汇报
longitude=116403829,latitude=39915931,altitude=312,speed=111,direction=99
7e0200401c0100000000010000000001000000000400000008000261119b06f02e750138006f0063230925132718017e
在阿里云 IoT 物联网平台的控制台,监控运维下的日志服务,也可以查看到完整消息通信日志,如下:
JT/T808 数据流转
阿里云 IoT 物联网平台通过云产品流转的方式,可以将车载终端的在线状态、上报的数据实时流转到数据库、消息队列、企业业务系统中。相关数据格式如下:
设备注册流转的数据结构
消息主题:
/sys/${productKey}/${deviceName}/device/identity/register
数据格式:
{
"createTime": 1669968170000,
"deviceId": "device05",
"deviceModel": "model1",
"deviceName": "manufactor_model1_device05",
"instanceId": "iotx-o****",
"iotId": "PkhDL********00101",
"licensePlateColour": "1",
"licensePlateNumber": "浙A****",
"manufacturer": "manufactor",
"productKey": "a16h****",
"status": "register",
"tenantId": "58CAC7******37C956"
}
设备在线/离线的数据结构
消息主题:
/sys/${productKey}/${deviceName}/device/status/notify
数据格式:
{
"protocol": "jt808",
"status":"online",
"iotId":"4z819VQHk6VSLmmBJfrf00107e****",
"productKey":"al12345****",
"deviceName":"deviceName1234",
"time":"2018-08-31 15:32:28.205",
"utcTime":"2018-08-31T07:32:28.205Z",
"lastTime":"2018-08-31 15:32:28.195",
"utcLastTime":"2018-08-31T07:32:28.195Z",
"clientIp":"192.0.2.1"
}
设备上报数据流转的数据结构
消息主题:
/sys/${productKey}/${deviceName}/device/message/uplink
数据格式:
{
header:{
messageId:"",
version:"",
phone:"",
serialNumber:""
},
body:{
data:"dGVzdDEyMw==",
type: 65
}
}
设备注销事件流转的数据结构
消息主题:
/sys/${productKey}/${deviceName}/device/identity/unregister
数据格式:
{
"createTime": 1669968170000,
"deviceId": "device05",
"deviceModel": "model1",
"deviceName": "manufactor_model1_device05",
"instanceId": "iotx-o****",
"iotId": "PkhDL********00101",
"licensePlateColour": "1",
"licensePlateNumber": "浙A****",
"manufacturer": "manufactor",
"productKey": "a16h****",
"status": "register",
"tenantId": "58CAC7******37C956"
}
JT/T 808 协议终端上行的数据可以借助物联网平台的数据服务来进行数据解析,编写自定义解析脚本,流转到自定义数据表中,如下图
JT/T808 指令下行
阿里云 IoT 物联网平台云网关支持指令下行,你可以在服务端发起RRpc接口调用,向指定设备发送通信消息,并同步返回响应。
至此,完成了车联网场景中 JT/T808 终端接入阿里云 IoT 物联网平台的完整开发实战。