Other Parts Discussed in Thread:SN65HVD230
使用2个SN65HVD230芯片通信,原理图如下:
使用查分探头测量CANH-CANL信号,如下:
这个有个疑问,为什么每一帧数据的最后一个bit的电平仅1.7V左右呢,其他Bit电平都超过2V?
Amy Luo:
您好,
感谢您对TI产品的关注!您可以给出以下信息吗
1、总线上一共有多少个节点? 其他节点也有这种现象吗
2、总线是使用的什么线? 是双绞线吗?
,
Kailyn Chen:
您好,那最后1bit的隐性和显性电平幅值都降低了是吗? 因为您这里给出的是差分幅值,所以确认下 ,CANH和CANL的幅值都不正常,还是只是隐性或者显性电平有问题,导致输出降低了?
,
6638822:
多谢回复,
1、线上一共2个节点,都有此现象
2、总线一共5cm长,没有双绞
,
6638822:
CANH和CANL的幅值都不正常
,
Kailyn Chen:
您好,单独使能其中其中一个节点,波形是这样的吗?
因为我的理解是,CAN总线的最后一帧应该是ACK位,如果两个节点,同时处于显性,那么两个节点同时发送的话,那么最后这个bit的电压和目前是相反的,是幅值轻微上升的, 目前电压降低,那有可能是一个处于显性,一个处于隐性,导致波形幅值轻微下降。
,
Amy Luo:
您是在SN65HVD230的CANH和CANL管脚测的信号吗?如果这样的话,可以如下解释:
通信波形中最后一个显示电平应该是ACK信号,ACK信号是接收节点正确接收后发出来的。可以看CANH和CANL的的输出电路在数据手册Figure 27左下角,当发出ACK信号显示电平时,CANH和CANL的的输出电路中的两个FET都是导通的,电流从VCC流经R67(如下我手绘图),然后RT端接电阻,再R68,这样,在发送端 CANH和CANL管脚测信号幅值是(VCC*RT)/(R67+RT+R68)。请注意这里忽略了二极管压降和FET导通压降。
而在发送端发送信号时,总线上的差分电压即是发送端CANH和CANL管脚间的电压,没有串联电阻10Ω的分压。因此在发送端在CANH和CANL管脚测量接收端发出的信号,会比测量发送端本地的信号幅值低,根本原因就是串联电阻和总线有一部分压降。有不妥之处请指出
,
6638822:
单独测试一个CAN节点,是没有这个问题的。
,
Kailyn Chen:
您好,嗯说明每个节点通讯都是没问题的, 我查阅了下相关CAN的资料, 您这个现象正好相反,CAN总线允许多个节点仲裁(确定节点之间信息优先级)同时驱动总线,在此期间的话,所有收发器在最后都同时发送ACK信号,导致最后一位的幅值是稍微抬高的,您参考下下面链接中正常波形以及几点对波形的分析(waveform notes 部分的介绍):
www.picoauto.com/…/根据您目前的测试来看,最后一位恰恰相反,幅值降低了,所以在CANH和CANL的差值波形中,幅值降低的这bit确定是一帧数据的最后一位吗?
,
6638822:
抱歉,最开始给的原理图不准确,同事在调试过程中,把CAN发送端的CANH CANL分别串联的10Ω电阻改为0Ω,接收端的CANH CANL还是串联10Ω。您的回答是正确的,是因为电阻分压导致的。我把发送端和接收端的CANH CANL分别串联的电阻统一为0Ω,或者统一为10Ω,都没有最后一位幅值变低的情况。
,
Amy Luo:
很高兴您的问题得到解决,感谢您的反馈