AVR单片机集成CAN总线控制器分析与应用
引言
CAN总线应用中,总线节点是CAN总线的基本组成部分。CAN总线节点有两种典型设计方法,第一种方法采用MCU结合独立CAN控制器组成总线节点[1];第二种方法采用独立的MCU,这时MCU需要内部集成CAN控制器。由于第二种设计方法所用的器件少,电路关系简单,已得到广泛应用。本文重点分析AVR系列单片机内部集成的CAN控制器及其应用方法。
AT90CAN集成CAN总线控制器分析
AVR内部集成CAN控制器的芯片主要包括AT90CAN32/64/128三种单片机,它们之间的主要区别是存储空间不同。
AT90CAN32/64/128内部集成的CAN总线控制器由CAN通道和邮箱组成,其工作参数通过寄存器设置,工作过程也通过寄存器监控。CAN控制器基本结构如图1所示。
CAN总线控制器组成
CAN通道
CAN通道是CAN控制器用于完成发送和接收的部分。使用CAN控制器时,需要对CAN通道工作模式和位定时进行设置。
(1)CAN通道工作模式
CAN通道有使能、待命以及只听三种工作模式。不同模式下通道、时钟以及寄存器的工作模式不同,详细内容见参考文献[3]。
(2)位定时
CAN通道位定时的概念和基本规定与CAN总线协议一致。AVR系列单片机中,CAN总线控制器时间份额(TQ)即为波特率分频器输出时钟信号的周期。CAN总线位周期由同步段(SYNS)、传播段(PRS)、相位缓冲段1(PHS1)、相位缓冲段2(PHS2)组成,每个时间段的长度都是时间份额(TQ)的整数倍。通过位定时设置可以确定各时间段的长度,同时还可以设置重同步跳转宽度(SJW)以及信号采样位置和采样次数。设置时,CAN总线位时间必须设置在8~25个时间份额之间。位定时设置完毕后即可计算总线波特率,计算方法见参考文献[3]。
邮箱及报文对象(MOb)
AT90CAN32/64/128单片机集成的CAN控制器通过邮箱存储报文,并以MOb的形式管理。邮箱包含15个独立的MOb,每个MOb都可以设置为接收或发送模式。发送时,编号小的MOb优先级高。接收时,只有当CAN控制器接收到报文的标识符与某个MOb预先设置的标识符吻合时,CAN控制器才会将接收到的报文存储在该MOb中,并可以通过中断的方式通知单片机。CAN控制器还可自动对远程帧作出应答,从而减轻CPU的负担。
(1)MOb工作模式
MOb包括禁止、发送、接收、自动应答、帧缓冲器接收等6种不同的工作模式。芯片复位后,MOb并没有默认的工作状态。因此,在使能MOb之前必须对MOb进行配置,配置内容及相应的工作模式如表1所示。
评论