文章目录
- 前言
- 一、以SN65HVD230为例介绍端口特性
- 二、代码实现
- 总结
前言
CAN总线收发器,是CAN控制器和物理总线间的接口器件,通常工程师会按照底层协议对其控制,近日笔者仔细了解了CAN总线收发器的物理原理,找到了一种通过观察端口电平状态判断器件好坏的方法。
一、以SN65HVD230为例介绍端口特性
芯片的接收脚R端,和发送脚D端接到单片机的串行数据端,在SN65HVD230手册中,介绍发送脚D端和差分总线HL的关系:
即D端电压降到一定水平时,H为高,L为低,也就是说总线呈现“显性”电压;
此时,差分信号差值大于0.9V时,接收端R将会变成低电平
有了这个介绍,就可以得到这样一个闭环:
拉低D端——>H L产生差分电压——>R端变低
我们可以认为能否实现上述闭环,就是评判芯片的好坏的依据
接下来我们让单片机自己操作实现这个闭环。
二、代码实现
CAN_TX_OFF();//拉低D端if(CAN_RX == 0)//检查R端是否为低电平?{printf("CAN is OK\r\n");}else{printf("fail\r\n");}
实现以上代码不要忘记:在H和L两端加上终端匹配电阻,这是显性或者隐形电压的回路路径。
总结
1、判断CAN总线芯片的简单方法:利用其芯片物理特性,人为实现回路闭环;
2、CAN总线的D端电压降到一定水平时,H为高,L为低,总线呈现显性电压,其差值超过0.9V时,R端将为低电平;
3、只有将终端匹配电阻加上,显性电平才能构成回路;