基于CAN总线智能节点设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于CAN总线智能节点设计

The design of intelligent nodes Based on CAN Bus

李光忠1,吴士涛2

LI GUANG-ZHONG,WU SHI-TAO

(1. 山东农业大学信息科学与工程学院,山东 泰安 271018;

2. 山东科技大学,山东 泰安 271000)

(1. College of Information Science and Engineering, Shandong Agriculture University,Taian 271018 China;2. Shandong University of Science and

Technology,Taian 271000 China)

摘要:CAN总线是一种应用极为普及的现场总线。文中提出了一种CAN总线通信接口的设计方案。CAN总线智能节点用单片机AT89S52和SJA1000控制器为核心组成。分别从硬件电路设计和SJA1000软件初始化、发送、接收设计方面进行了分析,实现了相应的网络控制功能,具有较高的实用性。

关键词:CAN总线,智能节点,系统设计

中图分类号:TP336 文献标识码:B

Abstract:Can-Bus is popular as a field Bus.In this paper,a new modern CAN-bus communication interface is designed. Intelligent node of CAN-bus is mainly made up of MCU AT89S52 and SJA1000 controller.The hardware principle and the programming methods for initialization,transmitting and receiving modules of SJA1000 are introduced.The design can perform the control function.It is a practical design.

Key words:CAN Bus,Intelligent node,system design

0 引言

CAN是控制器局域网络(Controller Area Network)的简称,是一种有效支持分布式控制或实时控制的串行通信网络。CAN总线作为智能设备的联系纽带,把挂在总线上作为网络节点的智能设备连接为网络系统,并进一步构成自动化系统,实现基本控制的综合自动化系统。本文给出了一种基于AT89S52和SJA1000的CAN总线智能节点设计方案,并对软硬件设计进行了相应的说明。

1 系统硬件设计

智能节点能够通过监测设备采集的现场数据,并根据接收到的命令或者主动将数据发送到CAN总线。通过事先设置验收码和验收屏蔽码可以控制智能节点从总线上接收数据或命令。

CAN总线系统智能节点硬件电路由3部分构成:微控制器AT89S52、独立CAN通信控制器SJA1000和CAN总线驱动器82C250。

微处理器AT89S52负责SJA1000的初始化,通过控制SJA1000实现数据的接受和发送等通信任务。SJA1000作为独立CAN总线控制器具有完成CAN高性能通信协议所要求的全部必要特性。使用简单总线连接的SJA1000可完成物理层和数据链路层的所有功能。其硬件与软件设计包括与基本CAN工作模式(BasicCAN)兼容,同时它新增加的增强CAN工作模式(PeliCAN)可以支持CAN 2.0A及CAN 2.0B协议。CAN总线收发器PCA82C250提供协议控制器和物理传输线路之间的接口。它可以用高达1Mb/s的速率在两条有差动电压的总线电线上传输数据。

硬件电路如图1所示。

图1.节点硬件电路图

SJA1000的AD0-AD7连接到AT89S52的P0口,cs连接到AT89S52的P2.7。P2.7为0时CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读/写操作。SJA1000的R D、W R、ALE分别与AT89S52的对应引脚相连,IN T接AT89S52的0

IN T,AT89S52可通过中断的方式访问SJA1000。AT89S52复位是高电平有效而CAN通信控制器SJA1000的复位是低电平有效,所以两者之间加反相器。AT89S52与CAN通信控制器SJA1000共用一个12MHz晶振。

设计中在AT82C250与CAN总线接口上采用一定抗干扰措施。在82C250的CANH和CANL引脚上各自通过一个5Ω的电阻与CAN总线相连,电阻可起到一定的限流作用,保护82C250免受过流的冲击。CANL和CANH与地之间并联了两个30PF的小电容、两个防雷击管,可以起到滤出总线上的高频干扰和防止电磁辐射和防止瞬变干扰的措施。

2 智能节点的软件设计

CAN总线智能节点的软件设计包括三部分:CAN节点初始化、报文发送和报文接收。

2.1 初始化过程

SJAl000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJAl000的初始化设置以后,SJAl000就可以回到工作状态,进行正常的通信任务。初始化的工作主要针对SJA1000相应寄存器内容的赋值来完成一定的功能设计。SJAl000采用增强CAN工作模式(PeliCAN)。

2.2 发送过程

发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJAl000发送缓存区中,然后启动SJAl000发送即可。SJAl000报文的发送主要有两种方式:中断发送方式和查询发送方式。该监测系统中采用查询方式发送报文。

2.2.1单片机发送程序

发送程序框图如图2所示。

相关文档
最新文档