1. This forum section is a read-only archive which contains old newsgroup posts. If you wish to post a query, please do so in one of our main forum sections (here). This way you will get a faster, better response from the members on Motherboard Point.

Do you have any good method to design SJA1000 checking filter?

Discussion in 'Embedded' started by lynch, Apr 11, 2004.

  1. lynch

    lynch Guest

    I have a FCS system that uses CANBus of 2.0 criterion, it is BasicCAN, and
    has 5 nodes.

    It is required that every node only receive the information sent to itself,
    not the information sent to other nodes:

    Node 0 receive the information of No. 5¡¢6¡¢7¡¢10¡¢11¡¢12¡¢15¡¢16¡¢18¡¢19.
    Node 1 receive the information of No. 1¡¢3¡¢4¡¢8¡¢9.
    Node 2 receive the information of No. 1¡¢3¡¢4¡¢13¡¢14.
    Node 3 receive the information of No. 2¡¢3¡¢4¡¢17.
    Node 4 receive the information of No. 2¡¢3¡¢4¡¢20.

    My question is: how to design the former 8 digits of the 20 information ID
    and the 8-digit ACR and AMR of each of the 5 nodes to satisfy the demand of
    the system?

    I found the more complicated the system is, the more difficult it is to
    design the filter. Do you have any good method to design the checking filter
    of SJA1000?

    Do not tell me to use PeliCAN, or to set the AMR of every nodes to 0xFF!
     
    lynch, Apr 11, 2004
    #1
    1. Advertisements

  2. You're talking only about the receivers here --- what about the
    transmitters? It's quite unclear what "information of No. ...." with
    all those ?? in there is supposed to mean.
    You may be asking the wrong question. The first question should be:
    is it possible to achieve this goal at all? I rather strongly doubt
    it is.

    But, to take the above (and my guess-work interpretation of it) as
    an example, the first thing you should do is find groups of messages
    that all go to the same set of target nodes.

    Node 0 <- messages No. 5 6 7 10 11 12 15 16 18 19
    Node 1 <- messages No. 1 3 4 8 9
    Node 2 <- messages No. 1 3 4 13 14
    Node 3 <- messages No. 2 3 4 17
    Node 4 <- messages No. 2 3 4 20

    This reveals the following groups of messages that all go to the same
    nodes:

    G1: 1
    G2: 2
    G3: 3 4
    G4: 5 6 7 10 11 12 15 16 17 18 19
    G5: 8 9
    G6: 13 14
    G7: 17
    G8: 20

    You got lucky, that's only 8 groups. Which means you can assign one
    bit in the CAN ID to every group, and encode each receiver's filter to
    check all bits, and set those to one that a given node should receive.

    For more complicated cases, I suspect you'ld need full-blown logical
    expression optimization techniques.
     
    Hans-Bernhard Broeker, Apr 11, 2004
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.