• 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基本是以毫秒级或者微妙级的速度在源源不断的发送并接收信号, 所以网关需要处理并转发广播的信号是非常多的且必须要很快处理完的.

  • 相关阅读:
    数组
    JavaScript语法
    Math.random()
    第二第三周暑期集训总结
    第一周
    ACM课程学习总结
    专题四---总结
    专题四--1004
    专题四--1005
    专题四--1006
  • 原文地址:https://www.cnblogs.com/RevelationTruth/p/14034311.html
Copyright © 2020-2023  润新知