微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线技术及其应用

CAN总线技术及其应用

时间:12-21 来源:互联网 点击:

各种寄存器分配在0~31地址单元中。设置各寄存器中的参数可实现不同的操作功能。

2.3 CAN总线驱动器PCA82C250

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

图3 PCA82C250的功能框图

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

3 CAN总线技术应用设计

3.1硬件电路设计

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

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

3.2 CAN总线的软件设计

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

图4 CAN总线硬件电路设计

图5 SJA1000初始化程序流程

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

接收报文子程序负责完成报文的接收以及其他情况处理。接收子程序比发送子程序要复杂一些,因为在处理接收报文的过程中,同时要对总线关闭、错误报警、接收溢出等情况进行处理。图7为以查询方式接收报文的程序流程图。

图6发送报文程序流程图

图7接收报文程序流程图

4结论

CAN总线技术是较实用的现场总线技术,该总线以CAN总线控制器和驱动器为硬件基础,采用了开放式仲裁机制和“隐性”、“显性”位信号差分通信方式,保证了报文传输的可靠性、准确性、快速性和实时性。正因为如此,国外很多公司生产的控制芯片内置CAN总线控制器(如:Philips公司生产的P8xC591、Atmel公司生产的AT90CAN128等器件),方便了用户的使用,缩短了开发周期。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top