What manufacturer code must I use in J1939?

2.6k views Asked by At

I'm developing a product connected to a CAN bus with the J1939 protocol.

In address claiming process, it is supposed to be mandatory to send the NAME of my product, which includes, among other data, a manufacturer code. This manufacturer code is 11 bits length, and it is supposed to be assigned by SAE committee.

But I am a bit confused about this.

With only 11bits length, there are only 2048 different codes. This seems not too many for all manufacturers in the world (and there are some of them that have more than one code assigned).

On the other hand, do I REALLY need a manufacturer code? Is there any strategy that I can use to avoid getting one? Is there any commonly used strategy for this purpose?

1

There are 1 answers

0
GurstTavo On

On the other hand, do I REALLY need a manufacturer code?

It depends on the nature of your device, if it's intended for mass production, then you'll need to register yourself and get an id.

Is there any strategy that I can use to avoid getting one?

You can use 11'b0 as your ID, but only for experimental/development purposes, othewise you won't be J1939 compliant.


The NAME is used only during the address claiming procedure, where in the case of two ECUs claiming the same address compare their names to check who's keeping it.

The contention basically compares the NAME as a numerical value, the lowest the value, the higher the priority. Depending on what is your device priority the name may not even taked into account.

You need to evaluate the function that your device is playing the the system and assing a higher NAME if it's not critical or lower NAME if is safety related.