CAN控制器解析:SJA1000及波特率波形

需积分: 0 1 下载量 15 浏览量 更新于2024-08-19 收藏 1.75MB PPT 举报
本文主要介绍了CAN控制器的相关知识,特别是CAN波特率波形的计算和CAN控制器SJA1000的特性和寄存器配置。 CAN控制器是微控制器与CAN总线之间的桥梁,负责处理数据的发送和接收。在微控制器与CAN控制器的交互过程中,CPU可以向CAN控制器写入发送数据并设置发送请求标志,然后由CAN控制器将数据封装成CAN帧并通过CAN总线发送出去。同时,CPU也能读取接收状态标志,从接收缓冲器中读取接收到的数据。在物理层,CAN驱动器会完成逻辑电平与"显性"、"隐性"的转换,确保信号在CAN总线上的正确传输。 CAN控制器有多种模式,如BasicCAN基本模式符合CAN2.0A标准,支持11位标识符;而PeliCAN扩展模式支持CAN2.0B,包含标准和扩展格式。这些模式提供了不同的通信能力和灵活性。 SJA1000是一款常见的CAN控制器,其工作模式可以通过MODE引脚设置,可以设置为Intel模式或Motorola模式。该控制器还具备数据线与地址线复用功能,通过ALE引脚实现。此外,SJA1000的电源分为三类:逻辑电源、输入模拟电源和输出模拟电源,都需要独立退耦后再连接到系统电源。 SJA1000的地址范围是0-255,其中0-127用于实际使用。它的输入/输出特性包括TX0和TX1,它们可以组合成四种输出模式,并且RX1可以作为2.5V输入比较电压或接地。寄存器方面,SJA1000包含多个重要寄存器,如模式寄存器(CAN地址0)用于初始化和复位,还有RX和TX错误计数器、接收和发送缓冲器、接收FIFO等,这些寄存器对于监控和控制CAN通信至关重要。 波特率计算在CAN通信中尤为重要,因为正确的波特率决定了数据传输的速率和稳定性。CAN控制器的位时序逻辑负责生成和检测CAN总线上的比特流,通过精确的定时参数设置,如同步跳转宽度(SJW)、时间量子(TQ)、传播时间、相位缓冲区等,来确保不同节点间的数据同步。 总结来说,CAN控制器是CAN总线网络的关键组件,它负责数据的编码、解码和错误处理。SJA1000作为一个经典的CAN控制器实例,提供了丰富的功能和灵活的配置选项,适用于各种应用场景。了解CAN控制器的工作原理和寄存器配置,对于理解和优化CAN网络性能至关重要。