当前位置:文档之家› CAN总线通信接口及程序设计毕业设计

CAN总线通信接口及程序设计毕业设计

机电工程学院毕业设计说明书设计题目: CAN总线通信接口及程序设计2012 年 5 月21 日目次1 CAN总线介绍1.1 CAN总线的发展背景随着汽车产业的发展,需要一种更利于信息数据传输交换的通信协议。

汽车中的各种电子控制系统需要较高的技术支持,而随着汽车的发展,汽车是否安全、是否便利、成本是否低、是否舒适都已成为人们首要考虑的事情。

但是传统的汽车控制技术已不足以满足人们越来越高的要求,也已不适以汽车的发展方向。

20世纪80年代,德国Bosch公司着手研究用于汽车产业的新的通信协议及控制方法,并首先提出了CAN总线控制系统。

这一崭新的网络协议使得汽车产业得到了飞速的发展。

CAN总线最明显的特点是最大程度地减少了汽车控制系统中的线束的数量及长度,另外还大大提高了系统控制的可靠性和稳定性。

在没有CAN总线协议之前,一辆汽车中用于各种控制通信的线束的总长度达3公里之长,严重影响了汽车的通信速度和通信精度。

并且还使汽车的整体结构繁冗复杂,可靠性低,成本高,难以维护。

因此CAN总线的出现无疑具有重大的意义和作用。

作为一种新的网络通信协议,CAN总线不仅减少了汽车中线束的长度,还提高了汽车的整体性能,极大的促进了汽车产业的发展。

CAN总线刚被提出的时候,仅仅应用于汽车产业上,但CAN总线通信协议的性能和可靠性经过多年的检验,已被应用于越来越多的产业,比如航空、船舶、机床等产业设备方面。

仅仅二十多年的发展,CAN总线便已成为自动化领域技术的潮流。

CAN总线是串行通信网络。

传统运用的是基于R线构建分布式控制系统,这种传统的控制系统是基于通信节点的地址编码的,因此其结构复杂,直接导致系统的通信效率不高,并且控制的可靠性能低。

CAN总线通过每个网络节点进行数据通信,每个节点可以互相收发数据,CAN总线协议对通信数据编码,不对节点地址编码,使各个节点可以同时接收到相同的数据,大大增强了数据通信的实时控制及传输性能。

另一方面CAN总线使用起来非常方便。

CAN总线的结构十分简单,仅有2根线(CANH和CANL)和外部设备相连,但CAN总线的内部却有非常复杂和智能的通信模块,可以方便快捷准确无误的进行数据的自由通信。

1.2 CAN总线的通信层介绍CAN总线是串行通信协议,可以实现各个节点在数据传输时的自由通信及互不影响,因此CAN总线应具有标准的通信协议,这样可以使CAN总线更加方便的应用于控制系统中。

为了实现这样的设计理念,根据ISO/OSI参考模型,CAN总线包含ISO/OSI参考模型中的数据链路层(Data Link Layer)和物理层(Physical Layer)。

(1)数据链路层数据链路层连接硬件和软件的结合层,主要作用是通过各种数据协议而实现数据的传输。

CAN总线中的数据链路层又可以分为两个子层:逻辑链路控制子层(LLC)和介质方向控制子层(MAC)。

逻辑链路控制子层是数据链路层的核心层,它为远程数据的传输提供服务,控制数据的逻辑传输。

(2)物理层物理层是OSI参考模型中的最底层,主要作用是规定节点电气方面的特征。

为了实现数据的自由收发,在同一网络中的物理层应该是处处一样的。

1.3 CAN总线报文帧格式CAN总线上的数据信息都是以报文的形式发送的。

报文的格式并不唯一,而是有几种不同的格式,但是报文的长度却受到电气及内部控制的限制。

CAN 总线的报文传输也就是帧的传输,帧是CAN总线传送数据单位。

帧也有不同的格式,主要区别在于标识符长度不同。

在CAN2.0A协议下帧具有11位标识符,叫作标准帧;而在最新的CAN2.0B协议下具有29位标识符的帧叫作扩展帧。

为了实现数据的传输和控制,CAN总线报文传输具有4种不同类型的帧结构:数据帧、远程帧、错误帧、过载帧。

其中数据帧的结构图如图1-1所示。

详细的CAN 总线报文帧结构可以参阅参考资料[6].1.4 CAN 总线的优势CAN 总线已经成为现在控制领域最流行的控制方案,只所以从CAN 总线诞生以来仅仅二十年间便已成为公认的最好的工业生产控制方案,是因为CAN 总线相比其他控制总线在通信能力和速度方面具有明显的优势。

虽然现在还有很多基于R 线组建的工业控制系统,但它不具备CAN 总线的诸多优点。

相比于其他的控制系统,CAN 的优势在于:(1)CAN 总线是多主工作方式,CAN 总线舍弃了传统控制系统中站地址编码方法,而是对通信的数据进行编码,也就是说,CAN 总线的节点是根据传输数据信息确定是否接收数据。

这样可以简化控制系统。

从面增强了CAN 总线网络的数据通信能力,也提高了系统的可靠性。

(2)CAN 总线的多个节点同时向总线上发送数据时,不会致使总线出现短路现象。

因为CAN 总线是通过CAN 收发器芯片的两个输出端CANH 和CANL 和物理总线连在一起的,但CANH 端只能是高电平或者悬空状态,CANL 只能是低电平或者悬空状态。

这样就使CAN 节点同时向总线发送数据时,不会短路。

另外,CAN 总线还有节点出现严重错误时自动关闭节点功能,以免其他节点受到影响。

