CAN总线通信详解:SJA1000命令寄存器与配置寄存器

需积分: 44 33 下载量 193 浏览量 更新于2024-08-07 收藏 1.21MB PDF 举报
"本文档主要介绍了SJA1000独立CAN控制器的详细知识,包括其在微信小程序开发框架(MINA)中的应用。" 在微控制器的通信领域,CAN(Controller Area Network)总线是一种广泛应用的串行通信协议,特别适合于汽车电子设备和工业自动化系统。SJA1000是一款由飞利浦(现恩智浦半导体)设计的CAN控制器,它是基于PCA82C200的增强型产品,提供了两种操作模式:BasicCAN和PeliCAN,以适应不同的应用需求。 6.5章节主要讨论了CAN通信中的定时和同步机制,这是确保数据准确传输的关键部分。其中,命令寄存器是CAN控制器中的一个重要组件,它允许开发者配置和控制CAN总线的行为。 6.5.1部分详细讲解了总线定时寄存器0 (BTR0)。BTR0用于设定波特率预设值(BRP)和同步跳转宽度(SJW)。BRP决定了CAN系统时钟的周期,公式`tSCL=2*tCLK*(32*BRP.5+16*BRP.4+8*BRP.3+4*BRP.2+2*BRP.1+BRP.0+1)`表明了如何根据外部晶振频率(fXTAL)计算出位时序。SJW则用于补偿总线控制器之间可能存在的时钟相位偏移,允许在位周期内进行一定程度的重新同步。 6.5.2部分介绍了总线定时寄存器1 (BTR1),这个寄存器定义了位周期的长度、采样点位置以及每个采样点的采样次数。采样点的选择对信号的稳定性和抗干扰能力至关重要。例如,"三倍采样"(SAM=1)模式在低速或中速总线中更常用,因为它能有效过滤噪声,而"单倍采样"(SAM=0)则适用于高速总线环境。 在不同的操作模式下,如PeliCAN和BasicCAN,这些寄存器的访问权限和功能可能会有所不同。PeliCAN模式提供更高级的功能,如更复杂的验收滤波器和增强的错误处理能力,而BasicCAN模式则更适合简单应用,具有较低的配置复杂度。 理解和掌握SJA1000的命令寄存器以及相关的总线定时寄存器对于开发和调试基于CAN的系统至关重要,特别是在微信小程序开发框架(MINA)中,这可以帮助开发者精确地配置通信参数,确保数据的可靠传输。