I got confused in CAN 11 bit and 29 bit protocol(RTR in 11 bit and SRR in 29 bit frame). can anyone please explain why we use SRR bit in 29 bit can protocol instead of RTR bit...
2 Answers
This message explains why: http://www.microchip.com/forums/m376934.aspx
CAN bus considers the 11 bit indentifiers to have a higher priority than the 29 bit identifiers
(because the two types of "protocol", "11" and "29", can coexist in the same bus). Hence:
In the case of a 29 bit extended frame, the RTR bit has been moved to the end of the message so it doesn't play in the priority bitwise arbitration of the 29 bit IDs. That's why the Standard frame RTR now defined as SRR is transmitted as recessive. It prevents a 29 bit RTR message from having a higher priority than a non RTR message.
...and so does this page: http://hem.bredband.net/stafni/developer/CAN.htm
A Substitute Remote Request (SRR) bit is included in the Arbitration Field. The SRR bit is always transmitted as a recessive bit to ensure that, in the case of arbitration between a Standard Data Frame and an Extended Data Frame, the Standard Data Frame will always have priority if both messages have the same base (11 bit) identifier.

- 4,281
- 2
- 19
- 35
When both STD and Extended frames are present in the network, Let's say, SRR(Substitute Remote Request) bit is not there, the arbitration happens between RTR bit of STD frame and IDE bit of extended frame. If this STD frame is remote frame, the arbitration will not be closed here. so It compares the next bit, which is IDE in STD frame and 1bit in 18bit address in the extended frame. If 1bit in 18bit address is zero, arbitration continues.
Next arbitration comparison is in between "r0" in STD and "2bit" in 18bit address. Now anyway r0 will be always recessive. if the 2nd bit in XTND frame's 18bit address is 0, the arbitration will be won by extended frame which is not correct. So to make the STD frame priority, the SRR frame is a must. So only it is called substitute.
STD ---XTND
SOF --- SOF
11bit --- 11bit
RTR ---IDE
IDE --- 1st bit of 18bit address

- 1,416
- 1
- 16
- 30