新闻中心

EEPW首页>嵌入式系统>设计应用> CAN总线技术及其应用

CAN总线技术及其应用

作者: 时间:2016-12-21 来源:网络 收藏

接收缓冲器(RXB、长度为13个字节)是验收滤波器和CPU之间的接口,用来存储从CAN总线上接收并被确认的信息。作为接收FIFO(RXFIFO,长度为64字节)的一个窗口,接收缓冲器可被CPU访问。CPU在接收FIFO的支持下,可以在处理一条报文的同时接收其他报文。

验收滤波器(ACF)将一条接收到的报文标识码与验收滤波器中的预设值相比较,以决定是否接收这条报文。在纯粹的接收测试中,所有的报文都保存在接收FIFO中,但只有验收滤波通过且无差错的报文,才能被保存在接收缓冲器中。

位流处理器(BSP)是一个控制发送缓冲器、接收FIFO和CAN总线之间数据流的程序装置。它还执行总线上的错误检测、仲载、总线填充和错误处理。位时序逻辑(BTL)监视串行的CAN总线和位时序。它在信息开头“弱势支配”的总线传输时,同步CAN总线位流(硬同步),接收报文时再次同步下一次传送(软同步)。

错误管理逻辑(EML)负责限制传输层模块的错误。它接收来自位流处理器的出错报告,然后把有关错误统计告诉位流处理器和接口管理逻辑(IML)。

2.2 SJA1000的内部寄存器

SJA1000有两种工作模式,即BasicCAN模式和PeliCAN模式。在这两种模式中,SJA1000寄存器从数量、地址分配到功能等方面都有所区别。SJA1000在复位状态下的默认模式为BasicCAN模式。CAN控制器在两种模式中又都有两种状态模式,分别称为操作模式和复位模式。处在这两种不同状态的模式中,对寄存器的访问操作功能是不同的。SJA1000的控制寄存器、命令寄存器、状态寄存器、发送缓冲器(均为8位)等各种寄存器分配在0~31地址单元中。设置各寄存器中的参数可实现不同的操作功能。

2.3 CAN总线驱动器PCA82C250

总线驱动器PCA82C250是CAN控制器与物理总线之间的接口。该器件对总线提供了差动发送能力,同时对CAN控制器提供了差动接收能力。它可以用高达1Mbps的位速率在两条有差动电压的总线上传输数据,总线可连接110个节点。总线驱动器PCA82C250的功能参如图3所示。

图3 PCA82C250的功能框图

图3中,引脚8(Rs)用于选定PCA82C250的工作模式。PCA82C250的工作模式有3种,即高速模式、斜率控制模式和待机模式。对于高速工作模式,发送器的输出级晶体管尽可能快速启动和关闭。在这种模式下,不采取任何措施限制上升和下降的斜率。采用斜率控制模式(Slope Control),可降低射频干扰。

3术应用设计

3.1硬件电路设计

利用术实现了智能小区单元门禁控制器和小区保安部门之间数据的快速、准确传递,提高了小区智能化管理水平。图4为小区单元门禁控制器的CAN总线通信部分电路。值得注意的是控制器AT89S52为高电平复位,而SJA1000为低电平复位。为了增强CAN总线各节点的抗干扰能力,SJA1000的TX0、RX0和PCA82C250之间设置光电耦合器TLP521—2(即图4中的U3),实现了CAN总线上各用户之间的电气隔离。同时,两根总线与地之间分别接了一个防雷击管P6KE6.8,当两输入端与地之间出现瞬变干扰时,通过防雷击管的放电可起到一定的保护作用。

另外,PCA82C250的CANH和CANL之间接120Q阻抗匹配电阻是非常必要,否则会影响总线的数据传输距离和传输质量。

3.2 CAN总线的软件设计

术的软件设计主要包括:CAN总线控制器的初始化、报文发送和报文接收。SJA1000总线控制器的初始化对CAN总线的正常工作非常重要。SJA1000的初始化只有在复位模式下才能进行,初始化的关键是设置SJA1000内部寄存器的参数。其包括:设置工作方式、设置接收滤波方式,设置接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)、设置波特率参数和中断允许寄存器(IER)等。在完成SJA1000的初始化设置以后,返回工作状态,进行报文的发送和接收通信。图5为SJA1000的初始化程序流程图。

图4 CAN总线硬件电路设计

图5 SJA1000初始化程序流程

发送报文子程序负责完成报文的发送。发送时用户只需将待发送的报文按特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后启动SJA1000的发送位,即可发送报文。以查询方式发送报文的程序流程如图6所示。



关键词:CAN总线技

评论


技术专区

关闭