Since i am new to CAN protocol i have the following doubts during my study, could anyone help me to understand the queries.
1. Why dominant bit has high priority in CAN protocol?
2. Is it possible to assign same CAN ID for two messages? If yes, then how does the arbitration handle for this?
3. If data and remote frame with same message ID and start transmit at same time which frame(data or remote) win the bus?
4. The nodes connected in the bus have different baud rates, how does the synchronization happened?
5. How can calculate the time taken to transmit a CAN message with 11 bit identifier at 512 kbps?
6. How does the uC get to know whether the received bit is dominant or recessive?
Thanks in advance
In reply to Max Robertson:
Thanks for your reply. Could you please explain little bit more about the timing calculation of CAN.
Max Robertson5. The time required for each bit is the reciprocal of the baud rate. The total time of a message would then be the number of bits transmitted times the time per bit plus any propagation delays that occur in the network (e.g., due to transceiver delays, cabling, etc.).
IF you consider for example UART protocol the time taken to transmit a single byte includes the start and stop bit timings also. In the same CAN has more number of bits, so for the case of 11 bit identifier and 29 bit identifier the time taken to transmit a message at 512kbps will be differed. If you knew any page which explains more about the CAN protocol timing, please let me know.
In reply to Prakash Balagangatharan:
Thanks for your reply. Could you please provide one example calculation about how to calculate the time take to send a byte at 512kBits in CAN protocol?
Hi Prakash, The time it takes to send a CAN packet is: (Bit Time)(Number of bits) + (tPHR) + delay of the cable - typically 5ns/m + (tPLD) So in your case the calculation from CAN controller to CAN controller using the TCAN10420 would be: (1.95us)(1 byte = 8 bits) + 75ns + delay of the cable - typically 5ns/m + 55ns CAN packets are not just one byte long though. A classic CAN frame could be 108 bits long so for this case the time to transmit a CAN packet at 512kbps through a 10 meter cable would be: (1.95us)(108) + 75ns + (5ns/m)(10m) + 55ns = 210.7us from CAN controller to CAN controller. Here is an application report that will help you understand the CAN protocol better: www.ti.com/.../sloa101b.pdf Please let me know if you have more questions?
Industrial Interface Applications
Analog Wire: Get Connected
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.