0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > 微控制器如何与CAN总线连接

微控制器如何与CAN总线连接

来源:
2025-06-25
类别:基础知识
eye 1
文章创建人 拍明芯城

微控制器(MCU)与CAN总线的连接是工业控制、汽车电子、物联网等领域的核心技术。以下是详细的连接方法、硬件设计、软件配置及调试技巧,确保通信稳定可靠。


一、CAN总线连接基础

  1. CAN总线特性

    • 物理层:差分信号(CAN_H和CAN_L),抗干扰能力强,适合长距离传输。

    • 通信速率:10kbps~1Mbps(速率越高,传输距离越短)。

    • 拓扑结构:总线型,支持多节点(最多110个,视总线长度和负载而定)。

  2. 微控制器与CAN总线的接口

    • 集成CAN控制器:部分MCU内置CAN控制器(如STM32、NXP S32K、Microchip SAM系列),只需外接物理层收发器。

    • 外接CAN控制器:若MCU无内置CAN控制器,需外接CAN控制器芯片(如MCP2515)和收发器。


二、硬件连接步骤

1. 典型连接方案(内置CAN控制器的MCU)
  • 所需元件

    • MCU(如STM32F103C8T6,内置CAN控制器)。

    • CAN收发器(如TJA1050、MCP2551)。

    • 终端电阻(120Ω,两端各一个)。

    • 共模电感(可选,抑制EMI)。

  • 连接图

QQ_1750816913451.png

  • 关键点

    • MCU的CAN_TX和CAN_RX分别连接收发器的TXD和RXD。

    • 收发器的CAN_H和CAN_L接总线,两端加120Ω终端电阻。

    • 收发器的供电电压需与MCU一致(3.3V或5V)。

2. 外接CAN控制器的连接方案
  • 所需元件

    • MCU(如STM32F030,无内置CAN控制器)。

    • CAN控制器芯片(如MCP2515,SPI接口)。

    • CAN收发器(如TJA1050)。

    • 终端电阻(120Ω)。

  • 连接图


MCU (SPI接口)             MCP2515 (CAN控制器)      TJA1050 (收发器)       CAN总线 ------------------------- ------------------------ ---------------------- ---------------- SPI_SCK   ----->           SCK                      SCK (不直接连接)       (不连接) SPI_MOSI  ----->           SI                       SI (不直接连接)        (不连接) SPI_MISO  <-----           SO                       SO (不直接连接)        (不连接) SPI_CS    ----->           CS                       CS (不直接连接)        (不连接) INT       <-----           INT                      INT (不直接连接)       (不连接) GND       <-----           GND                      GND                    CAN_GND VCC       <-----           3.3V                     VCC (3.3V)             (不连接)                                                    TXD   ----->           TXD                                                    RXD   <-----           RXD                                                    CAN_H  ----->           CAN_H                                                    CAN_L  <-----           CAN_L

  • 关键点

    • MCU通过SPI接口与MCP2515通信,MCP2515的TXD和RXD连接收发器。

    • 终端电阻仍需接在总线两端。


三、软件配置要点

1. 内置CAN控制器的MCU配置(以STM32为例)
  • 步骤

    • 根据总线速率计算BRP、TS1、TS2等参数。

    • 示例:500kbps(APB1时钟48MHz):

    • 启用CAN外设时钟(如RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE))。

    • 配置CAN_TX为复用推挽输出,CAN_RX为浮空输入。

    1. 初始化GPIO

    2. 配置CAN时钟

    3. 设置波特率

CAN_InitStructure.CAN_BS1 = CAN_BS1_13tq; CAN_InitStructure.CAN_BS2 = CAN_BS2_2tq; CAN_InitStructure.CAN_Prescaler = 6; // 波特率 = 48MHz / (6 * (13 + 2 + 1)) = 500kbps


    • 调用CAN_Init()函数启用CAN控制器。

    • 设置接收滤波器,只接收特定ID的消息。

    1. 配置滤波器

    2. 启用CAN

  • 示例代码(发送数据)

QQ_1750816952384.png

2. 外接CAN控制器的MCU配置(以MCP2515为例)
  • 步骤

    • 设置CNF1、CNF2、CNF3寄存器。

    • 示例:500kbps(16MHz晶振):

    • 通过SPI发送复位指令(0xC0)。

    • 配置SPI时钟、模式(CPOL=0, CPHA=0)、数据位(8位)。

    1. 初始化SPI接口

    2. 复位MCP2515

    3. 配置波特率

