I am using CAN protocol example given by KEIL for MCB2300. I connected two can ports through RS232 cables. when i am debugging the code CAN1 sends a message, but CAN2 is nor able to receive a message. please can any one explain what is the flow in receiving a message.
Can is not RS232. It is a bus standard, not a point-to-point standard.
Are you sure that you are connecting high signal to high signal and low signal to low signal?
Normally, you should also have a termination, but in this case I assume your cable is too short for it to really matter.
I connected two can ports through RS232 cables.
No, you most probably didn't, because there isn't really any such thing as a "RS232 cable". And even if there were, you wouldn't be using several of those to connect two CAN ports.
please can any one explain what is the flow in receiving a message.
The documents you acquired about CAN bus do that. What, you're telling us you don't have any such documents? What the heck do you think you're doing connecting CAN nodes to each other, then?
Length is not the only factor that determines whether you need termination, though. The high-speed physical layer of CAN bus always needs some termination, because it's a strictly differential, current-driven bus. If the two wires aren't connected by anything except CAN transceivers, there's no chance you'll get communication.
More specifically: The MCB2300 have built-in termination. But you can get away with a lot of abuse when the cable length is short or the bit-rate is low.
The MCB2300 have built-in termination.
What's the bet it hadn't been activated?
"What's the bet it hadn't been activated?"
Revision 3.0 has the resistors soldered, so a user really has to make a decision to unsolder them. Keil doesn't seem to have released the schematic for the 3.1 edition, and I only have a 3.0 board to look at.
Revision 3.0 has the resistors soldered,
What, and no jumper to disable them? I'm well and truly shocked. That's daft.