您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 电动汽车用CAN通信网络协议设计及实现
电动汽车用CAN通信网络协议设计及实现主要内容1.CAN产生背景及基本概述2.CAN总线系统构成3.硬件设计4.软件设计5.预算1.1CAN产生背景为了解决由汽车内部大量传感器、执行器等电子器件的应用所导致的线束问题,及各个电子器件之间数据交换问题。德国Bosch公司于20世纪80年代提出了CAN总线CAN总线。1.2CAN特点具有通信速率高、可靠性好、抗干扰能力强、性价比较高等优点,目前不仅应用于汽车电子,还广泛应用于航空、轮船、工业控制、医疗器械以及建筑、自动化设备等诸多领域。1.3CAN分层结构•CAN主要分为数据链路层和物理层。我们主要完成的协议是数据链路层的协议1.4CAN报文的帧结构1.仲裁场:标准帧的仲裁场由11位标识符(Identifier)RTR位(远程发送请求位)与组成。仲裁场最主要的作用通过标识符确定报文的优先权,为报文发送提供仲裁。2.数据场(DateField):数据场由数据帧里需要发送的数据组成,数据长度可以为0~8个字节。1.5CAN优点•网络各节点间的数据通信实时性强•缩短了开发周期,已形成国际标准•节点在错误严重的情况下具有自动退出总线的功能•通信速率高、容易实现、且性价比高•数据通信具有突出的可靠性、实时性和灵活性•非破坏性总线优先级仲裁•报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息2.1CAN总线节点构成总线收发器总线控制器PC/微处理器系统控制算法传感器/执行器接口CAN总线关键部分:CAN网络控制器和CAN总线收发器,他们实现CAN总线的物理层和数据链路层的协议2.2CAN总线拓扑构成节点三节点四节点一节点二我们采用总线拓扑的结构,其网络实现比较容易,成本也比较低3.1课题所需硬件本着器件通用和常用的原则,这里选用SJA1000与AT89C51芯片设计一种具有通用性的系统。AT89C51具有64KB的寻址空间,本身不带CAN控制器,所以要实现与CAN总线之间的通信需外加CAN控制器和CAN驱动器。在本设计中采用SJAl000型CAN总线通信控制器和PCA82C251型总线驱动器。为了增强节点抗干扰能力,CAN控制器和CAN驱动器之间连接高速光耦器TLP113。为了实现AT89C51与PC机串行通信,用转换芯片MAX232用于TTL电平与RS232电平的相互转换,可以将接收的数据显示在PC上。SJAl000的ADO-AD7连接到AT89C51的P0口,CS连接到AT89C51的P2.7。P2.7为0时,CPU片外存储器地址可选中SJA1000,CPU通过这些地址可对SJAl000执行相应的读/写操作。SJAl000的RD、WR、ALE分别与AT89C51的相应引脚相连,SJAl000的INT接AT89C51的INTl,AT89C51也可通过中断方式访问SJA1000。3.2SJA1000介绍SJA1000是一种独立控制器,用于移动目标和一般工业环境中的区域网络控制(CAN)。它是PHILIPS半导体PCA82C200CAN控制器的替代产品。内部结构图如下图所示:3.3PCA82C251介绍PCA82C251收发器,优点很多,例如:具有热保护,斜率控制、减少RFI,待机模式电流低,对电磁干扰有高的抗干扰性,速度可达1M等,内部电路原理图如下:3.4TLP113光电耦合介绍TLP113绝缘式线性光耦合器是高速光电耦合器,输入极性是直流电源、输出电流25mA、隔离电压2500Vrms、集电极开路,可有效增强CAN总线抗干扰能力。实物图如下图所示:3.5节点电路原理图4.1网络通信规则及实现CAN总线为多主工作方式,网络上任一节点均可在任意时刻主动向网络上其他节点发送信息而不分主从,通信方式灵活。为禁止总线冲突,CAN总线采用非破坏性总线仲裁技术,根据需要将各个节点设定为不同的优先级,并以标识符ID标定,其值越小,优先级越高。总线的节点之间可以进行实时相互通信,当1个节点需要接收另1个节点的数据时,只需把其代码寄存器的内容设置成和另1节点的标识符一致即可。如果对于标识符和其代码寄存器的内容设置不一致,则节点所发的数据不予理会。系统软件的设计思想是系统上电后首先对AT89C51和SJAl000进行初始化,以确定工作主频、波特率、输出特性等。其中任一智能节点可以利用查询方式通过SJAl000从CAN总线上获取所需的数据并把该数据传送到PC上显示,同时可以向总线上发送数据以供其他智能节点接收显示。4.2初始化程序流程图节点的初始化主要是指系统上电后对微处理器和CAN控制器进行的初始化,以确定工作主频、波特率和输出特性等,这里只介绍下对SJA1000的初始化。首先要将工作方式置为复位模式,之后要设置验收滤波方式、验收屏蔽寄存器、验收代码寄存器、波特率参数和中断允许寄存器等。需要指出,对于同一个系统,定时寄存器的内容必须相同,也就是同步跳转宽度和通信波特率的大小,否则无法通信。具体的程序流程图:4.3发送程序流程图发送程序负责节点的报文发送。只需将待发送的数据按特定格式组成一帧报文,送入SJA1000发送缓存区中,并将SJA1000的命令寄存器发送请求标志位置位。具体的程序流程图:4.4接收程序流程图报文接收是由SJA1000控制器独立完成的,其接收的报文经验收滤波后,暂存在接收缓存器中。报文接收采用中断接收方式或查询接收方式,本文采用中断接收方式,具体的程序流程图:5硬件预算结束语经过学习和研究,电动汽车用CAN总线通信网络设计中,核心问题和难点是实现各节点按照设计要求实现实时通信。由于在研究生一年级课程比较多,时间和精力有限,我们小组决定只能做这么多,即实现多个节点间的通信。希望这今后的时间里,还能够有机会继续对电动汽车用CAN总线通信网络设计进行深入研究和学习。
本文标题:电动汽车用CAN通信网络协议设计及实现
链接地址:https://www.777doc.com/doc-3507891 .html