MCP2502X/5X CAN I/O 扩展器:功能、应用与设计要点

电子说

1.4w人已加入

描述

MCP2502X/5X CAN I/O 扩展器:功能、应用与设计要点

在当今的电子设计领域,CAN(Controller Area Network)总线因其高可靠性、实时性和抗干扰能力,被广泛应用于汽车、工业自动化等众多领域。而 MCP2502X/5X 系列 CAN I/O 扩展器,为实现简单 CAN 节点提供了一种无需微控制器的解决方案。不过需要注意的是,该系列产品已不推荐用于新设计,大家可以考虑使用 MCP2515 或 MCP25625 替代。下面我们就来详细了解一下 MCP2502X/5X 系列产品。

文件下载:MCP25050T-E SL.pdf

一、产品概述

MCP2502X/5X 系列设备作为 CAN 系统的 I/O 扩展器,支持 CAN v2.0B 主动模式,总线速率最高可达 1 Mb/s。它具有可编程的比特率、掩码、过滤器以及自动传输和接收缓冲区等特性,还配备了非易失性存储器用于用户配置,上电时可自动加载配置。此外,该系列产品拥有 8 个通用 I/O 线,可单独选择作为输入或输出,部分型号还具备 4 个 10 位模拟输入通道。

设备型号 A/D One Wire Digital CANbus
MCP25020
MCP25025
MCP25050
MCP25055

二、CAN 模块详解

2.1 CAN 协议有限状态机

CAN 模块的核心是有限状态机(FSM),它逐位处理消息,根据不同帧类型的字段传输或接收来改变状态。FSM 控制着 TX/RX 移位寄存器、CRC 寄存器和总线之间的顺序数据流,同时也管理着错误管理逻辑(EML)以及 TX/RX 移位寄存器和缓冲区之间的并行数据流,确保接收、仲裁、传输和错误信号等过程符合 CAN 协议,并处理消息的自动重传。

2.2 循环冗余校验(CRC)

CRC 寄存器生成 CRC 码,该码在控制字段(对于 0 数据字节的消息)或数据字段之后传输,用于检查传入消息的 CRC 字段,以保证数据传输的准确性。

2.3 错误管理逻辑

错误管理逻辑负责 CAN 设备的故障限制,通过接收错误计数器(REC)和传输错误计数器(TEC)来判断设备状态。根据计数器的值,设备可进入错误主动、错误被动或总线关闭状态。当设备进入总线关闭状态后,需接收 128 个连续隐性位的总线关闭恢复序列才能恢复。

2.4 位定时逻辑

位定时逻辑(BTL)监控总线输入,根据 CAN 协议处理总线相关的位定时。它在帧起始时进行硬同步,并在后续隐性到显性的总线转换时进行重新同步。BTL 提供可编程的时间段来补偿传播延迟和相移,并定义采样点的位置。

2.4.1 时间量子(TQ)

TQ 是基于振荡器周期的固定时间单位,通过可编程的波特率预分频器(BRP)和固定的二分频来生成。标称位时间可通过编程 TQ 长度和每个时间段的 TQ 数量来计算。

2.4.2 时间段

标称位时间由同步段、传播段、相位缓冲段 1 和相位缓冲段 2 组成。编程这些时间段时需要遵循一定规则,如 PropSeg + PS1 ≥ PS2 等。

2.4.3 采样点

采样点是读取总线电平并确定接收位值的时间点,位于 PS1 结束时。可选择在采样点进行多次采样,以多数值决定接收位的值。

2.4.4 信息处理时间

IPT 是从采样点开始预留的用于计算后续位电平的时间段,MCP2502X/5X 定义为 2 TQ。

2.4.5 同步跳转宽度(SJW)

SJW 用于补偿节点之间的相移和振荡器容差,在重新同步时调整 PS1 和 PS2 的值。其可编程范围为 1 TQ 到 4 TQ。

2.4.6 配置寄存器

CAN 位定时逻辑相关的配置寄存器包括 CNF1、CNF2 和 CNF3,分别用于控制波特率预分频器、传播段和相位段长度等参数。

2.5 缓冲区、掩码和过滤器

MCP2502X/5X 包含三个传输缓冲区和两个接收缓冲区,用于处理不同类型的消息。一个掩码和两个过滤器提供了最大的灵活性,可根据标识符来决定设备响应的消息。

2.5.1 传输消息 ID

设备包含三个传输消息 ID(TXID0、TXID1 和 TXID2),分别用于不同类型的消息传输,如总线消息、命令确认消息、错误条件消息等。

2.5.2 接收缓冲区

MCP2505X 有两个接收缓冲区和一个消息组装缓冲区(MAB),确保接收消息的处理并减少缓冲区溢出的风险。

2.5.3 接受掩码和过滤器

接受掩码用于定义 CAN ID 中哪些位需要与可编程过滤器进行比较,两个接受过滤器(RXF0 和 RXF1)分别用于信息请求消息和输入消息的过滤。

三、用户寄存器

MCP2502X/5X 允许用户将与 CAN 模块和设备配置相关的寄存器预编程到非易失性 EPROM 存储器中,上电时这些配置将被传输到 SRAM 中。用户可以通过 CAN 总线访问许多寄存器,还提供了 16 个用户定义的寄存器用于存储设备信息。

四、设备操作

4.1 上电序列

设备在上电时首先进入配置模式,然后进行自配置,将 EPROM 内容传输到 SRAM 中。自配置完成后,可进入监听模式或直接进入正常模式,之后即可通过 CAN 接口发送和接收消息。

4.2 消息功能

MCP2502X/5X 使用全局掩码、两个过滤器和两个接收缓冲区来决定是否对接收的消息采取行动,可执行 16 种不同的功能,包括读取寄存器、写入寄存器等操作。

4.3 消息类型

4.3.1 信息请求消息(IRMs)

可通过远程传输请求(RTR)或数据帧消息的形式发送,设备根据接收到的消息确定要执行的功能。

4.3.2 输出消息

作为对信息请求消息的响应,数据帧包含请求的数据,其标识符和数据字节数量遵循一定规则。

4.3.3 输入消息

用于改变预定义寄存器组的值,通过标准或扩展数据帧的形式发送,设备根据标识符和数据字节来确定要写入的寄存器。

4.4 动态消息处理

设备确保在不同总线负载条件下正确处理传输和接收消息,包括消息的接受/拒绝、多消息接收和传输消息优先级等方面。

4.5 自动传输

MCP2502X/5X 可自动发起四种不同类型的消息,包括数字输入边缘检测、模拟输入阈值检测、错误条件和定时传输等情况。

五、GPIO 模块

MCP2502X/5X 拥有 8 个通用 I/O 引脚,可单独配置为输入或输出。每个引脚具有弱上拉电阻,可通过控制位开启或关闭。引脚还具备复用功能,如模拟输入、PWM 输出、时钟输出等。所有 GPIO 引脚都支持数字输入边缘检测功能,当检测到指定极性的边缘时,可自动发送消息。

六、PWM 模块

该模块包含两个脉冲宽度调制(PWM)模块,可在 GP2 和 GP3 引脚生成最高 10 位分辨率的输出信号。每个 PWM 模块有独立的定时器、占空比和周期寄存器,可通过编程这些寄存器来控制 PWM 输出的形状和频率。

七、A/D 转换器模块

A/D 模块是一个四通道、10 位逐次逼近型 A/D 转换器,可将模拟输入信号转换为 10 位数字信号。支持自动转换和按需转换两种模式,转换结果可通过 CAN 总线在读取 A/D 寄存器的输出消息中提供给用户。

八、特殊功能

8.1 振荡器选择

提供四种振荡器模式,包括低功耗晶体(LP)、晶体/谐振器(XT)和高速晶体谐振器(HS),用户可通过配置位选择合适的模式。

8.2 复位

设备支持上电复位(POR)和外部复位(RST),并具备 RST 噪声滤波器,可检测并忽略小脉冲。

8.3 振荡器启动定时器和上电定时器

振荡器启动定时器(OST)确保晶体振荡器在启动后稳定,上电定时器(PWRT)在电源稳定前保持设备复位状态。

8.4 低功耗模式(SLEEP)

通过 OPTREG2 寄存器的 SLPEN 位启用,设备在总线空闲一定时间后进入 SLEEP 模式,可通过外部复位、传输变化或 CAN 总线活动唤醒。

8.5 在线串行编程

支持在线串行编程,用户可在最终应用电路中对设备进行编程,方便产品的生产和更新。

九、电气特性

文档详细列出了 MCP2502X/5X 的绝对最大额定值、直流特性、交流特性和 A/D 转换器特性等电气参数,为设计人员提供了重要的参考依据。

十、封装信息

该系列产品提供 14 引脚的 PDIP 和 SOIC 封装,文档中给出了封装的详细尺寸和标记信息,方便设计人员进行 PCB 布局和组装。

总结

MCP2502X/5X 系列 CAN I/O 扩展器为实现简单 CAN 节点提供了丰富的功能和灵活的配置选项。尽管它已不推荐用于新设计,但对于一些已有的应用或特定需求,它仍然是一个可行的选择。在使用过程中,设计人员需要深入了解其各个模块的功能和特性,根据具体应用场景进行合理的配置和设计,以确保设备的稳定运行和性能优化。大家在实际设计中遇到相关问题,欢迎一起交流探讨。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分