Android 车载应用开发指南 - CAN Bus 协议详解-CAN 在车载开发中的应用

 

 

3.1 车载中的总线协议

目前汽车上普遍采用的汽车总线有局部互联协议 LIN 和控制器局域网 CAN,正在发展中的汽车总线技术还有高速容错网络协议 FlexRay、用于汽车多媒体和导航的 MOST 以及与计算机网络兼容的蓝牙、无线局域网等无线网络技术。


 

 

Notes: * UTP = unshielded twisted pair(非屏蔽双绞线)

 

与任何联网和互操作系统一样,汽车总线的选择最好以需求为导向,同时关注成本和预期的行业要求和趋势。

 

显然,如果有更好的总线可供选择,而且部署成本相当或更低,那么汽车制造商就不会在新设计中采用旧总线。

 

3.2 CAN Bus 在车载开发中的应用

 

作为 Android 应用开发你可能会问:CAN Bus 属于底层的东西,我们掌握了能有什么用?

 

其实,CAN 报文与应用开发也息息相关,学习并掌握 CAN Bus 协议是必要的! 以下就举例一个车载空调应用开发的场景,解释为什么应用开发也需要掌握 CAN Bus。

 

熟悉手机应用开发的同学都知道,在代码开发完成后需要进行实机调试,而调试环境其实搭建起来很简单,基本只需要有对应 Android 版本的工程机就可以在自己的工位前模拟调试大部分场景。如果你连实机都没有!用 Android 模拟器也能覆盖大部分调试场景。

 

但是,对于车载应用开发而言,想在实车上的车载系统调试其实是很奢侈的事。因为实车资源少,所以大部分时候只能在自己工位旁的模拟车载系统上开发调试。而模拟车载系统通常只有主机显示屏等外设,汽车上的传感器、天线等各种 ECU 是不具备的。

 

那么对于车载空调应用开发,其环境温度、出风口角度、出风速度等变量都无法动态反馈到车载系统中,进而影响调试。这时候就轮到 CAN Bus 出场了。

 

可以通过 CAN 分析仪连接车载系统主机,使用 ZCANPRO 等信号模拟软件 读取上行 CAN 信号或者模拟发出下行信号。只有对 CAN 信号中的帧结构熟悉,才能读懂和模拟收发信号。


 

 

VHAL 通过 CAN 总线或其他车辆专用总线系统与车辆 ECU 建立通信。这些专用互连网络充当车辆内组件通信的骨干网。

 

为了检索车辆数据(例如速度),车载信息娱乐 (IVI) ECU 与其他 ECU 交互,并且车辆 HAL 精心地将提取的信息存储为车辆属性。 

 

Android 框架将数据传输协议和网络选择(包括车载网络)留给 VHAL 的实现。这种灵活性不仅允许 CAN 总线集成,还允许连接到本地互连网络 (LIN) 等内部网络和未来的车载通信标准。

CAN Bus 协议为车载系统提供了稳定高效的通信方式。在 Android 车载应用开发中,合理利用 CAN Bus 协议,不仅可以提升应用的功能性,还能为用户提供更加智能化的驾驶体验。

“CAN Bus 协议不仅是汽车的通信枢纽,更是智能驾驶的起点。”

 

上一篇:第十六周:机器学习笔记-二、Pytorch学习


下一篇:鸿蒙开发案例:记忆翻牌