引言
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所示。
关键字:CAN总线 AVR 总线控制器
引用地址:
AVR单片机集成CAN总线控制器分析与应用
推荐阅读最新更新时间:2024-03-16 14:26
不要忘记使用AVR的BOD功能!
作为一个正式的系统或产品,当系统基本功能调试完成后,一旦进行现场测试阶段,请注意马上改写熔丝位的配置,启用AVR的电源检测(BOD)功能。 对于5V系统,设置BOD电平为4.0V;对于3V系统,设置BOD电平为2.7V。然后允许BOD检测。 这样,一旦AVR的供电电压低于BOD电平,AVR进入RESET(不执行程序了)。而当电源恢复到BOD电平以上,AVR才正式开始从头执行程序。保证了系统的可靠性! 原因分析如下: AVR是宽电压工作的芯片,当电压跌至2.5V,系统程序还能工作。这时有2个可怕的现象可能出现: 1.外围芯片工作已经混乱,AVR读到的东西不正确,造成程序的执行发生逻辑错误(不是AVR本身的原因)。 2.当电
[单片机]
IAR 下 AVR 的外部中断操作
芯片 : ATMega16 晶振 : 7.3728 MHz 外部中断0 ,下降沿触发。 关于硬件:要想稳定的使用外部中断,最好要在管脚处上拉一个电阻(一般上拉10K,当然上拉还是下拉也要看你的触发条件),如果是按键的话应该再并一个电容(一般为104),这样效果会比较好,有效的防止抖动。 代码: #include iom16.h #include intrinsics.h #include comp_a90.h void int0_init() { _CLI(); //disable all interrupts //关总中断 MCUCR = 0x02; //下降沿触发 外部中断0 GICR
[单片机]
基于串行外设接口(SPI)的CAN总线隔离扩展设计
作者Email: christinxl@hotmail.com
摘要:介绍了利用SPI口实现CAN总线隔离扩展的一种通信控制系统,详细叙述了此通信控制系统中主从通信模块的硬件设计控制,软件设计流程及实现方法。
关键词: CAN总线 SPI口 XINT1中断
一、引言
CAN总线是一种有效支持分布式控制和实时控制的串行数据通信协议,它是一种多主总线,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从,节点之间有优先级之分,因而通信方式灵活;CAN可以点对点、一点对多点(成组)及全局广播等几种方式传送和接收数据 ;CAN采用非破坏性位仲裁技术,优先级发送,可以大大节省总线冲突仲裁时间,在
[应用]
AVR C语句运行时间测试程序源代码
整个工程下载: http://www.rayfile.com/zh-cn/files/b8f67659-d773-11df-b350-0015c55db73d/f0ec1fdf/ 核心代码: /********** AVR 运行时间测试程序 ********** * 版本.........: 1.0 * 作者.........: 陈利栋 * 目标.........: ATmega128 * 文件名.......: main.c * 编译器.......: IAR for AVR V5.5 * 创建时间.....: 2010.10.14 * 最后修改.....: 2010.10.14 ******************
[单片机]
AVR单片机学习之路
一、购买一两本书,笔者推荐两本 《单片机 C语言开发入门指导》,《高档8位单片机ATmega128原理与开发应用指南》。买书的目的:看书大体了解单片机的结构和工作原理,了解基本概念和基础知识,其实新手是不可能完全看懂一本书的,如果你能,你已经是高手了,所以不要期望一字一句去搞懂书上说的到底是什么东西。看完书对相关内容有个概念性的了解就可以了。 二、开始动手配置开发环境,动手去做,实践出真知。笔者推荐使用ICC AVR + AVR studio +AVR mega16 + JTAG&ISP下载仿真器的组合。抄几个程序,增强一下自己的信心,看到自己的程序在单片机上跑起来,那种愉悦的心情是和用软件仿真仅仅看到IO口的变化是
[单片机]
基于AVR 单片机的数字正弦逆变电源设计
逆变电源应用广泛,特别是精密仪器对逆变电源性能要求更高。好的逆变电源不仅要求工作稳定、逆变效率高、输出的波形特性好、瞬态响应特性好,还要求逆变电源小型化、智能化、并且具备可扩展性。因此,这里提出一种基于AVR 系列单片机AT90PWM2 的数字正弦逆变电源, 前级SG3525A采用PWM 控制升压电路实现输入和过热保护。后级单片机AT90PWM2 使用单极性倍频SPWM 控制方式进行全桥逆变,且进行输出保护。 1 总体设计及工作原理 逆变电源的系统整体框图如图1 所示,系统的主电路采用前级推挽升压和后级全桥逆变的2 级结构 ,这样可以避免使用工频变压器,有效降低电源的体积和质量,提高逆变效率。其工作原理为:12 V
[单片机]
基于LPC2119的RS485-CAN总线转换器设计
1.RS485及CAN总线简介 RS485是工业控制领域中一种传统的总线技术。然而,随着工业控制的复杂度提高,RS485总线在系统容量,通讯距离,不能支持多主结构等方面的缺陷开始逐渐显现。 CAN总线是从20时纪80年代初发展起来的一种新型现场总线技术,它的总线长度最远可达10千米(速率5Kbps以下),数据传输速率最高可达1Mbps(通讯距离40米以内)。它在多主方式下工作,不分主从;节点数的数目主要取决于总线驱动电路,目前可达110个。采用非破坏总线仲裁技术,即使网络负载很重也不会出现网络瘫痪现象。此外,CAN的每帧信息都有CRC校验和其它检错措施,有很好的检错效果 。 由于CAN总线具备以上优点,它目前已经被广泛应用到
[单片机]
一种空间相机的数据通信系统设计
在空间相机数据采集应用中,为了满足电路板体积重量以及可扩展性的要求,利用FPGA作为主控芯片,控制相机进行数据采集和传输。在数据通信系统中,FPGA替代了传统的单片机作为CAN总线的主控制器,并给出了详细的硬件电路设计方法。在对CAN协议控制器SJA1000进行功能及时序分析后,利用硬件语言对其通信流程进行设计。实践证明,在严格的时序逻辑下,FPGA能够控制CAN总线稳定正确地对相机数据进行收发。
CAN总线是由ISO定义的串行通信总线,主要用于各种过程检测及控制。它是一种多主总线,具有高位速率和高抗电磁干扰性,而且能够检测出传输中产生的任何错误。显著的优点使得CAN总线成为国际上应用最广泛的现场总线标准之一 。
由于其优
[网络通信]