数据帧 帧起始仲裁域控制域数据域CRC 域应答域帧结尾帧间空间 帧间空间图1-1 数据帧的结构2 CAN总线通信芯片简述2.1 CAN总线控制器SJA1000简介CAN总线只有OSI参考模式中的数据链路层和物理层,但要实现这两层的功能,必须制定相应的协议和控制规则。

通过CAN总线控制器可以实现对CAN 总线的控制及数据通信。

CAN总线控制器是一块可编程的芯片,它与微处理器相接。

通过对CAN总线控制器的编程,实现数据的通信。

现在有许多类型的CAN控制器芯片,但工业上的控制系统最常用的还是SJA1000 CAN控制器,下面简要介绍SJA1000 CAN控制器。

SJA1000是Philips半导体公司研发的一种新型的CAN控制器,也是该公司PCA82C200 CAN控制器的替代产品。

SJA1000中还加入了一种新的操作模式,PeliCAN模式,相比于此前的BasicCAN模式,这种模式支持最新的CAN2.0B 协议。

为了使SJA1000兼容于PCA82C200芯片,SJA1000和PCA82C200相兼容,即SJA1000 CAN控制器既有BasicCAN模式也有PeliCAN模式。

SJA1000的基本特性有:扩展的64字节接收缓冲器、同时支持CAN2.0A和CAN2.0B协议、同时支持11位和29位标识码、通信速率可以达到1Mbps。

另外,PeliCAN模式下还有一些新的功能,如扩展到8个字节的验收滤波器、自检测等功能。

对于SJA1000工作在BasicCAN模式还是工作在PeliCAN模式,即工作方式的选择是由时钟分频寄存器(CDR)中的CAN模式位控制的。

通电默认的工作方式是BAsicCAN模式。

验收滤波器(Acceptance Filter)是SJA1000中的核心寄存器,利用它,可以接收到预定中的数据。

验收滤波器又分为验收代码寄存器(ACR)和验收屏蔽寄存器(AMR)。

SJA1000中有4个ACR(ACR0、ACR1、ACR2、ACR3)和4个AMR(AMR0、AMR1、AMR2、AMR3)。

标识符也由原来的11位扩展到29位,而滤波方式也有两种,单滤波模式和双滤波模式(由模式寄存器中的AFM位决定)。

需要接收的报文的标识符存于验收代码寄存器中,相应的屏蔽位存放在验收屏蔽寄存器中。

只有在发送的报文的标识符与节点的标识符和AMR的相应位一致的情况下,节点才会接收报文。

下面主要介绍双滤波模式下扩展帧格式的验收滤波器的设置。

双滤波模式,顾名思义,就是有两个滤波器,滤波器1由ACR0、ACR1和AMR0、AMR1组成;滤波器2由ACR2、ACR3和AMR2、AMR3组成。

接收报文时报文中的标识符信息要与两个滤波器中的值比较,但并不是两个滤波器都必须通过才接收报文,而是只要有一个滤波器通过验收就可以接收报文了。

2.3 PCA82C250 CAN收发器介绍CAN总线收发器是CAN控制器与物理总线之间的接口器件,它对总线提供差动发送和接收数据功能。

CAN总线收发器也决定着系统的安全性、可靠性和兼容性的优劣。

PCA82C250具有许多优越的性能。

在本次设计中PCA82C250仅仅用到了短路保护功能。

PCA82C250通过对引脚Rs的不同接法可以得到3种不同的工作模式:高速模式、斜率控制模式和待机模式。

高速模式时VRs<0.3Vcc,VRs与地之间接1个0-1.8KΩ的电阻可以使PCA82C250工作在高速模式;斜率控制模式时与地之间接1个16.5KΩ-140KΩ的电阻;待机模式时Rs保持高电平,VRs要大于0.75Vcc。

3 CAN总线的通信设计及方案3.1 CAN总线通信的技术要求及目标本次设计主要是利用51单片机和CAN芯片SJA1000实现点对点的相互通信。

SJA1000是CAN控制器,主要用于一般的区域网络控制。

51单片机与SJA1000相连,SJA1000内的数据存储地址相当于51单片机的片外存储器,利用51单片机的片外寻址,对SJA1000内的各个寄存器进行读写,进而控制SJA1000实现CAN总线的点对点的通信。

另外,还需要接入CAN收发器82C250来实现CAN总线的发送和接收功能。

本次设计的目标是将51单片机、CAN控制器SJA1000和CAN收发器82C250连在一起,编写程序,实现点对点通信的收发。

3.2 CAN总线通信接口方案CAN总线的硬件电路的节口非常简单,只需要微处理器和CAN控制器及CAN收发器便可构成。

CAN总线通信接口通常情况下有2种实现方式:一种是由微处理器、独立的CAN控制器和CAN收发器组成的硬件电路;另一种是集成CAN控制器的单片机和CAN收发器构成的硬件电路。

CAN总线在经过二十多年的发展,已经产生了许多类型的CAN总线协议的芯片,其中有独立的CAN 控制器芯片,也有集成CAN控制器的微处理器芯片。

独立的CAN控制器有Philips公司的PCA82C200、SJA1000,Intel公司的82526、82527等。

集成CAN 控制器的微处理器也有很多,比如Philips公司的P8XC592/598等。

常用的CAN 收发器有Philips公司的PCA82C250等。

方案1:由51单片机、SJA1000 CAN控制器和PCA82C250 CAN收发器组成的CAN通信节点采用AT89C51、SJA1000 CAN控制器和PCA82C250 CAN收发器设计CAN 通信节点。

这种方案的设计思路很简单,控制过程也比较方便。

通过AT89C51单片机编程控制SJA1000的初始化及收发数据。

SJA1000负责CAN总线上的数据的处理,PCA82C250收发器负责传递数据。

相关主题