CAN总线A节点发送,B节点接收的逻辑框图如下图。
总线上仅有AB两个节点,所以AB两个节点处皆需要接入1个120Ω的终端电阻,如下图。
MCU与CAN控制器对总线电压分析没有影响,去除后的框图如下图:
A节点与B节点的接收比较器可看做高阻态端口,电压分析时可直接去除。
(比较器的两个输入管脚可理解为万用表的两个表笔,在此仅做电压测量功能)。
去除接收比较器电路后的逻辑框图如下图所示:
清理不必要的外框后的电路简图如下:
假设B节点不进行应答(不回复ACK信号)则B节点的上下两个三极管都不会导通,电压分析时可去除,如下图所示。
A节点的CAN_Tx 输出隐性电平 1 “高电平”时,
“高电平”直接到达上方的PNP三极管B极,因此PNP三极管截止。
“高电平”经非门电路后变化为“低电平”到达下方NPN三极管的B极,因此NPN三极管也截止。
因此发送隐性电平电路可简化为下图所示电路。
可以发现整个总线系统 被 A B 两个CAN收发器内部的2.5V电源钳位在2.5V。所以CAN_High 减去 CAN_Low 等于 0V。
A节点的CAN_Tx 输出显性电平 0 “低电平”时,
“低电平”直接到达上方的PNP三极管B极,因此PNP三极管导通。
“低电平”经非门电路后变化为“高电平”到达下方NPN三极管的B极,因此NPN三极管也导通。
假设两个三极管自身压降为0.5V;
因此发送显性电平电路可简化为下图所示电路。
电路图进一步整理后,如下图
CAN_High 与 CAN_Low 之间的等效电阻 R 0
1/R0 = 1/120 + 1/120 + 1/(30+25000+25000+30)
求得R 0 = 59.928 ≈ 60Ω
(电阻 25kΩ 远大于 120Ω,所以估算时可当成开路去除)。
电路进一步简化如下图所示:
节点内部的2.5V电源及A节点的25KΩ电阻对CAN_High 与 CAN_Low 电压无影响,所以也可以简化掉,如下图:
由上图可快速求解出 CAN_High = 3.5V CAN_Low = 1.5V
(CAN_Low = 0.5 + (4.5-0.5)/(30+60+30 )× 30 = 1.5V)
(CAN_High = 4.5 - (4.5-0.5)/(30+60+30 )× 30 = 3.5V)
CAN_High 与 CAN_Low 电压差为 2V 。