自动寻址的必要性
随着近几年LED技术的发展,车灯除了广泛应用在常规的汽车内外照明领域,还越来越多地应用在了舒适及个性化领域,如车内氛围灯。目前很多中高端车型已经采用了车内氛围灯,可以通过车、环境以及乘车人员的喜好来调节其亮度及颜色,以提高驾驶者及车内人员的舒适度。由于车内氛围灯从节点常常布置在车内多个位置,这些从节点通过LIN总线与车身BCM相连接。一般来说,不同位置的LIN从节点,其从节点地址是固定的,为了防止各环节出现异常,常常要在设计和生产等环节做大量的工作。在子节点较少的情况下,无论是设计还是生产还比较容易管理,但在氛围灯这种可能有几十个 从节点 的LIN网络中,如果采用传统的防错方法来保证不同地址的子节点安装在其对应的位置,那么对于产品设计和生产过程都会造成极大的资源浪费。
LIN从节点连接方式
为了实现LIN自动寻址技术,在传统LIN的连接方式上进行了改进,从下图的系统连接示意图中有清晰的体现。为了满足LIN自动寻址需求,在芯片方面增加了几个方面的硬件
- 每个从节点必须提供两个额外的引脚,一个输入D1和一个输出D2。
- 第一个SNPD节点输入D1被设为GND或连接到主控的输出D2。
- 第一个节点D2的输出连接到第二个节点的输入D1,以此类推,形成外部接线菊花链(Extra Wire)。
- 每个配置引脚Dx (x=1-2)都有额外的电路来帮助位置检测(可切换电阻上拉到vbat,下拉到地,参考电压vbat/2的比较器)
LIN从节点配置引脚Dx内部电路
LIN自动寻址原理
在程序开始时,当前没有SNPD设备分配NAD
-
收到
start Auto Addressing
LIN报文,进入自动寻址模式- 所有输出(D2)设为高电平,所有下拉开关关闭
- 选择第一个SNPD节点。它通过输入D1低电平(硬连线)来识别。
- 所选节点从LIN配置消息中获取地址
- 被检测节点打开D2输出端的下拉开关
-
收到后续的自动寻址LIN报文
- 选择第一个无地址的SNPD节点。通过输入D1低电平(前一个节点的D2输出)来识别。
- 所选节点从LIN配置消息中获取地址NAD
- 被检测节点打开D2输出端的下拉开关,输出低电平
- 重复上述步骤1-4,直到所有从节点都分配了地址NAD
-
关闭所有上拉和下拉,完成寻址程序
LIN Master寻址命令流程
- 第一步:通过指令(NAD=0x7F)广播初始化LIN总线需要自动分配地址的所有设备,进入自动寻址模式。
- 第二步:进行分配地址,有N个需要分配的模块,该条命令就执行N次。
- 第三步:通过指令(NAD=0x7F)广播所有设备对NAD地址进行保存。
- 第四步:分配NAD完成,退出自动寻址,转为普通模式,使用New NAD。
命令解析SNPD sub function
自动寻址采用节点配置(SID:B5)诊断命令来完成寻址,sub function功能定义如图所示。
命令解析SNPD Method
LIN自动寻址方式主要有两种(如下图所示):
Diasy Chain
总结:
SNPD方法 | SNPD方法ID | 公司 |
---|---|---|
外部接线菊花链(Extra wire daisy chain) | 0x01 | NXP恩智浦半导体(以前的菲利浦) |
总线分流法(Bus shunt method) | 0x02 | Elmos Semiconductor |
LIN Switch Method | 0x03 | NXP |
Low’R auto-addressing | 0x04 | Hartzsch |
Bus Shunt Method 2 | 0xF1 | Elmos |
Bus direction method | 0xF2 | Infineon |
保留 | 0xFF | 还不确定 |
更多的自动寻址方法
在ISO 17987-3的信息附录C中,为不同的自动寻址方法分配了id的方式和标准可以访问官网 https://www.lin-cia.org/ 进行查询