基于单片机CAN总线的车灯控制系统设计

上传人:94****0 文档编号:67591976 上传时间:2022-03-31 格式:DOC 页数:76 大小:7.09MB
返回 下载 相关 举报
基于单片机CAN总线的车灯控制系统设计_第1页
第1页 / 共76页
基于单片机CAN总线的车灯控制系统设计_第2页
第2页 / 共76页
基于单片机CAN总线的车灯控制系统设计_第3页
第3页 / 共76页
点击查看更多>>
资源描述
精选优质文档-倾情为你奉上 毕 业 设 计(论 文) 设计(论文)题目: 基于单片机CAN总线的车灯控制系统设计 学生姓名: 指导教师: 二级学院: 专业: 班级: 学号: 提交日期: 2014年 5月15日 答辩日期: 2014年 5 月17日 专心-专注-专业目 录1 绪论11.1汽车电子的概念11.2汽车电子的发展过程11.3汽车电子的现状及发展趋势11.4汽车网络技术综述21.5汽车网络的分类及CAN协议31.6发展和使用汽车网络的意义51.7本课题研究的内容52 CAN总线的技术分析72.1 CAN总线的性能特点72.2 CAN总线的一些基本概念72.3 CAN总线的位数值表示与通信距离82.4 CAN总线协议的技术规范92.5 CAN总线的报文及其帧格式142.6 CAN总线的错误对策212.7 CAN总线的位定时和位同步223 硬件电路设计243.1 设计方案243.2元器件选择263.3电源电路313.4按键电路323.5输出电路334 车灯控制系统软件设计344.1 系统应用层协议制定34 4.2标识符 ID 的定义344.3 数据域的编码364.4 车灯控制系统软件设计364.5 CAN 节点软件设计364.6 控制模块程序设计394.7 子模块程序设计414.8软件测试425总结47参考文献48附录49致谢68基于单片机CAN总线的车灯控制系统设计摘 要 近年来,随着汽车内部电控系统的日益复杂,电子控制系统间的数据通讯变得越来越重要,汽车网络技术应运而生。CAN(Controller Area Network)总线是一种串行局域网总线,能有效支持分布式实时控制的串行通信。本文深入研究 CAN 总线网络协议及其技术规范,在 CAN 技术规范 CAN2.0B 的基础上,完成车灯控制系统应用层协议的制定。对汽车车灯系统组成进行了分析,并将整车车灯控制系统分成了控制模块、左前模块、左后模块、右前模块、右后模块和车内照明模块。采用了“CAN 单片机+CAN 收发器”的 CAN 节点构成方案。在硬件设计部分对所用芯片进行了介绍,并对各功能电路进行了详细分析,给出了详细的设计电路。阐述了车灯控制系统的软件设计思想,给出了 CAN 节点的程序设计,分析了控制模块以及子模块的程序功能并给出了程序流程图。 关键词:CAN 总线,89S52,SJA1000,车灯控制 The design of control system based on MCU CAN bus lampAbstractIn recent years, with the vehicle electronic control system within the growing complexity of electronic control systems for data communications is becoming increasingly important, automotive networking technology came into being. CAN (Controller Area Network) bus is a serial bus local area networks, can support distributed real-time control of the serial communication. This article studies the CAN bus network protocols and technical specifications, technical specifications CAN2.0B in CAN based on the complete light control system, the development application layer protocol. Composition of vehicle headlights systems analysis and vehicle lights control system is divided into a control module, left the module, left rear module, right front module, right after the module and the interior lighting module. Adopted the CAN MCU + CAN transceiver, the CAN nodes of the program. In the hardware design used by some of the chips were introduced, and the functions carried out a detailed analysis of the circuit, given the detailed design of the circuit. Described light control system software design, gives the program CAN node design, analysis, control sub-module of the program modules and features and gives the program flow chart. Key words: CAN Bus, 89S52, SJA1000,Light Control 1 绪 论1.1汽车电子的概念汽车电子是指应用于汽车上的有利于提升汽车驾驶安全性、减少燃料消耗、减少废气排放以及增加驾乘舒适性和便捷性的电子装置。汽车电子化被认为是汽车技术发展进程中的一次革命,汽车电子化的程度被看作是衡量现代汽车发展水平的重要标志,是用来开发新车型,改进汽车性能最重要的技术措施。总的说来,汽车电子技术是一个技术复杂、门类多、知识密集的高技术领域,涉及电子、机械、计算机等多个学科。汽车正由单纯的机械产品向机电一体化(机电热、机电液、机电光)方向发展,汽车必将进入电脑控制的“电子汽车”时代。1.2汽车电子的发展过程汽车电子化的过程经历了四个阶段:二极管的发明促使了汽车电子的诞生(第一阶段,车载收音机、发电机硅整流器、晶体管无触点点火技术是当时的代表技术)、晶体管和模拟集成电路的诞生促生了汽车电子技术的第二阶段(发电机电子管理系统、电控自动变速器系统、制动防抱死系统得到了很大的发展)、微型计算机的兴起使汽车电子进入了第三阶段(动力传动总成控制系统、制动/转向/悬架控制系统、车身电子控制系统、通讯和导航系统等)、灵巧传感器和大容量存储系统的发展使汽车电子进入第四阶段(电子技术、自动控制技术、传感器技术、网络技术和机电一体化得到了很大的发展)。 1.3汽车电子的现状及发展趋势改变世界的机器是汽车,而改造当代汽车并使其发生质的变化的是电子信息化。当代汽车越来越广泛地采用电子信息技术,以提升汽车的性能和服务功能,满足人们的各种办公和娱乐需要,使汽车从单纯的代步工具逐渐演变成“流动的办公室”、 “流动的家庭”和“流动的娱乐室”。 当代汽车技术的发展紧紧围绕着安全、环保、节能、舒适这四个主题,电子信息化也正是从上述四个方面逐步提升汽车性能。当前汽车电子产品中使用最广泛的、超过汽车电子产品销售额 50%的是娱乐和舒适性产品。如各种车载收放机、CD机、DVD 机、车载电话、导航设施,以及车身各附件控制模块等。这些设施不涉及汽车基本功能,只是增加辅助功能而己。可以说成熟的家电产品都可以移植到汽车上使用。 汽车电子的技术基础来源于半导体行业、软件行业、传感器和执行器等电子技术的发展。汽车电子技术行业的发展最终依赖于汽车工业的蓬勃发展以及汽车工业在工业领域中所处的地位。2003 年中国汽车的产销量高达 444 万辆,其中轿车占201 万辆,并以超过两位数的年增长率持续发展。中国汽车市场由潜在变为现实,中国汽车电子信息产品市场也随之迅速扩大,部分核心控制技术正在逐步国产化。 随着集成控制技术、计算机技术和网络技术的发展,汽车电子技术已明显向集成化、智能化和网络化等方向发展。 集成化 近年来嵌入式系统、局域网控制和数据总线技术的成熟,使汽车电子控制系统的集成成为汽车技术发展的必然趋势。将发电机管理系统和自动变速器控制系统,集成为动力传动系统的综合控制;将制动防抱死控制系统、牵引力控制系统和驱动防滑控制系统综合在一起进行制动控制;通过中央底盘控制器,将制动、悬架、转向、动力传动等控制系统通过纵向进行连接,控制器通过复杂的控制运算,对各子系统进行协调,将车辆行驶性能控制到最佳水平,形成一体化底盘控制系统。 智能化 智能化传感技术和计算机技术的发展,加快了汽车的智能化进程。汽车智能化相关的技术问题已受到汽车制造商的高度重视。其主要技术中“自动驾驶仪”的构想必将依赖于电子技术实现。智能交通系统(ITS)的开发将与电子、卫星定位等多个交叉学科相结合,能根据驾驶员提供的目标资料,向驾驶员提供距离最短而且能绕开车辆密度相对集中处的最佳行驶路线。它装有电子地图,可以显示出前方道路、并采用卫星导航。从全球定位卫星获取沿途天气、车流量、交通事故、交通堵塞等各种情况,自动筛选出最佳行车路线。 网络化 随着越来越多的电控器件应用在汽车上,车载电子设备间的数据通信变得越来越重要。以分布式控制系统为基础构造汽车车载电子网络系统是十分必要的。大量数据的快速交换、高可靠性及低成本是对汽车电子网络系统的要求。在该系统中,各子处理机独立运行,控制改善汽车某一方面的性能,同时在其它处理机需要时提供数据服务。主处理机收集整理各子处理机的数据,并生成车况显示。通信控制器保证数据的正常流动。 电子技术已经广泛应用于汽车的各个领域,极大地改善了汽车的综合性能,使汽车在安全、节能、环保、舒适等各方面都有了长足的进步。1.4汽车网络技术综述汽车网络是计算机网络技术和工业现场总线控制技术在汽车中应用的结果。汽车网络控制是研究如何利用总线数据通信原理实现现代汽车中各个独立电子系统和控制装置间控制信息传递通道的简洁互连,实时、可靠的数据交换及综合协调控制的一门最新技术。它是以科学、合理的数据通信协议及支持这样协议的大规模集成电路器件为基础的,是汽车行业发展的必然结果。早期的汽车网络中,通用网络标准并未得到广泛的认同和应用,用户通常利用自己制定的电路和通用异步收发器(UART)设备来实现简单的串行通信。由于没有统一标准,各汽车制造商都有一套独立定义的接口规范和专用供应商。这样,供应商虽然纵向紧密地与汽车制造商合作,却缺乏与其它供应商的横向联系,导致生产的同类产品不能兼容互换。 采用标准化网络技术以后,各供应商按照统一的标准生产部件,提高了同类产品的兼容性和互换性。而汽车制造商可以委托任意一家合格的供应商开发符合标准的模块。 国际著名汽车制造商和零部件制造商于二十世纪八十年代就致力于汽车网络技术的研究与应用,迄今已推出多种网络标准,如 J1850、VAN、CAN 等。在各种汽车网络中,CAN 以其独特的设计,优异的性能和极高的可靠性得到了最为广泛的应用。尤其在欧洲,Daimler Chrysler、BMW、Volkswagen 及Volvo 公司等都将 CAN 作为他们电子系统控制器网络化的一种手段。美国的制造商也正逐步将他们的汽车网络系统由 J1850 过渡到 CAN。随着汽车网络技术的飞速发展,特别是 X-by-Wire 技术的提出,近几年又诞生了许多新的协议,如 LIN、FlexRay、 ByteFlight和 TTP。这些协议有的可以直接划归到SAE 的分类中,而有些则不太好确定其分类归属。因此,大量新协议的诞生必然会导致对车用网络分类的重新划分。 汽车网络技术的作用 在汽车中引入网络技术最初是为了解决日益增长的线束问题,后来逐渐演绎出另外一个重要功能,即优化汽车电子控制。目前,汽车电子控制已经从初期的“电子-机械替代”阶段过渡到“独立系统的精确量化反馈控制”阶段,并朝着“多目标综合控制和智能化控制”的方向发展,即把整体上相关、功能上相对独立而位置上分布安装的电子系统或装置组成一个协调控制的综合系统。为了实现多目标的优化控制,进一步全面提高汽车的整体性能,根据智能化的要求和综合协调控制的特点,综合控制系统将更多地依赖系统内、外部信息的获取,这要求互相独立的电子系统和装置间进行数据交换和信息传递。因此,现代汽车采用网络技术解决分布式控制是一种必然,使用汽车网络不仅可以减少线束,而且能够提高各控制系统的运行可靠性,减少冗余的传感器及相应的软硬件配置,实现各子系统之间的资源共享,便于集中实现各子系统的在线故障诊断。 汽车电子控制采用网络化设计可大大降低设计成本,缩短设计周期,其经济效益是十分明显的。为此最初只属于高档车的网络概念,现已逐步扩展到大批量生产的经济型车上。今天网络化的电子系统已成为所有级别汽车中至关重要的部件。 1.5汽车网络的分类及CAN协议汽车网络技术从二十世纪八十年代提出以来,至今存在许多侧重功能不同的汽车网络标准。为方便研究和设计应用,二十世纪九十年代中期SAE(Society of Automotive Engineer)把车用网络分为 A、B、C、D、E 五类,其中,A 类网为面向执行器、传感器的低速网络,LIN、TTP/A 将成为其主流协议;B 类网为面向数据共享的中速网络,其主流协议将是CAN(ISO 11891-3)、SAE J1850、VAN 等协议;C 类网为面向实时控制的高速网 络, 其主 流 协 议 为 CAN(ISO 11891-2) 、 TTPTM/C(Time-Triggered Protocol)、FlexRay 等协议;D 类网主要面向多媒体、导航系统等,目前该类网络的主流协议为:D2B(Domestic Digital Bus)、MOST(Media Oriented SystemsTransport);E 类网是面向乘员安全系统的网络,主要应用于车辆被动性安全领域,该类网络的协议有 Byteflight 等。如表 1-1 所示。 表 1-1 汽车网络分类网络分类位传输速率应用场合A 类低速,1Mbps 应用于更严格的实时控制场合及多媒体控制 E 类高速,5Mbps 应用于车辆被动安全性领域,如安全系统其中,控制器局域网 CAN(Controller Area Network)是 80 年代初 BOSCH 公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种串行通信协议,经多次修订,于 1991 年 9 月形成技术规范 2.0 版本。该版本包括2.0A 和 2.0B 两部分。2.0A 给出了曾在 CAN 技术规范版本 1.2 中定义的 CAN报文格式,而 2.0B 给出了标准(11 位)和扩展(29 位)两种报文格式。1993 年 11月 ISO 正式颁布了道路交通运输工具数据信息交换高速通信控制器局域网(CAN)国际标准 ISO 11898,为控制器的标准化、规范化铺平了道路。此后,越来越多的美国汽车公司采用 CAN 网络。在 1994 年美国汽车工程师协会卡车和巴士控制和通信子协会选择 CAN 作为 J1939 标准(在卡车和巴士中应用的 C 类网络)的基础。作为汽车网络协议 CAN 的国际标准有:ISO 11898-2(高速 CAN)、ISO 11898-3(具有容错功能的 CAN)和 ISO 11898-4(TTCAN)。目前CAN 已经成为 B、C 类网络的世界标准。 CAN 总线通信接口集成了 CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理。CAN 协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。数据帧的标识码可由 11 位或 29 位组成,CAN2.0B 规定在标识符的前七位不能同时为逻辑零,这种按数据帧编码的方式,还可使不同的节点同时接收到相同的数据。数据段长度最多为 8 个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8 个字节不会占用过长的总线时间,从而保证了通信的实时性。CAN 协议采用 CRC 检验并可提供相应的错误处理功能,保证数据通信的可靠性。它具有下列主要特性: 1.CAN 为多主方式工作,不分主从,通信方式灵活,通过报文标识符通信,无需站地址等节点信息; 2.CAN 网络上的节点信息分成不同的优先级,可满足不同的实时要求; 3.CAN 采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况; 4.CAN 只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送、接收数据,无需专门的“调度”; 5.CAN 的直接通信距离最远可达 10km(速率 5kbps 以下); 6.CAN 上的节点数主要取决于总线驱动电路,目前可达 110 个。报文标识符可达 2032 种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制; 7.采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。CAN 的每帧信息都有 CRC 校验及其它检错措施,降低了数据出错概率。CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其它节点的操作不受影响; 8.CAN 的通信介质可为双绞线、同轴电缆或光纤,选择灵活。1.6发展和使用汽车网络的意义近年来,随着汽车内部电控系统的日益复杂,以及对汽车内部控制功能单元相互之间通讯能力要求的日益增长,采用点对点连线,就需要大把的线束,这种传统构建汽车内部通讯的方式在电线布置、可靠性以及重量等方面都给汽车的设计和制造带来了很大的困扰。电子控制系统间的数据通讯变得越来越重要,因此围绕减少车内连线,实现数据的共享和快速交换,同时提高可靠性等方面,在快速发展的计算机网络基础上,实现了以分布式控制单元为基础构造的汽车电子网络系统。 汽车网络是指借助双绞线、同轴电缆或光纤等通讯介质,将车内众多的控制模块(或节点)联结起来,使若干的传感器、执行机构和ECU 公用一个公共的数据通道,通过某种通讯协议,在网络控制器的管理下共享传输通道和数据。汽车网络最开始出现在高档豪华汽车上,也缺少相应的标准化的通讯协议的支持。随着越来越复杂、精密的功能单元被委托给外部供应商生产,汽车制造商开始从定义各自的专门协议发展到采用整个业界范围内认可的标准化通讯协议,提供了不同供应商的产品进行系统集成的可能性,使汽车网络迅速进入主流车型,到今天车载电控系统的网络已经成为现代车辆中至关重要的部分,在我国也已形成研究和开发使用的热潮。汽车网络减少了线束的使用,改善了系统的灵活性,通过系统的软件可以实现系统功能的变化, 消除了冗余传感器,实现了数据共享,也提高了对系统故障的诊断能力。可以说一辆车就是一个网络,汽车的智能化也是在网络基础上才能实现,网络还把汽车的行驶状态参数传送到显示屏上,司机可一目了然,大大方便了驾驶。 汽车网络技术的优点是:在应用层协议和数据定义统一的基础上,可以使之成为一个“开放式系统”,具有很强的灵活性。对于任何遵循上述协议的供应商所生产的控制单元都可轻易添加入该网络系统中或者从网络系统中去除,系统几乎不需要做任何硬件和软件的修改,这完全符合现代汽车平台式设计的理念。使用汽车网络不仅可以减少线束,而且能够提高各控制系统的运行可靠性,减少冗余的传感器及相应的软硬件配置,实现各子系统之间的资源共享,便于集中实现各子系统的在线故障诊断。因此汽车电子控制采用网络化设计可大大降低设计成本,缩短设计周期,其经济效益是十分明显的。专家认为,21 世纪的汽车电子控制将以网络技术为核心。 1.7本课题研究的内容本课题所研究的 CAN 总线车灯控制系统,可以简洁汽车网络的设计、促进产品的实用化和低成本化。 本文主要研究内容如下: 1.深入研究 CAN 总线网络协议及其技术规范,在 CAN 技术规范 CAN2.0B 的基础上,完成车灯控制系统应用层协议的制定。 2.提出车灯控制系统的设计方案,进行硬件电路设计,包括对所用芯片材料的收集、翻译、学习直至应用,对各个功能电路进行分析并给出设计电路。 3.对车灯控制系统的软件进行程序设计,给出程序流程图,实现基于 CAN 总线的汽车车灯控制网络的通信和对汽车车灯的控制。2 CAN总线线的技术分析 2.1 CAN总线的性能特点CAN 属于总线式串行通信网络,由于其采用了许多新技术及其独特的设计,与一般的通信总线相比,CAN 总线的数据通信具有突出的可靠性、实时性和灵活性,因而一些世界著名的汽车厂商如 BENZ,BMW,PORSCHE 等都采用 CAN 总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。其特点可概括如下: CAN 是到目前为止唯一有国际标准的现场总线。 CAN 为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其它节点发送信息,而不分主从。 CAN 网络上节点可分成不同的优先级,以满足不同的实时要求,优先级高的数据最多可在 134s得到传输,CAN总线最大的特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。 CAN 采用非破坏性总线仲裁技术。当多个节点同时向网络上传送信息时,优先级低的节点主动退出数据发送,而优先级高的节点可不受影响地继续传输数据,此后,被延后的低优先级节点重新进行数据传输。有效避免了总线冲突,从而大大节省了总线冲突仲裁时间,尤其是在网络负载很重的情况下,也不会出现网络瘫痪情况,不像以太网那样冲突的各节点均需重新发送。 CAN 节点只需通过对报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。 CAN 直接通讯距离最远可达 10km(速率在 5K/ps 以下);通讯速率最高可达 1Mb/s(此时通信距离最长为 40m)。CAN 系统内两个任意节点之间的最大传输距离与其位速率有关。 CAN 总线上的节点数主要取决于总线驱动电路,目前可达 110 个。 CAN 报文采用短帧结构。每一帧的有效字节数为 8 个,传输时间短,受干扰的概率低,重新发送时间短,保证了数据出错率极低。 CAN 的每帧信息都有 CRC 校验及其它检错措施,具有极好的检错效果。 通讯介质可为双绞线、同轴电缆或光纤,并且可配合使用,选择灵活。 CAN 总线具有较高的性价比。它结构简单,器件容易购置,每个节点的价格较低,且用户接口简单,能充分利用现有的单片机开发工具。 CAN 节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响。 2.2 CAN总线的一些基本概念1.发送器和接收器 在进行数据传输时,发出报文的单元称之为该报文的发送器,该单元在总线空闲或该单元丢失仲裁前恒为发送器。若一个单元不是报文发送器,并且总线不处于空闲状态,则称该单元为接收器。 对于报文发送器和接收器,报文的实际有效事件是不一样的。对于发送器而言,如果直到帧结束末尾一直没出错,则对于发送器报文有效;如果报文受损,将允许按照优先权次序自动重新发送;为了能同其它报文访问总线进行竞争,总线一旦空闲重发送立即开始。对于接收器而言,如果直到帧结束的最后一位一直没出错,则对于接收器报文有效。 2.位填充、编码和位表达方式 构成一帧的帧起始、仲裁域、控制域、数据域和 CRC 序列均借助位填充规则进行编码,当发送器在被发送的位流中监测到五位连续的相同数值时,将自动地在实际的发送位流中插入一个补码位。 数据帧或远程帧的其余位域采用固定格式,不进行填充。出错帧和超载帧同样是固定格式,并且也不用位填充规则进行编码。 报文中的位流按照非归零(NRZ-Non Return to Zero)码方法编码,这意味着一个完整位的位电平要么是“显性”(逻辑 0),要么是“隐性”(逻辑 1)。 a. 当总线上的 CAN 控制器发送的都是隐性位时,此时总线状态是隐性位; b. 如果总线上有显性位出现,隐性位总是让位于显性位,即总线上是显性位状态。 3.帧格式 在 CAN2.0B 中存在两种不同的帧格式,其区别在于标识符的长度:具有11 位标识符的帧称之为标准帧,而具有 29 位标识符的帧称之为扩展帧。 如 CAN 技术规范 1.2 版本所描述,标准帧格式数据/远程帧格式是等效的,而扩展格式是 CAN2.0B 协议4.报文滤波 CAN 技术规范 2.0B 对于报文滤波特别加以描述。报文滤波以整个标识符为基准。允许将任何标识符位设置为对报文滤波是“不考虑的”。屏蔽寄存器可用于选择一组标识符,以便映像至接收缓存器中。如果使用屏蔽寄存器,屏蔽寄存器的每一位必须是可编程的,并且它们对于报文滤波是可开放或禁止的。屏蔽寄存器的长度可以是整个标识符,也可以是其中一部分。新增加的特性。为使控制器设计相对简单,并不要求执行完全的扩展格式,对于新型控制器而言,必须不加任何限制的支持标准格式。 2.3 CAN总线的位数值表示与通信距离2.3.1 CAN总线的位数值表示由于 CAN 总线中传送的是差分电压信号,双线受到的干扰是一致的,能够有效避免或减少各种电磁噪声带来的影响。CAN 总线上用“显性”(Dominant)和“隐性”(Recessive)两个互补的逻辑值表示“0”和“1”。如图 2.1 所示,VCAN-H和 VCAN-L为 CAN 总线收发器与总线之间的两接口引脚电压,静态时均是 2.5V 左右,此时状态表示为逻辑“1”,称为“隐性”,在隐性状态下,VCAN-H和 VCAN-L被固定于平均电压电平附近,Vdiff近似于 0。用 VCAN-H比 VCAN-L高表示逻辑“0”,称为“显性”,此时,通常电压值为:VCAN-H=3.5V 和 VCAN-L=1.5V,显性状态以大于最小阀值的差分电压表示。在总线空闲或“隐性”位期间,发送“隐性”状态。在“显性”和“隐性”位同时发送时,最后总线数值将为“显性”(即“0”与“1”的结果为“0”)。 图 2.1 总线的位数值表示 2.3.2 CAN总线的通信距离在总线范围内保证数据的一致性是 CAN 总线的一个重要特性,总线上每一帧报文对各节点应保证同时有效,即满足时间和空间的一致性条件下,CAN 总线的标称传输速率为 1Mb/s,距离不超过 40m。降低传输速率可以相应的延长总线距离,这点在远程数据监控系统中非常有用,其传输速率与传输距离有类似比例关系,主要与介质的通信频谱、系统网络阻抗等因素有关,表 2-1 是传输速率与总线长度的关系图。这里的最大通信距离是指在同一条总线上两个节点之间的距离,在实际运用中,还要根据设定的网络传输速度、CAN 收发器特性,通过具体计算才能准确得到系统两点间最远距离。表 2.1 CAN 总线系统任意两节点之间的最大距离位速率/Kb/s 10005002501251005020105最大距离/m 40130270530620130033006700100002.4 CAN总线协议的技术规范由于 CAN 技术应用的普遍推广,导致要求通信协议的标准化。为此,1991 年9 月 Bosch 公司制定并发布了 CAN 技术规范(Version 2.0)。该技术规范包括 A 和 B两部分。2.0A 给出了标准 CAN 报文格式,而 2.0B 给出了标准和扩展两种报文格式。标准帧报文标识符有 11 位,扩展帧的报文标识符有 29 位。2.4.1 CAN总线的分层结构CAN 网络是一串行通讯协议,它可以非常有效地构成分布式实时过程/监测/控制系统,并且有非常高的可靠性。其应用范围包括高速的通讯网络,以及低成本、高性能的现场设备互连。其结构如图2.2应用层目标层 报文滤波 报文和状态的处理 传送层 故障界定 错误检测和标定 报文校验 应答 总线仲裁 报文分帧 传输速率和定时 物理层 信号电平及位表示 传输媒体 图 2.2 CAN 总线协议的分层结构CAN 协议分层结构如图 2.2 所示。CAN 总线规范规定了任意两个 CAN 节点之间的兼容性,包括电气特性及数据解释协议,为保证设计使用的透明性及执行的灵活性,CAN 协议分为三层:目标层、传送层、物理层。其中目标层及传送层包括了 ISO/OSI(International Standardization Organization/Open System Interconnection)定义的数据链路层所有功能。 目标层的功能包括:1.确认哪个信息是要发送的; 2.确认哪个传送层接收到了信息; 3.为应用层提供接口。 在目标处理方面,CAN 提供很大的自由。 传送层的功能范围包括: 1.帧组织; 2.总线仲裁; 3.检错、错误报告、错误处理。 物理层是将 ECU 连接至总线的物理实现。ECU 的总数将受限于总线上的电气负载。2.4.2 CAN总线协议的数据链路层按照 IEEE802.2 和 802.3 标准,数据链路层又分为:逻辑链路控制(LLC)和媒体访问控制(MAC)。 1.逻辑链路控制 LLC 子层提供的功能包括:帧接收滤波、超载通告和恢复管理。LLC 帧是同 LLC 实体(LPDU)之间进行交换的数据单元,包括 LLC 数据帧和远程帧。 a. LLC 数据帧 LLC 数据帧由三个位域构成,即标志符域、数据长度码(DLC-Data Length Code)域和 LLC 数据域组成。 标识符:标识符长度为 11 位,其最高位不应全是“1”。 DLC:指出数据域字节个数。DLC 由 4 位构成,数据域长度可为 0,数据帧允许数据字节长度数目范围为 08 个字节。 数据域:数据域由数据帧内被发送数据组成,它可包括 08 个字节,每个字节包括 8 位。 b. LLC远程帧 LLC远程帧由两个位域(标识符域和DLC域)组成。LLC远程帧标识符格式与LLC数据帧标识符格式相同,只是不存在数据域。DLC的数值是独立的,此数据为对应数据帧的数据码长度。 2.媒体访问控制 MAC子层划分为完全独立工作的两个部分,即发送部分和接收部分。 发送部分功能包括:发送数据封装;发送媒体访问管理。接收部分功能包括:接收媒体访问管理;接收数据封装。 媒体访问控制MAC除了有与逻辑链路控制LLC一样的数据帧和远程帧两部分外,还有出错帧、超载帧、帧间空间三个部分。 a. MAC数据帧 一个MAC数据帧由帧起始(SOF)、仲裁域、控制域、数据域、CRC域、ACK域和帧结束七个不同位域构成,详细描述见2.3.1。 b. MAC远程帧 激活为数据接收器的节点可以通过发送一个远程帧启动源节点发送各自的数据。一个远程帧由6个不同的位域构成。 其中,仲裁域由来自LLC子层的标识符域和RTR位构成。在MAC远程帧中,RTR位数值为“1”。其中6个不同的位域与MAC数据帧的相应位域相同。 c. 出错帧 出错帧由两个不同域构成,第一个场由来自不同节点的错误标志叠加给出,第二个场为错误界定符。 d. 超载帧 存在两类具有相同格式的超载帧:LLC 要求的超载帧和重激活超载帧,前者为 LLC 子层所要求,以表明内部超载状态,后者将由 MAC 子层的一些出错条件被启动发送。超载帧包括两个位域:超载标志和超载界定符。 e. 帧间空间 数据帧和远程帧同前述的任何帧以称之为帧间空间的位域隔开。与此相反,超载帧和错误帧前面不存在帧间空间,并且多个超载帧也不用帧间空间分隔。 帧间空间包括间歇域和总线空闲域,并且对于先前帧已发送“错误-认可”的节点还有暂停发送域。间歇域由 3 个“隐性”位构成。间歇期间不允许节点发送数据帧或远程帧,仅起标注超载条件的作用。总线空闲时间可以是任意长度。总线空闲时,任何节点均可访问总线以便发送。其它帧发送期间,等待发送的帧在紧随间歇域后的第一位启动。如果在总线空闲期间检测到总线上“显性”位将被理解为帧起始。 3.媒体访问和仲裁 当检测到间歇域未被“显性”位中断后,认为总线被所有节点释放。总线一旦释放,接收当前或先前帧的“错误-活动”节点可以访问总线。一旦完成暂停的发送,并且其间没有其它节点开始发送。发送当前帧或已发送完先前帧的“错误-认可”节点可以访问总线。当允许节点访问总线时,MAC 数据帧和MAC 远程帧可以起始发送。MAC 错误帧和 MAC 超载帧按上述规定被发送。发送期间,发送数据帧或远程帧的每个节点均为总线节点。 在“隐性”状态下,VCAN-H 和 VCAN-L 被固定于平均电压电平,Vdiff 近似为 0。在总线空闲或“隐性”位期间,发送“隐性”状态。“显性”状态以大于最小阀值的差分电压表示。在“显性”位期间,“显性”状态改写“隐性”状态并发送。 当许多节点一起开始发送时,此时只有发送具有高优先权帧的节点变为总线主站。这种解决总线访问冲突的机理是基于竞争的仲裁。仲裁期间,每个发送器将要发送位电平同总线上监测到的电平进行比较。若相等,则节点可以继续发送。当发送出一个“隐性”电平,而检测到的“显性”电平时,表明节点丢失仲裁,并且不应再发送更多位。当送出“显性”电平,而监测到“隐性”电平时表明节点检测出位错误。 基于竞争的仲裁依靠标志符和紧随其后的 RTR 位完成。具有不同标识符的两帧中,优先权被标注于帧中,较高优先权的标志符具有较低的二进制数值。若具有相同标志符的数据帧和远程帧同时被初始化,数据帧较之远程帧具有更高的优先权,它通过按照 RTR 位数值标注达到。4. 错误检测 MAC 子层具有下列错误检测功能:监测、填充规则校验、帧校验、15 位循环冗余码校验和应答校验。 检查到错误后,可发送错误标志,一个主动错误标志可引起所有其它节点发生填充错误、位错误、格式错误、CRC 错误或应答错误。 错误界定规则:网络中的任何一个节点,根据其错误计数器数值,可能处于下列三种状态之一。 a. “错误-激活”节点; b. “错误-认可”节点; c. “总线脱离”节点。2.4.3 CAN总线协议的物理层物理层是将 ECU 连接至总线的电路实现。ECU 的总数将受限于总线上的电气负载。它分为以下三部分:物理信令、物理媒体附属装置、媒体相关接口。 1.物理层功能模型 a. 物理信令(PIS-Physical Signaling) 物理信令实现与位表示、定时和同步相关的功能。 b. 物理媒体附属装置(PMA-Physical Medium Attachment) PMA 子层实现总线发送/接收的功能,电路并提供总线故障检测方法。 c. 媒体相关接口(MDI-Medium Dependent Interface) MDI 实现物理媒介和 MAU 之间机械和电气接口。 2.同步 同步包括硬同步和重同步两种形式,它们遵从以下规则: a.在一个位时间内仅允许一种同步; b.只要先前采样点检测到的数值(先前读总线数值)不同于边沿后即现的总线数值,边沿将被同步; c.总线空闲期间,当存在“隐性”至“显性”的跳变沿即完成硬同步; d. 所有满足规则 1 和 2 的其它“隐性”至“显性”的跳变沿(和在低位速率情况下,选择的“显性”至“隐性”跳变沿)将被用于重同步。 2.4.4 CAN总线的组织基本规则CAN 总线基于下列 5 条基本规则进行组织: 1.总线访问 CAN 控制器只能在总线空闲状态期间开始发送。所有 CAN 控制器同步于帧起始的前沿(应同步)。 2.仲裁 在 CAN 总线的发送期间,发送数据帧或远程帧的每一节点均为总线主节点。当许多节点一起开始发送时,此时只有发送具有最高优先权的节点变成总线主节点。这种解决总线访问冲突的机理是基于竞争的仲裁,它依靠标识符和紧随其后的 RTR 位完成。具有不同标识符的两帧中,优先权被标注于帧中,较高优先权的标识符具有较低的二进制数值。若具有相同标识符的数据帧和远程帧同时被初始化,数据帧较之远程帧具有更高优先权,它通过 RTR 位数值标注达到。除仅当总线释放时,可以启动发送这一原则外,还存在解决冲突的下列原则: a.在一个系统中,每条信息必须标以唯一的标识符,从最高位开始发送。对于标识符的最高 7 位(对于标准帧来说是 ID10ID4,对于扩展帧来说是ID28ID22)必须不是全“隐性”。 b.具有给定标识符和非零 DLC 的数据帧仅可由一个节点启动。c.远程帧仅可以全系统内确定的 DLC 发送,该数据长度码为对应数据帧的 DLC。具有相同标识符和不同 DLC 远程帧的同时发送将导致不能解决的冲突。 3.编码解码 对于帧起始、仲裁域、控制域、数据域和 CRC 序列使用位填充技术进行编码。当正在发送的 CAN 控制器检测到 5 个连线的相同极性的位被发送,一个互补(填充)位被插入到该发送位流中。 当一个正在接收的 CAN 控制器检测到接收的上述 5 种位域的位流中,具有 5 个相同极性的连续位,它将自动的删除下一个接收(填充)位。删除填充位的电平必须与先前位相反,否则一个填充错误将被检测,并被标注。 其余的位域和帧具有固定的形式,因此不使用位填充方法进行编码和解码。报文中的位流按照 NRZ(Non Return to Zero)方法进行编码,即位周期期间位电平维持恒定,要么隐性电平,要么显性电平。 4.出错标注 当检测到发送位错误、填充错误、形式错误或应答错误时,检测出错条件的 CAN 控制器将发送 1 个出错标志,出错标识在下一位开始发送。当检测到CRC 错误时,出错标识在紧跟应答界定符后的一位开始发送,除非其它一些出错条件的错误标识已经开始发送。出错标识将破坏位填充或损坏固定形式的位场。 发送出错标识后,每个 CAN 控制器都在监视总线直至检测到一个显性电平到隐性电平的跳变。此时,每个 CAN 控制器就完成了其出错标志,并且所有 CAN 控制器开始发送 7 个附加的隐性位。 所有可检测的错误均可在报文发送时间内被标注,因而使 CAN 控制器能很容易的组成对应报文的出错帧,并且初始化已损坏报文的重新发送。如果CAN 控制器检测到出错帧固定格式的任何偏离,它将发送一个新的出错帧。 5.超载标注 由一些 CAN 控制器要求借助于发送一个或更多的超载帧来延迟下一个数据帧或远程帧的发送。虽然超载帧和出错帧具有相同的格式,但对它们的处理却不同,在间歇域期间进行的发送超载帧不能初始化任何先前的数据帧和远程帧的重新发送。超载帧的发送必须起始于所期望间歇域的第一位,在期望的间歇域期间,重新激活为显性位的超载帧的发送在该事件后开始。 如果发送超载帧的 CAN 控制器检测到其固定格式的任何偏离,它将发送一个出错帧。 2.5 CAN总线的报文及其帧格式在进行数据传输时,发出报文的单元称为该报文的发送器。该单元在总线空闲或丢失仲裁前恒为发送器。如果一个单元不是报文发送器,并且总线不处于空闲状态,则该单元为接收器。 报文的实际有效时刻对于发送器和接收器是不同的。对于发送器而言如果直到帧的末尾位一直未出错,则此报文对于发送器有效。如果报文出错,将允许按照优先权顺序自动重发送。为了能同其它报文进行总线访问竞争,总线一旦空闲,重发送立即开始。对于接收器而言,如果直到最后的位(除了帧末尾位)一直未出错,则对于接收器报文有效。 构成一帧的帧起始域、仲裁域、控制域、数据域和 CRC 序列均借助位填充规则进行编码。无论何时,发送器只要在发送的位流中检测到 5 个连续相同数值的位,将自动地在实际发送的位流中插入一个补码。数据帧和远程帧的其余位域采用固定格式,不进行填充。出错帧和超载帧同样是固定格式,也不进行位填充。 报文中的位流按照非归零(NRZ)码方法编码,这就意味着一个完整位的位电平要么是显性,要么是隐性。 报文传输由 4 种不同类型的帧表示和控制: 数据帧(Data Frame)将数据由发送器传输到接收器; 远程帧(Remote Frame)通过总线单元发送,以请求发送具有相同标识符的数据帧; 错误帧(Error Frame)由检测出总线错误的任何单元发送; 超载帧(Overload Frame)用于提供当前的和后续的数据帧的附加延迟。 数据帧和远程帧可以使用标准帧及扩展帧 2 种格式,它们借助帧间空间与前面的帧分开。 2.5.1数据帧数据帧由以下七个不同的位域组成:帧起始域、仲裁域、控制域、数据域(长度可为 0)、CRC 域、应答域、帧结束域。数据帧结构如图 2.3 所示。 帧间空间数据帧帧间空间帧起始仲裁域控制域数据域CRC域应答域帧结束图 2.3 数据帧格式 1.帧起始域该域标志一个数据帧或远程帧的开始,它由一个显性位组成,该显性位用于接收状态下的 CAN 控制器的硬同步。 2.仲裁域仲裁域由标识符 ID 和远程发送请求位(RTR)组成。对于 CAN2.0B,标准格式帧和扩展格式帧的仲裁域格式不同。在标准格式中,仲裁域由 11 位标识符和远程发送请求位 RTR 组成,标识符为 ID.28-ID.18,如图 2.4 所示。而在扩展格式中,仲裁域由 29 位标识符、替代远程请求位 SRR、标识位 IDE 和远程发送请求位 RTR 组成, 标识符位为 ID.28-ID.0,如图 2.5 所示。帧起始SOF仲裁域控制域标识符(11位)RTR图 2.4 数据帧标准格式中的仲裁域结构 帧起始仲裁域控制域SOF11位基本IDSRRIDE18位扩展IDRTR图 2.5 数据帧扩展格式中的仲裁域结构 标识符(Identifier) 标准格式中的标识符:长度为 11 位,相当于扩展格式的基本 ID。这些位按 ID.28到 ID.18 的顺序发送。最低位是 ID.18。7 个最高位(ID.28ID.22)必须不能全是隐位。 扩展格式中的标识符:由 29 位组成。其结构包含两个部分:11 位基本 ID 和18 位扩展 ID。基本 ID 包括 11 位,按 ID.28 到 ID.18 的顺序发送。基本 ID 定义了扩展帧的基本优先权。扩展 ID 包括 18 位,按 ID.17 到 ID.0 的顺序发送。 RTR 位(在标准格式和扩展格式中) 该位为远程发送请求位(Remote Transmission Request Bit)。RTR 位在数据帧里必须为显性,而在远程帧里必须为隐性。 SRR 位(属于扩展格式) 该位是替代远程请求位(Substitute Remote Request Bit)。SRR 位是一隐性位。它是在扩展帧中标准帧的 RTR 位的位置被发送,因而替代标准帧的 RTR 位。当标准帧与扩展帧发生冲突,而扩展帧的基本 ID 同标准帧的标识符一样时,标准帧优先于扩展帧。 IDE 位(属于扩展格式) 该位是标识符扩展位(Identifier Extension Bit)。IDE 位属于扩展格式的仲裁域和标准格式的控制域。标准格式里的 IDE 位为显性,而扩展格式里的 IDE 位为隐性。 3.控制域 此域由六位组成,其结构如图 2.6 所示。标准格式的控制域结构和扩展格式的不同。标准格式里的控制域包括数据长度代码、IDE 位(为显性位)及保留位 r0。扩展格式里的控制域包括数据长度代码和两个保留位 r1 和 r0。其保留位必须发送显性,但是接收器接收的显性和隐性位是位的组合。数据长度代码 DLC(Data LengthCode)为 4 位,指出了数据域的字节数目。数据字节的允许使用数目为 0 至 8,不允许使用其它数值。数据长度代码如表 2.2 所示,其中 d 代表“显性”位;r 代表“隐性”位。仲裁域控制域数据域IDE/r1r0DLC3DLC2DLC1DLC00-8字节图 2.6 控制域结构表 2.2 数据帧长度代码 DLC 表4.数据域 发送缓冲区中的数据按照长度代码指示长度发送。对于接收的数据,同样如此,注意:第一个数据字节的最高有效位第一个被发送/接收。 5.循环冗余校验域(CRC Field) 由 CRC 序列(15 位)及 CRC 界定符(一个隐性位)组成。CRC 域组成如图 2.7 所示。CRC 序列由循环冗余码求得的帧检查序列最适用于位数小于 127 的帧。为进行CRC 计算,被除的多项式系数由包括帧起始、仲裁域、控制域、数据域在内的无填充 位 流 给 出 , 而 15 个 最 低 位 的 系 数 是 0 。 此 多 项 式 被 下 列 多 项 式X15+X14+X10+X8+X7+X4+X3+1 除(系数按模 2 计算),相除的余数即为发至总线的 CRC序列。发送时,CRC 序列的最高有效位被首先发送/接收。之所以选用这种帧校验方式,是由于这种 CRC 码对于少于 127 位的帧是最佳的。 图 2.7 CRC 域组成 6.应答域 应答域由发送方发出的两位(应答间隙及应答界定符)隐性位组成,结构如图 2.8所示。所有接收到正确的 CRC 序列的节点将在发送节点的应答间隙上将发送的这一隐性位改写为显性位。因此,发送节点将一直监视总线信号已确认网络中至少一个节点正确地接收到所发信息。应答界定符是应答域中第二个隐性位,由此可见,应答隙两边有两个隐性位,CRC 界定位及应答界定位。 图 2.8 应答域结构 7.帧结束域 每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。这样,接收节点可以正确检测到一个帧的结
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!