車聯(lián)網(wǎng)場景中 JT/T 808協(xié)議 是一種在中國廣泛應(yīng)用的車載終端通信協(xié)議,用于車輛與監(jiān)控中心之間的數(shù)據(jù)通信。
01、JT/T808 協(xié)議
JT/T808 協(xié)議是指交通部頒布的《道路運輸車輛衛(wèi)星定位系統(tǒng)終端通訊協(xié)議及數(shù)據(jù)格式》,廣泛應(yīng)用于車輛遠程監(jiān)管、物流管理、車輛安防等領(lǐng)域。它為車輛監(jiān)管和服務(wù)提供了統(tǒng)一的數(shù)據(jù)通信標(biāo)準(zhǔn),實現(xiàn)了信息的快速傳輸和遠程控制。
JT/T808 協(xié)議規(guī)定了車輛與監(jiān)管平臺之間的通信規(guī)范,用于實現(xiàn)對道路車輛的遠程監(jiān)管和服務(wù),主要包含以下幾個方面的內(nèi)容:
消息結(jié)構(gòu):定義了不同類型的消息格式,包括消息頭、消息體和校驗碼等部分。消息體中包含了車輛相關(guān)的信息,如車輛位置、狀態(tài)、報警等。
消息分類:將不同功能的消息分為不同的消息類別,如位置信息匯報、報警信息上傳、車輛控制等。每個消息類別都有獨特的消息ID。
終端與平臺通信:規(guī)定了終端和監(jiān)管平臺之間的通信方式,包括消息的傳輸、數(shù)據(jù)加密解密、連接管理等。
位置信息:定義了采集車輛位置信息的方式和格式,如經(jīng)緯度、速度、方向等,并規(guī)定了位置信息上報的頻率和條件。
報警信息:定義了不同類型的報警信息,如超速報警、緊急報警等。規(guī)定了報警信息的上報和處理方式。
車輛控制:規(guī)定了終端對車輛某些功能的控制,如車輛遠程鎖車、解鎖等。
數(shù)據(jù)轉(zhuǎn)發(fā):定義了終端之間的數(shù)據(jù)轉(zhuǎn)發(fā)方式,允許終端之間相互通信。
02、阿里云 JT/T808 云網(wǎng)關(guān)
阿里云 IoT 物聯(lián)網(wǎng)平臺的 JT/T808 云網(wǎng)關(guān)兼容JT/T 808-2019版協(xié)議,支持通過TCP 和 TLS 兩種方式接入車機終端設(shè)備。采用TLS方式接入時,支持使用服務(wù)端單向認(rèn)證、設(shè)備端OCSP、設(shè)備和服務(wù)端雙向安全接入等能力。JT/T808?云網(wǎng)關(guān)能夠無縫接入各種品牌終端(博實結(jié)、海康、大華等),協(xié)助企業(yè)快速構(gòu)建企業(yè)的車聯(lián)網(wǎng)應(yīng)用系統(tǒng)。
云網(wǎng)關(guān)設(shè)備接入物聯(lián)網(wǎng)平臺并進行通信的完整流程如下圖。
云網(wǎng)關(guān)支持 JT/T 808 協(xié)議的消息及類型如下表所示。
消息 | 消息類型 |
終端通用應(yīng)答 | 0x0001 |
平臺通用應(yīng)答 | 0x8001 |
終端心跳 | 0x0002 |
終端注冊 | 0x0100 |
終端注冊應(yīng)答 | 0x8100 |
終端注銷 | 0x0003 |
終端鑒權(quán) | 0x0102 |
數(shù)據(jù)透傳下行 | 0x8900 |
數(shù)據(jù)上行透傳 | 0x0900 |
位置信息匯報 | 0x0200 |
定位數(shù)據(jù)批量上傳 | 0x0704 |
03、JT/T808 云網(wǎng)關(guān)開發(fā)實戰(zhàn)
創(chuàng)建云網(wǎng)關(guān)和注冊設(shè)備
阿里云 IoT 物聯(lián)網(wǎng)平臺僅華東2(上海)、華北2(北京)和華南1(深圳)地域的尊享型企業(yè)版實例支持使用JT/T 808協(xié)議云網(wǎng)關(guān)。開通入口:?https://common-buy.aliyun.com/?commodityCode=iot_instc_public_cn
尊享型企業(yè)實例創(chuàng)建完成后,在設(shè)備管理的云網(wǎng)關(guān)下,添加 JT/T808 協(xié)議網(wǎng)關(guān),如下圖:
稍待片刻,創(chuàng)建完成后,你可以看到?JT/T808?網(wǎng)關(guān)接入域名和端口,以及關(guān)聯(lián)產(chǎn)品 productKey,如下圖:
為了方便后續(xù)管理和運維,你可以把產(chǎn)品改名 JT808車機
接下來你需要在設(shè)備管理的設(shè)備列表頁面,預(yù)登記終端設(shè)備標(biāo)識,如下圖
批量上傳的csv文件內(nèi)容包含 Manufacturer ID、Terminal Model 和Terminal ID列表,如下圖
注冊成功后,在設(shè)備列表可以查看到預(yù)登記的設(shè)備信息,如下圖:
JT/T808 終端接入
JT/T808 協(xié)議終端設(shè)備接入涉及以下指令:
終端注冊 [0x0100]
終端發(fā)起注冊信息,數(shù)據(jù)如下
7e0100405401000000000156488270990000001f0073333230313030373034343641452d41433432303400000000000000000000000000000000000000000042323032373944000000000000000000000000000000000000000000000001d5e34130303030316b7e
注冊成功后,服務(wù)端返回如下數(shù)據(jù)
8100405301000000000156488270990000000000564770425a4770324d7a564f4f4668614e6d4e465330354b556a64724d445179656a42664e324d30596d51795a544e6b5a6a4d354d6a59314f544e684e4464684e7a6c6c5a6a4e6d4d7a51314d54633d9d
你可以提取出身份鑒權(quán)的 token ,并保存在硬件終端中,用于后續(xù)身份鑒權(quán)
VGpBZGp2MzVOOFhaNmNFS03KUjdrMDQyejBfN2M0YmQyZTNkZjM6MjY1OTNhNDdhNzllZjNmMzQ1MTc=
終端鑒權(quán) [0x0102]
終端發(fā)起鑒權(quán)請求,數(shù)據(jù)如下
7e01024073010000000001564882709900004f564770425a4770324d7a564f4f4668614e6d4e465330354b556a64724d445179656a42664e324d30596d51795a544e6b5a6a4d354d6a59314f544e684e4464684e7a6c6c5a6a4e6d4d7a51314d5463333538383832303436313736353430352e312e32333400000000000000000000000000437e
終端位置信息匯報 [0x0200]
終端鑒權(quán)成功后,即可按需發(fā)送位置信息匯報
longitude=11640382?9,latitude=39915931,altitude=312,speed=111,direction=99
7e0200401c0100000000010000000001000000000400000008000261119b06f02e750138006f0063230925132718017e
在阿里云?IoT 物聯(lián)網(wǎng)平臺的控制臺,監(jiān)控運維下的日志服務(wù),也可以查看到完整消息通信日志,如下:
JT/T808 數(shù)據(jù)流轉(zhuǎn)
阿里云 IoT 物聯(lián)網(wǎng)平臺通過云產(chǎn)品流轉(zhuǎn)的方式,可以將車載終端的在線狀態(tài)、上報的數(shù)據(jù)實時流轉(zhuǎn)到數(shù)據(jù)庫、消息隊列、企業(yè)業(yè)務(wù)系統(tǒng)中。相關(guān)數(shù)據(jù)格式如下:
設(shè)備注冊流轉(zhuǎn)的數(shù)據(jù)結(jié)構(gòu)
消息主題:
/sys/${productKey}/${deviceName}/device/identity/register
數(shù)據(jù)格式:
{
"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"
}
設(shè)備在線/離線的數(shù)據(jù)結(jié)構(gòu)
消息主題:
/sys/${productKey}/${deviceName}/device/status/notify
數(shù)據(jù)格式:
{
"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"
}
設(shè)備上報數(shù)據(jù)流轉(zhuǎn)的數(shù)據(jù)結(jié)構(gòu)
消息主題:
/sys/${productKey}/${deviceName}/device/message/uplink
數(shù)據(jù)格式:
{
header:{
messageId:"",
version:"",
phone:"",
serialNumber:""
},
body:{
data:"dGVzdDEyMw==",
type: 65
}
}
設(shè)備注銷事件流轉(zhuǎn)的數(shù)據(jù)結(jié)構(gòu)
消息主題:
/sys/${productKey}/${deviceName}/device/identity/unregister
數(shù)據(jù)格式:
{
"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 協(xié)議終端上行的數(shù)據(jù)可以借助物聯(lián)網(wǎng)平臺的數(shù)據(jù)服務(wù)來進行數(shù)據(jù)解析,編寫自定義解析腳本,流轉(zhuǎn)到自定義數(shù)據(jù)表中,如下圖
?JT/T808 指令下行
阿里云 IoT 物聯(lián)網(wǎng)平臺云網(wǎng)關(guān)支持指令下行,你可以在服務(wù)端發(fā)起RRpc接口調(diào)用,向指定設(shè)備發(fā)送通信消息,并同步返回響應(yīng)。
至此,完成了車聯(lián)網(wǎng)場景中 JT/T808 終端接入阿里云 IoT 物聯(lián)網(wǎng)平臺的完整開發(fā)實戰(zhàn)。