zoukankan      html  css  js  c++  java
  • CAN网关及CAN信号转发机制

    出自微信公众号--嘴哥有料,本人做学习记录用,侵删。

    CAN网关

    上节课, 我们讲到了CAN网关,

    其实准确的说不能叫CAN网关, 应该叫网关或者汽车网关, 主要是为了配合本系列教程及区分于以太网网关。

    网关的外形:

     大概外形, 偶有差异, 大小如香烟烟盒, 有60,70多个PIN脚组成.

    每个接线pin脚都有严格的定义, 要匹配规定好的can总线或者开关设备.

    从以上拓扑图可以看出:

    网关除了10个can接线pin脚(5条双绞线/5条CAN总线),2个电源线接线pin脚,还应包括定速巡航设备的8个接线pin脚,电源管理方面的3个接线pin脚,钥匙开关(或无钥匙启动系统)的5个接线pin脚,脚踏板的3个接线pin脚,档位开关的4个接线pin脚等等....

    某些汽车厂商可能有更多新的硬件开关设备,电压电阻开关设备等也都有对应的接线pin脚, 且可能预留一些PIN脚以备用.

    网关的功能

    网关是整个CAN网络的核心, 控制着整车5条CAN总线的各类信号转发与处理.

    网关的基本功能包括:

            1. 连接不同波特率(传输速度)的CAN总线/LIN总线, 以实现CAN网络的网关中继功能。

              2. 诊断报文/非诊断报文转发

              3. 诊断防火墙管理

              4. 节点在线监控

              5. 巡航控制器开关检测

              6. 脚踏板位置检测

              7. 网关休眠与唤醒管理

              8. ECU升级/网关升级

              9. 电压管理

    简单点说:  

            网关可以接收任何CAN总线(还有LIN总线)传来的不同传输速率网络信号, 

            网关把这些信号按一定的标准处理后, 广播到整车网络去,

            如果有ECU订阅(接收)了这个信号,  则ECU将解析信号并做响应的处理.

            没理解, 请看下方实例! 

    CAN信号转发机制

      实例一: 仪表显示发动机转速

      发动机的转速信号, 先从PT CAN的ECM(发动机引擎控制模块)节点发出, 网关收到后,  

      网关处理后广播以GW_开头的ECM信号到其他4条CAN总线上去.

      用Vehicle Spy 3 CAN工具查看可以看到以下的信号内容:

     Info CAN上的仪表(IPK)节点订阅(接收)了发动机转速信号, 

             则会将这个转速信号解析,  并显示到仪表盘去.

              由于以上信号发送频率太快, 比如5ms/次, 则你就会看到仪表盘上的转速

              指针一直在不停地偏动.

              简略发送图如下:

      实例二: 安全带未扣紧, 仪表端报警

    安全带未扣紧需要两个条件:

          1.  车速大于5

          2.  安全带扣未扣 ( 即无电压信号 )

          车速一般是PT CAN上的ECM(发动机引擎控制模块)节点负责信号管理的.

          安全带扣这个设备是Body CAN上的BCM(负责天窗, 车窗, 安全带扣, 雨刮等车身零部件设备...) 节点负责信号管理的.

          即网关收到PT CAN上的ECM节点发出来的车速信号, 并收到了Body CAN上的BCM发出来的安全带扣电压值为异常值(比如0), 网关统一处理后转发并广播以GW_开头的信号帧。

    Info CAN上的仪表(IPK)节点订阅(接收)了GW_开头的相关安全带未扣信号帧

          则会解析报警并显示到仪表盘去.

          如果安全带扣一直未扣紧, 则网关将一直发送GW_开头的相关安全带信号帧,

          其信号值是安全带未扣紧

          所以车主会听到一直报警.

          直到安全带扣上, 网关继续发送安全带相关的信号, 

          只是这个时候的信号值是安全带已扣紧

          报警将立马消失.

          简略发送图如下:

    总结:

    以上只是两个简易的案例, 实际上, 整车所有ECU基本是以毫秒级或者微妙级的速度在源源不断的发送并接收信号, 所以网关需要处理并转发广播的信号是非常多的且必须要很快处理完的.

  • 相关阅读:
    cmake 基本命令
    webpack4下import()模块按需加载,打包按需切割模块,减少包体积,加快首页请求速度
    内容安全策略(CSP)详解
    内网穿透访问Vue项目的时候出现Invalid Host header解决办法
    webpack3 项目升级 webpack4
    vue-multi-module【多模块集成的vue项目,多项目共用一份配置,可以互相依赖,也可以独立打包部署】
    JS的数据类型判断函数、数组对象结构处理、日期转换函数,浏览器类型判断函数合集
    使用模块化工具打包自己开发的JS库(webpack/rollup)对比总结
    基于AlipayJSBridge封装的H5网页支付宝打赏、网站打赏、个人免签支付,支付宝转账打赏支付组件
    whistle替代Fiddler调试远程服务器代码使用教程
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/14034311.html
Copyright © 2011-2022 走看看