Arithmechanics

THIS INVENTION IS DEDICATED TO THE PUBLIC

Originally posted on 31 Oct 2021

 

A method and apparatus to determine if a CAN bus module is alive (responsive) at any given moment.

For diagnostic purposes, it is useful to know if a module is alive (able to send and receive data). Noticing a module stop communicating or failing to go to sleep can provide immediate diagnostic direction. However, it is rarely known or listed in the service information (SI) which CAN IDs various modules use, even though such information is readily available to engineers of the said CAN bus. Reverse-engineering which IDs are used by which modules is a time-consuming and error-prone process. Thus, alternative methods may need to be devised for this purpose.

For OBD-compliant modules, Service $01 and $09 provide a way to check if a module is responsive -- a device can send queries for available PIDs (0100 and 0900), or ECU information (0902, 0904, 0906, 090A) at regular intervals and check for the expected response.

For all other modules, the following method is proposed. A capable scan tool can be used to query ECU information such as (but not limited to) Calibration IDs. By using a device that can record CAN bus packets during this process, the appropriate requests and responses can be relatively easily identified by hand or in some sort of automated way, for each module. A device can then be programmed to emit the same requests and check for responses in order to deduce module's ability to communicate.

It is claimed that:

a device consisting of a microcontroller, CAN transceiver and OBD cable, programmed to send and receive certain messages, is able to determine whether a module on the CAN bus is able to communicate;

the microcontroller can determine which messages to send and receive by being programmed to communicate (over USB, Wi-Fi, Bluetooth or any other such connection) with a service such as a web server, cloud-based service, or computer database;

further, microcontroller may use its I/O pin to trigger an oscilloscope as soon as any of the modules stops communicating;

in addition, if a CAN transceiver capable of reporting various faults on the CAN bus is used, such faults may be reported to the microcontroller and used to trigger an oscilloscope as well;