3、CAN FD收发器架构:收发器内部框图、驱动器级(Driver)、接收器级(Receiver)、故障保护机制
好,咱们今天聊聊CAN FD收发器的内部架构。说实话,很多工程师画原理图时直接把收发器当黑盒子用,觉得能发能收就行。但我在项目中吃过亏——有一次EMC测试不过,折腾了两周,最后发现是收发器驱动级的压摆率设置出了问题。所以,搞清楚里面那点事儿,真的很有必要。
3.1 收发器内部框图概览
一个典型的CAN FD收发器,内部大致可以拆成这么几块:
- 驱动器级(Driver Stage):把TXD引脚的数字信号,转换成CANH和CANL上的差分电压。
- 接收器级(Receiver Stage):把总线上的差分信号,还原成RXD引脚的数字电平。
- 故障保护机制(Fault Protection):包括过温、过流、欠压、总线短路等检测与响应。
- 模式控制逻辑:控制休眠、待机、高速等模式切换。
- 共模扼流圈/终端匹配:有些收发器内部集成了部分匹配电阻或共模滤波。
我个人习惯,拿到一个新收发器的数据手册,第一件事就是看它的内部框图。你想想看,框图里每个模块的供电引脚、地回路、保护二极管位置,直接决定了你的PCB布局该怎么走线。
重要提醒:CAN FD收发器的驱动器级和接收器级,在时序上必须匹配。如果驱动器上升沿太慢,会导致位定时采样点偏移;如果接收器延迟太大,又会造成环路延迟超标。这两者之间的平衡,是信号完整性设计的核心。
3.2 驱动器级(Driver Stage)
驱动器级,说白了就是把TXD的0和1,变成总线上的显性和隐性电平。
CAN FD的驱动器比传统CAN要求更高。为什么?因为数据段速率能到5Mbps甚至8Mbps,上升沿和下降沿必须更陡。但陡了又容易产生振铃和EMI。嗯,这里要注意,驱动器级通常采用压摆率控制(Slew Rate Control)技术。
我见过一些设计,为了追求高速,把压摆率调到最大,结果辐射发射超标。后来我建议在TXD引脚上串联一个100pF的小电容,稍微减缓边沿,EMC就过了。当然,这个电容值不能太大,否则位定时会乱掉。
驱动器级的关键参数:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 输出差分电压(显性) | 1.5V ~ 3.0V | CAN FD要求显性电平不低于1.2V |
| 输出差分电压(隐性) | 0V(接近0) | 隐性时CANH和CANL电压相等 |
| 上升/下降时间 | 10ns ~ 50ns | 取决于速率和压摆率设置 |
| 输出阻抗 | 约45Ω ~ 65Ω | 与总线终端匹配相关 |
驱动器级内部通常是一对推挽结构,上管拉高CANH,下管拉低CANL。但要注意,CAN FD的驱动器需要支持快速显性到隐性的切换。传统CAN在隐性状态时,驱动器是高阻态,靠终端电阻放电。但CAN FD速率高了,放电时间不够,所以很多新收发器在隐性状态时也提供一定的驱动能力,加速总线回零。
实战技巧:我曾经在一个项目中,发现总线信号在隐性状态时回零太慢,导致位错误。后来换了一款带“主动隐性”驱动的收发器,问题立刻解决。如果你做高速CAN FD设计,建议优先选这类器件。
3.3 接收器级(Receiver Stage)
接收器级,就是把总线上的差分信号,还原成RXD的数字电平。它本质上是一个差分比较器,比较CANH和CANL的电压差。
接收器的关键指标是共模输入范围和迟滞特性。CAN总线在恶劣环境下,共模电压可能被干扰到±12V甚至更高。如果接收器的共模范围不够,就会误判。
我记得有一次,客户反馈说通信偶尔丢帧,我带着示波器去现场测,发现总线共模电压在-7V左右跳变。普通收发器的共模范围只有-2V到+7V,已经超出规格了。后来换成宽共模范围的收发器,问题消失。
接收器级的延迟也很关键。CAN FD的位时间短,接收器延迟如果超过位时间的10%,就会影响采样点。一般来说,接收器延迟要控制在50ns以内。
接收器级还有一个容易被忽略的点:RXD输出引脚的驱动能力。如果RXD走线太长,或者接了多个负载,信号可能变差。我建议RXD走线尽量短,不要超过5cm,并且靠近MCU的接收引脚。
注意:有些收发器在总线进入隐性状态后,RXD会有一个短暂的“毛刺”或“回勾”。这是因为接收器内部比较器在切换阈值时产生的。如果MCU在此时采样,可能读到错误数据。解决方案是在RXD引脚上加一个RC滤波,或者用软件做去抖处理。
3.4 故障保护机制
故障保护机制,是收发器的最后一道防线。没有它,一个短路就可能烧掉整个节点。
常见的故障保护功能包括:
- 过温保护(OTP):芯片温度超过150°C左右时,自动关断驱动器,防止热损坏。
- 过流保护(OCP):检测到输出电流过大(比如总线对电源或对地短路),限制电流或关断输出。
- 欠压锁定(UVLO):供电电压低于阈值时,禁止收发器工作,防止误动作。
- 总线短路保护:CANH或CANL对电源、对地短路时,能自动识别并进入保护状态。
- 显性超时保护(DOM):如果TXD长时间保持低电平(显性),超过协议允许的时间,收发器会自动释放总线,防止“锁死”。
我曾经遇到一个案例:某款车在冬季低温启动时,CAN通信偶尔中断。排查后发现,是收发器的欠压锁定阈值设置得太高,低温时电源电压略有下降,触发了UVLO。后来换了一款阈值更低的收发器,问题解决。
故障保护机制还有一个重要设计:故障输出引脚(如ERR、FAULT)。这个引脚可以连接到MCU的中断,让软件及时知道收发器出了什么问题。我建议在设计时,不要省掉这个引脚,哪怕只是接一个LED指示灯,调试时也能省很多时间。
核心总结:CAN FD收发器的三个核心模块——驱动器、接收器、故障保护——是信号完整性和系统可靠性的基石。驱动器决定了信号质量和EMC,接收器决定了抗干扰能力和时序精度,故障保护决定了系统在异常情况下的生存能力。设计时,三者缺一不可。
好了,这一章的内容就到这里。下一章咱们聊聊PCB布局和终端匹配的实战细节,到时候我会分享一些我踩过的坑,保证有用。