
JT808协议是中国交通部发布的一种国家行业标准,全名是《基于卫星定位的车辆远程监控终端通信协议》(编号:GB/T 19056-2012 或 GB/T 32960)。该协议主要用于解决车辆远程监控和管理中的数据通信问题,被广泛应用于如公共交通、物流运输、出租车等领域。
JT808定义了一套完整的数据通信协议,包括:
数据使用二进制表示,并通过严格的编码方式(如BCD编码、GBK编码)和协议规范进行传输。
在 JT808协议 中,转义是用于处理特殊字符的一种数据封装方法。其目的是保证消息的完整性和可靠性,防止数据传输过程中因特殊字符的干扰导致消息内容被误解或解析失败。
在JT808协议中,以下两个字符需要特别处理:
假设一条消息内容为:
原始数据:7E 11 22 7E 33 7D 44 7E
经过转义后的数据:
转义后:7E 11 22 7D 02 33 7D 01 44 7D 02 7E
注意事项
转义操作通常在校验码计算之前进行。校验码的计算基于原始数据,不包括转义操作后的变化。
转义可能会导致消息长度增加,但它是保证协议可靠性的重要措施。
在 JT808协议 中,消息ID 用于标识消息的类型和用途。每种消息都有一个唯一的16位标识符(2字节),表示消息是从终端发送到平台的(上行)还是从平台发送到终端的(下行)。以下是一些常用的 消息ID 和对应的含义:
JT/T 808 是中国交通运输行业的车辆信息服务与管理系统通信协议,常用于车载终端与服务器之间的通信。协议定义了一系列消息 ID,用于表示不同类型的消息。以下是一些常用的消息 ID 及其含义:
消息 ID | 消息类型 | 含义 |
|---|---|---|
0x0001 | 终端注册 | 终端向平台注册,用于设备身份确认。 |
0x0002 | 终端注销 | 终端向平台发送注销消息。 |
0x0003 | 终端鉴权 | 用于终端鉴权,通过该消息验证终端身份。 |
0x0004 | 查询终端参数应答 | 终端对平台下发的查询参数指令的应答。 |
0x0100 | 位置信息汇报 | 终端定期或根据触发条件汇报自身的位置信息。 |
0x0200 | 实时位置查询应答 | 平台查询终端位置后,终端的应答信息。 |
0x0301 | 事件报告 | 终端上报特定事件信息(如报警事件)。 |
0x0704 | 定位数据批量上传 | 终端批量上传多条定位数据。 |
0x0800 | 多媒体事件信息上传 | 上传多媒体事件相关的元数据。 |
0x0801 | 多媒体数据上传 | 上传实际的多媒体文件数据(如图片或视频)。 |
0x0900 | 数据上行透传 | 上报透传数据,一般用于自定义扩展功能。 |
消息 ID | 消息类型 | 含义 |
|---|---|---|
0x8001 | 平台通用应答 | 平台对终端发送消息的通用应答。 |
0x8100 | 注册应答 | 平台对终端注册的应答,返回鉴权码等信息。 |
0x8103 | 设置终端参数 | 平台下发终端参数配置信息。 |
0x8201 | 位置信息查询 | 平台向终端主动查询其位置信息。 |
0x8300 | 文本信息下发 | 平台向终端发送文本信息,用于广播或提醒。 |
0x8500 | 车辆控制 | 平台对车辆进行远程控制(如锁车)。 |
0x8800 | 多媒体数据检索 | 平台检索终端存储的多媒体数据。 |
0x8801 | 多媒体数据上传命令 | 平台下发命令,要求终端上传指定的多媒体文件。 |
0x8900 | 数据下行透传 | 平台向终端下发透传数据,用于扩展功能。 |
0x8A00 | 平台 RSA 公钥 | 平台向终端下发 RSA 公钥,用于数据加密通信。 |
以下是通用的消息 ID,用于应答或处理基础通信:
消息 ID | 消息类型 | 含义 |
|---|---|---|
0x0000 | 心跳包 | 终端定期发送的心跳信息,用于保持连接。 |
0x0005 | 终端通用应答 | 终端对平台消息的通用应答,确认收到指令。 |
消息 ID | 消息类型 | 含义 |
|---|---|---|
0x0301 | 事件报告 | 终端上报报警事件,如碰撞报警或超速报警。 |
0x0500 | 车辆控制应答 | 终端对平台车辆控制指令的应答。 |
0x8202 | 临时位置跟踪控制 | 平台要求终端以一定频率上报位置信息。 |
这些消息 ID 是 JT/T 808 协议中最常用的部分,实际使用时需要根据业务需求进行扩展和配置。如果需要更详细的信息,可以参考 JT/T 808 的完整协议文档。
在 JT/T 808 协议中,终端注册和鉴权是保证通信安全、数据完整性和合法性的两个关键步骤。以下从原理和必要性两个方面解释为什么既需要注册又需要鉴权。
注册的目的是确认设备身份和绑定设备信息。注册是终端和平台建立信任的第一步,类似于“登录账号”的过程。其主要作用包括:
注册是设备的初始动作,但注册信息可能被伪造或被盗用。鉴权则是一个动态验证过程,用于进一步确保通信安全。具体原因如下:
可以类比如下场景:
在 JT/T 808 协议中:
注册和鉴权的结合使用,形成了一套静态绑定与动态验证的安全机制:
这种设计提升了系统的安全性和稳定性,尤其在车联网这种涉及广泛设备和敏感数据的场景下显得尤为重要。
在 JT/T 808 协议中,设备与服务器之间需要通过一系列应答机制来保证数据的可靠传输。根据协议规范,常见的应答有以下几种:
设备发送消息到平台后,平台需要通过通用应答对消息进行确认。
通用应答的结构如下:
0x8001 消息,填入应答流水号、应答 ID 和结果。服务器发送消息到设备后,设备需要通过通用应答确认收到消息。
终端通用应答的结构与平台通用应答类似,字段意义一致:
0x0001 消息,包含服务器的流水号和消息 ID。某些业务消息需要特定应答,例如:
业务应答通常在通用应答的基础上,增加了一些业务特定字段。具体字段需要参考协议的详细定义。
如果一方未收到应答,可根据消息流水号进行消息重发。具体规则:
以下是一个应答消息的例子:
7E 80 01 00 05 13 88 99 01 23 45 00 01 00 01 00 00 7E在 JT808 协议中,应答机制贯穿整个协议规范,是保证消息传输可靠性的核心手段。开发过程中需要特别注意以下几点: