电子说
在当今的电子设计领域,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 模块的核心是有限状态机(FSM),它逐位处理消息,根据不同帧类型的字段传输或接收来改变状态。FSM 控制着 TX/RX 移位寄存器、CRC 寄存器和总线之间的顺序数据流,同时也管理着错误管理逻辑(EML)以及 TX/RX 移位寄存器和缓冲区之间的并行数据流,确保接收、仲裁、传输和错误信号等过程符合 CAN 协议,并处理消息的自动重传。
CRC 寄存器生成 CRC 码,该码在控制字段(对于 0 数据字节的消息)或数据字段之后传输,用于检查传入消息的 CRC 字段,以保证数据传输的准确性。
错误管理逻辑负责 CAN 设备的故障限制,通过接收错误计数器(REC)和传输错误计数器(TEC)来判断设备状态。根据计数器的值,设备可进入错误主动、错误被动或总线关闭状态。当设备进入总线关闭状态后,需接收 128 个连续隐性位的总线关闭恢复序列才能恢复。
位定时逻辑(BTL)监控总线输入,根据 CAN 协议处理总线相关的位定时。它在帧起始时进行硬同步,并在后续隐性到显性的总线转换时进行重新同步。BTL 提供可编程的时间段来补偿传播延迟和相移,并定义采样点的位置。
TQ 是基于振荡器周期的固定时间单位,通过可编程的波特率预分频器(BRP)和固定的二分频来生成。标称位时间可通过编程 TQ 长度和每个时间段的 TQ 数量来计算。
标称位时间由同步段、传播段、相位缓冲段 1 和相位缓冲段 2 组成。编程这些时间段时需要遵循一定规则,如 PropSeg + PS1 ≥ PS2 等。
采样点是读取总线电平并确定接收位值的时间点,位于 PS1 结束时。可选择在采样点进行多次采样,以多数值决定接收位的值。
IPT 是从采样点开始预留的用于计算后续位电平的时间段,MCP2502X/5X 定义为 2 TQ。
SJW 用于补偿节点之间的相移和振荡器容差,在重新同步时调整 PS1 和 PS2 的值。其可编程范围为 1 TQ 到 4 TQ。
CAN 位定时逻辑相关的配置寄存器包括 CNF1、CNF2 和 CNF3,分别用于控制波特率预分频器、传播段和相位段长度等参数。
MCP2502X/5X 包含三个传输缓冲区和两个接收缓冲区,用于处理不同类型的消息。一个掩码和两个过滤器提供了最大的灵活性,可根据标识符来决定设备响应的消息。
设备包含三个传输消息 ID(TXID0、TXID1 和 TXID2),分别用于不同类型的消息传输,如总线消息、命令确认消息、错误条件消息等。
MCP2505X 有两个接收缓冲区和一个消息组装缓冲区(MAB),确保接收消息的处理并减少缓冲区溢出的风险。
接受掩码用于定义 CAN ID 中哪些位需要与可编程过滤器进行比较,两个接受过滤器(RXF0 和 RXF1)分别用于信息请求消息和输入消息的过滤。
MCP2502X/5X 允许用户将与 CAN 模块和设备配置相关的寄存器预编程到非易失性 EPROM 存储器中,上电时这些配置将被传输到 SRAM 中。用户可以通过 CAN 总线访问许多寄存器,还提供了 16 个用户定义的寄存器用于存储设备信息。
设备在上电时首先进入配置模式,然后进行自配置,将 EPROM 内容传输到 SRAM 中。自配置完成后,可进入监听模式或直接进入正常模式,之后即可通过 CAN 接口发送和接收消息。
MCP2502X/5X 使用全局掩码、两个过滤器和两个接收缓冲区来决定是否对接收的消息采取行动,可执行 16 种不同的功能,包括读取寄存器、写入寄存器等操作。
可通过远程传输请求(RTR)或数据帧消息的形式发送,设备根据接收到的消息确定要执行的功能。
作为对信息请求消息的响应,数据帧包含请求的数据,其标识符和数据字节数量遵循一定规则。
用于改变预定义寄存器组的值,通过标准或扩展数据帧的形式发送,设备根据标识符和数据字节来确定要写入的寄存器。
设备确保在不同总线负载条件下正确处理传输和接收消息,包括消息的接受/拒绝、多消息接收和传输消息优先级等方面。
MCP2502X/5X 可自动发起四种不同类型的消息,包括数字输入边缘检测、模拟输入阈值检测、错误条件和定时传输等情况。
MCP2502X/5X 拥有 8 个通用 I/O 引脚,可单独配置为输入或输出。每个引脚具有弱上拉电阻,可通过控制位开启或关闭。引脚还具备复用功能,如模拟输入、PWM 输出、时钟输出等。所有 GPIO 引脚都支持数字输入边缘检测功能,当检测到指定极性的边缘时,可自动发送消息。
该模块包含两个脉冲宽度调制(PWM)模块,可在 GP2 和 GP3 引脚生成最高 10 位分辨率的输出信号。每个 PWM 模块有独立的定时器、占空比和周期寄存器,可通过编程这些寄存器来控制 PWM 输出的形状和频率。
A/D 模块是一个四通道、10 位逐次逼近型 A/D 转换器,可将模拟输入信号转换为 10 位数字信号。支持自动转换和按需转换两种模式,转换结果可通过 CAN 总线在读取 A/D 寄存器的输出消息中提供给用户。
提供四种振荡器模式,包括低功耗晶体(LP)、晶体/谐振器(XT)和高速晶体谐振器(HS),用户可通过配置位选择合适的模式。
设备支持上电复位(POR)和外部复位(RST),并具备 RST 噪声滤波器,可检测并忽略小脉冲。
振荡器启动定时器(OST)确保晶体振荡器在启动后稳定,上电定时器(PWRT)在电源稳定前保持设备复位状态。
通过 OPTREG2 寄存器的 SLPEN 位启用,设备在总线空闲一定时间后进入 SLEEP 模式,可通过外部复位、传输变化或 CAN 总线活动唤醒。
支持在线串行编程,用户可在最终应用电路中对设备进行编程,方便产品的生产和更新。
文档详细列出了 MCP2502X/5X 的绝对最大额定值、直流特性、交流特性和 A/D 转换器特性等电气参数,为设计人员提供了重要的参考依据。
该系列产品提供 14 引脚的 PDIP 和 SOIC 封装,文档中给出了封装的详细尺寸和标记信息,方便设计人员进行 PCB 布局和组装。
MCP2502X/5X 系列 CAN I/O 扩展器为实现简单 CAN 节点提供了丰富的功能和灵活的配置选项。尽管它已不推荐用于新设计,但对于一些已有的应用或特定需求,它仍然是一个可行的选择。在使用过程中,设计人员需要深入了解其各个模块的功能和特性,根据具体应用场景进行合理的配置和设计,以确保设备的稳定运行和性能优化。大家在实际设计中遇到相关问题,欢迎一起交流探讨。
全部0条评论
快来发表一下你的评论吧 !