从图1可以看出,标准帧中有个r0位,这个位实际上是个保留位,ISO11898-1中规定:发送方发送r0位固定为显性,接收方则不对该位显隐性做判断。同样,扩展帧除r0位还有个r1位,也是保留位,其规定与r0位一致,由于ISO11898-1对保留位的规定,导致部分老旧的CAN控制器在发送保留位时,未遵循ISO规范要求,将r0或r1位发送为隐性,而不是显性,接收方也能正常接收CAN报文。
1、can的波特率can控制器只需要进行少量的设置就可以进行通信,就像RS232那样。其中较难设置的部分就是通信波特率的计算。can总线能够在一定范围内容忍总线上can节点的通信波特率的偏差,这种技能使得can总线有很强的容错性,同时也降低了对每个节点的振荡器精度。实际上,can总线的波特率是一个范围。假设定义的波特率是250KB/S,但是实际上根据对寄存器的设置,实际的波特率可能为200300KB/S(具体取决于寄存器的设置)。
这些时间段包括:位同步时间Tsync,时间段1Tseg1,时间段2Tseg2.其中位同步时间占用1个Tscl;,时间段1占用(Tseg1+1)个Tscl;时间段2占用Tseg2+1个Tscl,所以can控制器的位时间TBit就是:TBitTseg1+Tseg2+Tsync(Tseg1+Tseg2+3)*Tscl,那么can的波特率canbps就是1/TBit。
2、一帧报文有多少信号该段由单个显性位构成,在总线空闲时才允许发送,所有节点必须同步于开始发送的数据帧的起始位;l标准帧仲裁段:标准帧的仲裁段由11位ID码和一个显性位RTR码组成,RTR码为远程帧标识位;l扩展帧仲裁段:扩展帧的仲裁段由29位ID码、一位显性的SRR码、一位隐性的IDE码和一位显性的RTR码组成;l标准帧控制段:标准帧的控制段由单位显性的IDE、保留位r0和4位数据长度代码DLC组成,DLC数据段采用BCD编码;l扩展帧控制段:扩展帧的控制段由两个保留位r1和r0和4位的DLC数据段组成,r1和r0都为显性填充,
3、can总线通讯协议首先canbus是问答式的通讯方式报文最大长度11char1仲裁场(共12位)bit10bit9bit8bit7bit6功能编码bit5bit4bit3目的地址bit2bit1bit0源插地址RTR远程帧2.控制场IDEr0DL3DL2DL1DL000数据长度3.数据场bit7bit6bit5bit4bit3bit2bit1bit0数据帧数据(最长8组)。