课程设计-CAN总线数据通信系统的设计(1)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

摘要专门运用于汽车上的CAN(ControllerAreaNetwork)总线是当今自动化领域技术发展的热点之一,是被被誉为自动化领域的计算机局域网的现场总线中的一类。目前,汽车行业发展前景非常可观,因而CAN总线控制系统也成为汽车学术研究的热点和重点。概括地说,CAN总线为分布式、离散式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持和传输渠道。面对日益增加的网络形势,汽车制造商决定对车载电脑的通信方式进行统一和实施标准化。而CAN总线,则是他们选择的一种网络形式,这是一种多主方式的串行通讯总线,数据通信实时性强。此种网络不仅可以降低陈本,还可以通过相对应的诊断逻辑使维修简单化,从而优化多路传输系统维护和保养。与其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯。系统主要由四部分所构成:PC机、微控制器89C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。微处理器89C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了CAN总线的接口,并且编写了SJA1000的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等基本操作;利用各基本操作,完成了对SJA1000的初始化,并且实现了数据发送和接收。信息工程学院07应用电子技术汽车CAN总线课程设计1第1章汽车CAN总线设计原理与方案1.1设计目的与要求基于CAN总线设计关于汽车车身各参数的控制系统,如(本组所选择的):车门的关紧检测记录、车内外温度的检测记录、车身高度的监控、汽车行驶速度的检测记录(、车窗、安全带、车灯、雨刷、车高、车速)。通过接口电路实现单片机系统和CAN总线的联接,并通过单片机编写接口芯片的驱动程序,从而实现各子系统(各传感器)的自动监控或发出控制指令。通过CAN总线,实现不同模块之间的数据通讯,CPU控制第一个模块发送11帧数据,第二个模块收到这帧数据并送至另一个CPU的内部存储器。1.2CAN总线介绍CAN全称为“ControllerAreaNetwork”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如发动机管理、系统变速箱控制器、仪表装备中,均嵌入CAN控制装置。一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如当使用PhilipsPCA82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易,另外硬件的错误检定特性也增强了CAN的抗电磁干扰能力。CAN是一种多主方式的串行通讯总线。基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN仍可提供高达50Kbit/s的数据传输速率。由于CAN总线具有很高的实时性能,因此CAN已经在汽车工业、航空工业、工业控制、信息工程学院07应用电子技术汽车CAN总线课程设计2安全防护等领域中得到了广泛应用。1.3设计方案硬件设计框图如下图所示硬件设计框图1.3.1硬件设计方案CAN总线接口电路的构成主要由CAN通信控制器SJA1000、高速光耦6N137和CAN总线驱动器82C250组成。SJA1000作为CAN总线协议转换的控制器。它内建BASICCAN协议,并提供对CAN2.OB协议的支持。通过对片内寄存器的读、写操作,主控制器单片机能够设置CAN总线通信模式,实现数据的发送与接收。SJA1000在逻辑上实现了传输数据的编码和解码,若要与物理线连接,还必须借助总线驱动器82C250,以增CAN总线的差动发送和接收驱动能力。为了增强CAN总线节点的抗干扰能力,防止线路间串扰,SJA1000的TX0和RX0并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后再与82C250相连;另外,CAN总线驱动器采用带隔离的DC/DC模块单独供电,实现了通信控制器与CAN总线的隔离,提高系统的可靠性。图2给出了CAN总线系统硬件接口电路原理图。这里我们采PCA82C250作为驱动收发器,它是CAN控制器和物理传输线路之问的接口。它们可以用高达1Mb/s的位速率实现在两条差动电压总线电缆上的数据传输。82C250的CANH和CANL引脚各自通过一热敏电阻与CAN总线相连,当过流时电阻发热阻值变大,保护82C250免受过流的冲击。CANH信息工程学院07应用电子技术汽车CAN总线课程设计3和CANL与地之间并联两个小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。RS23接口电路主要用于主控制器单片机与管理层中央服务器PC的双向数据传送。由于采用了标准的RS232串行通信,结构简单、成本低。CAN总线系统电路主要由四部分所构成:微控制器89C51单片机作为CPU,CAN控制器SJA1000,CAN总线收发器82C250和高速光电耦合器6N137微处理器。89C51负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。SJAI000的AD0~AD7连接89C51的P0口,CS连接到的P2.0,.0为0的CPU片外存贮器地址可选中SJA1000CP通过这些地址可对SJA1000的读写操作。SJA10000的RD、WR、ALE分别与89C51应引脚相连。INT接89C51的INT0,89C51也可通过中断方式访问SJA1000。SJA1000和82C250分别使用物理隔离的电源供电,是为了增强系统的抗干扰能力和可靠性。控制器的其它外围电路还有电源模块、非易失性EEPROM存储器、时钟保持电路、LED指示灯和看门狗等。SJA1000与单片机的接口电路如图1-3所示。1.3.2软件设计方案CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。熟悉这三部分程序的设计就能编写出利用CAN总线进行通信的一般应用程序。当然要将CAN总线应用于通信任务比较复杂的系统中,还需详细了解有关CAN总线错误处理、总线脱离处理、接收滤波处理、波特率参数设置和自动检测以及CAN总线通信距离和节点数的计算等方面的内容。SJA1000的初始化只有在复位模式下才可以进行,初始化主要包括工信息工程学院07应用电子技术汽车CAN总线课程设计4作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后启动SJA1000发送即可。接收子程序负责节点报文的接收以及其它情况处理。接收子程序比发送子程序要复杂一些,因为在处理接收报文的过程中,同时要对诸如总线脱离、错误报警、接收溢出等情况进行处理。SJA1000报文的接收主要有两种方式:中断接收方式和查询接收方式,两种接收方式编程的思路基本相同,如果对通信的实时性要求不是很强,一般采用查询接收方式。第二章CAN总线协议定义在各种现场总线中,CAN总线以其结构简单、应用灵活方便而在工业过程控制和车辆中得到广泛应用。在CAN的技术规范中,规定了CAN分为数据链路层和物理层两层,在设计通信软件时,必须先根据需求设计合适的CAN总线通信协议,才能完成数据准确可靠的传送。1、CAN的帧结构和功能位的定义CAN数据帻结构数据帧是携带数据由发送器至接收器的帧,是CAN的4种帧格式之一,这4种帧格式分别是数据帧、远程帧、出错帧和超载帧,其中数据帧结构如下图所示。信息工程学院07应用电子技术汽车CAN总线课程设计5数据帧的主要结构有:(1)幢起始:标志数据帧的起始.它由单个“显性”构成。在总线空闲时发送,在总线上告产生同步作用。(2)仲裁场:由l1位标识,即ID10~ID0l和远程发送请求位RTR组成,RTR位为显位表示数据帧.隐位表示远程帧标识符由高至低敬序发送,且前7位(ID10~ID4)不能全为隐性位,标识符用于提供关于传送报文和总线访问的优先权信息,其数值越小,表示优先权越高,发生冲突时优先发送;(3)控制场:由6位构成,前2位为保留位,为显性,最后4位为数据长度码;(DLC),表示数据场中数据的字节数,必频在O~8范围内变化;(4)数据场:由梭发造毂据蛆成,数目为控18|I函中决定的0~8个字节,第一个字节最高位首先被发送;(5)RC场:包括CRC(循环冗案码枝验)序列(15位)和CRC界定符(1个隐位),用于帧校验;(6)ACK墙:由应替间隙和应替界定符组成,共两位;(7)帧结束:由7位隐性位组成,此期间无位填充2、CAN总线网络中各节点的功能及网络通信时需要传输的信息类型本系统主要包括以下几种信息类型:(1)紧急信息:用来传输最重要的信息,优先级最高。(2)广播信息:向总线上挂接的所有节点发送的信息。(3)命令信息:控制节点向执行节点发送的信息。如中央控制器节点向前、后车灯节点发送的控制命令。信息工程学院07应用电子技术汽车CAN总线课程设计6(4)状态信息:执行节点接收到命令后,向控制节点反馈的执行结果。(5)数据信息:负责采集数据的节点发送的信息。如发动机信息采集节点发送的信息。3、标识符的分配方案,定义帧格式标识符的分配方案首先要满足节点以及报文对优先级的要求,同时尽可能地利用标识符的空间加载有关的信息,减少它们在数据域内占用的空间。此外还需要注意标识符的格式要为消息滤波提供便利。在系统中,采用了具有29位标识符的扩展帧格式,在源地址中地址单元的具体分配如下:(1)源地址中信息类型标识(ID28~ID23)000001——紧急信息000010——广播信息000100——命令信息001000——状态信息010000——数据信息(2)源地址中发送节点地址标识(ID.22~ID.15)00000000——中央控制器节点00000001——车门车高节点00000010——后车灯节点00000100——前车灯节点00001000——空调节点00010000——发动机信息采集节点00100000——车辆行驶状态信息采集节点信息工程学院07应用电子技术汽车CAN总线课程设计7(3)源地址中报文功能标识(ID.14~ID.08)如果一个节点发送多帧报文,在报文信息类型相同的情况下,可以用报文功能标识来区分报文的优先级。(4)接收节点地址标识(ID.07~ID.01);4、拓扑的定义图如下:如上图所示,各节点通过CAN总线连接起来,为实现车身各参量的检测提供了一个整体的归一的平台。第3章硬件连接与说明2.1硬件连接单片机与CAN模块等外围器件的连接如图2-1所示。信息工程学院07应用电子技术汽车CAN总线课程设计8图2-1系统接口原理图2.1.1模块使用说明CAN总线模块由一个CAN总线控制器SJA1000和一个CAN收发器PCA82C250组成,它们共同构成一个CAN节点。模块的电源由接口挂箱上的接口插座提供。模块上的RESET、INT、TX0、RX0插孔分别对应于SJA1000芯片上的相应引脚。模块上带有上电复位电路,也可通过RESET插孔进行手动复位,只需在RESET上加上负脉冲。2.2CAN总线控制器SJA1000SJA1000是一种独立的CAN控制器,主要用于移动目标和一

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功