




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CAN简介控制器局域网(CAN)为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN 的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。在汽车电子行业里,使用CAN 连接发动机控单元、传感器、防刹车系统、等等,其传输速度可达1 Mbit/s。同时,可以将CAN 安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。为了达到设计透明度以及实现柔韧性,CAN 被细分为以下不同的层次:CAN 对象层(the object layer)CAN 传输层(the transfer layer)物理层(the phyical layer)对象层和传输层包括所有由ISO/OSI 模型定义的数据链路层的服务和功能。对象层的作用范围包括:查找被发送的报文。确定由实际要使用的传输层接收哪一个报文。为应用层相关硬件提供接口。在这里,定义对象处理较为灵活。传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在传输层里确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然,传输层的修改是受到限制的。物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然,同一网络内,物理层对于所有的节点必须是相同的。尽管如此,在选择物理层方面还是很自由的。随着串行通讯进入更多应用领域,因此,在一些应用里,需要对通讯功能的报文识别位提出分配标准化的要求。原先的ID范围由11 个识别位定义,如果ID范围扩大,则这些应用就可以更好地由CAN 来实现。因此引入了第二种报文格式(扩展格式)的概念,其定义的ID范围更宽,由29 位定义。系统设计者将从考虑定义良好的结构命名方案中得到解放。有的用户不需要由扩展格式提供的识别符范围,可以继续沿用常规的11 位识别符范围(标准格式),在这种情况下,可以采用市场上可用的CAN 仪器,或使用兼容这两种模式的新控制器类仪器。为了区别标准格式和扩展格式,按CAN 1.2 规范定义,使用了CAN 报文格式的第一个保留位。因为CAN1.2 定义的信息格式相当于标准格式,因此仍然是有效的。此外,由于扩展格式已经定义,因此网络中会共存标准格式和扩展格式的报文。CAN 规范技术规范由两部分组成:A 部分:CAN 的报文格式说明(按CAN1.2 规范定义)。B 部分:标准格式和扩展格式的说明。为了兼容CAN2.0,要求CAN 的仪器应兼容A 部分或B 部分CAN 具有以下的属性:报文的优先权保证延迟时间设置灵活时间同步的多点接收系统宽数据的连贯性多主机错误检测和标定只要总线一处于空闲,就自动将破坏的报文重新传输将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭错误的节点远程数据请求(Remote Data Request):通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由相同的识别符(IDENTIFIER)命名的。多主机(Multimaster):总线空闲时,任何单元都可以开始传送报文。具有较高优先权报文的单元可以获得总线访问权。仲裁(Arbitration):只要总线空闲,任何单元都可以开始发送报文。如果2 个或2 个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用识别符的位形式仲裁可以解决这个冲突。仲裁的机制确保信息和时间均不会损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监控视到一“显性”电平(见总线值),那么该单元就失去了仲裁,必须退出发送状态。安全性(Safety):为了获得最安全的数据发送,CAN 的每一个节点均采取了强有力的措施以进行错误检测、错误标定及错误自检。错误检测(Error Detection):为了检测错误,必须采取以下措施:- 监视(发送器对发送位的电平与被监控的总线电平进行比较)- 循环冗余检查- 位填充- 报文格式检查错误检测的执行(Performance of Error Detection):错误检测的机制要具有以下的属性:- 检测到所有的全局错误- 检测到发送器所有的局部错误- 可以检测到一报文里多达5 个任意分布的错误- 检测到一报文里长度低于15(位)的突发性错误- 检测到一报文里任一奇数个的错误对于没有被检测到的错误报文,其残余的错误可能性概率低于:报文错误率* 4.7 * 10 11。错误标定和恢复时间(Error Sinalling and Recovery Time):任何检测到错误的节点会标志出已损坏的报文。此报文会失效并将自动地开始重新传送。如果不再出现新错误的话,从检测到错误到下一报文的传送开始为止,恢复时间最多为29 个位的时间。故障界定(Fault Confinement):CAN 节点能够把永久故障和短暂扰动区分开来。永久故障的节点会被关闭。连接(Connections):CAN 串行通讯链路是可以连接许多单元的总线。理论上,可连接无数多的单元。但由于实际上受延迟时间以及/或者总线线路上电气负载的影响,连接单元的数量是有限的单通道(Single Channel):总线是由单一进行双向位信号传送的通道组成。通过此通道可以获得数据的同步信息。要使此通道实现通讯,有许多的方法可以采用,如使用单芯线(加上接地)、2 条差分线、光缆等等。总线值(Bus value):总线可以具有两种互补的逻辑值之一:“显性”或“隐性”。 “显性”位“隐性”位同时传送时,总线的结果值为“显性”。比如,在执行总线的“线与”时,逻辑0 代表“显性”等级,逻辑1 代表“隐性”等级。应答(Acknowledgment):所有的接收器检查报文的连贯性。对于连贯的报文,接收器应答;对于不连的报文,接收器作出标志。睡眠模式唤醒(Sleep Mode / Wake-up):为了减少系统电源的功率消耗,可以将CAN 器件设为睡眠模式以便停止内部动及断开与总线驱动器的连接。CAN 器件可由总线激活,或系统内部状态而被唤醒。唤醒时,虽然传输层要等待一段时间使系统振荡器稳定,然后还要等待一段时间直到与总线活动同步(通过检查11 个连续的“隐性”的位),但在总线驱动器被重新设置为“总线在线”之前,内部运行已重新开始。为了唤醒系上正处于睡眠模式的其他节点,可以使用一特殊的唤醒报文,此报文具有专的、最低等级的识别符。(rrr rrrd rrrr; r =隐性 d= 显性)报文传输 帧类型报文传输由以下4 个不同的帧类型所表示和控制:- 数据帧:数据帧携带数据从发送器至接收器。- 远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。- 错误帧:任何单元检测到一总线错误就发出错误帧。- 过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加延时。数据帧(或远程帧)通过帧间空间与前述的各帧分开。数据帧数据帧由7 个不同的部分组成:帧起始、仲裁、控制、数据、CRC 、应答、帧结尾。数据可以为0。帧起始它标志数据帧和远程帧的起始,由一个单独的“显性”位组成。只在总线空闲(参见“总线空闲”)时,才允许站开始发送(信号)。所有的站必须同步首先开始发送信息的站的帧起始前沿(参见“硬同步”)。仲裁场标准格式帧与扩展格式帧的仲裁场格式不同。- 标准格式里,仲裁场由11 位识别符和RTR 位组成。识别符位由ID-28ID-18。- 扩展格式里,仲裁场包括29 位识别符、SRR 位、IDE 位、RTR 位。其识别符由ID-28. ID-0。为了区别标准格式和扩展格式,前版本CAN 规范1.0-1.2 的保留位r1 现表示为IDE Bit。识别符识别符标准格式识别符的长度为11 位,相当于扩展格式的基本ID(Base ID)。这些位按ID-28 到ID-18 的顺序发送。最低位是ID-18。7 个最高位(ID-28 - ID-22)必须不能全是“隐性”。识别符扩展格式和标准格式形成对比,扩展格式由29 位组成。其格式包含两个部分:11 位基本ID、18 位扩展ID。基本ID:基本ID 包括11 位。它按ID-28 到ID-18 的顺序发送。它相当于标准识别符的格式。基本ID定义扩展帧的基本优先权。扩展ID:扩展ID 包括18 位。它按ID-17 到ID-0 顺序发送。标准帧里,识别符其后是RTR 位。RTR 位(标准格式以及扩展格式)RTR 的全称为“远程发送请求位(Remote Transmission Request BIT)”。RTR 位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”扩展格式里,基本ID 首先发送,其次是IDE 位和SRR 位。扩展ID 的发送位与SRR 位之后。SRR 位(扩展格式)SRR 的全称是“替代远程请求位(Substitute Remote Request BIT)”。SRR 是一隐性位。它在扩展格式的标准帧RTR 位位置,因此代替标准帧的RTR 位。因此,标准帧与扩展帧的冲突是通过标准帧优先于扩展帧这一途径得以解决的,扩展帧的基本ID(参见以下的“扩展识别符”)如同标准帧的识别符。IDE 位(扩展格式)IDE 的全称是“识别符扩展位(Identifier Extension Bit)”IDE 位属于:- 扩展格式的仲裁场- 标准格式的控制场标准格式里的IDE 位为“显性”,而扩展格式里的IDE 位为“隐性”。控制场(标准格式以及扩展格式)控制场由6 个位组成。标准格式的控制场格式和扩展格式的不同。标准格式里的帧包括数据长度代码、IDE 位(为显性位,见上文)、及保留位r0。扩展格式里的帧包括数据长度代码和两个保留位:r1 和r0。其保留位必须发送为显性,但是接收器认可“显性”和“隐性”位的组合。数据长度代码(标准格式以及扩展格式)数据长度代码指示了数据场里的字节数量。数据长度代码为4 个位,它在控制场里发送。数据长度代码中数据字节数的编码缩写: d“显性” r“隐性”数据场(标准格式以及扩展格式)数据场由数据帧里的发送数据组成。它可以为08 个字节,每字节包含了8 个位,首先发送MSB。CRC 场(标准格式以及扩展格式)CRC 场包括CRC 序列(CRC SEQUENCE),其后是CRC 界定符(CRC DELIMITER)。CRC 序列(标准格式以及扩展格式)由循环冗余码求得的帧检查序列最适用于位数低于127 位BCH 码的帧。为进行CRC 计算,被除的多项式系数由无填充位流给定,组成这些位流的成分是:帧起始、仲裁场、控制场、数据场(假如有),而15 个最低位的系数是0。将此多项式被下面的多项式发生器除(其系数以2 为模):X 15 + X 14 + X 10 + X 8 + X 7 + X 4 + X 3 + 1这个多项式除法的余数就是发送到总线上的CRC SEQUENCE(CRC 序列)。为了实现这个功能,可以使用15 位的位移寄存器CRC_RG(14:0)。如果NXTBIT 指示位流的下一位,那么从帧的起始到数据场末尾都由没有填充的位顺序给定。CRC 序列(CRC SEQUENCE)的计算如下:CRC_RG = 0; / 初始化移位寄存器REPEATCRCNXT = NXTBIT EXOR CRC_RG(14);CRC_RG(14:1) = CRC_RG(13:0); / 寄存器左移一位CRC_RG(0) = 0;IF CRCNXT THENCRC_RG(14:0) = CRC_RG(14:0) EXOR (4599hex);ENDIFUNTIL (CRC 序列起始或有一错误条件)在传送/接收数据场的最后一位以后,CRC_RG 包含有CRC 顺序。CRC 界定符(标准格式以及扩展格式)CRC 序列之后是CRC 界定符,它包含一个单独的“隐性”位 。应答场(标准格式以及扩展格式)应答场长度为2 个位,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在ACK 场(应答场)里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK SLOT)期(发送ACK 信号)向发送器发送一“显性”位以示应答。应答界定符应答界定符是应答场的第二个位,并且是一个必须为“隐性”的位。因此,应答间隙(ACK SLOT)被两个“隐性”的位所包围,也就是CRC 界定符(CRC DELIMITER)和应答界定符(ACK DELIMITER)。帧结尾(标准格式以及扩展格式)每一个数据帧和远程帧均由一标志序列定界。这个标志序列由7 个“隐性”的位组成。远程帧通过发送远程帧,作为某数据接收器的站可以初始化通过其资源节点传送不同的数据。远程帧也有标准格式和扩展格式,而且都由6 个不同的位场组成:帧起始、仲裁场、控制场、CRC 场、应答场、帧结尾。与数据帧相反,远程帧的RTR 位是“隐性”的。它没有数据场,数据长度代码的数值是不受制约的(可以标注为容许范围里0.8 的任何数值)。此数值是相应于数据帧的数据长度代码。RTR 位的极性表示了所发送的帧是一数据帧(RTR 位“显性”)还是一远程帧(RTR“隐性”)。错误帧错误帧由两个不同的场组成。第一个场用是不同站提供的错误标志(ERROR FLAG)的叠加。第二个场是错误界定符.为了能正确地终止错误帧,一“错误被动”的节点要求总线至少有长度为3 个位时间的总线空闲(如果“错误被动”的接收器有局部错误的话)。因此,总线的载荷不应为100%。错误标志有两种形式的错误标志:主动的错误标志和被动的错误标志。1. 主动的错误标志由6 个连续的“显性”位组成。2. 被动的错误标志由6 个连续的“隐性”的位组成,除非被其他节点的“显性”位重写。检测到错误条件的“错误激活”的站通过发送主动错误标志指示错误。错误标志的形式破坏了从帧起始到CRC 界定符的位填充的规则(参见“编码”),或者破坏了ACK 场或帧结尾场的固定形式。所有其他的站由此检测到错误条件并与此同时开始发送错误标志。因此,“显性”位(此“显性”位可以在总线上监视)的序列导致一个结果,这个结果就是把个别站发送的不同的错误标志叠加在一起。这个序列的总长度最小为6 个位,最大为12 个位。检测到错误条件的“错误被动”的站试图通过发送被动错误标志指示错误。“错误被动”的站等待6个相同极性的连续位(这6 个位处于被动错误标志的开始)。当这6 个相同的位被检测到时,被动错误标志的发送就完成了。错误界定符错误界定符包括8 个“隐性”的位。错误标志传送了以后,每一站就发送“隐性”的位并一直监视总线直到检测出一个“隐性”的位为止。然后就开始发送其余7 个“隐性”位。过载帧过载帧包括两个位场:过载标志和过载界定符。有三种过载的情况,这三种情况都会引发过载标志的传送:1. 接收器的内部情况(此接收器对于下一数据帧或远程帧需要有一延时)。2. 在间歇的第一和第二字节检测到一个“显性”位。3. 如果CAN 节点在错误界定符或过载界定符的第8 位(最后一位)采样到一个显性位,节点会发送一个过载帧(不是错误帧)。错误计数器不会增加。根据过载情况1 而引发的过载帧只允许起始于所期望的间歇的第一个位时间,而根据情况2 和情况3引发的过载帧应起始于所检测到“显性”位之后的位。通常为了延时下一个数据帧或远程帧,两种过载帧均可产生。过载标志(Overload Flag)过载标志由6 个“显性”的位组成。过载标志的所有形式和主动错误标志的一样。过载标志的形式破坏了间歇场的固定形式。因此,所有其他的站都检测到过载条件并与此同时发出过载标志。如果有的节点在间歇的第3 个位期间检测到“显性”位,则这个位将解释为帧的起始。过载界定符(Overload Delimeter)过载界定符包括8 个“隐性”的位。过载界定符的形式和错误界定符的形式一样。过载标志被传送后,站就一直监视总线直到检测到一个从“显性”位到“隐性”位的跳变。此时,总线上的每一个站完成了过载标志的发送,并开始同时发送其余7 个“隐性”位。帧间空间数据帧(或远程帧)与先行帧的隔离是通过帧间空间实现的,无论此先行帧类型如何(数据帧、远程帧、错误帧、过载帧)。所不同的是,过载帧与错误帧之前没有帧间空间,多个过载帧之间也不是由帧间空间隔离的。帧间空间(Interframe Space)帧间空间包括间歇、总线空闲的位场。如果“错误被动”的站已作为前一报文的发送器时,则其帧空间除了间歇、总线空闲外,还包括称作挂起传送(SUSPEND TRANSMISSION)的位场。对于已作为前一报文发送器的“错误被动”的站,其帧间空间如下图所示:间歇(Intermission)间歇包括3 个“隐性”的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于公司职工工作总结7篇
- 2025广东深圳大学文化产业研究院张振鹏教授博士后招聘1人考前自测高频考点模拟试题完整答案详解
- 2025年水发集团权属一级公司纪委副书记专项招聘模拟试卷及答案详解一套
- 单位个人的半年工作总结15篇
- 关于生活的演讲稿15篇
- 关于销售业务员工作总结15篇
- 2025江西抚州市崇仁县县属国有企业招聘员工有关事项考前自测高频考点模拟试题及答案详解一套
- 承揽加工合同书(详细版)6篇
- 2025年社会救助及公益服务合作协议书
- 2025福建福州市罗源县社会救助协管员招聘1人模拟试卷及答案详解(各地真题)
- 食品安全法规试题及答案
- (2025年标准)个人薪酬协议书
- 搅拌车司机安全培训课件
- 2025年易制毒试题(含答案)
- 2025年医院药事管理自查报告及整改措施
- 工程地质学 第3版 课件 第3章 地质构造
- 2025标准建设银行贷款合同范本
- 2025年沥青搅拌站试题库(含答案)
- 2024版高中同步学案优化设计思想政治必修4人教版-第二单元测评
- 2024北京一零一中高三10月月考语文试题及答案
- 机关文件借阅管理制度
评论
0/150
提交评论