QQ_1750816962317.png


    • 设置CANCTRL寄存器为正常模式(0x80)。

    • 设置RXF0SIDH、RXM0SIDH等寄存器。

    1. 配置滤波器

    2. 启用MCP2515

  • 示例代码(发送数据)

QQ_1750816972485.png

四、调试与常见问题

  1. 通信失败排查

    • 确认波特率一致(所有节点需相同)。

    • 检查滤波器配置(确保未误过滤有效消息)。

    • 用示波器测量CAN_H和CAN_L的差分电压(正常为2V~3V)。

    • 确认终端电阻已连接(总线两端各120Ω)。

    • 检查收发器供电电压是否正确。

    • 检查硬件

    • 检查软件

    • 电磁干扰(EMI)问题

      • 使用双绞线(如AWG24),线长<100m(500kbps时)。

      • 在CAN_H和CAN_L之间增加共模电感(如B82793S0131N101)。

      • 避免总线与电源线平行布线。

      • 解决方案

    • 数据丢失问题

      • 增加中断处理程序,及时读取接收缓冲区。

      • 降低总线速率或优化通信协议。

      • 缓冲区溢出(未及时处理接收数据)。

      • 总线负载过高(超过总线容量)。

      • 原因

      • 解决方案


      五、推荐配置与选型

      1. 内置CAN控制器的MCU推荐

        • SAM D21(低功耗,内置CAN控制器)。

        • S32K144(汽车级,支持CAN FD)。

        • STM32F103C8T6(低成本,内置CAN控制器)。

        • STM32F407VGT6(高性能,支持CAN FD)。

        • STM32系列

        • NXP S32K系列

        • Microchip SAM系列

        • 外接CAN控制器推荐

          • 支持CAN FD,高速率(5Mbps)。

          • SPI接口,支持标准CAN 2.0A/B。

          • MCP2515

          • TJA1042T

          • CAN收发器推荐

            • 工业级,支持-40℃~+125℃。

            • 高速CAN,支持1Mbps,抗干扰能力强。

            • TJA1050

            • MCP2551


            六、总结

            1. 连接步骤

              • 内置CAN控制器的MCU:MCU的CAN_TX/RX接收发器的TXD/RXD,收发器CAN_H/CAN_L接总线并加终端电阻。

              • 外接CAN控制器的MCU:MCU通过SPI/UART等接口连接CAN控制器,CAN控制器再连接收发器。

            2. 关键点

              • 波特率必须一致。

              • 终端电阻和共模电感不可省略。

              • 软件滤波器需合理配置。

            3. 调试工具

              • 示波器(测量差分电压和总线阻抗)。

              • CAN分析仪(监控通信数据,如Peak PCAN-USB)。

            直接建议

            • 优先选择内置CAN控制器的MCU(如STM32F103),简化设计。

            • 波特率500kbps是工业常用值,兼容性好。

            • 用示波器验证差分电压(2V~3V)和总线阻抗(60Ω±10%)。

            最终结论

            • 硬件连接:MCU的CAN_TX→收发器TXD,CAN_RX←收发器RXD,收发器CAN_H/CAN_L接总线并加终端电阻。

            • 软件配置:正确设置波特率、滤波器,并启用中断处理接收数据。

            • 调试工具:示波器(测量差分电压)、CAN分析仪(监控通信数据)。

            建议:参考具体MCU和收发器的官方文档(如《STM32F103参考手册》《TJA1050数据手册》)进行详细配置。


            责任编辑:Pan'

            【免责声明】

            1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

            2、本文的引用仅供读者交流学习使用,不涉及商业目的。

            3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

            4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

            拍明芯城拥有对此声明的最终解释权。

            标签: CAN总线连接

            相关资讯

            资讯推荐
            云母电容公司_云母电容生产厂商

            云母电容公司_云母电容生产厂商

            开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

            开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

            74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

            74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

            芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

            芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

            芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

            芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

            28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

            28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

            拍明芯城微信图标

            各大手机应用商城搜索“拍明芯城”

            下载客户端,随时随地买卖元器件!

            拍明芯城公众号
            拍明芯城抖音
            拍明芯城b站
            拍明芯城头条
            拍明芯城微博
            拍明芯城视频号
            拍明
            广告
            恒捷广告
            广告
            深亚广告
            广告
            原厂直供
            广告