1、(完整版)CAN总线控制舵机河南理工大学毕业设计(论文)任务书专业班级 学生姓名 一、题目 二、起止日期 年 月 日至 年 月 日三、主要任务与要求 指导教师 职称 学院领导 签字(盖章)年 月 日河南理工大学毕业设计(论文)评阅人评语题目 评 阅 人 职称 工作单位 年 月 日河南理工大学毕业设计(论文)评定书题目 指导教师 职称 年 月 日河南理工大学毕业设计(论文)答辩许可证答辩前向毕业设计答辩委员会(小组)提交了如下资料:1、设计(论文)说明 共 页2、图纸 共 张3、指导教师意见 共 页4、评阅人意见 共 页经审查, 专业 班 同学所提交的毕业设计(论文),符合学校本科生毕业设计(论
2、文)的相关规定,达到毕业设计(论文)任务书的要求,根据学校教学管理的有关规定,同意参加毕业设计(论文)答辩。 指导教师 签字(盖章)年 月 日根据审查,准予参加答辩。答辩委员会主席(组长) 签字(盖章)年 月 日河南理工大学毕业设计(论文)答辩委员会(小组)决议 学院 专业 班 同学的毕业设计(论文)于 年 月 日进行了答辩。根据学生所提供的毕业设计(论文)材料、指导教师和评阅人意见以及在答辩过程中学生回答问题的情况,毕业设计(论文)答辩委员会(小组)做出如下决议。一、毕业设计(论文)的总评语二、毕业设计(论文)的总评成绩: 三、答辩组组长签名:答辩组成员签名:答辩委员会主席: 签字(盖章)年
3、 月 日77摘 要随着总线技术的产生和发展,现场总线技术在仪器控制、生产过程等领域起着越来越重要的作用。其中,CAN总线作为一种有效支持分布式控制和实时控制的技术,以其稳定性好、可靠性高、抗干扰能力强、通讯速率高、维护成本低及其独特的设计逐渐受到人们的重视,并被公认为最有前途的现场总线之一.随着现场总线技术的迅猛发展,传统的自动化仪表受到严重挑战,取而代之的将是具有开放性的现场总线仪表,基于CAN协议的现场总线控制的研究与开发具有非常现实的意义.为了适应科学技术的需要,本文在研究广泛文献的基础上,研制了基于CAN总线的舵机控制,实现了CAN总线舵机控制。本文在讨论了CAN总线的技术原理和技术规
4、范的基础上提出和实现了基于CAN协议的舵机控制系统。其中,选用基于ARM CorexM3内核的STM32F103RBT6的32位单片机与CAN收发器SN65HVD230芯片设计了具体的硬件电路,采用Keil ARM高级语言编写了单片机系统软件结构的软件模块,并且采用MFC编写上位机软件.关键词:现场总线;CAN总线;STM32微控制器;Visual c+6.0;舵机;PWM;控制系统AbstractWith the emergence and development of instrumentation bus technologyfieldbus in the control apparat
5、us production process。 and other fields have been playing an increasingly important roleCAN fieldbus as an effective distributed controI and real-time control of the technology。with good stability, high realibility, Antiinterferference capability, highspeed communication,low maintenance costs and it
6、s unique design is attracting increasing attention and is recognized as one of the most promising fieldbus。 With the rapid development of fieldbus technology, traditional automatic control is seriousoy challenged, and will be replaced by the open fieldbus controlControl research and deveIopment base
7、d on the agreement of CAN is of great practical significanceTo meet the needs of science and technology, the paper studies in a wide range of literature, and developed a control according to the rudder machine of the CAN bus, carried out CAN bus rudder machine control In this paper, a detailed analy
8、sis based on the design of the CAN protocoI of intelligant control is given as well as design featuresAccording to functional needs and hardware design, selection STM32F103RBT6 and SN65HVD230 CAN chip as a specific hardware circuit, use Keil ARM to develop system architecture and software modules an
9、d use VC MFC to program for the host computerKey words:Fieldbus CAN bus STM32chip Visual c+6。0 Rudder Control system目录摘 要IABSTRACT21 引言51。1选题目的及意义51.2现场总线的发展趋势513本次选题的工作内容及任务61.4本次设计的先进性61.5 本章小结72 CAN总线的概念及其相关协议82。1 CAN总线的概念82。2 CAN总线的特点1023 CAN总线的分层结构和通信协议1124报文发送及其帧结构132。5 错误类型和界定182.6 CAN总线通信原理1
10、92。7 本章小结213 系统的硬件组成223。1 CAN总线控制舵机系统的总体设计方案22 3。2 STM32F103RBT6简介233。3 CAN节点接口芯片介绍303。4舵机控制器介绍343.5 按键处理353.6 本章小结364 系统的软件设计374。1 系统软件的总统设计3742下位机数据采集处理软件设计374。3 CAN节点的软件设计384.4上位机软件设计424.5 本章小结515 结论与展望525.1 结论525.2 展望52致谢53参考文献54附录571主节点程序572从节点程序721 引言1.1选题目的及意义1.1.1选题目的 学习和掌握CAN总线的概念及其相关的协议. 学
11、习STM32系列单片机原理及其接口应用,学会利用单片机解决具体问题。 学会利用微处理器、CAN控制器、CAN收发器及其相关的器件设计几个总线节点,实现各节点之间的通信。 学习c+软件开发语言,在Visual C+开发环境下开发MFC上位机显示界面,实现主节点和计算机的通信.1.1。2选题意义舵机是比较精密的伺服系统,通过PWM信号控制,输出位置与控制信号脉宽成对应关系,控制方法简单,在工业领域和其他方面得到广泛的应用。对于由多个舵机组成的舵机系统的控制方式一般有2种:(1)集中控制在同一电路板上同时产生多路PWM控制信号,通过信号延长线接人舵机进行控制.这种方式信号间的互扰比较严重,舵机经常出
12、现抖动现象。(2)分散控制舵机控制器安装在舵机附近,通过串口与主控制器通信.这种方式控制的稳定性和效率比较低,很难满足实时性要求高的系统的要求。为了解决这些缺点,设计了这套系统,系统采用CAN总线传输控制指令,CAN总线的传输速率可以达到1 Mbs,有效地解决了系统的实时性问题;PWM信号产生电路安装在舵机附近,并采用硬件计数器产生,这样有效地降低了信号的互扰,增强了系统的稳定性.1.2现场总线的发展趋势现场总线技术自70年代诞生至今,由于它在减少系统线缆,简化系统安装、维护和管理,降低系统的投资和运行成本,增强系统性能等方面的优越性,引起人们的广泛注意,得到大范围的推广,导致了自动控制领域的
13、一场革命。1.2.1、国内现场总线的发展趋势国内现场总线的发展趋势是: 多种现场总线在国内展开激烈竞争,竞争的重点是应用工程; 国内自己开发的现场总线产品开始投入市场;国内各行业的现场总线应用工程迅速发展。1.2。2、现场总线应用工程的发展趋势1、通过应用技术发挥现场总线的优势2、不同类型的现场总线组合更有利于降低成本3、现场总线的本质是信息处理现场化4、网络的设计,一般控制系统也有网络设计问题,网络设计的重点是从物理形态上考虑通信网络和输入、输出线缆网络的布置.13本次选题的工作内容及任务 本课题主要采用基于ARM Cortex作为内核的STM32F103RBT6微处理器作为舵机控制核心并采
14、用SN65HVD230作为CAN智能节点的核心收发模块,设计出了小型舵机控制系统,能完成舵机的实时控制、双向通信等功能.论文的主要内容如下:l。从CAN总线的技术规范、特点、协议、应用及其典型器件等几个方面对CAN总线技术进行了研究,为智能网络控制的数据通信做准备。2。系统的硬件电路设计。适于CAN总线的智能网络控制的硬件部分主要包括上位机和下位机两部分,其中下位机由微处理器实施舵机控制,再控制CAN控制实现报文的发送与接收;上位机实现数据的显示与存储等控制功能.CAN收发器完成上位机与下位机的数据传输,实现了CAN总线的通信。3.系统的软件编制.根据硬件结构、软件任务,采用合适的程序设计方法
15、,绘制程序流程图,采用C语言进行程序编制,其中上位机的界面显示利用VC的MFC控制台进行编程。软件部分主要包括主程序、键盘检测、CAN总线通信、上位机界面显示等.1。4本次设计的先进性 在对舵机的控制中,采用不同的控制方法会使控制的成本和精度以及控制的实时性等有巨大的差别,特别是在多路舵机的控制中,常规控制会增加控制的难度、占用更多的控制引脚,给设计人员带来很大的困扰。本设计采用CAN总线控制多路舵机,减少了对硬件资源的占用,提高了控制的精度,降低了控制成本,对于多路舵机的控制具有很重要的意义。1。5 本章小结本章主要介绍了本次设计目的意义,然后介绍了现场总线的发展现状和发展趋势,还介绍了现场
16、总线控制的发展概况.对现场控制总线有一个总体上的把握和全新的认识.最后,介绍了本次设计的工作内容及设计任务,为后续的设计工作做整体上的安排。2 CAN总线的概念及其相关协议2。1 CAN总线的概念CAN(Controller Area Network)即控制器局域网,可以归属于工业现场总线的范畴,是目前国际上应用最广泛的开放式现场总线之一。CAN 最初出现在汽车工业中,80年代由德国Bosch公司最先提出。最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。由于CAN总线的特点,其应用范围目前已不仅局限于汽车行业,已经在自动控制、航空航天、航海、过程工业、机械工业、
17、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域中得到了广泛应用。 由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。随着应用领域的增多,CAN的规范从CAN 1。2 规范(标准格式)发展为兼容CAN 1.2 规范的CAN2.0规范(CAN2.0A为标准格式,CAN2。0B为扩展格式),目前应用的CAN器件大多符合CAN2。0规范。下面我们介绍一下CAN中的一些基本概念。1. 报文总线上的报文以不同的固定报文格式发送,但长度受限。当总线空闲时任何连接的单元都可以开始发送新的报文。2。 信息路由 在CAN系统中,一个CAN节点不使用有关信息结构的任何信息。这里包含一些重要
18、的概念。系统灵活性:节点可在不要求所有节点及其应用层改变任何软件和硬件的情况下,被接于CAN网络报文通信:一个报文的内容由其标识符ID命名成组:采用报文滤波,所有节点均接收报文。数据相容性:可以确保报文同时被所有节点或者没有节点接收。3。 位速率不同的系统,CAN 的速度不同.在一个给定的系统里,位速率是唯一的,并且是固定的.4。 优先权在总线访问期间,识别符定义一个静态的报文优先权。5。 远程数据请求通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由相同的识别符命名的。6。 仲裁只要总线空闲,任何单元都可以开始发送报文.具有较高优先权报文的单元可以获得总
19、线访问权.如果2个或2个以上的单元同时开始传送报文,那么就会有总线访问冲突。仲裁的机制确保了报文和时间均不损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监视的是一“显性”电平(见总线值),那么单元就失去了仲裁,必须退出发送状态.7。 错误检测为了获得最安全的数据发送,CAN 的每一个节点均采取了强有力的措施以便于错误检测、错误标定及错误自检. 要进行检测错误,必须采取以下措施: 监视(发送器对发送位的电平与被监控的总线电平进行比较) 循环
20、冗余检查 位填充 报文格式检查 错误检测的执行8. 故障界定CAN 节点能够把永久故障和短暂扰动区别开来。故障的节点会被关闭。9. 总线值CAN总线具有两种逻辑状态,隐性和显性。显性表示逻辑”0,隐性表示逻辑“1”。显性状态下,VCANH和VCANL两者差分电压大于2V。隐性状态下,VCANH和VCANL两者电压差为0。 “显性”位和“隐性”位同时传送时,总线的结果值为“显性”.比如,在总线的“写与”执行时,逻辑0代表“显性”等级,逻辑1代表“隐性”等级。10。 应答所有的接收器检查报文的连贯性。对于连贯的报文,接收器应答,对于不连贯的报文,接收器作出标志. 2。2 CAN总线的特点CAN总线
21、属于总线式串行通信网络,由于采用了许多新技术以及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的性能、可靠性、实时性和灵活性。其特点可以概括如下:1. 通信方式灵活.CAN为多主方式工作,网络上任一节点均可在任意时间主动的向网络上的其他节点发送信息,而不分主从,且无需站地址等节点信息。利用这一特点,可以方便的构成多机备份系统.2. CAN网络上的节点信息分成不同的优先级,可以满足不同的实时要求。3. CAN网络上采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动退出发送,而优先级最高的节点可以不受影响的继续传送数据,从而大大的节省了总线冲突仲裁时间
22、,尤其是在网络负荷很重的情况下也不会出现网络瘫痪的情况。4. CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接受数据,无需专门的“调度”。5. CAN的直接通信距离最远可达10Km(传输速率5Kb/s以下);通信速率最高可达1Mb/s(此时通信距离最长为40m)。6. CAN上的节点数主要取决于总线驱动电路,目前可达110个;报文标示符可达2032种(CAN2.0A),而扩展标准(CAN2。0B)的报文标示符几乎不受限制。7. CAN总线通信格式采用短帧格式,传输时间短,受干扰概率低,具有极好的检错效果。每帧字节数最多为8个,可以满足通常工业领域中控制命令、工作状态及
23、测试数据的一般要求。同时,8个字节也不会占用过长的总线时间,从而保证通信的实时性。8. CAN的每帧信息都有CRC校验及其他检错措施,保证了数据通信的可靠性。9. CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判断等多项工作10. 据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判断等多项工作。11. CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。12. CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。2。3 CAN总线的分层结构和通信协议2.3.1 C
24、AN总线的分层结构CAN遵从OSI模型。按照OSI基准模型,其结构划分为两层:数据链路层和物理层.数据链路层划分为逻辑链路控制(LLC)和媒体访问控制(MAC)。物理层又划分为物理信令(PLS)、物理媒体附属装置(CPMA)和媒体相关接口(MDI)。其结构功能如图2-1所示:1. LLC子层功能LLC子层提供的功能包括:帧接收滤波、超载通知和恢复管理。帧接收滤波:在LLC子层上开始的帧跃变是独立的,其自身操作与先前的帧跃变无关。帧内容由标识符命名,标识符并不能指明帧目的地,但描述数据的含义,每个接收器通过帧接收滤波确定此帧与其是否有关。超载通知:如果接收器内部条件要求延迟下一个LLC数据帧或L
25、LC远程帧,则通过LLC予层开始发送超载帧,最多可产生两个超载帧,以延迟下一个数据帧或远程帧。恢复管理:发送期间,对于丢失仲裁或被错误干扰的帧,LLC予层具有自动重发功能。在发送成功前,帧发送服务不被用户认可。2. MAC子层结构功能MAC子层功能由IEEE8023中规定的功能模型描述,在此模型中将MAC子层划分为完全独立的两个部分,即发送部分和接收部分。此两部分功能如下:发送部分功能包括:1) 发送数据封装接收LLC帧并接收接口控制信息;CRC循环计算:通过向LLC帧附加SOF、RTR位、保留位、CRC、ACK和EOF构造lQAC帧。数据链路层逻辑链路子层接收滤波超载通知恢复管理媒体访问控制
26、子层数据封装/拆装帧编码(填充/解除填充)媒体访问管理错误监测出错标定应答、串行化/解除串行化位编码/解码位定时同步(驱动器/接收器特性)监控器故障界定总线故障管理图2-1 CAN总线的分层结构2) 发送媒体访问管理确认总线空闲后,开始发送过程(通过帧间空闲应答);MAC帧串行化;插入填充位(位填充);在丢失仲裁的情况下,退出仲裁并转入接收方式;错误检测(监控、格式校验);应答校验;确认超载条件;构造超载帧并开始发送;构造出错帧并开始发送;输出串行流至物理层准备发送.接收部分功能包括:1) 接收媒体访问管理解除串行结构并重新构筑帧结构;检测填充位(解除位填充);错误检测(CRC、格式校验、填充
27、规则校验);发送应答;构造错误帧并开始发送;确认超载条件;重新激活超载帧结构并开始发送。2) 接收数据拆装由接收帧去除LLC特定信息;输出LLC帧和接口控制信息至LLC子层。2.3。2 CAN的通信协议首先我们对CAN总线自身的通信规则和帧格式的定义进行简单的介绍。CAN总线是一种有效支持分布式控制的串行通信网络,可以实现全分布式多机系统;可以用点对点,一点对多点以及全局广播几种方式传送和接收数据;CAN总线直接通信距离最远可达10KM(此时传输速率只能达到5Kb/s),通信速度最高可达1Mb/s(此时传输距离只能达到40m);且理论上CAN总线通信网络的节点数不受限制。CAN总线总是基于下列
28、5条基本规则进行通信协调的.总线访问:CAN是共享媒体的总线,它对内体的访问机制类似于以太网的媒体访问机制,即采用载波监听多路访问(Carrier Sense Multiple Acess,CSMA)的方式。仲裁:当总线空闲时呈隐性电平,任何一个节点都可以向总线发送一个显性电平作为一个帧的开始。如果有两个或两个以上的节点同时发送,就会产生总线冲突。CAN总线解决总线冲突的方法比以太网的CSMA/CD方法有很大的改进。CAN总线是按位对标识符进行仲裁,各节点在向总线发送电平的同时,也对总线上的电平进行读取,并与自身发送的电平进行比较,如果电平相同则继续发送下一位,不同则说明网络上有更高优先级的信
29、息帧在传送,即停止发送,退出总线竞争。编码/解码:帧起始域、仲裁域、控制域、数据域和CRC序列均使用位填充技术进行编码。在CAN总线中,每连续5个不同状态的电平插入一位与它相补的电平,还原时每5个不同状态的电平后的相补电平被删除,从而保证了数据的透明。出错标志:当检测到位错误、填充错误、形式错误或应答错误时,检测出错条件的CAN控制器将发送一个出错标志。超载标志:一些CAN控制器会发送一个或多个超载帧以延迟下一个数据帧或远程帧的发送。24报文发送及其帧结构在进行数据传送时,发出报文的单元称为该报文的发送器。该单元在总线空闲或丢失仲裁前恒为发送器。如果一个单元不是报文发送器,并且总线不是处于空闲
30、状态,则该单元为接收器。对于报文发送器和接收器,报文实际有效时是不同的,对于发送器而言,如果直到帧结束一直没有出错,则发送器报文有效。如果报文受损,将允许按照优先权次序自动重发送。为了能同其它报文访问总线进行竞争,总线一旦空闲,重发送立即丌始;对于接收器而言,如果直到帧结束的最后一位一直没有出错,则对于接收器报文有效.构成一帧的帧起始、仲裁场、控制场、数据场和CRC序列均借助位填充规则进行编码。当发送器在被发送位流中检测到5位连续相同数值时,将自动在实际发送位流中插入一个补码位.报文传送由四种不同类型的帧表示和控制:数据帧携带数据由发送器至接收器;远程帧通过总线单元发送,以请求具有相同标识符的
31、数据帧;出错帧由通过检测发现总线错误的任何单元发送;超载帧用于提供当前和后续数据帧或远程帧之间的附加延迟。2。4.l 数据帧数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。数据场的长度可以是0。数据帧的格式如图2-2所示.S O F11位标识符仲裁场控制场RTRLDER0LDC数 据 场仲 裁 场S O F11位标识符SSRLDERTRR0R1LDC数据场控制场11位标识符图2-2 CAN2.0数据帧格式 帧起始(SOF)它标志数据帧或者远程帧的起始,由一个单独的“显性”位组成。只在总线空闲时,才允许站开始发送(信号)。 仲裁场标准格式和扩展格式仲裁场的格
32、式不同,在标准格式中,仲裁场有11位标识符和远程发送请求位组成,标识符位为m28至ID18,而在扩展帧中,仲裁场由29位标识符和替代远程请求(SSR)位,标识位和远程发送请求位组成,标识符位为至ID-0。为了区别标准格式和扩展格式,先前CAN技术规范1m12为r1,现在记为IDE位。标识符分为标准格式标识符和扩展格式标识符。标准格式标识符的长度位ll位,并且对应于扩展格式中的基本D。这些位以ID28至ID18的顺序发送,最低位为ID-18,其中最高7位(ID28至ID22)必须不是全“隐性”,而扩展格式标识符与标准格式不同,扩展格式由29位组成,扩展格式分为两部分:前11位以ID-28至ID-
33、18的顺序发送,它等效于标准帧中标识符格式。基本ID确定了扩展格式的优先权,而扩展ID由18位组成,它以ID17到ID-0的次序发送.在标准格式中,标识符后为RTR位。RTR位(标准格式和扩展格式)在数据帧中,RTR必须是“显性电平,而在远程帧中,RTR必须是“隐性”电平。在扩展格式中,先发送基本RTR,其后是IDE位和SRR位。扩展位在SRR位后发送。SRR位在扩展格式中为隐性位,它在标准格式的RTR位位置上被发送,并替代标准格式中的RTR位。这样,标准格式和扩展格式的冲突由于扩展格式的基本标准格式的D相同而解决。标准格式较之扩展格式更为流行。IDE位对应于扩展格式属于仲裁场,对应于标准格式
34、属于控制场,IDE在标准格式中以“显性”电平发送,而在扩展格式中为“隐性”电平。仲裁场包括识别符和远程发送请求位(RTR). 控制场控制场由6个位组成(如图2-3),包括数据长度代码和两个将来作为扩展用的保留位(m和rl,fl在CAN20以下的协议中位保留,在CAN20B以上的协议中标为IDE,IDE为显性表示为标准帧,IDE为隐性表示为扩展帧).IDE/r1R0DLC3DLC2DLC1DLC0数据场/CRC场控制场(标准格式和扩展格式)图 2-3 CAN报文的控制场所发送的保留位必须为“显性”。接收器接收所有由“显性”和“隐性”组合在一起的位。数据长度代码(DLC):数据长度代码指示了数据场
35、中字节数量。数据长度代码为4个位,在控制场罩被发送。 数据场数据场由数据帧中的发送数据组成.它可以为0-8个字节,每字节首先发送高有效位。数据长度码中数据字节数目编码如表2。1所示:表2.1 CAN总线数据场数据字节数目编码数据字节数目数据长度码DLC3DLC2DLC1DLC00dddd1dddr2ddrd3ddrr4drdd5drdr6drrd7drrr8rddd CRC场CRC场包括CRC序列,其后是CRC界定符。CRC序列:由循环冗余码求得的帧检查序列最适用于位数低于127位(BCH码)的帧.为进行CRC计算,被除的多项式系数由无填充位流给定,组成这些位流的成分是:帧起始、仲裁场、控制场
36、、数据场(假如有)。将此多项式被下面的多项式发生器除(其系数以2为模):X15+X14+X10+X8+X7+X4+X3+1这个多项式除法的余数CRC序列(CRC SEQUENCE)。为了实现这个功能,可以使用15位的位移寄存器CRC_RG(14:0)。如果用NXTBIT标记指示位流的下一位,它由从帧的起始到数据场末尾都由无填充的位序列给定。 应答场应答场长度为2个位,包含应答闻隙和应答界定符在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙期间(发送ACK信号)向发送器发送一“显性”的位以示应答。 应答间隙所有接收到匹配CRC序列的站会在应答间隙期间用一
37、“显性”的位写入发送器的“隐性”位来做出回答。ACK界定符:ACK界定符是ACK场的第二个位,并且是一个必须为“隐性”的位。因此,应答间隙被两个“隐性的位所包围,也就是CRC界定符和ACK界定符. 帧结束帧结束表示一帧数据的结束。2。4。2 远程帧通过发送远程帧,作为某数据接收器的站通过其源节点对不同的数据传送进行初试化设置。远程帧存在标准帧和扩展帧两种格式,在两种情况下,均由6个不同的位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。同数据帧相反,远程帧的RTR位是“隐性”。远程帧不存在数据场。DLC的数据值是独立的,它可以被标注为允许范围O8中的任何数值。这一数值为对应数据帧的D
38、LC.RTR位极性指出所发送帧是数据帧(RTR位为“显性”),还是远程帧(RTR位为“隐性”)。2.4.3 错误帧错误帧由两个不同场组成,第一个场由来自各个站出错标志叠加得到,随后的第二个场是出错界定符错误帧组成如图2-4所示。数据帧错误帧错误标志错误界定符超 载 帧帧间空间错误叠加标志图2-4 错误帧格式为了正确的终止错误帧,一种“错误认可”节点可以使总线处于“总线空闲”状态至少三位时间,因而总线不被加载至100。错误标志具有两种形式g一种是活动错误标志(Active error flag),另一种是认可错误标志(Passive error flag)。活动错误标志由6个连续。“显性”位组成
39、,丽认可错误标志由6个连续的“隐性”位组成,除非它由来自其它节点的。显性”位冲掉重写。2.4。4 超载帧超载帧包括两部分:超载标志和超载界定符。超载帧组成如图2-5所示:存在两种导致发送超载标志的超载条件;一个是要求延迟下一个数据帧或者远程帧的接收器的内部条件;另一个是在间歇场检测到“显性”位。由前一个超载条件引起的超载帧起点,仅允许在期望间歇场的第一位时间开始,而由后一个超载条件引起的超载帧在检测到“显性”位后一位开始.在大多数情况下,为延迟下一次数据帧或者远程帧,两种超载帧均可以产生。帧结束或错误界定符或超载帧超 载 帧超载标志超载标志叠加超载界定符超 载 帧帧间空间图 2-5 超载帧格式
40、超载标志由6个“显性”位组成。全部形式对应于活动错误标志形式,超载标志形成破坏了间歇场的固定形式。因而,所有其它站都检测到一个超载条件,并且由它们的部件开始发送超载标志。(在间歇场第三位期间检测到“显性位的情况下,节点将不能正确理解超载标志,而将6个“显性”位的第一位理解为帧起始)第6个“显性位违背引起出错条件的位填充规则.超载界定符由8个“隐性”位组成。超载界定符与出错界定符具有相同的形式.发送超载标志以后,站监视总线直至检测到由“显性到“隐性”位的发送。在此时点上,总线上的每个站均完成送出超载标志,并且所有站一致开始发送剩余7个“隐性位。2.4.5 帧间空间数据帧和远程帧同其前面的帧,不管
41、它们是何种帧(数据帧、远程帧、错误帧或超载帧1均以称之为帧空间的位场分隔开。相反,在超载帧和出错帧前面没有帧空间,并且多个超载帧前面也不被帧空间分隔.总线空闲场周期可为任意长度此时,总线是开放的,因而任何需要发送的站均可访问总线。在其它报文发送期间,暂被挂起的待发报文,紧随间歇场从第一位开始。当检测到总线上的“显性”位将理解为帧起始。2.5 错误类型和界定2.5。1。错误类型(1)位错误:正在向总线送出一位的节点同时监测总线,当监测到的位数值与送出的位数值不同时,则检测到位错误。其中例外情况是:在仲裁期间,当送出隐性信息位或ACK期间送出隐性位时,而检测到显性位不会导致位错误;送出认可错误标志
42、,而检测到显性位的节点也不会导致位错误.(2)填充错误:在使用位填充方法进行编码的帧场中,出现第六个连续相同电平位时,则检测到填充错误。(3)CRC错误:CRC序列由发送器的CRC计算结果构成。接收器以发送器相同的方法计算CRC。当所计算的CRC序列不等于接收到的序列时,则检测到CRC错误。(4)形式错误:当固定格式位场有一个或更多非法位时,则检测到形式错误.其中例外是:接收器在帧结束的最后位监测到显性位时,不将其理解为形式错误。(5)应答错误:在发送器ACK期间未监测到显性位时,则检测到一个应答错误。当任何节点检测到位错误、填充错误、形式错误或应答错误时,由各自节点在下一位启动发送错误标志.
43、当检测到CRC错误时,出错帧在紧随ACK界定符后开始发送,除非其他出错条件的出错帧已经开始发送。2.5.2.错误界定规则网络中的任何一个节点,根据其错误计数器数值,可能处于下列三种状态之一。(1)错误激活:正常总线通信的节点检测到错误时,发出一个活动错误标志,中断当前总线传输。(2)错误认可:发送器启动认可出错标志后成为错误认可节点。错误认可节点在开始进一步发送前将等待一段附加时间。(3)总线脱离:当节点发生严重错误请求故障界定隔离,从而对总线处于关闭状态时处于总线脱离状态。在总线脱离状态下,节点不发送也不接收任何帧。系统启动时若仅有一个节点在线,该节点发送帧就没有其它节点应答。节点将检测到错误并重发帧,其状态变成为错误认可,但不会由此进入脱离总线状态.2。6 CAN总线通信原理通过对上述介绍,下面可以对CAN总线的组织和通信过