as

AUTOSAR LinIf 配置概览

LIN 接口层(LinIf)负责 LIN 总线与上层模块(基于信号的 Com、负责分段传输的LinTp)之间的通信。它位于 Lin 驱动之上,提供调度表管理、帧收发以及 LinTp 所需的挂钩。配置由 LinIf.py 消费。

1. 核心配置原则

2. LinIf 配置示例

networks 中每个条目描述一个 LIN 网络:

{
  "class": "LinIf",
  "networks": [
    {
      "name": "LIN0",
      "me": "AS",
      "timeout": 100,
      "ldf": "LIN0.ldf"
    }
  ]
}

3. 与 Com 模块集成

Com 通过 LIN 进行基于信号的通信,其网络条目必须与 LinIf 使用相同的 name 和ldf:

{
  "class": "Com",
  "networks": [
    {
      "name": "LIN0",
      "network": "LIN",
      "me": "AS",
      "ldf": "LIN0.ldf"
    }
  ]
}

两处配置必须引用同一个 LDF 文件,避免信号映射漂移;Com 生成器会自动把 LDF 转换为内部 DBC 表示(见 Com 文档)。

4. LinTp 配置(主节点与从节点)

LinTp 负责 LIN 上大数据的分段与重组,具体配置取决于节点角色。

4.1 LIN 从节点

LIN 从节点响应主节点请求(例如传感器数据或 DTC 读写)。在 LinTp_Cfg.c 中配置从节点侧的 LinTp 通道参数(响应超时、帧映射)。

4.2 LIN 主节点(网关)

LIN 主节点通常通过 PduR/CanTp 在 LIN 与 CAN 之间做网关(例如 CAN 转 LIN 上的UDS)。除本地 LinTp 参数外,还需要在 PduR 中配置 LinTp 与 CanTp 之间的路由(见PduR 文档)。

5. 架构概览

5.1 LIN 从节点

flowchart TD
    subgraph Upper["上层模块"]
        COM[Com - 信号通信]
        DCM[Dcm - 诊断]
    end
    subgraph TP["LIN 传输与接口层"]
        LINIF[LinIf]
        LINTP[LinTp]
    end
    LIN[Lin 驱动 - 硬件]
    COM --> LINIF
    DCM --> LINTP
    LINIF <--> LINTP
    LINIF --> LIN
    LINTP --> LIN

5.2 LIN 主节点(CAN/LIN 网关)

flowchart TD
    subgraph Upper["上层模块"]
        COM[Com]
        PDUR[PduR - CAN/LIN 网关]
    end
    LINIF[LinIf] <--> LINTP[LinTp]
    PDUR <--> CANTP[CanTp]
    LINTP <--> PDUR
    LIN[Lin 驱动]
    CAN[Can 驱动]
    COM --> LINIF
    LINIF --> LIN
    CANTP --> CAN

6. 关键注意事项

7. 生成器

LinIf.py 在 JSON 同目录生成 LinIf_Cfg.c 和LinIf_Cfg.h。