0
\$\begingroup\$

Section 4.2.5 of the LIN 2.1 spec provides a system for assigning new NADs to slave nodes. The stated purpose is

To resolve conflicting NADs in LIN clusters built using off-the-shelves slave nodes or reused slave nodes.

The assign NAD message takes the following form

|     NAD     | PCI  | SID  |  D1  |  D2  |  D3  |  D4  |    D5   |
| Initial NAD | 0x06 | 0xB0 | Supplier ID | Function ID | New NAD |

My question is this: A reused slave node will have the same initial NAD, supplier ID, and function ID (this is required by section 4.2.1). How does this message only address one slave node, instead of all the identical slave nodes with matching data?

\$\endgroup\$

2 Answers 2

0
+150
\$\begingroup\$

Right so, I will preface this by saying I have no personal experience using LIN, but I got curious about your question, and did some reading, and here is what I think I have determined for what it's worth:

Short answer: The assign NAD message cannot address only one slave node, when all the identical slave nodes have matching Supplier ID and function ID. I don't believe "reused" means "duplicate". I believe it means "previously installed on a vehicle" and thus previously having its NAD set in some other system.

I believe the assign NAD message is useful in the case where two different devices have arrived at the same initial NAD, and their supplier IDs and function IDs are known. This could happen when an end user replaces a failed component with a used component that has a saved NAD, or when a network is assembled out of different "off-the-shelf" components with pre-programmed initial NADs that conflict.

To my understanding, there are several other methods for dealing with identical components to be attached to the same LIN network:

One: Simply pre-programming a unique NAD in a new device prior to installation. LIN-communicating ICs (AMIS-30623 for example) may have One-Time-Programmable fields that will permanently set their initial NAD.

Two: ICs may have hardware inputs which will determine some or all of the initial NAD bits (AMIS-30623 again for example). Tying them high or low can be used to give a unique initial NAD. LIN NAD setting by input pins

The LIN 2.1 spec makes reference both to programmed and pin-set NADs in the following figure:NAD origins in LIN spec

Three: Slave Node Position Detection (SNPD). A method not covered by the main LIN spec, of which variations exist. This TI note gives an overview of a few, all of which involve hardware requirements in the form of additional wires and pins. This also involves a specific diagnostic message SID 0xB5.

From The Industrial Electronics Handbook:
"If more identical slave nodes are used in a cluster (e.g., damper motors in an air- conditioning system), the address conflict can be resolved via a slave node position detection (SNPD) procedure only. One possible algorithm is the Bus Shut Method (also called "cool-LIN") that is described in the patent WO 03/094001 Al [W003]. Another algorithm is the Extra Wire Daisy Chain method. (In this area, there are more patents, e.g. [US59].) "

Four: The LIN 2.1 spec does provide the "Conditional change NAD" Message SID 0xB3 (See 4.2.5.2). If several identical devices have the same NAD, this can separate NADs based on other identifiers. Included in LIN but not required is a serial number identifier, which could be uniquely assigned by the manufacturer. The serial number could then be used to assign separate NADs.

\$\endgroup\$
0
\$\begingroup\$

There are few patented algorithms, for example "bus shunt method" and the "extra wire daisy chain method" ... The first one is described here Bus_Shunt_Revision_1.pdf

\$\endgroup\$
2
  • \$\begingroup\$ It would be great if you could include as much information in the answer and not leave only a link. As soon as the link goes down the answer is not of much use. \$\endgroup\$
    – Voltage Spike
    Commented Feb 12, 2019 at 17:35
  • \$\begingroup\$ Sorry, it looks like my question wasn't as clear as it could have been, I'm going to edit it shortly to improve. You are describing "Assign NAD by Slave Node Position Detection (SNPD)". This is defined external to the main LIN spec, and has a separate SID assigned to it (0xB5). I was asking specifically about SID 0xB0 as defined in 4.2.5. \$\endgroup\$ Commented Feb 12, 2019 at 19:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.