基于DSPACE的CAN总线通讯程序开发设计.docx
《基于DSPACE的CAN总线通讯程序开发设计.docx》由会员分享,可在线阅读,更多相关《基于DSPACE的CAN总线通讯程序开发设计.docx(35页珍藏版)》请在冰豆网上搜索。
基于DSPACE的CAN总线通讯程序开发设计
本科学生毕业设计
基于dSPACE的CAN总线
通讯程序开发
系部名称:
汽车与交通工程学院
专业班级:
车辆工程07-1班
学生姓名:
武中峰
指导教师:
王悦新
职称:
实验师
黑龙江工程学院
二○一一年六月
TheGraduationDesignforBachelor'sDegree
CANCommunicationProgramDevelopmentBasedondSPACE
Candidate:
WUZhong-feng
Specialty:
VehicleEngineering
Class:
07-1
Supervisor:
LecturerWANGYue-xin
HeilongjiangInstituteofTechnology
2011-06·Harbin
摘 要
随着现代汽车的日益发展,汽车电子设备不断增加,进而带来汽车综合控制系统中大量的控制信号需实时交换的问题,传统线束已远远不能满足这种要求,汽车局域网应运而生。
本文从研究汽车局域网入手,主要研究了国内外汽车控制器局域网的发展与现状,对当今国际汽车行业中应用最广的CAN总线原理和应用进行了深入研究与吸收。
并在研究中设计了采用CAN总线控制的门锁控制系统,制定了一套相应的可靠运行的协议。
通过试验验证,本研究门锁控制系统只需要两根信号线就可以实现数据的传输,使得传输线束大大简化,可靠性得到了提高,有效节约了线束安装空间和系统成本。
为提高汽车使用的便利性和行车的安全性,现代汽车越来越多地安装中控锁。
当驾驶员锁住其身边的车门时,其他车门也同时锁住。
驾驶员可通过门锁开关同时打开所有车门,也可单独打开某个车门。
当行车速度达到一定时,各个车门能自行锁上,防止乘员误操作车门把手而导致车门打开。
除在驾驶员身边车门以外,还在其他门设置单独的弹簧锁开关,可独立地控制一个车门的打开和锁住。
dSPACE是基于MATLAB/Simulink仿真系统开发的软硬件实时控制工作平台,利用它可缩短系统的开发时间,节约开发费用。
本文利用该系统开发基于CAN通信的中央门锁控制系统。
可以作为CAN总线在汽车上应用的有益探索,为下一步实现多个模块基于CAN总线的通讯,及在实验室实现混和动力汽车发动机、ABS、电机、电池系统等控制模块之间的通讯提供思路。
关键词:
dSPACE;CAN;汽车中控门锁;控制系统;通信程序
ABSTRACT
Alongwiththedevelopmentofmodernautomobile,automobileelectronicequipmentincreasesgradually,Thenbringalargenumberofcontrollingsignalsamongautomobilescomprehensivecontrolsystemneedreal-timeexchangeproblem,Traditionalharnesscannotsatisfythisrequirement,AutoLANcomeintobeing.
ThispaperstartstudyingfromthecarLAN,ThemainresearchisdevelopmentsituationofcarcontrollerLANatdomesticandexotic,DeeplystudyandabsorbapplicationprincipleofCANbuswhichiswidelyusedtoday'sinternationalautomobileindustry,Andinthestudy,DesigntheCANbusdoorlockscontrolsystem,asetofreliableoperatingagreementhasbeendeveloped.Throughtheexperimenttestifying,Thisdoorlocksystemonlyneedtwosignallinescanrealizethedatacommunication,Makingcommunicationwireharnessgreatlysimplify,improvingreliability,efficientlysaveharnessinstallationspaceandsystemcost.Inordertoimprovethecar’ssecurityoftheconvenienceofdriving,moreandmorehyundaicarsinstallcentrallock.Whendriverlockthedoorsadjacenttohim,othersidedooralsolock.Thedrivercanopenallthedoorsthroughthedoorlockswitch,alsocanopenalonelydoor.Whendrivingspeedreachesacertainvalue,allthedoorslockbyitself,preventpassengererroroperatingthedoorhandle,causethedooropen.Inadditiontothedriversidedoor,Settingsinglelatchswitchinotherdoor,CanindependentlycontrolAdooropenandlock.DSPACEisbasedonMATLAB/SIMULINKsimulationsystem,isdevelopmentplatformofsoftwareandhardwarereal-timecontrol,UseitcanshortenSystemdevelopmenttime,Savingdevelopmentcosts.
ByusingthissystemdevelopmentcentraldoorlockscontrolsystemBasedonCANcommunication.Canserveastheusefulexplorationthatusedcanbusincar,ForthenextstepimplementmultiplemodulecommunicationsbasedonCANbus,AndprovidethoughtsinthelaboratoryforHEVengine,ABS,motorandbatterysystemscontrolmodulecommunications.
Keywords:
dSPACE;CAN;Carcentrallocks;Controlsystem;Communicationprogram
2.10本章小结15
4.4本章小结32
本科期间发表论文49
第1章绪论
1.1前言
随着电子技术、控制技术、计算机技术等的进步,人们对汽车的动力性、排放性、经济性和安全性等方面的性能提出越来越高的要求,汽车电子化成为了一个必然的趋势。
汽车电子化在提高汽车各方面性能的同时,也带来了一系列的问题,最主要的就是线路复杂化。
现代汽车中所使用的电子控制系统和通讯系统越来越多,如发动机电控系统、自动变速器控制系统、防抱死制动系统(ABS)、自动巡航系统(ACC)和车载多媒体系统等。
这些系统之间、系统和汽车的显示仪表之间、系统和汽车故障诊断系统之间均需要进行数据交换。
如此巨大的数据交换量如仍然采用传统数据交换的方法:
即用导线进行点对点的连接的传输方式将是难以想象的。
据统计如采用普通线缆,一个中级轿车就需要线索插头300个左右,插针总数将达到2000个左右,线索总长超过116km。
不但装配复杂而且故障率会很高。
因此用串行数据传输系统取而代之就成为必然的选择。
作为最早的应用领域,CAN总线在现代汽车上获得了广泛的应用。
目前全球各大汽车制造商在上世纪90年代后期研发的汽车(乘用车和商用车)都采用了CAN总线或者车中的部分零部件具有CAN总线通信功能。
而采用dSPACE仿真平台进行系统仿真的研究,也代表着国际上这方面的先进水平。
作为一个全方位的计算机辅助设计平台,dSPACE拥有简单易用的代码生成及下载软件、试验工具软件,还拥有灵活性极强的硬件组合系统,具有其它仿真机所无可比拟的优越性。
利用dSPACE,可以把精力全神贯注于控制方案的构思,可以大大缩短开发周期。
本文将利用dSPACE系统针对CAN总线系统进行通信开发,在计算机上实现CAN总线系统的通讯仿真。
1.2课题研究背景
随着全数字式现场总线为代表的现场控制仪表、设备大量应用,使得繁琐的汽车现场连线被单一简洁的现场总线网络所代替。
CAN(ControllerAreaNetwork)数据总线就是一种极适于汽车环境的汽车局域网。
它是德国Bosch公司在80年代初为解决数据可靠交换而开发的一种串行数据通信总线。
在现代汽车设计中,CAN己经成为了必须采用的装置。
奔驰、宝马、大众、沃尔沃及雷诺汽车都将CAN总线作为控制联网的手段。
我国在汽车电子方面的研究起步较晚,对应用于汽车领域CAN协议的研究尚处于起步阶段。
鉴于CAN在现代汽车电子化进程中的重要作用,自主研制支持CAN规范的汽车电子产品,并使之尽快产业化,势在必行。
传统的汽车电子门锁采用点对点的方式与汽车车身的其它电子设备互联,伴随着汽车电子网络化的趋势,汽车电子门锁开始逐渐采用网络化的结构。
随着CAN总线技术在汽车上的大量使用,给汽车维修带来了极大的难度,国内汽车维修与教学行业急需掌握CAN总线维修技术。
1.3国内外研究现状及发展动态
1.CAN在国外的发展
控制器局域网CAN是80年代初博世公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种串行通信协议,经多次修订,于1991年9月形成技术规范2.0版本。
该版本包括2.0A和2.0B两部分两种格式。
其中2.0A给出了报文标准格式,2.0B给出了报文的标准和扩展
2.CAN在国内的发展
虽然CAN总线标准已推出很多年,但我国的汽车CAN总线技术起步较晚,在国内的应用开发还刚刚开始,本土汽车电子厂商在跟进之余己显示出“新势力”。
如浙江中科正方电子技术有限公司目前形成了以RS4、RS3、RS2为产品体系的汽车网络产品生产企业,涵盖了轿车、客车和卡车各领域,可以提供基于CAN技术的汽车网络产品。
但理想与现实之间总有差距,中国汽车电子厂商在基础的ECU开发方面还存在诸多缺失,开发车载网络ECU遭遇的是更深层次的考验,目前还没有这个实力帮助汽车制造商部署一个CAN网络。
据业内人士介绍,目前更多的还主要是开发支持CAN的车载设备,配合某种车型的CAN网络使自己的产品支持这种总线通信协议。
国内车载网络的现状是,在ECU中嵌入车载网络己做得不错,但与车载网络相关的工作还十分欠缺。
3.CAN技术的检测与维修传统的电气系统大多采用点对点的单一通信方式,相互之间少有联系,这样必然造成庞大的布线系统。
据统计,一辆采用传统布线方法的高档汽车中,其导线长度可达2000米,电气节点达1500个,而且该数字大约每十年增长1倍,从而加剧了粗大的线束与汽车有限的可用空间之间的矛盾。
一般情况下线束都安装在纵梁下等看不到的地方,一旦线束中出了问题,不仅查找相当麻烦,而且维修也很困难。
另外,在汽车中增加新的用电设备对线束的改动很大,一般只能从外面加线,从而使线路更凌乱。
所以,无论从材料成本还是工作效率看,传统布线方法都将不能适应汽车的发展。
由于CAN技术在汽车上的应用,而掌握此项技术的汽车维修人员很少,所以,对CAN技术的维修技术要加大研究。
1.4本文主要研究内容
1.本研究的目的
本论文利用现场总线技术的目的是为了实现汽车控制部件的智能化和汽车控制系统的网络化提供了一个有效的途径和方法。
智能化是采用了微处理器嵌入技术,对汽车电控系统中的各个测控部件进行数字化改造,使之在成为一个智能化的仪表或执行器的同时具备网络通信能力,从而为汽车网络化控制做好准备。
网络化就是在智能化和节点化的基础上,采用属于网络技术的现场总线将所有汽车测控部件连接起来,在网络测控软件的支持下形成一个有机的网络控制系统。
本研究的经济意义在于废除主电缆线束系统,从而有利于降低系统的综合成本,并以提高技术档次保障售价;其技术意义是为汽车性能的高档次提供技术平台,形成新产品和技术储备。
2.本论文主要工作
本论文的主要任务之一就是通过查阅大量的资料,学习中控门锁的结构与工作原理,了解汽车网络技术的发展和趋势,包括在汽车中常用的各种网络协议,并深入理解CAN协议,为具体应用奠定良好的理论基础。
另一个主要任务是采用dSPACE标准组件系统作为仿真机,建立数字控制系统,开发针对CAN总线的通讯系统的汽车中控门锁系统,并通过ControlDesk综合试验与测试软件,进行实时仿真测试,实现CAN模块之间的信息通讯,完成基于dSPACE的CAN总线通信的汽车中央控制门锁系统。
为下一步实现多个模块基于CAN总线的通讯,及在实验室实现混和动力汽车发动机、ABS、电机、电池系统等控制模块之间的通讯提供思路。
第2章CAN总线的原理和dSPACE介绍
2.1CAN的性能特点
CAN属于总线式串行通信网络,由于其采用了许多新技术及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。
其特点可概括为:
(l)CAN是到目前为止唯一具有国际标准且成本较低的现场总线;
(2)CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。
利用这一特点可方便地构成多机备份系统;
(3)在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134μs内得到传输;
(4)CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较抵的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。
尤其是在网络负载很重的情况下也不会出现网络瘫痪情况;
(5)CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的”调度”;
(6)CAN的直接通信距离最远可达10km(速率5KbPs以下);通信速率最高可达1MbPs(此时通信距离最长为40m);
(7)CAN上的节点数主要取决于总线驱动电路,目前可达110个。
在CAN2.0A标准帧报文中标识符有11位,而在CAN2.0B扩展帧报文中标识符有29位,使节点的个数几乎不受限制;
(8)报文采用短帧结构,传输时间短,受干扰概率低,使数据的出错率降低;
(9)CAN的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果;
(10)CAN的通信介质可选择双绞线、同轴电缆或光纤,选择十分灵活;
(11)CAN节点在错误严重的情况下,具有自动关闭输出的功能,以使总线上其他节点的操作不受影响,而且发送的信息遭到破坏后,可以自动重发。
2.2CAN协议
CAN技术规范2.0A和2.0B以及国际标准15011898是设计CAN应用系统的基本依据,也是应用设计的基本规范。
2.3CAN协议网络分层模型
在150提出的051模型中,网络被分成七个不同的层次,这些层次描述了在不同的传输阶段,数据信息被如何处理。
051七层结构及各层功能,如图2.1所示。
OSI层次
OSI层次
层次功能
应用层
应用层
提供到底层的用户接口
表示层
表示层
提供数据格式化和代码转换
会话层
会话层
处理进程之间的协调
传输层
传输层
负责数据传输控制
网络层
网络层
在相邻节点间转发分组直到目的站
数据链路层
数据链路层
提供计算机与网络之间可靠的数据传输
物理层
物理层
在计算机和网络之间传送位流
物理传输介质
图2.1OSI参考模型层次结构
值得注意的是051参考模型只是网络结构设计的向导,但不是任何使用网络的最佳选择。
由于CAN协议用于特定的工业控制现场,要求网络结构简洁、价格低廉,通常还要求数据传输速度快,满足实时控制需要。
OSI模型显得于庞大,数据处理耗时太大,不适合于工业现场实时控制,所以CAN协议只采用了三层网络结构。
CAN技术规范2.0A中,网络被划分为对象层、传输层和物理层三层。
CAN节点的分层结构和功能如图1.2所示。
对象层和传输层包括了由150/051模型定义的数据链路层的所有服务和功能,按150/051参考模型层次定义,这两层应被划分为数据链路层范围。
对象层功能包括:
查找被发送的报文;确定实际要使用的传输层接收哪一个报文;为应用层相关硬件提供接口。
在定义对象处理时,存在许多灵活性。
传输层是CAN协议的核心,其功能包括:
控制帧结构、执行仲裁、错误检测、出错标定和故障界定。
总线上何时开始发送新报文及何时开始接受报文,都在传输层确定。
位定时的一些普通功能也被作为传输层的一部分。
传输层特性不存在修改的灵活性。
物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。
当然,在一个网络内,物理层对于所有节点必须是相同的。
尽管如此,在选择物理层时还是存在很大的灵活性。
2.0A技术规范中没有定义物理层,以便在具体应用中对传输介质和信号电平进行优化。
CAN协议技术规范2.0B,严格遵循150/051参考模型。
将CAN分为数据链路层和物理层,其中数据链路层又被分为逻辑链路控制(LLC:
LogicalLinkControl)子层和媒体访问控制(MAC:
MediumAccessControl)子层,这两层的功能分别与2.0A中的目标层以及传输层功能相对应。
应用层
对象层
—消息滤波
—消息和状态处理
传输层
—故障界定
—错误检测和标定
—报文效验
—应答
—仲裁
—报文分帧
—传输速率和定时
物理层
—信号电平和位表示
—传输媒体
图2.2CAN节点的分层结构
LLC子层完成下列功能:
为远程数据请求以及数据传输提供服务,确认由LLC子层接收的报文实际已经被接收,以及为恢复管理和超载处理提供手段。
MAC子层是CAN协议的核心,主要定义传输协议,包括报文帧格式、仲裁方式、应答报文、错误检测、出错标定和故障限制等,它把接收到的报文提供给LLC子层,并接收来自LLC子层的报文。
MAC子层可响应报文帧、仲裁、应答、错误检测和标定。
MAC子层由称之为故障界定的一个管理实体监控,它具有识别永久性故障和短暂扰动的自检机制。
物理层实现不同节点之间的物理信号传输,主要定义网络的电气特性,因此涉及到位时间、位编码、同步的描述。
CAN2.0B没有定义物理层的驱动器和接收器特性,以便根据它们的应用,对发送媒体和信号电平进行优化。
2.4CAN协议的报文传送及其帧结构
2.4.1逻辑电平定义
CAN的传输介质由两根传输线组成,其中一根被称为高电平传输线CANH,另一根被称为低电平传输线CANL,对地电压分别被表示为VCAN_H和VCAN_L,它们之间的差值被称为差分电压Vdiff,即Vdiff=VCAN_H--VCAN_L。
满足条件0.9V当总线电压波形、差分电压波形以及逻辑电平之间的关系如图2.3所示,在总线发送“显性”位期间,VCAN_H,VCAN_L及Vdiff的标称值分别为3.5V、l.5V和2.0V,发送“隐性”位期间,它们的标称值分别为2.5V、2.5V和0V。
图2.3电压波形与逻辑电平定义
2.4.2CAN报文的帧类型
CAN以报文为单位进行消息传送,每一个发送数据或请求数据发送的报文均包含有标识符ID,它标示该报文的优先权。
报文标识符ID并不指出报文的目的地址,而是表述数据的类型和含义,通常这些数据的类型根据它们在控制中的重要性和实时性要求被划分。
CAN中一个报文被称一帧,CAN协议支持四种不同的帧类型:
数据帧、远程帧、出错帧、超载帧。
1.数据帧
数据帧由7个不同的位场组成,即:
帧起始标志位、仲裁场、控制场、数据场、CRC检查场、ACK应答场、帧结束标志位。
数据场的长度可为零。
在CAN2.0B中存在两种不同的帧格式,其主要区别在于标识符的长度,具有11位标识符的帧称为标准帧,而包括29位标识符的帧称为扩展帧,其格式如图2.5所示。
图2.5标准格式和扩展格式数据帧
2.远程帧的组成如图2.6所示。
图2.6远程帧组成
远程帧被用来请求总线上某个远程节点发送自己想要接收的某种数据,具有发出这种远地消息能力的节点收到远程帧后,就应尽力响应这个远地传送要求。
所以对远程帧本身来说,是没有数据域的。
在远程帧中,除了RTR位是被设置成l(隐性),表示被动状态外,其余部分与数据帧完全相同。
可以说,RTR位的极性表示了所发送的帧是数据帧,还是远程帧。
数据长度代码的数值是独立的(可以标注为允许范围0,1,……8中的任何数据)。
此数值对应于数据帧的数据长度代码。
3.错误帧
错误帧由两个场组成,如图2.7所示,第一个场由来自各站的错误标志叠加得到,随后第二个场是出错界定符。
报文传输过程中,检测到任何一个节点出错,即于下一位发送错误帧,通知发送端停止发送。
图2.7错误帧组成
4.超载帧
超载帧也包括两个位场:
超载标志和超载界定符,如图2.8所示。
当某接收因内部原因要求缓发下一个数据帧或远程帧时,它向总线发出超载帧。
超载帧还可以引发另一次超载帧,但以两次为限。
图2.8超载帧组成
5.帧间空间
数据帧(或远程帧)与其前面帧的隔离是通过帧间空间实现的,无论其前面的帧为何类型(数据帧、远程帧、出错帧、超载帧)。
所不同的是,超载帧与出错帧之前没有帧间空间,并且多个超载帧前面也不被帧间空间分隔。
帧间空间包括间歇场和总线空闲场,如果“错误被动”站己作为前一报文的发送器时,则其帧间空间除了间歇、总线空闲外,还包括称作暂停发送的位场。
对于非“错误被动”站或已完成前面报文的接收器,对于已完成前面报文发送器的“错误被动”站。
间歇场由3个隐性位组成。
间歇期间,所有站均不允许发送数据帧或远程帧,仅起标注超载条件的作用。
总线空闲的长度是任意的。
只要总线是空闲的,任何等待发送信息的站都可以访问总线。
在其它报文发送期间,暂被挂起的待发送报文,紧随间歇场从第一位开始。
总线上检测到的显性位可被理解为帧起始。
暂停发送场:
“错误被动”站发完一个报文后,在开始下一次报文发送或认可总线空闲之前,它紧随间歇场后送