电子说
在当今的电子系统设计中,CAN(Controller Area Network)总线凭借其高可靠性、实时性和抗干扰能力,在汽车、工业自动化、航空航天等众多领域得到了广泛应用。MCP2502X/5X 作为一款 CAN I/O 扩展器,为 CAN 系统的设计提供了强大而灵活的解决方案。尽管该系列产品已不推荐用于新设计,但对于现有系统的维护和升级,以及相关技术的研究,仍具有重要的参考价值。
文件下载:MCP25050T-I SL.pdf
MCP2502X/5X 系列设备可作为 CAN 系统的 I/O 扩展器,支持 CAN v2.0B 主动协议,总线速率最高可达 1 Mb/s。这意味着它能够在高速数据传输的同时,保证数据的准确性和可靠性。该系列产品的一大亮点是无需微控制器即可实现简单的 CAN 节点,大大简化了系统设计,降低了成本。
该系列产品包含 MCP25020、MCP25025、MCP25050 和 MCP25055 等不同型号,它们在功能上存在一些差异。例如,MCP25020 不支持 A/D 转换和单总线 CAN 总线操作,而 MCP25055 则同时具备这两种功能。用户可根据具体需求选择合适的型号。
CAN 模块是 MCP2502X/5X 的核心部分,它负责将原始数字数据与 CAN 消息包进行转换,实现数据的可靠传输。
CAN 协议的核心是有限状态机(FSM),它以逐位的方式对消息进行处理,根据不同帧类型的字段传输或接收情况改变状态。FSM 不仅控制着 TX/RX 移位寄存器、CRC 寄存器和总线线路之间的顺序数据流,还控制着错误管理逻辑和 TX/RX 移位寄存器与缓冲区之间的并行数据流,确保消息的接收、仲裁、传输和错误信号处理按照 CAN 协议进行。
CRC 寄存器用于生成 CRC 码,该码在控制字段(对于 0 数据字节的消息)或数据字段之后传输,用于检查传入消息的 CRC 字段,确保数据的完整性。
比特定时逻辑(BTL)负责监控总线线路输入,并根据 CAN 协议处理与总线相关的比特定时。它通过硬同步和重新同步机制,确保设备与总线的时钟同步。同时,提供可编程的时间段,用于补偿传播延迟时间、相移,并定义采样点在比特时间内的位置。
CAN 模块的缓冲区、掩码和过滤器共同协作,实现 CAN 消息的发送、接收和接受。三个传输缓冲区分别对应三个传输消息 ID(TXID0、TXID1 和 TXID2),用于存储不同类型的消息。两个接收缓冲区用于存储 CAN 消息的仲裁字段、控制字段和数据字段。掩码和过滤器则用于筛选和接受符合条件的消息,提高系统的灵活性和可靠性。
MCP2502X/5X 允许用户将与 CAN 模块和设备配置相关的寄存器预编程到非易失性 EPROM 存储器中,上电后设备将自动初始化为默认状态。用户寄存器在加电序列期间被传输到 SRAM 中,许多寄存器可通过 CAN 总线进行访问。此外,还有 16 个用户定义的寄存器,可用于存储设备的相关信息,如序列号、节点标识符等。
设备在上电复位(POR)时会经历一系列事件,以加载编程配置并确保总线上不引入错误。上电后,设备首先进入配置模式,在此模式下,设备无法通过 CAN 接口发送或接收消息,ADC 和 PWM 外设也被禁用。完成自我配置后,设备将切换到监听模式,直到检测到无错误的 CAN 消息,然后等待 CAN 总线空闲后切换到正常模式。
MCP2502X/5X 通过全局掩码(RXMASK)、两个过滤器(RXF0 和 RXF1)和两个接收缓冲区(RB0 和 RB1)来确定是否对接收到的消息进行处理。根据接收到的消息,设备可执行 16 种不同的功能,包括读取 A/D 寄存器、读取控制寄存器、读取配置寄存器等。消息类型主要分为信息请求消息(IRMs)、输出消息和输入消息。
为了确保在不同的总线负载条件和不同的发送/接收组合下,发送和接收消息能够得到妥善处理,MCP2502X/5X 采用了一系列机制。在消息接受/拒绝方面,接收到的消息需先通过掩码/过滤器的筛选,再根据输入消息或 IRMs 的要求进行处理。在接收多个消息时,设备一次只能处理一个消息,若在处理前一个消息时接收到第二个消息,第二个消息将丢失。为了避免这种情况,设备可通过 TXID1 配置在发生接收溢出时发送消息,通知网络。在发送消息优先级方面,输出消息具有最高优先级,其次是 TXID2、TXID1 和 TXID0。当多个消息等待发送时,将按照优先级顺序依次发送。
MCP2502X/5X 拥有八个通用输入/输出引脚(GP0 至 GP7),可单独配置为输入或输出。所有 GPIO 端口引脚具有 TTL 输入电平,除 GP7 为仅输入引脚外,其余引脚均配备全 CMOS 输出驱动器。每个引脚都有一个弱内部上拉电阻,可通过单个控制位(OPTREG.GPPU)进行开启或关闭。此外,所有引脚还具备复用功能,可实现模拟到数字转换、模拟 VREF 输入、PWM 输出、时钟输出和外部复位等功能。
该模块包含两个脉冲宽度调制(PWM)模块(PWM1 和 PWM2),可分别在 GP2 和 GP3 引脚生成高达 10 位分辨率的输出信号。每个 PWM 模块都有独立的定时器、占空比和周期寄存器,可灵活控制 PWM 输出的形状。在 CAN 总线通信丢失时,可通过 OPTREG2.PDEFEN 位将 PWM 输出恢复到上电默认值,提高系统的可靠性。
A/D 模块是一个四通道、10 位逐次逼近型 A/D 转换器,可将模拟输入信号转换为相应的 10 位数字信号。四个通道通过 GP[3:0] 引脚进行复用,转换器可通过 ADCON0 寄存器进行开启或关闭,每个通道可通过 ADCON1 控制寄存器单独启用。用户可选择内部或外部的 VREF+ 和 VREF- 源,并为每个通道设置自动转换或按需转换两种模式。
MCP2502X/5X 具备多种特殊功能,以满足实时应用的需求。在振荡器选择方面,提供多种振荡器选项,如 LP(低功耗晶体)、XT(晶体/谐振器)和 HS(高速晶体谐振器),可根据应用需求进行选择。在复位方面,设备支持上电复位(POR)和外部 RST 复位,通过内部的振荡器启动定时器(OST)和上电定时器(PWRT),确保设备在电源稳定和晶体振荡器稳定后再开始正常工作。SLEEP 模式可实现低功耗运行,用户可通过外部复位、引脚状态变化或 CAN 总线活动唤醒设备。此外,设备还支持在线串行编程,方便用户在最终应用电路中对设备进行编程。
该系列产品在电气特性方面表现出色。其绝对最大额定值规定了设备在不同条件下的安全工作范围,如环境温度、存储温度、电压、电流等。DC 特性和 AC 特性则详细描述了设备在直流和交流条件下的性能参数,如电源电压、输入输出电压、电流、频率等。A/D 转换器特性则对 A/D 转换的分辨率、误差、参考电压等参数进行了规定,确保 A/D 转换的准确性和可靠性。
MCP2502X/5X 提供 14 引脚 PDIP(300 mil)和 SOIC(150 mil)两种封装形式,用户可根据实际应用需求选择合适的封装。在订购时,需根据设备型号、温度范围和封装形式进行选择,如 MCP25020 - 1P 表示工业温度范围、PDIP 封装的 MCP25020 设备。
综上所述,MCP2502X/5X CAN I/O 扩展器凭借其丰富的功能、灵活的配置和低功耗设计,为 CAN 系统的设计提供了一个强大而可靠的解决方案。尽管该系列产品已不推荐用于新设计,但对于现有系统的维护和升级,以及相关技术的研究,仍具有重要的参考价值。在实际应用中,工程师可根据具体需求,充分发挥其优势,设计出高效、稳定的 CAN 系统。你在使用 MCP2502X/5X 过程中遇到过哪些问题?又是如何解决的呢?欢迎在评论区分享你的经验。
全部0条评论
快来发表一下你的评论吧 !