SJA1000 CAN控制器验收滤波器详解

4星 · 超过85%的资源 需积分: 49 40 下载量 37 浏览量 更新于2024-12-03 收藏 175KB PDF 举报
"CAN标识符设置方法及其在SJA1000控制器中的应用" CAN (Controller Area Network) 是一种广泛应用的现场总线标准,尤其在汽车电子、自动化和工业控制领域。CAN总线遵循OSI模型的底层,即数据链路层和物理层,提供全双工、多主站通信,具有高可靠性和高性能的特点。CAN2.0A和CAN2.0B是其两种主要的技术规范。 SJA1000是由Philips公司生产的独立CAN控制器,它完全兼容CAN2.0A和CAN2.0B标准。相比于早期的82C200,SJA1000在错误处理、超载能力以及接收滤波功能上有显著提升。 验收滤波器是SJA1000的重要组成部分,其主要功能是筛选接收到的数据帧,确保只有符合预设条件的帧才能被接收并进入接收FIFO(First-In-First-Out)缓冲区。这样可以防止无效或错误的数据干扰系统。当一个帧通过验收滤波器并且没有检测到错误时,接收缓冲区状态标志SR.0会被置位,表示接收缓冲区中存在一个成功接收的帧。 SJA1000的硬件结构包括CAN核心模块、接口管理逻辑、发送缓冲区和接收FIFO等部分。CAN核心模块处理信息帧的收发和协议执行,接口管理逻辑则与外部主控制器进行交互,允许主控制器通过地址/数据总线访问SJA1000的寄存器。发送缓冲区可以存储13字节的完整信息帧,主控制器可以直接写入标识符和数据,并通过设置CMR(Command Register)的TR位触发发送。接收FIFO拥有64个字节的容量,远超82C200,能有效处理大量的接收数据。 设置CAN标识符是使用CAN总线通信的关键步骤。每个CAN帧包含一个标识符,用于区分不同的消息类型。标识符可以是标准格式(11位)或扩展格式(29位)。在SJA1000中,可以通过配置验收滤波器寄存器来确定接收哪些标识符的帧。例如,可以设置滤波器接受特定ID或ID范围的帧,或者采用“屏蔽”模式,允许接收ID与设定ID相匹配或不匹配的帧。 在实际应用中,用户可以根据需求灵活设置验收滤波器,确保只接收感兴趣的数据,同时减少处理不必要的信息,提高系统效率。对于需要处理大量不同数据类型的复杂系统,合理的验收滤波器设置能够优化通信性能,降低处理负担。 总结来说,理解并正确设置CAN标识符和SJA1000的验收滤波器是实现高效、可靠的CAN总线通信的基础。通过深入掌握这些知识点,工程师能够更好地设计和实现基于CAN的通信系统。