
接上一篇的CAN本篇介绍一下TBOX协议不是单个协议是整个TBOX内外的全部通讯协议感觉有必要先全面介绍一下整个通讯系统有了全貌才更好理解或者说更好的去探索自己感兴趣的部分除了协议之前还会附带介绍协议之上承载的业务先看图整个通讯连接图一个大且全的图TBOX通讯连接示意图基本上这应该是最复杂的TBOX了一共包括4个功能模块MCU连整车SOC4G/5G Modem)连接TSP数字钥匙和卫星通信。此处不代表所有TBOX都这样只是说明TBOX可以做成这样我画的是一个示意图为了说明协议尽量复杂点。其实数字钥匙或SBOX其任意一个都可以设计为一个单独的盒子挂在整车CAN网络上先看数字钥匙数字钥匙本身可能就具备多个通讯节点因为需要确认定位准确总不能你离车还有5米远车就解锁了走了10多米车还没锁但这是数字钥匙内部的设计我们在此只看数字钥匙对外的功能1. 与手机连接肯定通过BLE了点对点和广播消息协议主要有国际标准CCC国内ICCE以及厂家自己的私有协议以及还有NFC标准2. 与车连接通过MCU走CAN实现车辆控制与MCU之间一般是私有协议uart或者SPI接着SBOX1. SBOX一般支持短信和通话这里没有画通话链路通话一般走I2S或者PCM传输音频流控制链路一般是UART或者SPI需要遵循SBOX的协议也是私有的2. SBOX不能控车一般作为数据上传的备份链路使用比如4G断了撞车后MSD走SBOX发出去或者你开到了无人区通过SBOX发送个人消息或定位等再看MCU1. 接整车一般CANCAN-FDLIN等传统方式底层标准CAN帧上层协议私有当然也有标准比如诊断UDS协议2. 与SOC通讯UART或SPI协议一般都是私有或者高级一点在SOC和MCU处理性能都足够的情况下SPI可以虚拟以太网用走网络协议或者RPC方式更加灵活的部署业务SOC里面就复杂了先看云端的首先是连接运营商基站这属于电信标准3GPP协议SOC里有个4G/5G处理器一般称为基带还有一个应用处理器比如高通9x07的就是Cortex-A7他们之间走高通自家的QMI协议实现基带的全部控制和数据流交互在APN拨号成功之后会产生一个或多个虚拟网卡这时候就到了常规网络领域范围如何生成虚拟网卡这是标准的Linux网络驱动虚拟网卡就是基带的Internet通讯链路相当于你的电脑网卡如何获取IP有了网卡后还需要IP才能进行数据包收发所以需要DHCP协议SOC作为DHCP client向运营商的DHCP Server获取IP当然还有DNS怎么连接TSP有了IP后就可以连接TSP了以MQTT为例SOC集成MQTT client就OK但是数据协议及数据格式一般都是私有比如JsonXML及自定义的协议或者ProtobufASN等很多其实在连接之前一般都需要先确保时间正确通过网络同步时间的协议为NTP协议再看与车交互CAN挂在MCU下SOC连接车一般走以太网既然是以太网同样需要有IP只不过这个IP一般是静态分配的同时为了安全和隔离还会划分VLAN然后配合静态ARP所以基础连接上都是静态的应用上大多都会采用SOA设计理念底层支撑为Some/IP协议服务和数据格式是自定义的除了Someip以太网也可以走诊断协议采用Doip协议栈如果再联合其他域控制器比如现在基本标配的智能驾驶在时间同步要求高的业务上会采用gPTP协议但前提需要网卡支持TSN还有前篇ECALL中提到的音频流RTP协议这是几个应用比较多的。这篇就不总结了都是零散的技术点总结有些在业务实现过程中需要重点关注比如uart或spi私有协议应用需要针对协议文档拆解和封装数据包有些感知很弱比如MQTT连接还有一些存在感几乎没有比如APN拨号获取IP及DNS一般调用API后自动什么都有了一般应用开发者都感知不到。