096
CAN总线及应用样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本设计包含内容:毕业论文
论文大概:
目 录
摘要…………………………………………………………………………………………………1
Abstract……………………………………………………………………………………………2
引言
第一章 CAN—BUS技术规范的介绍…………………………………………………3
1.1简介……………………………………………………………………………………3
1.2基本概念…………………………………………………………………………4
1.3报文传输…………………………………………………………………………7
1.3.1帧格式…………………………………………………………………………7
1.3.2帧类型…………………………………………………………………………7
1.3.3关于帧格式的符合性……………………………………………………15
1.3.4发送器/接收器的定义……………………………………………………15
1.4报文滤波…………………………………………………………………………16
1.5报文校验…………………………………………………………………………16
1.6编码……………………………………………………………………………………16
1.7错误处理…………………………………………………………………………16
1.7.1错误检测………………………………………………………………16
1.7.2错误标定………………………………………………………………17
1.8故障界定…………………………………………………………………………17
1.9振荡器容差…………………………………………………………………………18
1.10位定时要求…………………………………………………………………………18
第二章
通用CAN收发器PCA82C250
……………………………………………………20
2.1总述 ……………………………………………………………………………………20
2.2功能框图…………………………………………………………………………21
2.3功能描述…………………………………………………………………………21
第三章
独立的CAN控制器SJA1000……………………………………………………28
3.1 芯片SJA1000的概述
………………………………………………………………28
3.1.1
简介…………………………………………………………………………28
3.1.2
特性…………………………………………………………………………28
3.2 SJA1000的内部结构及SJA1000
引脚定义…………………………………………29
3.2.1
SJA1000的内部结构……………………………………………………29
3.2.2
芯片引脚排列与名称……………………………………………………29
3.2.3
引脚定义………………………………………………………………………30
3.3功能说明…………………………………………………………………………31
3.3.1
CAN 控制模块的说明……………………………………………………31
3.3.2 CAN
控制器的详细说明………………………………………………32
3.3.3
应用框图………………………………………………………………33
第四章
CAN总线系统智能节点设计……………………………………………………33
4.1
CAN总线系统智能节点硬件电路设计
4.2
CAN总线系统智能节点软件设计
4.2.1
初始化子程序
4.2.2发送程序
4.2.3中断方式接收程序
第五章
结束语
参考文献
摘要
CAN-bus (Controller Area Network)
即控制器局域网,是国际上应用最广泛的现场总线之一。起先CAN-bus 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU
之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中均嵌入CAN
控制装置。
CAN-bus
是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率、高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km
时,CAN-bus 仍可提供高达5Kbps 的数据传输速率。由于CAN
串行通讯总线具有这些特性,它很自然地在汽车制造业以及航空工业中受到广泛应用。
作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-bus
已被广泛应用到各个自动化控制系统中。例如,在汽车电子、自动控制、智能大厦、电力系统、安防监控等各领域,CAN-bus
都具有不可比拟的优越性。
关键词:CAN, 应用
Abstract
CAN-bus (Controller Area Network) is one of the most widely
used locale bus in the world. At prime tense,CAN-bus was designed as
micro-controller within car environment to exchange information
among ECU’s and formation car electron control network.For
example:engine managing system,gear-box controller,meter
equipment,electron trunk system,which all include CAN control
device.
CAN-bus is a serial communication bus with multi-host mode.It’s
reqest of basic design norm contains high bit velocity,high
anti-electromagnetism interference,and can detect any arisen
mistake.When the signal transmission distance is up to 10 Km,CAN-bus
still can provide high data rransmission velocity up to 5
Kbps.Because of these characteristic,this serial communication bus
is naturally widely used in car manufacturing and aviation
industry.
Be used as a advanced, reliable,perfect and reasonable
long-distant network communication,CAN-bus has been widely using in
every roboticized control systems.For example,it has unexampled
superiority in auto electron,roboticized control,intelligent
mansions,power system,stakeout and so on.
Keywords: CAN, applications
引言
CAN-bus (Controller Area Network)
即控制器局域网,是国际上应用最广泛的现场总线之一。起先CAN-bus 被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU
之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中均嵌入CAN
控制装置。
如今CAN-bus作为一种多主方式的串行通讯总线,基本设计规范要求有高的位速率、高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km
时,CAN-bus 仍可提供高达5Kbps 的数据传输速率。由于CAN
串行通讯总线具有这些特性,它很自然地在汽车制造业以及航空工业中受到广泛应用。
作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-bus
必将越来越广泛地应用到各个自动化控制系统中。例如,在汽车电子、自动控制、智能大厦、电力系统、安防监控等各领域,CAN-bus
都具有不可比拟的优越性。
第1章 CAN-bus 技术规范的介绍
随着串行通讯进入更多应用领域,因此,在一些应用里,需要对通讯功能的报文识别位提出分配标准化的要求。原先的地址范围由11
个识别位定义,如果地址范围扩大,则这些应用就可以更好地由CAN
来实现。因此引入了第二种报文格式(‘扩展格式’)的概念,其定义的地址范围更宽,由29
位定义。系统设计者将从考虑定义良好的结构命名方案中得到解放。有的用户不需要由扩展格式提供的识别符范围,可以继续沿用常规的11
位识别符范围(‘标准格式’),在这种情况下,可以采用市场上可用的CAN
仪器,或使用兼容这两种模式的新控制器类仪器。
为了区别标准格式和扩展格式,按CAN 1.2 规范定义,使用了CAN
报文格式的第一个保留位。因为CAN1.2
定义的信息格式相当于标准格式,因此仍然是有效的。此外,由于扩展格式已经定义,因此网络中会共存标准格式和扩展格式的报文。
CAN
技术规范由两部分组成:
• A 部分:CAN 的报文格式说明(按CAN1.2 规范定义)。
• B
部分:标准格式和扩展格式的说明。
为了兼容CAN2.0,要求CAN 的仪器应兼容A 部分或B
部分。只要没有用到扩展格式,那么,根据A 部分或CAN 旧版本设计的仪器可以和根据B
部分设计的仪器相互进行通信。
由于现在各半导体公司生产的CAN控制器几乎都完全支持CAN2.0B规范,而2.0B完全兼容2.0A。为了节约篇幅,主要介绍CAN2.0B。
1.1 简介
控制器局域网CAN 为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN
的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。在汽车电子行业里,使用CAN
连接发动机控制单元、传感器、防刹车系统、等等,其传输速度可达1 Mbit/s。同时,可以将CAN
安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。
这本技术规范的目的是为了在任何两个CAN
仪器之间建立兼容性。可是,兼容性有不同的方面,比如电气特性和数据转换的解释。为了达到设计透明度以及实现灵活性,根据ISO/OSI
参考模型,CAN 被细分为以下不同的层次:
• 数据链路层
- 逻辑链路控制子层(LLC)
-
媒体访问控制子层(MAC)
• 物理层
注:在前版本的CAN 规范中,数据链路层的LLC 子层和MAC
子层的服务及功能分别被解释为“对象层”和“传输层”。逻辑链路控制子层(LLC)的作用范围如下:
•
为远程数据请求以及数据传输提供服务。
• 确定由实际要使用的LLC 子层接收哪一个报文。
•
为恢复管理和过载通知提供手段。
在这里,定义对象处理较为自由。MAC
子层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在MAC子层里确定。位定时的一些普通功能也可以看作是MAC
子层的一部分。理所当然,MAC
子层的修改是受到限制的。
物理层的作用是在不同节点之间根据所有的电气属性进行位的实际传输。同一网络的物理层对于所有的节点当然是相同的。尽管如此,在选择物理层方面还是很自由的。
这本技术规范的目的是定义数据链路层中MAC
子层和一小部分LLC 子层,以及定义CAN 协议于周围各层当中所发挥的作用(所具有的意义)。
1.2 基本概念
CAN 具有以下的属性:
• 报文的优先权
• 保证延迟时间
• 设置灵活
•
时间同步的多点接收
• 系统内数据的连贯性
• 多主机
• 错误检测和错误标定
•
只要总线一处于空闲,就自动将破坏的报文重新传输
• 将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭由OSI
参考模型分层CAN 结构的错误的节点。
依据ISO/OSI 参考模型的层结构
•
物理层定义信号是如何实际地传输的,因此涉及到位时间、位编码、同步的解释。本技术规范没有定义物理层的驱动器/接收器特性,以便允许根据它们的应用,对发送媒体和信号电平进行优化。
•
MAC 子层是CAN 协议的核心。它把接收到的报文提供给LLC 子层,并接收来自LLC 子层的报文。MAC
子层负责报文分帧、仲裁、应答、错误检测和标定。MAC
子层也被称作故障界定的管理实体监管。
此故障界定为自检机制,以便把永久故障和短时扰动区别开来。
• LLC
子层涉及报文滤波、过载通知、以及恢复管理。
LLC =Logical Link Control
MAC
=Medium Access Control
此技术规范的目的是为了定义数据链路层及定义CAN 协议在周围各层中所发挥的作用(具有的意义)。
报文(Messages)
总线上的报文以不同的固定报文格式发送,但长度受限(见第3
节的报文传输)。当总线空闲时任何连接的单元都可以开始发送新的报文。
信息路由(Information Routing)
在CAN 系统里,CAN
的节点不使用任何关于系统配置的报文(比如,站地址)。以下是几个重要的概念:
•系统灵活性:不需要应用层以及任何节点软件和硬件的任何改变,可以在CAN
网络中直接添加节点。
•报文路由:报文的内容由识别符命名。识别符不指出报文的目的地,但解释数据的含义。因此,网络上所有的节点可以通过报文滤波确定是否应对该数据做出反应。
•多播:由于引入了报文滤波的概念,任何节点都可以接收报文,并与此同时对此报文做出反应。
•数据连贯性:应确保报文在CAN
网络里同时被所有的节点接收(或同时不被接收)。因此,系统的数据连贯性是通过多播和错误处理的原理实现的。
位速率(Bit rate):
不同的系统,CAN
的速度不同。可是,在一个给定的系统里,位速率是唯一的,并且是固定的。
优先权(Priorities):
在总线访问期间,识别符定义一个静态的报文优先权。
远程数据请求(Remote Data Request)
:
通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由相同的识别符命名的。
多主机(Multimaster):
总线空闲时,任何单元都可以开始传送报文。具有较高优先权报文的单元可以获得总线访问权。
仲裁(Arbitration):
只要总线空闲,任何单元都可以开始发送报文。如果2 个或2
个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用了识别符的逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监视的是一“显性”电平(见总线值),那么单元就失去了仲裁,必须退出发送状态。
安全性(Safety):
为了获得最安全的数据发送,CAN
的每一个节点均采取了强有力的措施以便于错误检测、错误标定及错误自检。
错误检测:
要进行检测错误,必须采取以下措施:
-
监视(发送器对发送位的电平与被监控的总线电平进行比较)
- 循环冗余检查
- 位填充
- 报文格式检查
错误检测的执行:
错误检测的机制要具有以下的属性:
- 检测到所有的全局错误
-
检测到发送器所有的局部错误
- 可以检测到报文里多达5 个任意分布的错误
-
检测到报文里长度低于15(位)的突发性错误
-
检测到报文里任一奇数个的错误
对于没有被检测到的错误报文,其剩余的错误可能性概率低于:报文错误率* 4.7 * 10
–11。
错误标定和恢复时间:
任何检测到错误的节点会标志出损坏的报文。此报文会失效并将自动地开始重新传送。如果不再出现错误的话,从检测到错误到下一报文的传送开始为止,恢复时间最多为31
个位的时间。
故障界定(Fault Confinement):
CAN
节点能够把永久故障和短暂扰动区别开来。故障的节点会被关闭。
连接(Connections):
CAN
串行通讯链路是可以连接许多单元的总线。理论上,可连接无数多的单元。但由于实际上受延迟时间以及/或者总线线路上电气负载的影响,连接单元的数量是有限的。
单通道(Single
Channel):
总线包括有一单独的通道。通过此通道可以获得数据的再同步报文。要使此通道实现通讯,有许多的方法可以采用,如使用单芯线(加上接地)、2
条差分线、光缆等等。这本技术规范不限制这些实现方法的使用。
总线值(Bus
values):
总线有一个补充的逻辑值:“显性”或“隐性”。“显性”位和“隐性”位同时传送时,总线的结果值为“显性”。比如,在总线的“写-与”执行时,逻辑0
代表“显性”等级,逻辑1 代表“隐性”等级。本技术规范不包括表示逻辑等级的物理状态(比如,电压、灯光)。
应答(Acknowledgment):
所有的接收器检查报文的连贯性。对于连贯的报文,接收器应答,对于不连贯的报文,接收器作出标志。
睡眠模式/唤醒(Sleep Mode / Wake-up):
为了减少系统电源的功率消耗,可以将CAN
器件设为睡眠模式以便停止内部活动及断开与总线驱动器的连接。CAN 器件可由总线激活,或系统内部状态而被唤醒。唤醒时,虽然MAC
子层要等待一段时间使振荡器稳定,然后还要等待一段时间直到与总线活动同步(通过检查11
个连续的“隐性”的位),但在总线驱动器被重新设置为“总线在线”之前,内部运行已重新开始。
振荡器容差(Oscillator
Tolerance):
位定时要求允许凭经验地把陶瓷谐振器使用在传输率高达125kbit/s
的应用里。有关更多准确的评估,
请参考:
Dais, S; Chapman, M;
“Impact of Bit
Representation on Transport Capacity and Clock Accuracy in Serial
Data Streams”,
SAE Technical Paper Series 890532, Multiplexing in
Automobiles SP-773 March 1989
为了满足CAN 协议的整个总线速度范围,需要使用晶振。
1.3 报文传输
1.3.1 帧格式
有两种不同的帧格式,不同之处为识别符场的长度不同:具有11
位识别符的帧称之为标准帧。而含有29 位识别符的帧为扩展帧。
1.3.2 帧类型
报文传输由以下4
个不同的帧类型所表示和控制:
数据帧:数据帧将数据从发送器传输到接收器。
远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。
错误帧:任何单元检测到总线错误就发出错误帧。
过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。
数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一个帧间空间与前面的帧分隔。