CAN总线系列(二):链路层芯片MCP2515解读

        Microchip 的MCP2515 是一款独立控制器局域网络(Controller Area Network, CAN)协议控制器,完全支持CAN V2.0B 技术规范。它是CAN协议中数据链路层的芯片。

一.时钟和复位

1.1 振荡器

        MCP2515 通过将晶体或陶瓷谐振器连在 OSC1 和 OSC2 引脚上作为振荡器来工作。         

        MCP2515 的振荡器设计要求选用并联切割晶体。若采用串联切割晶体,其产生的时钟频率可能超出厂商规定值。
        MCP2515 使用了一个振荡器起振定时器 ( Oscillator Startup Timer, OST), 它使MCP2515 处于复位状态以保证振荡器在内部状态机开始运行之前已处于稳定状态。
        上电或从休眠模式唤醒后的最初 128 OSC1 时钟周期内, OST 将保持复位状态。应注意,只有在 OST 超时后才能进行 SPI 协议操作。

1.2 复位

        MCP2515 有两种复位方式:
1. 硬件复位——RESET 引脚为低电平。
2. SPI 复位——通过 SPI 命令复位。
        这两种复位方式效果一样。 上电后要采用其中一种方式复位器件,以确保逻辑和寄存器处于缺省状态。这一点非常重要。
        在 RESET 引脚上连一个 RC 电路,可自动进行硬件复位(见图 1.1 )。 按照电气规范( tRL)指定的那样,选择的 RC 值必须确保在 VDD 达到工作电压后,器件至少有 2 µs 处于复位状态。

66fee8e01e2d4d2ab4d0af8fcc7c0e05.png

 

二.功能配置

2.1 寄存器列表

f10b9ad46d5d4a2a9566ffd3344011af.png

 

2.2  工作模式

2.2.1 五种工作模式

        MCP2515 从休眠模式被唤醒后进入“仅监听模式”。 工作模式如下图所示:

cd1c79f451ab40ef8bebf6e944132595.png


 

2.2.2 寄存器配置

db99c2b5b356436aa44935fa890532c0.png

2.3 引脚

2.3.1 引脚图

0c030c47ec60418197eedcda6b303748.png

2.3.2 寄存器配置

8ad429188a0149f68acfbe519a73c58e.png

2.4 位定时

        位定时决定传输速度。

        CAN 总线上的所有节点都必须具有相同的标称比特率。 CAN 协议采用不归零( Non Return to Zero, NRZ)编码方式,在数据流中不对时钟信号进行编码。因此,接收时钟信号必须由接收节点恢复并与发送器的时钟同步。
        由于不同节点的振荡器频率和传输时间不同,接收器应具有某种能与数据传输边沿同步的锁相环( Phase Lock Loop, PLL)来同步时钟并保持这种同步。 鉴于数据采用 NRZ 编码,有必要进行位填充以确保至少每 6 位时间发生一次边沿,使数字锁相环 ( Digital Phase Lock Loop, DPLL)同步。

2.4.1 相关因素

2.4.1.1 比特率

        在 CAN 规范中,标称比特率 ( Nominal Bit Rate, NBR)定义为在不需要再同步的情况下,理想发送器每秒发送的位数,它可用下面的公式来表示:
 

04fa2b5a0d7f4172bc2077f6d0f20e0c.png

2.4.1.2 标称位时间

        标称位时间 ( Nominal Bit Time, NBT)( tbit)由互不重叠的段时间段组成。
 

a8e5950d1fee4254939a3a72ddc1e286.png

        因此 NBT 为下列时间段之和:
 

dca4077de13f42c9b055a980a97b53fd.png

2.4.1.3 时间份额    

        组成位时间的每个段都由时间份额( TQ)组成。每个时间份额的长度取决于振荡器周期( tOSC)。
        通常 TQ 为两个振荡器周期。图 5-2 显示了如何从 TOSC 和 TQ 推导出位周期。 TQ 的长度等于一个 TQ时钟周期( tBRPCLK),利用称为波特率预分频器( BRP)的可编程预分频器对它进行编程设置。以下公式对此进行了阐述:

bf24ae29ebc148bebee71c7725037e82.png

2.4.1.4 同步(硬同步和再同步)

        

b638aad37efd4358b1fb531d5e90740d.png

2.4.1.5 波特额配置

例如, MCP2515 的时钟频率为 FOSC=8MHz, 要实现 250KHz 的 CAN 波特率,计算过程如下:
①标称位时间: tbit = 1/250 = 4000ns
②时钟振荡周期: TOSC = 1/8 = 125ns
③时间份额: TQ = 2 * ( BRP + 1) * TOSC = ( 2, 4, 6, 8,„„) TOSC
        对于 BRP 值的推导如下:
1 个标称位的时钟振荡周期个数: n = tbit / TOSC = 32 个
1 个标称位的 TQ 个数: m = 32 / ( 2, 4, 6, 8,„„) = 16, 8, 4, 2, 1
而一个位时间的时间份额范围为 8~25TQ, 故此
m 只能取 16 或 8。这里取 m = 16,则 BRP = 0.
④各时间段的确定
同步段 = 1TQ
传播段 = 2TQ
PS1 = 7TQ
PS2 = 6TQ
采样点时间比 = (1+2+7)/16 = 62.5%,符合要求。

744b1f417dec4c06a76e6acbf249c9ca.png

 

2.4.2 寄存器配置

d15e5fee1b9d4c01a0db551e349e1146.png

2.5 中断

 2.5.1 结构

        当发生中断时, INT 引脚将被 MCP2515 拉为低电平, 并保持低电平状态直至 MCU 清除中断。
        中断只有在引起相应中断的条件消失后,才会被清除。
        使能与标志寄存器是两个独立的寄存器。使能禁止后,标志位也会正常置位。其结构见下图。

7df1859723134dbeafa62578501df98c.png

        

        中断类型如下图:

6b6709212c8041808497b6d8181523b8.png

2.5.2 寄存器配置

        d25ef9008a53407c83aae4eeaec190cf.png

 

 

 

 

 

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于CAN总线MCP2515和TJA1050温度测量系统是一种使用CAN总线通信的温度测量系统。MCP2515是一种控制器局部网络(CAN)控制器,能够处理CAN总线上的通信任务,而TJA1050是一种CAN收发器,用于接收和发送CAN总线上的信号。 在这个系统中,利用温度传感器测量温度,并将测得的温度数据传输到CAN总线上。MCP2515控制器接收到温度数据后,将其封装成CAN帧,并通过TJA1050收发器发送到CAN总线上。其他设备或系统可以通过CAN总线接收到这些温度数据,进行进一步的处理和分析。 基于CAN总线MCP2515和TJA1050温度测量系统具有以下优点: 1. 可以实现多节点通信:CAN总线支持多节点连接,可以将多个温度传感器通过CAN总线连接起来,实现多点测量和通信。 2. 高可靠性:CAN总线具有高抗干扰性和高可靠性,能够在工业环境中稳定运行,保证温度数据的准确性和可靠性。 3. 实时性:CAN总线通信速率较快,可以实现高速的温度数据传输,保证数据的实时性和准确性。 4. 简化系统布线:CAN总线只需要两根数据线和两个端子,相比其他通信协议,系统布线更简单,减少了布线成本和工作量。 总而言之,基于CAN总线MCP2515和TJA1050温度测量系统能够实现多节点温度测量和通信,具有高可靠性和实时性,布线简单,适用于工业环境中的温度监测和控制应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈工程师修炼日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值