[TOC]
参考文档
Tbox 是汽车上的一个盒子,指Telematics Box,远程通信终端,集成车身网络和无线通讯功能的产品,可提供 Telematics 业务,一般安装在仪表盘下方。Tbox 是一个基于 Android、Linux 操作系统的带通讯功能的盒子,内含一张 SIM 卡,一般是中国联通和移动的 SIM 卡,与这个盒子配套硬件还有 GPS 天线,4G 天线等。车机要联网必须有 Tbox 设备才能实现。
TBOX 的功能模块主要包括 4G 模块、GPS 模块、蓝牙模块、以太网模块、CAN 通信模块、电话语言模块、电源模块、Airbag 模块、E/B-call 模块等,每个模块之间紧密联系在一起,形成一个完整的远程通信终端。我们可以通过 Tbox 实现什么功能呢?
联网是 Tbox 最重要的功能之一,可以支持移动、联通、电信三大运营商的网络,但是我们在汽车上所有的上网体验都来自于车机(就是我们驾驶室里的控制屏),其实车机并没有联网功能,他的作用就像似没有 SIM 卡的手机,Tbox 相当于 SIM 卡。Tbox 与车机之间采用车用以太网通信,组成局域网,分享 Tbox 的 4G 和 wifi 热点上网通道。
Tbox 不仅可以上网而且还是车辆信息化的核心控制器,通过 CAN 以及以太网与整车进行通信,实时获取车辆信息包括实时油耗,发动机水温,发动机转速,车辆行驶里程,当前车速,电瓶电压,进气压力,冷却液温度,氧传感器电压发动机负载,节气门开度,空气流量,GPS 车辆位置信息等等。实现了对车辆行驶数据的实时监控。
当车辆静止的时候,可以对车辆进行远程控制等功能。可以通过手机 APP,和 TSP 后台网页,输入我们车辆唯一的身份证号 VIN,就可以获取到车辆现在的实时状态,比如:车窗是否关好、车门是否上锁、剩余油量电量、总里程、驾驶室温度等等车辆信息,我们可以根据这些信息进行相应的远程控制,比如:远程开车门,远程开车窗、远程打开后备箱、远程打开空调等等操作,极大的方便了驾驶员的使用体验。也是现在车联网的重要应用,很多新能源汽车现在都可以实现远程控制的功能。
汽车远程故障诊断系统是指汽车在启动时,Tbox 获知汽车的故障信息,并把故障码上传至数据处理中心。系统在不打扰车主的情况下复检故障信息。在确定故障后,并实施远程自动消除故障,无法消除的故障以短信方式发送给车主,使车主提前知道汽车存在的故障信息,防范于未然。其基本原理的是 TBox 通过 CAN 收发器直接连接**网关**与整车网络进行通信,能够获取娱乐 CAN、诊断 CAN 的数据,并可以对 BCM、VCU 等进行控制,或下发诊断命令。
当车辆上的一些部件出现一些异常或者是严重故障的时候,比如:发动机温度过高、车门入侵、水温过高、油量较少等等,Tbox 会第一时间获取到出现故障或者异常的信息,并把这些信息传输给用户,提醒用户要及时处理这些问题。极大的提高了用户的驾驶安全。
首先 Ecall(汽车紧急呼叫系统)是拯救生命的重要环节,当车辆发生碰撞,安全气囊弹出的情况下触发了 Ecall,Tbox 迅速传递车辆的位置信息等基本信息给客服,客服中心则会根据的车辆的位置信息,在第一时间与当地的 4S 汽车维修店、医疗救护中心、警察局等相关机构进行联系,确保第一时间到达事故现场进行救援。Bcall(一键电话救援),主要是道路救援,按下后可以获得道路拖车等服务。
汽车的 ota 功能是指空中下载技术,通过移动通信实现对汽车软件版本的远程升级,相比之前到 4S 店通过整车 OBD 对相应的汽车部件进行软件升级。OTA 技术极大的提高了便利性,让车主随时随地可以对自己爱车的电子部件进行软件升级,使其有更好的驾驶体验。下图是整个 OTA 升级的系统图。
V2X(合作式智能运输车用通信系统)是通过人、车、路信息交互,实现三者之间的智能协同与配合的一种智能运输系统体系,能够实现道路交通安全、通行效率的提升,以及信息服务等不同应用。是现在车联网未来发展的一种趋势,这个技术的实现也是离不开 Tbox,详细介绍后续更新。
国家平台功能要求主要是四块内容
1、安全和质量的监测
2、数据的信息服务
3、车辆数据的统计以及给政府的政策支持
4、数据对接测试的能力验证。
从车辆的安全监管来说,标准里也明确规定了有 61 项加 12 项;正常的过程当中,实际上只要求左边的 61 项,右下角这个是在车辆出现故障之后,能够把车辆更详细的数据进行监测,进行故障数据的回溯,来便于故障之后的技术数据分析。
国家平台的建设技术基础源于北理工建设的北京市监管平台
|<-- Terminal -->|<----------- Broker Side ---------->|<--- Others --->||<- Side ->| |<-- Side -->|+---+ PUB +-----------+| D | INCOMING +-------------+ PUB +---------+ -->| subscriber|| E |----------->| |----------->| |--/ +-----------+| V | |MQTT-gbt32960| | MQTT || I |<-----------| |<-----------| |<-- +-----------+| C | OUTGOING +-------------+ PUB +---------+ \--| publisher || E | PUB +-----------++---+
数据流向: Terminal -> gbt32960 网关 -> Mqtt
Topic: gbt32960/${vin}/upstream/vlogin
{"Cmd": 1,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"ICCID": "12345678901234567890","Id": "C","Length": 1,"Num": 1,"Seq": 1,"Time": {"Day": 29,"Hour": 12,"Minute": 19,"Month": 12,"Second": 20,"Year": 12}}}Copied!
Topic: gbt32960/${vin}/upstream/vlogout
{"Cmd": 4,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Seq": 1,"Time": {"Day": 1,"Hour": 2,"Minute": 59,"Month": 1,"Second": 0,"Year": 16}}}Copied!
Topic: gbt32960/${vin}/upstream/info
不同信息类型上报,格式上只有 Infos 里面的对象属性不同,通过
Type
进行区分 Infos 为数组,代表车载终端每次报文可以上报多个信息
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"AcceleratorPedal": 90,"BrakePedal": 0,"Charging": 1,"Current": 15000,"DC": 1,"Gear": 5,"Mileage": 999999,"Mode": 1,"Resistance": 6000,"SOC": 50,"Speed": 2000,"Status": 1,"Type": "Vehicle","Voltage": 5000}],"Time": {"Day": 1,"Hour": 2,"Minute": 59,"Month": 1,"Second": 0,"Year": 16}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"Motors": [{"CtrlTemp": 125,"DCBusCurrent": 31203,"InputVoltage": 30012,"MotorTemp": 125,"No": 1,"Rotating": 30000,"Status": 1,"Torque": 25000},{"CtrlTemp": 125,"DCBusCurrent": 30200,"InputVoltage": 32000,"MotorTemp": 145,"No": 2,"Rotating": 30200,"Status": 1,"Torque": 25300}],"Number": 2,"Type": "DriveMotor"}],"Time": {"Day": 1,"Hour": 2,"Minute": 59,"Month": 1,"Second": 0,"Year": 16}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"CellCurrent": 12000,"CellVoltage": 10000,"DCStatus": 1,"FuelConsumption": 45000,"H_ConcSensorCode": 11,"H_MaxConc": 35000,"H_MaxPress": 500,"H_MaxTemp": 12500,"H_PressSensorCode": 12,"H_TempProbeCode": 10,"ProbeNum": 2,"ProbeTemps": [120, 121],"Type": "FuelCell"}],"Time": {"Day": 1,"Hour": 2,"Minute": 59,"Month": 1,"Second": 0,"Year": 16}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"CrankshaftSpeed": 2000,"FuelConsumption": 200,"Status": 1,"Type": "Engine"}],"Time": {"Day": 1,"Hour": 22,"Minute": 59,"Month": 10,"Second": 0,"Year": 16}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"Latitude": 100,"Longitude": 10,"Status": 0,"Type": "Location"}],"Time": {"Day": 1,"Hour": 22,"Minute": 59,"Month": 10,"Second": 0,"Year": 16}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"MaxBatteryVoltage": 7500,"MaxTemp": 120,"MaxTempProbeNo": 12,"MaxTempSubsysNo": 14,"MaxVoltageBatteryCode": 10,"MaxVoltageBatterySubsysNo": 12,"MinBatteryVoltage": 2000,"MinTemp": 40,"MinTempProbeNo": 13,"MinTempSubsysNo": 15,"MinVoltageBatteryCode": 11,"MinVoltageBatterySubsysNo": 13,"Type": "Extreme"}],"Time": {"Day": 30,"Hour": 12,"Minute": 22,"Month": 5,"Second": 59,"Year": 17}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"FaultChargeableDeviceNum": 1,"FaultChargeableDeviceList": ["00C8"],"FaultDriveMotorNum": 0,"FaultDriveMotorList": [],"FaultEngineNum": 1,"FaultEngineList": ["006F"],"FaultOthersNum": 0,"FaultOthersList": [],"GeneralAlarmFlag": 3,"MaxAlarmLevel": 1,"Type": "Alarm"}],"Time": {"Day": 20,"Hour": 22,"Minute": 23,"Month": 12,"Second": 59,"Year": 17}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"Number": 2,"SubSystems": [{"CellsTotal": 2,"CellsVoltage": [5000],"ChargeableCurrent": 10000,"ChargeableSubsysNo": 1,"ChargeableVoltage": 5000,"FrameCellsCount": 1,"FrameCellsIndex": 0},{"CellsTotal": 2,"CellsVoltage": [5001],"ChargeableCurrent": 10001,"ChargeableSubsysNo": 2,"ChargeableVoltage": 5001,"FrameCellsCount": 1,"FrameCellsIndex": 1}],"Type": "ChargeableVoltage"}],"Time": {"Day": 1,"Hour": 22,"Minute": 59,"Month": 10,"Second": 0,"Year": 16}}}
{"Cmd": 2,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Infos": [{"Number": 2,"SubSystems": [{"ChargeableSubsysNo": 1,"ProbeNum": 10,"ProbesTemp": [0, 0, 0, 0, 0, 0, 0, 0, 19, 136]},{"ChargeableSubsysNo": 2,"ProbeNum": 1,"ProbesTemp": [100]}],"Type": "ChargeableTemp"}],"Time": {"Day": 1,"Hour": 22,"Minute": 59,"Month": 10,"Second": 0,"Year": 16}}}
Topic: gbt32960/${vin}/upstream/reinfo
数据格式: 略 (与实时数据上报相同)
请求数据流向: MQTT -> MQTT_gbt32960 -> Terminal
应答数据流向: Terminal -> MQTT_gbt32960 -> MQTT
下行主题: gbt32960/
Req:
{"Action": "Query","Total": 2,"Ids": ["0x01", "0x02"]}
Response:
{"Cmd": 128,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Total": 2,"Params": [{ "0x01": 6000 }, { "0x02": 10 }],"Time": {"Day": 2,"Hour": 11,"Minute": 12,"Month": 2,"Second": 12,"Year": 17}}}
Req:
{"Action": "Setting","Total": 2,"Params": [{ "0x01": 5000 }, { "0x02": 200 }]}
Response:
// fixme? 终端是按照这种方式返回?{"Cmd": 129,"Encrypt": 1,"Vin": "1G1BL52P7TR115520","Data": {"Total": 2,"Params": [{ "0x01": 5000 }, { "0x02": 200 }],"Time": {"Day": 2,"Hour": 11,"Minute": 12,"Month": 2,"Second": 12,"Year": 17}}}
命令的不同, 参数不同; 无参数时为空
Req:
{"Action": "Control","Command": "0x01","Param": {"DialingName": "hz203","Username": "user001","Password": "password01","Ip": "192.168.199.1","Port": 8080,"ManufacturerId": "BMWA","HardwareVer": "1.0.0","SoftwareVer": "1.0.0","UpgradeUrl": "ftp://emqtt.io/ftp/server","Timeout": 10}}
{"Action": "Control","Command": "0x02"}
{"Action": "Control","Command": "0x06","Param": { "Level": 0, "Message": "alarm message" }}
农机盒子除了满足农机网络化自动化的要求,还要满足政府补贴监管的要求。
智慧农机、大型复合农机以及高效节能产品成为发展趋势
农业是我国立国的根本,一直以来都受到国家和政府的重视。为了提升我国农业现代化水平,我国政府机构出台了一系列政策措施提升农业机械化水平。2019 年以来重点政策汇总如下:
定位:农机设备网络化与智能化标准制定者与服务提供商。