LIN自动寻址指令及原理(基于 Extra Wide Daisy Chain)

自动寻址的必要性

    随着近几年LED技术的发展,车灯除了广泛应用在常规的汽车内外照明领域,还越来越多地应用在了舒适及个性化领域,如车内氛围灯。目前很多中高端车型已经采用了车内氛围灯,可以通过车、环境以及乘车人员的喜好来调节其亮度及颜色,以提高驾驶者及车内人员的舒适度。由于车内氛围灯从节点常常布置在车内多个位置,这些从节点通过LIN总线与车身BCM相连接。一般来说,不同位置的LIN从节点,其从节点地址是固定的,为了防止各环节出现异常,常常要在设计和生产等环节做大量的工作。在子节点较少的情况下,无论是设计还是生产还比较容易管理,但在氛围灯这种可能有几十个 从节点 的LIN网络中,如果采用传统的防错方法来保证不同地址的子节点安装在其对应的位置,那么对于产品设计和生产过程都会造成极大的资源浪费。

LIN从节点连接方式

为了实现LIN自动寻址技术,在传统LIN的连接方式上进行了改进,从下图的系统连接示意图中有清晰的体现。为了满足LIN自动寻址需求,在芯片方面增加了几个方面的硬件

  1. 每个从节点必须提供两个额外的引脚,一个输入D1和一个输出D2
  2. 第一个SNPD节点输入D1被设为GND或连接到主控的输出D2
  3. 第一个节点D2的输出连接到第二个节点的输入D1,以此类推,形成外部接线菊花链(Extra Wire)。
  4. 每个配置引脚Dx (x=1-2)都有额外的电路来帮助位置检测(可切换电阻上拉到vbat,下拉到地,参考电压vbat/2的比较器)
    在这里插入图片描述
LIN节点连接方式

LIN从节点配置引脚Dx内部电路

在这里插入图片描述

LIN自动寻址原理

在程序开始时,当前没有SNPD设备分配NAD

  1. 收到start Auto AddressingLIN报文,进入自动寻址模式

    1. 所有输出(D2)设为高电平,所有下拉开关关闭
    2. 选择第一个SNPD节点。它通过输入D1低电平(硬连线)来识别。
    3. 所选节点从LIN配置消息中获取地址
    4. 被检测节点打开D2输出端的下拉开关
  2. 收到后续的自动寻址LIN报文

    1. 选择第一个无地址的SNPD节点。通过输入D1低电平(前一个节点的D2输出)来识别。
    2. 所选节点从LIN配置消息中获取地址NAD
    3. 被检测节点打开D2输出端的下拉开关,输出低电平
    4. 重复上述步骤1-4,直到所有从节点都分配了地址NAD
  3. 关闭所有上拉和下拉,完成寻址程序

LIN Master寻址命令流程


LIN指令

  1. 第一步:通过指令(NAD=0x7F)广播初始化LIN总线需要自动分配地址的所有设备,进入自动寻址模式。
  2. 第二步:进行分配地址,有N个需要分配的模块,该条命令就执行N次。
  3. 第三步:通过指令(NAD=0x7F)广播所有设备对NAD地址进行保存。
  4. 第四步:分配NAD完成,退出自动寻址,转为普通模式,使用New NAD。

命令解析SNPD sub function


指令解析

    自动寻址采用节点配置(SID:B5)诊断命令来完成寻址,sub function功能定义如图所示。

命令解析SNPD Method

LIN自动寻址方式主要有两种(如下图所示):


在这里插入图片描述

Diasy Chain

Daisy Chain

从最近端开始分配NAD

Bus Shunt

从最远端开始分配NAD

总结:

SNPD方法SNPD方法ID公司
外部接线菊花链(Extra wire daisy chain)0x01NXP恩智浦半导体(以前的菲利浦)
总线分流法(Bus shunt method)0x02Elmos Semiconductor
LIN Switch Method0x03NXP
Low’R auto-addressing0x04Hartzsch
Bus Shunt Method 20xF1Elmos
Bus direction method0xF2Infineon
保留0xFF还不确定

更多的自动寻址方法

    在ISO 17987-3的信息附录C中,为不同的自动寻址方法分配了id的方式和标准可以访问官网 https://www.lin-cia.org/ 进行查询

### 菊花链的概念 菊花链(Daisy Chain)指的是一种特定类型的连接方式,在这种配置中,多个设备被依次串联起来形成一条链状路径。每一个节点不仅会接收到来自上游的信息,还会将其转发给下游的一个或多个目标[^1]。 ### 应用场景 #### 计算机总线 在计算机内部架构里,当采用菊花链条的方式构建系统总线时,各个组件按照顺序排列并相互间传递地址、控制以及数据信号。这种方式简化了布线设计,减少了所需的电缆数量,但同时也意味着如果某个中间环节出现问题,则可能影响整个系统的正常运作。 #### 音频/视频接口扩展 对于家庭影院或者其他多媒体环境而言,菊连式的AVR(Audio Video Receiver)或其他播放装置能够方便地接入多台显示终端或是音响单元。用户只需从第一个器材开始逐一向后续添加新成员即可完成安装设置过程。 #### LED灯具布置 LED灯带经常利用daisy chaining技术来创建连续发光效果而不必为每一段单独供电。这允许设计师灵活规划照明方案的同时降低了成本开销和复杂度管理上的难度。 ```python # Python伪代码展示如何模拟简单的菊花链行为模式 class Device: def __init__(self, name): self.name = name self.next_device = None def connect_to(self, next_one): self.next_device = next_one def traverse_chain(starting_point): current_node = starting_point while current_node is not None: print(f"Processing {current_node.name}") current_node = current_node.next_device device_a = Device('Device A') device_b = Device('Device B') device_c = Device('Device C') device_a.connect_to(device_b) device_b.connect_to(device_c) traverse_chain(device_a) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值