基于SJA1000的完整CAN节点设计

描述

SJA1000 是一种独立的 CAN 控制器产品,具有用于汽车和一般工业应用的高级功能。它旨在取代 PCA82C200,因为它是硬件和软件兼容的。由于具有一组增强的功能,该设备非常适合许多应用,尤其是在系统优化、诊断和维护很重要的情况下。本报告旨在指导用户设计基于 SJA1000 的完整 CAN 节点。该报告提供了用于编程的典型应用电路图和流程图。

独立的 CAN 控制器 SJA1000 有两种不同的操作模式:(1)BasicCAN 模式(PCA82C200 兼容);(2) PeliCAN 模式。

上电时,BasicCAN 模式是默认操作模式。因此,无需任何更改即可使用为 PCA82C200 开发的现有硬件和软件。除了 PCA82C200 已知的功能外,该模式还实现了一些额外功能,使设备更具吸引力。但是,它们不影响与 PCA82C200 的兼容性。

PeliCAN 模式是一种新的操作模式,能够根据 CAN 规范 2.0B 处理所有帧类型。此外,它还提供了一些增强功能,使 SJA1000 适用于广泛的应用。

CAN节点架构

一般每个CAN模块可以分为不同的功能块。与 CAN 总线线路的连接通常使用针对应用优化的 CAN 收发器构建。收发器控制来自 CAN 控制器的逻辑电平信号到总线上的物理电平,反之亦然。

下一层是 CAN 控制器,它实现了 CAN 规范中定义的完整 CAN 协议。通常它还包括消息缓冲和接受过滤。

所有这些 CAN 功能都由执行应用程序功能的模块控制器控制。例如,它控制执行器、读取传感器和处理人机界面 (MMI)。

如图 1 所示,SJA1000 独立 CAN 控制器始终位于微控制器和收发器之间,在大多数情况下收发器是集成电路。

控制器

图 1 CAN 模块设置

框图

图 2 显示了 SJA1000 的框图。

控制器

图 2 SJA1000 框图

CAN 核心块根据 CAN 规范控制 CAN 帧的发送和接收。

接口管理逻辑块执行到外部主机控制器的链接,该控制器可以是微控制器或任何其他设备。通过 SJA1000 多路复用地址/数据总线的每个寄存器访问和读/写选通的控制都在该单元中处理。除了 PCA82C200 已知的 BasicCAN 功能外,还添加了新的 PeliCAN 功能。因此,主要在此块中实现了额外的寄存器和逻辑。

SJA1000 的发送缓冲器能够存储一个完整的消息(扩展或标准)。每当主机控制器启动传输时,接口管理逻辑都会强制 CAN 核心模块从传输缓冲区读取 CAN 消息。

当接收到消息时,CAN 核心模块将串行位流转换为接受过滤器的并行数据。通过这个可编程过滤器,SJA1000 决定主机控制器实际接收到哪些消息。

接受过滤器接受的所有接收消息都存储在接收 FIFO 中。根据操作模式和数据长度,最多可以存储 32 条消息。这使得用户在为系统指定中断服务和中断优先级时更加灵活,因为数据溢出情况的概率大大降低。

编辑:hfy

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

全部0条评论

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

×
20
完善资料,
赚取积分