收藏 分销(赏)

基于DSPACE的CAN总线通讯程序开发设计.docx

上传人:鼓*** 文档编号:9901750 上传时间:2025-04-12 格式:DOCX 页数:40 大小:617.25KB
下载 相关 举报
基于DSPACE的CAN总线通讯程序开发设计.docx_第1页
第1页 / 共40页
基于DSPACE的CAN总线通讯程序开发设计.docx_第2页
第2页 / 共40页
点击查看更多>>
资源描述
本科学生毕业设计 基于dSPACE的CAN总线 通讯程序开发 系部名称: 汽车与交通工程学院 专业班级: 车辆工程 07-1班 学生姓名: 武中峰 指导教师: 王悦新 职 称: 实验师 黑 龙 江 工 程 学 院 二○一一年六月 The Graduation Design for Bachelor's Degree CAN Communication Program Development Based on dSPACE Candidate:WU Zhong-feng Specialty:Vehicle Engineering Class: 07-1 Supervisor:Lecturer WANG Yue-xin Heilongjiang Institute of Technology 2011-06·Harbin 摘  要 随着现代汽车的日益发展,汽车电子设备不断增加,进而带来汽车综合控制系统中大量的控制信号需实时交换的问题,传统线束已远远不能满足这种要求,汽车局域网应运而生。 本文从研究汽车局域网入手,主要研究了国内外汽车控制器局域网的发展与现状,对当今国际汽车行业中应用最广的CAN总线原理和应用进行了深入研究与吸收。并在研究中设计了采用CAN总线控制的门锁控制系统,制定了一套相应的可靠运行的协议。通过试验验证,本研究门锁控制系统只需要两根信号线就可以实现数据的传输,使得传输线束大大简化,可靠性得到了提高,有效节约了线束安装空间和系统成本。为提高汽车使用的便利性和行车的安全性,现代汽车越来越多地安装中控锁。当驾驶员锁住其身边的车门时,其他车门也同时锁住。驾驶员可通过门锁开关同时打开所有车门,也可单独打开某个车门。当行车速度达到一定时,各个车门能自行锁上,防止乘员误操作车门把手而导致车门打开。除在驾驶员身边车门以外,还在其他门设置单独的弹簧锁开关,可独立地控制一个车门的打开和锁住。dSPACE是基于MATLAB/Simulink仿真系统开发的软硬件实时控制工作平台,利用它可缩短系统的开发时间,节约开发费用。 本文利用该系统开发基于CAN通信的中央门锁控制系统。可以作为CAN总线在汽车上应用的有益探索,为下一步实现多个模块基于CAN总线的通讯,及在实验室实现混和动力汽车发动机、ABS、电机、电池系统等控制模块之间的通讯提供思路。 关键词: dSPACE;CAN;汽车中控门锁;控制系统;通信程序 ABSTRACT Along with the development of modern automobile, automobile electronic equipment increases gradually, Then bring a large number of controlling signals among automobiles comprehensive control system need real-time exchange problem, Traditional harness cannot satisfy this requirement, Auto LAN come into being. This paper start studying from the car LAN, The main research is development situation of car controller LAN at domestic and exotic, Deeply study and absorb application principle of CAN bus which is widely used today's international automobile industry, And in the study, Design the CAN bus door locks control system, a set of reliable operating agreement has been developed. Through the experiment testifying, This door lock system only need two signal lines can realize the data communication, Making communication wire harness greatly simplify, improving reliability, efficiently save harness installation space and system cost. In order to improve the car’s security of the convenience of driving, more and more hyundai cars install central lock. When driver lock the doors adjacent to him, other side door also lock. The driver can open all the doors through the door lock switch, also can open a lonely door. When driving speed reaches a certain value, all the doors lock by itself, prevent passenger error operating the door handle, cause the door open. In addition to the driver side door , Setting single latch switch in other door, Can independently control A door open and lock. DSPACE is based on MATLAB/SIMULINK simulation system, is development platform of software and hardware real-time control, Use it can shorten System development time, Saving development costs. By using this system development central door locks control system Based on CAN communication. Can serve as the useful exploration that used can bus in car, For the next step implement multiple module communications based on CAN bus, And provide thoughts in the laboratory for HEV engine, ABS, motor and battery systems control module communications. Key words: dSPACE;CAN;Car central locks;Control system;Communication program III 目 录 摘要 I ABSTRACT II 第1章 绪论 1 1.1 前言 1 1.2 课题研究背景 1 1.3 国内外研究现状及发展动态 2 1.4 本文主要研究内容 3 第2章 CAN总线的原理和DSPACE介绍 4 2.1 CAN的性能特点 4 2.2 CAN协议 4 2.3 CAN协议网络分层模型 5 2.4 CAN协议的报文传送及其帧结构 6 2.4.1 逻辑电平定义 6 2.4.2 CAN报文的帧类型 7 2.4.3 CAN报文的帧格式 9 2.5 位定时与位同步 10 2.6 总线访问及仲裁技术 12 2.7 CAN总线的通信错误及其处理 12 2.7.1 错误类型 12 2.7.2 错误状态界定 13 2.8 MATLAB/Simulink介绍 14 2.9 dSPACE实时系统软件 14 2.9.1 RTW(Real-Time Workshop) 14 2.9.2 代码生成和下载软件RTI 14 2.9.3 ControlDesk综合实验和测试环境软件 15 2.10 本章小结 15 第3章 DSPACE中CAN模块通讯实现 16 3.1 dSPACE的CAN模块 16 3.1.1 CAN网 16 3.1.2 dSPACE系统 17 3.2 CAN总线通讯程序开发 17 3.2.1 系统开发流程 17 3.2.2 基于dSPACE的信号生成电路 18 3.2.3 MicroAutobox硬件接口的连接 19 3.2.4 MATLAB/Simulink建模 19 3.2.5 C代码的生成、编译、连接和下载 21 3.2.6基于ControlDesk通讯程序测试 21 3.3 本章小结 22 第4章 CAN总线系统的节点设计 23 4.1 CAN协议支持器件 23 4.2 CAN总线节点的硬件设计 26 4.3 CAN总线节点的软件设计 27 4.3.1 初始化 27 4.3.2 发送 29 4.3.3 接收 31 4.4 本章小结 32 第5章基于DSPACE的控制系统设计 33 5.1 系统总体结构 33 5.2 dSPACE硬件部分及外围电路 34 5.2.1 dSPACE硬件接口电路 34 5.2.2 基于dSPACE的模拟车速信号电路 34 5.3实时仿真系统Matlab/Simulink模型建立 34 5.4 汽车中央门锁半实物仿真系统实验 36 5.5 本章小结 37 结论 38 参考文献 39 致谢 41 附录 42 附录A CAN节点程序代码 42 本科期间发表论文 49 第1章 绪 论 1.1 前言 随着电子技术、控制技术、计算机技术等的进步,人们对汽车的动力性、排放性、经济性和安全性等方面的性能提出越来越高的要求,汽车电子化成为了一个必然的趋势。汽车电子化在提高汽车各方面性能的同时,也带来了一系列的问题,最主要的就是线路复杂化。现代汽车中所使用的电子控制系统和通讯系统越来越多,如发动机电控系统、自动变速器控制系统、防抱死制动系统(ABS)、自动巡航系统(ACC)和车载多媒体系统等。这些系统之间、系统和汽车的显示仪表之间、系统和汽车故障诊断系统之间均需要进行数据交换。如此巨大的数据交换量如仍然采用传统数据交换的方法:即用导线进行点对点的连接的传输方式将是难以想象的。据统计如采用普通线缆,一个中级轿车就需要线索插头300个左右,插针总数将达到2000个左右,线索总长超过116km。不但装配复杂而且故障率会很高。因此用串行数据传输系统取而代之就成为必然的选择。作为最早的应用领域,CAN总线在现代汽车上获得了广泛的应用。目前全球各大汽车制造商在上世纪90年代后期研发的汽车(乘用车和商用车)都采用了CAN总线或者车中的部分零部件具有CAN总线通信功能。 而采用dSPACE仿真平台进行系统仿真的研究,也代表着国际上这方面的先进水平。作为一个全方位的计算机辅助设计平台,dSPACE拥有简单易用的代码生成及下载软件、试验工具软件,还拥有灵活性极强的硬件组合系统,具有其它仿真机所无可比拟的优越性。利用dSPACE,可以把精力全神贯注于控制方案的构思,可以大大缩短开发周期。本文将利用dSPACE系统针对CAN总线系统进行通信开发,在计算机上实现CAN总线系统的通讯仿真。 1.2 课题研究背景 随着全数字式现场总线为代表的现场控制仪表、设备大量应用,使得繁琐的汽车现场连线被单一简洁的现场总线网络所代替。 CAN(Controller Area Network)数据总线就是一种极适于汽车环境的汽车局域网。它是德国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.1 CAN的性能特点 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.2 CAN协议 CAN技术规范2.0A和2.0B以及国际标准15011898是设计CAN应用系统的基本依据,也是应用设计的基本规范。 2.3 CAN协议网络分层模型 在150提出的051模型中,网络被分成七个不同的层次,这些层次描述了在不同的传输阶段,数据信息被如何处理。051七层结构及各层功能,如图2.1所示。 OSI层次 OSI层次 层次功能 应用层 应用层 提供到底层的用户接口 表示层 表示层 提供数据格式化和代码转换 会话层 会话层 处理进程之间的协调 传输层 传输层 负责数据传输控制 网络层 网络层 在相邻节点间转发分组直到目的站 数据链路层 数据链路层 提供计算机与网络之间可靠的数据传输 物理层 物理层 在计算机和网络之间传送位流 物理传输介质 图2.1 OSI参考模型层次结构 值得注意的是051参考模型只是网络结构设计的向导,但不是任何使用网络的最佳选择。由于CAN协议用于特定的工业控制现场,要求网络结构简洁、价格低廉,通常还要求数据传输速度快,满足实时控制需要。OSI模型显得于庞大,数据处理耗时太大,不适合于工业现场实时控制,所以CAN协议只采用了三层网络结构。CAN技术规范2.0A中,网络被划分为对象层、传输层和物理层三层。CAN节点的分层结构和功能如图1.2所示。 对象层和传输层包括了由150/051模型定义的数据链路层的所有服务和功能,按150/051参考模型层次定义,这两层应被划分为数据链路层范围。对象层功能包括:查找被发送的报文;确定实际要使用的传输层接收哪一个报文;为应用层相关硬件提供接口。在定义对象处理时,存在许多灵活性。传输层是CAN协议的核心,其功能包括:控制帧结构、执行仲裁、错误检测、出错标定和故障界定。总线上何时开始发送新报文及何时开始接受报文,都在传输层确定。位定时的一些普通功能也被作为传输层的一部分。传输层特性不存在修改的灵活性。物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然,在一个网络内,物理层对于所有节点必须是相同的。尽管如此,在选择物理层时还是存在很大的灵活性。2.0A技术规范中没有定义物理层,以便在具体应用中对传输介质和信号电平进行优化。CAN协议技术规范2.0B,严格遵循150/051参考模型。将CAN分为数据链路层和物理层,其中数据链路层又被分为逻辑链路控制(LLC:Logical Link Control)子层和媒体访问控制 (MAC: Medium Access Control)子层,这两层的功能分别与2.0A中的目标层以及传输层功能相对应。 应用层 对象层 —消息滤波 —消息和状态处理 传输层 —故障界定 —错误检测和标定 —报文效验 —应答 —仲裁 —报文分帧 —传输速率和定时 物理层 —信号电平和位表示 —传输媒体 图2.2 CAN节点的分层结构 LLC子层完成下列功能:为远程数据请求以及数据传输提供服务,确认由LLC子层接收的报文实际已经被接收,以及为恢复管理和超载处理提供手段。MAC子层是CAN协议的核心,主要定义传输协议,包括报文帧格式、仲裁方式、应答报文、错误检测、出错标定和故障限制等,它把接收到的报文提供给LLC子层,并接收来自LLC子层的报文。 MAC子层可响应报文帧、仲裁、应答、错误检测和标定。MAC子层由称之为故障界定的一个管理实体监控,它具有识别永久性故障和短暂扰动的自检机制。物理层实现不同节点之间的物理信号传输,主要定义网络的电气特性,因此涉及到位时间、位编码、同步的描述。CAN2.0B没有定义物理层的驱动器和接收器特性,以便根据它们的应用,对发送媒体和信号电平进行优化。 2.4 CAN协议的报文传送及其帧结构 2.4.1 逻辑电平定义 CAN的传输介质由两根传输线组成 ,其中一根被称为高电平传输线CANH,另一根被称为低电平传输线CANL,对地电压分别被表示为VCAN_H和VCAN_L,它们之间的差值被称为差分电压Vdiff,即Vdiff=VCAN_H--VCAN_L。满足条件0.9V<Vdiff<5.0V时,代表逻辑数字“0”,当前传送的数据位被称之为“显性(dominate)”位,当-1.0V<Vdiff<0.5V时,代表逻辑数字“1”,当前传送的数据位被称之为“隐性(recessive)”位。当总线电压波形、差分电压波形以及逻辑电平之间的关系如图2.3所示,在总线发送“显性”位期间,VCAN_H, VCAN_L及Vdiff的标称值分别为3.5V、l.5V和2.0V,发送“隐性”位期间,它们的标称值分别为 2.5V、2.5V和0V。 图2.3 电压波形与逻辑电平定义 2.4.2 CAN报文的帧类型 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个隐性位组成。间歇期间,所有站均不允许发送数据帧或远程帧,仅起标注超载条件的作用。总线空闲的长度是任意的。只要总线是空闲的,任何等待发送信息的站都可以访问总线。在其它报文发送期间,暂被挂起的待发送报文,紧随间歇场从第一位开始。总线上检测到的显性位可被理解为帧起始。暂停发送场:“错误被动”站发完一个报文后,在开始下一次报文发送或认可总线空闲之前,它紧随间歇场后送出8个隐性位。如果期间另一站开始发送报文(由其它站引起),则此站就作为这个报文的接收器。 2.4.3 CAN报文的帧格式 以CAN2.OB协议为代表,简单的介绍一下在常用的CAN控制器寄存器中,CAN数据帧的格式。如本论文所采用的CAN控制器SJA1000及带CAN控制器芯片P87C591均是这种格式。 1.CAN2.0B标准帧格式 CAN标准帧信息为11个字节,包括两部分:信息和数据部分。前3个字节为信息部分,如表2.1所示。其中:①字节1为帧信息。第7位(FF)表示帧格式,在标准帧中,FF=0;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR=l表示为远程帧;DLC表示在数据帧时实际的数据长度。②字节2、字节3为报文识别码,11位有效。③字节4~字节11为数据帧的实际数据,远程帧无效。 表2.1 CAN2.0A标准帧 7 6 5 4 3 2 1 0 字节1 FF RAR X X DLC(数据长度) 字节2 (报文识别码)ID.10~ID.3 字节3 ID.2~ID.0 X 字节4~11 数据1~数据8 2.CAN2.0B扩展帧格式 CAN扩展帧信息为13字节,包括两部分:信息和数据部分,前5个字节为信息部分,如表2.2所示。其中:①字节1为帧信息。第7位(FF)表示帧格式,在扩展帧中,FF=1;第6位(RTR)表示帧的类型,RTR=0表示为数据帧,RTR位表示为远程帧;DLC表示在数据帧时实际的数据长度。②字节2~字节5为报文识别码,29位有效。③字节6~字节13为数据帧的实际数据,远程帧时无效。 表2.2 CAN2.0B扩展帧 7 6 5 4 3 2 1 0 字节1 FF RTR X X DLC 字节2 (报文识别码)ID.28~ID.21 字节3 (报文识别码)ID.20~ID.13 字节4 (报文识别码)ID.12~ID.5 字节5 ID.4~ID.0 X 字节6~13 数据1~数据8 2.5 位定时与位同步 CAN总线的数据传输速率最高可达 1Mb/s,通常用石英晶振作为时钟发生器,可以独立进行位定时的参数设置,这样即使网络中节点之间的时钟周期不一样仍可获得相同的位速率。但网络中晶振的频率不是绝对稳定的,温度、电压以及器件的异常都会导致微小的差别,但只要将其稳定在振荡器容差范围之内,总线上的节点会通过重同步进行弥补。CAN总线的位定时和位同步包括以下一些重要概念。 l)正常位速率:为一理想的发送器,即在没有重新同步的情况下每秒发送的位数。 2)正常位时间:定义为一位的持续时间。在位定时框架内执行的总线管理功能,如ECU同步状态、网络发送延迟补偿和采样点定位,均由CAN协议集成电路的可编程位定时逻辑确定。正常位时间实际上是正常位速率的倒数,即: 正常位时间=l/正常位速率 正常位时间可以划分为几个不重叠的时间段。即:同步段(SYNC_SEG)、传播时间段(PROP_SEG)、相位缓冲段1 (PHASE_SEG1)、相位缓冲段 2(PHASE_SEG2)。 3)同步段:用于同步总线上的各个节点,此段内要有一个跳变沿。 4)传播段:用于补偿网络内的物理延迟时间,它是总线上信号传播时间、输入比较器延迟和输出比较器延迟之和的两倍。 5)相位缓冲段1和相位缓冲段2:用于补偿沿的相位误差,通过重同步,这两个时间段可被延长或缩短。 6)采样点:它是读总线电平并转换为相应位值的一个时间点,并位于相位缓冲段1的终点。信息处理时间始于采样点,保留用于计算子序列位电平的时间段。 7)时间份额:由振荡器周期推出的一个固定时间单元。存在有一个可编程的预分刻度值,其整体数值范围为1~32,以最小时间份额为起点,时间份额的长度为:时间份额=m*最小时间份额(其中:m为预分刻度值)。 8)时间段长度说明:同步段为1个时间份额:传播段的长度可设置为1,2,……8个时间份额;相位段1的长度可设置为1,2,……8个时间份额;相位段2的长度为相位段1和信息处理时间之间的最大值;信息处理时间小于或等于2个时间份额。一个位时间的时间份额总数可以设置在8~25的范围。 9)硬同步:发生在报文开始,网络中节点同步于报文帧起始位的隐性至显性跳变沿。硬同步后,内部位时间从同步段重新开始,因此,硬同步强迫由于硬同步引起的沿处于重新开始的位时间同步段之内。 10)重同步和重同步跳转宽度:重同步发生在报文位流发送期间,以补偿个别振荡器频率的变化以及由于从一个发送器转至另一个发送器引入的变化。重同步的结果,使相位段1延长或相位段2缩短。这两个相位缓冲段的延长或缩短的总和上限由重同步跳转宽度给定。重同步跳转宽度应设置为1和最小值4之间。时钟信息可由一位数值到另一位数值的跳变取得。这种只有连续位的固定最大值具有相同数值的特性提供了在帧期间重新将总线单元同步于位流的可能性,可被用于重同步的两次跳变之间的最大长度是29个位时间。 11)沿相位误差:一个沿的相位误差由相对于同步段的位置给定,以时间份额量度。相对误差的符号定义如下:若沿处于同步段内,则e=0;若沿处于采样点之前,则e>0;若沿处于前一位的采样点之后则,e<0。 12)同步规则:硬同步和重同步是同步的两种形式,遵循下列规则:在一个位时间内仅允许一种同步;只要在采样点之前检测到的数值与紧跟沿之后的总线数值不同,沿过后立即有一个沿被用于同步;在总线空闲期间,当存在一个“隐性”至“显性”的跳变沿,则执行一次硬同步;所有履行以上规则1和2的其它“隐性”至“显性”的跳变沿都将被用于重同步。例外情况是,对于具有正相位误差的隐性至显性的跳变沿,只要隐性至显性的跳变沿被用于重同步,发送显性位的节点将不执行重同步。 2.6 总线访问及仲裁技术 CAN总线使用的是一种叫做“载波监测,多主掌控/冲突避免”(CSMA/CA)的通信模式。载波监测的意思是指在总线上的每个节点在发送信息报文前都必须监测到总线上有一段时间的空闲状态。一旦此空闲状态被监测到,那么每个节点都有均等机会来发送报文,这被称作多主掌握。冲突避免是指在两个以上节点同时发送信息时,节点本身首先会检测到出现冲突,然后采取相应的措施来解决这一冲突情况。此时优先级高的报文先发送,低优先级的报文发送会暂停。在CAN总线协议中是通过一种非破坏性的仲裁方式来实现冲突检测的。这也就意味着当总线出现发送冲突时,通过仲裁后原发送信息不会受到任何影响。所有的仲裁判别都不会破坏优先级高的报文信息内容,也不会对其发送产生任何的时延。 当总线空闲时呈隐性电平,此时任何一个节点都可以向总线发送一个显性电平作为一个帧的开始。如果有两个或两个以上的节点同时发送,就会产生竞争。CAN总线解决总线竞争的方法和以太网的CSMA/CD方法比较类似,并且CAN做了改进,是按位对标识符进行仲裁。各发送节点在向总线发送电平的同时,也对总线上的电平进行读取,并与自身发送的电平进行比较,如果电平相同则继续发送下一位,不同则停止发送,退出总线竞争。剩余的节点则继续上述过程,直到总线上只剩下一个节点发送的电平,总线竞争结束,优先级最高的节点获得了总线的使用权。 2.7 CAN总线的通信错误及其处理 2.7.1 错误类型 在CAN总线中存在5种错误类型,它们并不相互排斥; ①位错误:站单元在发送位的同时也对总线进行监视。当监视到的总线位数值与送出的位数值不同时,则在该位时刻检测出一个位错误。但是,在仲裁场的填充位流期间或应答间隙期间送出隐性位,而检测到一个显性位时,不视为位错误。当发送器发送一个被动错误标志,而检测到显性位时,也不视为位错误。 ②填充错误:如果在使用位填充方法进行编码的信息中,出现了第6个连续相同的位电平时,将检测到一个填充错误。 ③CRC错误:CRC序列是由发送器CRC计算结果组成的。接收器计算CRC的方法与发送器相同。如果计算结果与接收到的CRC序列不相同,则检测到一个CRC错误。 ④格式错误:当一个固定形式的位场中出现一个或多个非法位时,则检测到一个格式错误。 ⑤应答错误:在应答间隙期间,发送器未检测到显性位,则检测到一个应答错误。 2.7.2 错误状态界定 为了进行错误界定,每个CAN控制器均设有两个错误计数器:发送错误计数器 (TEC)和接收错误计数器(REC)。CAN总线上所有节点按其错误计数器数值情况可分为三个状态:“错误主动”、“错误被动”、“总线关闭”。节点状态转换(根据错误界定规则)如图2.9所示。 错误 主动 错误 被动 总线关闭 接受错误大于127 或发送错误大于127 或发送错误小于128或发送错误计数小于128 正常模式请求和11个连续的隐性位128次 接受错误计数大于255
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服