当前位置: 首页 > article >正文

【AUTOSAR】【Lin通信】LinTrcv

目录

一、概述

二、功能说明

2.1 LIN收发器驱动程序操作模式

2.2 LIN收发器硬件操作模式

2.3 LIN收发器唤醒类型

2.4 LIN收发器唤醒模式

2.5 错误分类

2.5.1 开发错误

三、API接口

3.1 API定义


一、概述

        该规范规定了模块LIN收发器驱动程序的功能、API和配置。它负责处理一个ECU上的LIN收发器硬件。

        LIN总线收发器是一种硬件设备。它是LIN协议控制器和物理LIN总线之间的接口。一方面,一个LIN协议控制器的传输数据流被转换为符合LIN物理层的总线信号。另一方面,LIN总线的数据流被转换为协议控制器的输入信号。一个LIN协议控制器通常是一个微控制器的实现。

        大多数LIN收发器都支持通过总线进行电源控制和唤醒。市场上有很多不同的唤醒/睡眠和电源供应的概念。

【规范】LIN收发器驱动程序抽象了应用的LIN收发器硬件,并覆盖了到更高层的硬件独立接口。它还通过使用MCAL层的api访问LIN收发器硬件,从ECU布局进行抽象。

二、功能说明

2.1 LIN收发器驱动程序操作模式

【规范】LIN收发器驱动器的操作模式如下图所示:

2.2 LIN收发器硬件操作模式

LIN收发器硬件可能比软件支持更多的模式转换。决定哪个LIN收发器硬件状态由哪个LIN收发器驱动程序软件状态的实现。一个实现必须保证所描述的LIN收发器驱动程序的整个功能是由该实现给出。

2.3 LIN收发器唤醒类型

        方案一:单片机不供电,ECU的部分包括LIN收发器硬件供电。所考虑的LIN收发器硬件处于LINTRCV_TRCV_MODE_SLEEP模式。通过LIN收发器硬件检测到LIN上的唤醒事件。LIN收发器硬件导致单片机供电。就AUTOSAR而言,这是作为一个冷的开始,而不是作为一个唤醒。

        方案二:单片机处于低功耗模式,部分ECU包括LIN收发器硬件被供电。根据硬件实现的不同,所考虑的LIN收发器硬件要么处于LINTRCV_TRCV_MODE_STANDBY模式或LINTRCV_TRCV_MODE_SLEEP模式。通过LIN收发器硬件检测到LIN上的唤醒事件。LIN收发器硬件正在通知单片机关于唤醒。就AUTOSAR而言,这是作为LIN通道和单片机的唤醒。

        方案三:单片机处于全功率模式,至少为包括LIN收发器硬件在内的部分ECU供电。根据硬件实现的不同,所考虑的LIN收发器硬件要么处于LINTRCV_TRCV_MODE_STANDBY模式或LINTRCV_TRCV_MODE_SLEEP模式。通过LIN收发器硬件检测到LIN上的唤醒事件。LIN收发器硬件正在通知单片机唤醒或周期性地轮询唤醒事件。就自动存储器而言,这是作为一个LIN通道的唤醒。

        方案四:单片机处于全功率模式,至少为包括LIN收发器硬件在内的部分ECU供电。根据硬件实现的不同,所考虑的LIN收发器硬件要么处于LINTRCV_TRCV_MODE_STANDBY模式或LINTRCV_TRCV_MODE_SLEEP模式。单片机现在正在将LIN收发器硬件设置为LINTRCV_TRCV_MODE_NORMAL模式,并正在唤醒LIN通道。就AUTOSAR而言,这是作为一个LIN通道的内部唤醒(通过单片机)。

2.4 LIN收发器唤醒模式

【规范】唤醒通知必须由Lin收发器驱动程序支持,因此Lin收发器驱动程序覆盖2种唤醒模式,上层内部唤醒或Lin通道外部唤醒。

  • 内部唤醒:内部唤醒由上层启动,例如通过调用LinTrcv_Init()或LinTrcv_SetOpMode。
  • 外部唤醒:由LIN收发器驱动程序检测到的唤醒通过API LinTrcv_CheckWakeup被转发到上层,它必须由LinIf调用。

【规范】唤醒模式的选择应通过配置参数LinTrcv唤醒支持来完成。

【规范】应通过配置参数LinTrcv唤醒线分别开启和关闭每个LIN收发器通道的唤醒支持。

【规范】LinTrcv司机应使用ICU司机提供的以下api,以启用和禁用唤醒事件通知:

  • Icu_EnableNotification
  • Icu_DisableNotification

【规范】当收发机传输到待机模式(LINTRCV_STANDBY)时,LinTrcv驱动器应启用ICU通道。

【规范】当收发器传输到正常模式(LINTRCV_NORMAL)时,LinTrcv驱动程序应禁用ICU通道。

2.5 错误分类

2.5.1 开发错误

三、API接口

3.1 API定义

  1. LinTrcv_Init
  2. LinTrcv_SetOpMode
  3. LinTrcv_GetOpMode
  4. LinTrcv_GetBusWuReason
  5. LinTrcv_GetVersionInfo
  6. LinTrcv_CheckWakeup
  7. LinTrcv_SetWakeupMode


http://www.kler.cn/a/6766.html

相关文章:

  • 迁移学习理论与应用
  • css3新特性(二十六课)
  • 探索Python PDF处理的奥秘:pdfrw库揭秘
  • K8s 一键部署 MongoDB 的 Replica-Set 和 MongoDB-Express
  • 身份证号码校验
  • IDEA2023 SpringBoot整合Web开发(二)
  • Linux基础操作 常用命令 Centos
  • 【VUE】vue打包后引入js和css用相对路径引入
  • C++编程大师之路:从入门到精通-通讯录管理系统
  • SpringBoot——SB整合mybatis案例(残缺版本)第四集(真*大结局)
  • Edge集锦没有同步按钮 - 待解决
  • JVM内存区域面试详解
  • tftp与ftp的异同
  • 队列(Queue)与双端队列 (Deque)
  • pdf压缩文件怎么压缩最小?办公常备软件
  • 一份详细 redis sentinel 哨兵架构搭建步骤<写于2023-04-06>
  • 考研数二第十二讲 复合函数、反函数、隐函数及参数方程所确定的函数的微分法与一阶微分形式的不变性
  • WT588D-32L 应用电路
  • VTK-vtkPolygon
  • 2000-2020年地级市进出口总额数据
  • 作为大学生,你还不会搭建chatGPT微应用吗?
  • 回溯算法的五类问题:组合、排列、子集、分割、棋盘
  • Java高频必背面试题基础篇02
  • Lumerical Zemax | 针对 OLED 的联合仿真
  • windows下 Jenkins 主从节点通过SSH连接
  • 案例:如何利用系统缓存优化程序的运行效率?