• 大小: 0.37M
    文件类型: .pdf
    金币: 1
    下载: 0 次
    发布日期: 2021-03-28
  • 语言: 其他
  • 标签: 其他  

资源简介


CAN总线通信时目前使用最普片的一种总线!其通信协议CAN2.0B为主流协议。
广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com 1.介绍 控制器局域网(CAN)为串行通讯协议,能有效地文持具有很高安全等级的分布实时控制。CAN的应 用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。在汽车电∫行业里,使用CAN连接发 动机控制单元、传感器、防刹车系统、等等,其传输速度可达1Mbi'S。同时,可以将CAN安装在卡车本 体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置 这木技术规范的目的是为了在任何两个CAN仪器之闫建立兼容性。可是,兼容性有不同的方面,比如 电气特性和数据转换的解释。为了达到设计透明度以及实现柔韧性,CAN被细分为以下不同的层次: ·CAN对象层( the object layer) ·CAN传输层( the transfer layer) 物理层( the phyical layer) 对象层和传输层包括所有由lso/○S模型定义的薮据链路层的服务和功能。对象层的作用范围包括: 查找被发送的报文 确定由实际要使用的传输层接收哪一个报文。 为应用层相关硬件提供接口 在这里,定义对象处理较为灵汘。传输层的作用主要是传送规则,也就是控制帧结构、执行仲裁、错 淏检测、岀错标定、故障界定。总线上什么时候开始发送新报文及什么时候开娢接牧报文,均在传輸层里 确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然,传输层的修改是受到限制的。 物理层的作用是在不同节点之根据所有的电气属性进行位信息的实际传输。当然,同一网络内,物 理层对于所有的节点必须是相同的。尽管如此,在选择物理层方面还是很白由的 这本技术规范的目的是定义传输层,并定义CAN协议于周围各层当中所发挥的作用(所具有的意义) 2.基本概念 CAN具有以下的属性: ·报文的优先权 ·保证延迟时间 ·设置灵活 ·时间同步的多点接收 系统宽数据的连贯性 ·多主机 ·错误检测和标定 ·只要总线一处丁空闲,就自动将破坏的报文車新传输 ·将节点的暂刑性错误和永久性错误区分开来,并且可以自动关闭错误的节点 3 广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com CAN节点的层结构( Layered Structure od a CAn node) 应用层 对象层 报文滤波 报文和状态的处理 传输层 故障界定 错误检测和标定 报文校验 应答 仲裁 报文分帧 传输速率和定时 物理层 信号电平和位表示 传输媒休 ●物理层定义实际信号的传输方法。本技术规范没有定义物理层,以便允许根据它们的应用,对发 送媒体和信号电平进行优化。 ●传输层是CAN协议的核心。它把接收到的报文提供给对象层,以及接收來自对象层的报文ε传输 层负责位定时及同步、报文分帧、仲裁、应答、错误检测和标定、故障界定 ●对象层的功能是报文滤波以及状态和报文的处坦。 这木技术规范的目的是为了定义传输层及定义CAN协议在周步各层中所发挥的作用(所具有的意义)。 报文( Messages) 总线上的信息以不同的固定报文格式发送,但长度受限(见第3节的报文传输)。当总线空闲时任何 连接的单元都可以开始发送新的报文。 信息路由( nformation Routing 在CAN系统里,节点不使用任何关于系统氈置的信息(比如,站地址)。以下是儿个重要的概念。 系统灵活性:不需要改变仼何节烹的应用层及相关的软件或硬作,就可以在CAN网络中直接添加 节点 ●报文路由:报文的内容由识别符命名。识别符不指出报文的目的地,但解释数据的含义。因此 网络上所有的节点可以通过报文滤波确定是否应对该数据做出反应 多播:由于引入了报文滤波的概念,仁何数目的节点都可以接收报文,并同时对此报文做出反应 数据连贯性:在CAN网络内,可以确保文同时被所冇的节点接收(或同时不被接收)。因此, 系统的数据连贯性是通过多播和错误处理的原珥实现的。 位速率( Bit rate) 不同的系统,CAN的速度不同。可是,在一给定的系统里,位速率是唯一的,并且是固定的 优先权( Priorities): 在总线访问期间,识判符定义一静态的报文优先权。 4 广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com 远程数据请求〈 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串行通讯链路是可以连接许多单元的总线。理论上,可连接无数多的单元。但由于实际上受延迟 时间以及/或者总线线路上电气负载的影响,连接单元的数量是有限的。 广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com 单通道( Single Channel): 总线是由单一进行双向位信号传送的通道组成。通过此通道可以获得数据的再同步信息。要使此通道 实现通讯,有许多的方法可以釆用,如使用单芯线(加上接地)、2条差分线、光缆笭等。这本技术规范 不限制这些实现方法的使用,即未定义物理层。 总线值( Bus value): 总线可以具有两种互补的逻辑值之一:“显性”或“隐性”。“显性”位和“隐性”位同时传送时,总 线的结果值为“显性”。比如,在执行总线的“线与”时,逻辑0代表“显性”笭级,逻辑1代表“隐性” 等级。本技术规范不给出表示这些逻辑电平的物理状态(比如,电压、光)。 应答( Acknowledgment): 所有的接收器检査报文的连贯性。对于连贯的报文,接收器应答;对于不连贯的报文,接收器作出标 睡眠模式/唤醒( Sleep Mode/Wake-up): 为了减少系统电源的功率消耗,可以将CAN器件没为睡眠模式以便停止内部活动及断开与总线驱动器 的连接。CAN器件可由总线激活,或系统內部状态而被唤酲ε唤醒时,虽然传输层要等待一段时间使系统 振荡器稳定,然后还要等待一段时间直到与总线活动同步(通过检査11个连续的“隐性”的位),但在总 线驱动器被重新设置为“总线在线”之前,内部运行已重新开始。为了唤醒系统上正处于睡眠模式的其他 节点,可以使用一特殊的唤醒报文,比报文具有专门的、最低等级的识别符。( rrr rrrd rrrr;r=‘隐性’d =‘显性’) 3.报文传输 3.1帧类型 报文传输由以下4个不同的帧类型所表示和控伺: 数据帧:数据唢携带数据从发送器至接收器。 远程帧:总线单元发岀远程帧,请求发送具有同·识别符的数据帧。 错误帧:任何单元检测到一总线错误就发出错误帧 过载帧:过载唢用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。 数据帧(或远程帧)通过帧间空间与前述的各帧分开。 3.11数据帧 数据帧由7个不同的位场组成: 帧起始、仲祓场、控制场、数据场、CRC场、应答场、帧结尾。数据场的长度可以为0。 帧起始 它标志数据帧和远程帧的起始,由一个单独的“显性”位组成。 只在总线空闲〈参览“总线空闲”)时,才允许站开始发送(信号)。所有的站必须同步于首元开始 发送信息的站的帧記始前沿(参见“砭同步”) 6 广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com Interframe DATA FRAME Interframe Space S pac Frame Start of frame Arbitration field Cont rol field Data F ield CRCF ield ACKF ield End of frame 仲裁场 仲裁场包括识别符和远程发送请求位(RTR)。 识别符:识别符的长度为11位。这些位的发送顺序是从ID-10到|D-0。最低位是ID0。最高的7位 (DD-10到-4)必须不能全是“隐性” RTR位:该位在数据帧旦必须为“显性”,而在远程帧里必须为“隐性”。 Interframe S art ARBI TRATION FIELD D Cont ro Space of F rame Fie ld RT RB Identifi 控制场 控制场由6个位组成,包括数据长度代码和两个将来作为扩展用的保留位。所发送的保留位必须为“显 性”。接收器接收所有由“显性”和“隐性”组合仁一起的位。 数扼长度代码:数据长度代码指示了数据场中字节数量。数据长度代码为4个位,在控制场里被发送。 CO NTRO L FIELD Data Field Field DLC1 DLC O CRC Field reserved Dat a Lengt h code b its 广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com 数据长度代码中数据字数的编码( DATA LENGTH CODE) 缩写 d-“显性” r“隐性 Number of data Data Leng th Code Bytes DLC3DLC2 DLC1 DLCO d 2345678 dddddddd r d 数捱帧:允许的数据字节数:{0,1,…,7,8}。其他的数值不允许使用。 数据场 数摭场由数据帧中的发送数据组成。它可以为0~8个字节,每字节包含了8个位,首先发送MSB CRC场 CRC场包括CRC序列( CRC SEQUENCE),其后是CRC界定符( CRC DELIMITER) CRCF ELD Field Fie ld CRC Del imiter CRCS equence CRC序列:由循环冗余码求得的帧检查序列最适用于位数低于127位〈BCH码)的帧。为进行CRC 计算,被除的多项式系数由无填充位流给定,组成这些位流的成分是:帧起始、仲裁场、控制场、数据场 (假如有),而15个最低位的系数是0。将此多项式被下面的多项式发生器除(其系数以2为模 15 X 14 +X10+X8+X7+Ⅹ4+X3+1 这个多项式除法的余数就是发送到总线上的CRC序列( CRC SEQUENCE)。为了实现这个功能, 可以使用15位的位移寄存器 CRC RG(14:0)。如果用 NXTBIT标记指小位流的下一位,它由从帧的起 始到数据场木尾都由无填充的位序列给定 CRC序列( CRC SEQUENCE)的计算如: CRC RG=0 ∥初始化移位寄存器 REPEAT 8 广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com CRCNXT= NXTBIT EXOR CRC RG(14) CRC RG(14: 1)=CRC RG(13: 0) ∥寄存器左移1位 CRC RG(0)=0 IF CRCNXT THEN CRC RG(14: 0) =CRC RG(14: 0) EXOR (4599hex ENDIF UNTL(CRC序列开始或存在一个错误条件) 在传送接收数据场的最后一位以后, CRC RG包含有cRC序列。CRc序列之后是CRc界定符,它 包含一个单独的“隐性”位。 应答场 应答场长度为2个位,包含应答间隙( ACK SLOT)和应答界定符( ACK DELIMITER)。在应答场 里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙( ACK SLOT) 期间(发送ACK信号)向发送器发送一“显性”的位以示应答。 CRC ACKF IELD End of Field Fr ame ACK Delimiter ACKS ot 应答间隙:所有接收到匹配CRC序列( CRC SEQUENCE)的站会在应答间隙( ACK SLOT)期间 用“显性”的位与入发送器的“隐性”位来作出回答。 ACK界定符:ACK界定符是ACK场的第二个位,并且是一个必须为“隐性”的位。因此,应答间隙 ( ACK SLOT)被两个“隐性”的位所包围,也就是CRC界定符( CRC DELIMITER)和ACK界定符(ACK DELIMITER) 帧结尾 每一个数据帧和远程帧均由一标志序列界定。这个标志序列由7个“隐性”位组成。 3.1.2远程帧 通过发送远程帧,作为某数据接攻器的站通过其资源节点对不同的数据传送进行初始化设置。 远程帧由6个不同的位场组成 帧起始、仲裁场、控制场、CRC场、应答场、帧末尾。 与薮据帧相反,远程帧的RTR位是“隐性”的。它没有数据场,数据长度代码的薮值是不受制约的(可 以标注为容许范围里0.8的任何数值)。此数值是相应于数据帧的数据长度代码。 广州周立功单片机发展有限公司Te:020-3873097638730977Fax:38730925ht/www.zlGmcu.Com Inter REMOTE FRAME Inter Frame Fr ame Space Space Overlay Fr Start of frame Arbitration Field Con trol field CRCF ield ACKF ield End of frame RTR位的极性表示了所发送的帧是一数据帧(RTR位“显性”)还是一远程帧(RTR“隐性” 3.13错误帧 错误帧由两个不冋的场组成。第一个场用作为不同站提供的错誤标志( ERROR FLAG)的叠加。第二 个场是错误界定符。 Data ERRO RE RAME Interframe Fame Space or Error Flag Over load Frame superposition of Error Flags Error del imiter 为了能正确地终止错误帧,一“错误被动”的节点要求总线至少有长度为3个位时间的总线空闲(如 果“错误被动”的接收器有本地错误的话)。因此,总线的载荷不应为100% 有两种形式的错误标志,主动错误标志( Active error flag)和被动错误标志( Passive error flag)。 主动错误标志由6个连续的“显性”位组成。被动错误标志由6个连续的“隐性”的位组成,除非被其他 节点的“显性”位重写 检测到错误条件的“错误主动”的站通过发送主动错误标志,以指示错误。错误标志的形式破坏了从 帧起始到CRC界定符的位填允规则(参见“编码”),或者破坏了应答场或帧末尾场的固定形式,所有 其他的站由此检测到错误条件并与此同时开始发送错误标志。因此,“显性”位(此“显性”位可以在总 线上监视)的序列导致一个结果,这个结果就是把各个单独站发送的不同的错误标志叠加在一起。这个顺 序的总长度最小为6个位,最大为12个位。 检测到错误条件的“错误被动”的站试图通过发送被动错误标志,以指示错误。“错误被动”的站等 待6个相同极性的连续位(这6个位处于被动错误标志的开始)。当这6个相同的位被检测到时,被动错 误标志的发送就完成了。

资源截图

代码片段和文件信息

评论

共有 条评论