< Patents

Optimal filter settings

Overview

The use of CANOpen in industrial applications presented several challenges.  Special-purpose CAN bus chips are available that allow hardware filtering of incoming message according to their message identifier, leaving the CPU to process only those messages that pass the filters.

The base CAN specification leaves the message IDs unspecified, so the application is free to choose them for efficient use of the hardware filters.

Unfortunately, CANOpen layer on top of CAN defines the message identifiers in functional groups, for example, all “digital output” types will have identical bit patterns in part of the message ID.

In a complex control system with a mix of inputs and outputs of different types, the message IDs on the bus are not grouped in any useful way.  They are essentially random from the application’s point of view.  

This means that simple masking cannot be used in the hardware filters.  This patent describes a method for determining the best set of message filters, given the set of messages that each node is required recognize.

Extracting maximum performance from a limited bus