07-07-2009 12:42 PM
I have a project where I need to simultaneously monitor the CAN frames transmitted by 50 test samples. Each test sample is identical and transmits approximately 100 frames per second with identical arbitration ID's. Can anybody suggest a way to monitor 50 parts without dedicating a hardware CAN port to each test sample?
Of course, I have no control over either the arbitration ID, format or content of the CAN frames.
Mark Moss
Electrical Validation Engineer
GHSP
07-08-2009 10:46 AM
If the CAN arbitration IDs are all the same you wont be able to differentiate between devices with out using multiple ports, this is because once the CAN message is on the bus the only thing linking it to the device it came from is the arbitration ID.
You will be able to receive the message from all the devices, you should see 50 copy's of each message, this would let you know if all 50 devices are working. However if you get 49 messages you would need to test each device individually.
Post back if you have any further questions!
Thanks
Scott M.
07-08-2009 12:49 PM
Scott-M wrote:If the CAN arbitration IDs are all the same you wont be able to differentiate between devices with out using multiple ports, this is because once the CAN message is on the bus the only thing linking it to the device it came from is the arbitration ID.
You will be able to receive the message from all the devices, you should see 50 copy's of each message, this would let you know if all 50 devices are working. However if you get 49 messages you would need to test each device individually.
Post back if you have any further questions!
Thanks
Scott M.
Thanks Scott. That is definitely worth pursuing, and is probably something I will try out. I do have a concern about whether this would work correctly, based on my understanding of ISO 11898-1 ("Road vehicles - Controller Area Network"). Have you (or anybody else lurking out there) ever done with with actual hardware?
Here is my concern:
Since all my nodes will be sending identical frames (arbitration ID and contents), there is a risk that multiple nodes will begin transmitting simultaneously, 'win' the arbitration process (since the arbitration id's are identical), and proceed to transmit their complete frames simultaneously. In this case, I will only receive one frame. This causes problems for me since I need to verify that I'm receiving the expected number of frames per unit-time.
It's entirely possible that there isn't a clean solution to my problem. Still, I'm hoping somebody out there has come up with a creative solution that I haven't think of.