微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN总线技术在车站信号系统中的应用

CAN总线技术在车站信号系统中的应用

时间:08-04 来源:互联网 点击:

  随着网络技术的不断进步及工业控制器局域网技术的不断完善,工业上远程控制技术的应用也日趋广泛。本地机通过局域网控制现场机器进行各种操作是目前工业技术的应用热点[1]。鉴于电子化计算机联锁系统运行状况必须满足安全、可靠以及具有较强的实时性能和纠错能力的要求,所以,在本设计中,我们采用CAN总线代替RS-485总线,从而使车站信号系统能满足国家铁路技术各项指标。

1、CAN总线的技术规范   

CAN总线技术规范的目的是使任意两个CAN总线的执行过程达到兼容,CAN技术规范版本2.0包括两部分内容:   

1) CAN技术规范版本2.0A   

CAN技术规范版本2.0A描述的是在CAN技术规范1.2中定义的CAN报文格式,其范围是定义传输层和与CAN有关的外层。在CAN技术规范版本2.0A中,CAN节点的分层结构如图1(a)所示。

由于串行通信进入了更多应用领域,因此要求各种应用领域通信功能报文标识符标注实现标准化。如果把原有的11个标识符定义的地址范围加以扩展,CAN总线的功能将更加完善。因而,在引入了第二种报文格式(扩展格式)后,它可以提供由29位定义的更大地址范围,这就很好的解决了系统设计者在定义结构名称方面存在的问题,从而CAN技术规范版本2.0B也就相应的出现了。

          (a) 2.0A中节点的结构图 (b) 2.0B中分层结构   图1   

2) CAN技术规范版本2.0B   

CAN技术规范版本2.0B描述标准和扩展两种报文格式。在CAN技术规范版本2.0B中,CAN遵从OSI模型,按照OSI基准模型,CAN节点结构可以分为两层:数据链路层和物理层,具体如图1(b)所示。

2、CAN总线通信控制器SJA1000的简介   

CAN总线通信控制器主要由实现CAN总线协议的电路和实现与微处理器接口的电路两部分组成,它是完成通信协议的主体。对于不同型号的CAN总线通信控制器,实现CAN总线协议部分电路的结构和功能大多相同,而与微处理器接口部分的电路结构和连接方式存在一些差异。这里主要以SJAl000为代表对CAN总线通信控制器的功能作一简单介绍。

SJAl000是一种独立CAN控制器。它是PHILIPS公司的PCA82C200CAN控制器的替代产品,SJAl000的内部逻辑结构和外部接口如图2所示。

图2 SJA1000内部逻辑框图及外部接口   

在性能方面,除了SJAl000在软件和引脚上与它的前—款PCA82C200独立CAN控制器兼容之外,其还增加了很多新的功能。在具体应用中,SJAl000采用了两种工作方式:Basic CAN方式(PCA82C200兼容方式)和PeliCAN方式(扩展特性方式),这是SJAl000实现其兼容性的基础。SJAl000的两种工作方式是通过时钟分频寄存器中的CAN方式位来选择的,其中上电复位的默认工作方式是Basic CAN方式。在PeliCAN方式下,SJAl000有一个重新设计的含很多新功能的寄存器组。SJAl000包含PCA82C200中的所有位,同时增加了一些新的功能位。PeliCAN方式支持CAN2.0B协议规定的所有功能(29位的标识符)[2]。

3、SAJ1000与Atmega128单片机接口技术的实现   

在SJA1000的主要特性介绍中,提到其支持多种微处理器接口,在具体设计中,我们主要研究了其与Atmega 128单片机的接口,设计了用于CAN通信的最小单片机系统(以下简称CAN通信系统)接口方式如图3所示。系统的通信部分主要有Atmega 128单片机、SJA1000CAN控制器、光电隔离部分和收发芯片组成。

  

图3 单片机与SJA1000接口框图   

TJA1050是PHILIPS公司生产的、用以替代82C250的高速CAN总线驱动器,是CAN控制器和物理总线之间的接口,可以提供向总线的差动发送能力和对CAN控制器的差动接收能力,其与ISO/DIS 11898标准完全兼容[3]。

光电隔离部分是为了增强CAN总线节点的抗干扰能力,不过,应该特别说明的一点是,光电耦合部分电路所采用的两个电源必须完全隔离,否则采用光电耦合也就失去了意义。电源的完全隔离采用小功率电源隔离模块实现。这部分虽然增加了接口电路的复杂性,但是却提高了节点的稳定性和安全性。

4、CAN结点通信软件的设计   

SJA1000是I/O设备基于内存编址的微控制器,双设备独立操作通过像RAM一样的片内寄存器修正来实现。因此CAN总线通信部分编程主要就是对SJAl000的片内寄存器的读写操作。通信部分软件设计总体上可以划分为3大模块:总线初始化、数据帧的接收和发送、总线出错和异常处理。

4.1 CAN通信初始化

  

图4 CAN初始化程序   

其主要是设置CAN的通信参数。需要初始化的寄存器有:总线定时寄存器0、总线定时寄存器1、输出控制寄存器、接收代码寄存器、接收屏蔽寄存器等等。需要注意的是,只有当控制寄存器中的复位要求位置为高时,这些寄存器才可被访问。因此

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

网站地图

Top