欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    CAN总线技术第6周6.ppt

    • 资源ID:2921096       资源大小:2.28MB        全文页数:197页
    • 资源格式: PPT        下载积分:10
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要10
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    CAN总线技术第6周6.ppt

    第三章 CAN总线,成都大学 电子信息工程学院,3.1 CAN总线的简介,控制器发送01010001,3.1CAN总线简介,由于其高性能、高可靠性、及独特的设计,CAN越来越受到人们的重视。国外已有许多大公司的产品采用了这一技术。众所周知,现代汽车越来越多地采用电子装置控制,如发动机的定时、注油控制,加速、刹车控制(ASC)及复杂的抗锁定刹车系统(ABS)等。由于这些控制需检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题,采用CAN总线上述问题便得到很好地解决。据资料介绍,世界上一些著名的汽车制造厂商,如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLLS-ROYCE(劳斯莱斯)和JAGUAR(美洲豹)等都已开始采用CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。,CAN(Controller Area Network)是控制器局域网络的简称,是由德国Bosch公司于80年代为解决现代汽车中各种过程控制器、执行机构、监测仪器、传感器之间的数据通讯而提出并开发的总线式串行通讯网络,1981年由ISO制定为国际标准,称为IS011898。,作为一种设备级总线网络,CAN的国际标准中只定义了物理层和数据链路层,而其他的高层协议则交给用户完成,这样,对于CAN的开发就有更大的灵活性。,3.1 CAN总线的简介,Intel在1987年开发出了第一枚CAN总线控制器82526,这是CAN协议的第一次硬件实现。1993年11月,ISO正式颁布了道路交通运载工具一数字信息交换一高速通信控制器局域网(CAN)国际标准(ISO 11898),为CAN标准化、规范化推广铺平了道路。之后,CAN控制器芯片的研制有了日新月异的发展,不断有新的芯片问世。近几年,随着可编程ASIC的发展,CAN控制器的硬核和软核不断出现。,3.1 CAN总线的简介,3.1 CAN总线的简介,3.1 CAN总线的简介,CAN总线属于现场总线范畴,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性及独特的设计,CAN总线是目前国内外最普及和实时性最高的现场总线之一。 现场总线具有如下特点: (1)现场总线实现了信号传输的全数字化: (2)现场总线的系统结构是全分散式,它不仅结构是分散的,软件编程和功能执行也是分散式的:,3.1 CAN总线的简介,(3)现场总线的现场设备具有互操作性,彻底改变了传统控制系统的封闭性和专用性; (4)现场总线的技术和标准实现了全开放性。 CAN总线由于采用了许多新技术及其独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。CAN本身的特点可概括如下: , (1)多主方式传送和接收数据,利用这一特点可方便地构成多机备份系统; (2)CAN总线网络上的节点信息具有不同的优先级,可满足不同的实时要求;,3.1 CAN总线的简介,(3)采用短帧结构,传输时间短,受干扰率降低,具有极好的检错效果; (4)每帧信息都有CRC校验及其它检错措施,保证了数据出错率极低; (5)采用非破坏性总线仲裁技术,保证了在网络负载重的情况下不会出现网络瘫痪; (6)通信介质可灵活选择、通讯距离最远可达10km(传输率为lkbps)、通讯速率最高可达1MbPs(传输距离为40m); (7)总线节点数可达110个; (8)实时性强、抗电磁干扰能力强、成本低。,3.1 CAN总线的简介,3.2 CAN总线的分层,CAN协议从最初的10版到12版,最终发展到CAN 20。并且高版本对低版本实现了完全兼容。CAN 20规范分为CAN 20A与CAN 20B。CAN 20A支持标准的11位标识符。CAN 20B同时支持标准的11位标识符和扩展的29位标识符,CAN 20规范的目的是为了在任何两个基于CAN bus的仪器之间建立兼容性。该协议定义了传输层,并定义了CAN协议在周围各层当中所发挥的作用,CAN 20规范涉及兼容性的不同方面,比如电气特性和数据转换等。CAN协议可以分为数据链路层(Data Link Layer)和物理层(Physical Layer)。,CAN的数据链路层又细分为逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。LLC的作用范围包括查找被发送的报文、确定由实际要使用的传输层接收哪一个报文以及为应用层相关硬件提供接口。MAC的作用主要是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定、总线上何时开始发送新报文及何时开始接收报文等。物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输,同一网络内物理层对于所有的节点必须是相同的,3.2 CAN总线的分层,3.2.2 CAN的物理层,定义信号怎样进行发送,因而涉及电气连接、驱动器/接收器的特性、位编码/解码、位定时及同步等内容。 但对总线媒体装置,诸如驱动器/接收器特性未作规定,以便在具体应用中进行优化设计。 CAN物理层选择灵活,没有特殊的要求,可以采用共地的单线制、双线制、同轴电缆、双绞线、光缆等。,3.2.2 CAN的物理层,CAN总线物理层通常是双绞线,当逻辑1被写进总线里,两条线的电平是25V,并被定义为“隐性”位,当逻辑0被写进总线里,一条线(CANH)被上拉到为5V, 另一条线(CANL)被下拉到0V,这叫做“显性”位。但是如果“显性”位和“隐性“位都被不同的节点同时写进总线里,总线显示“显性位,所以显性位覆盖了隐性位。这是CAN网络冲突检测的基础。,3.2.2 CAN的物理层,总线的两种逻辑状态:隐性或显性,3.3 帧类型与帧空间,CAN总线中报文按帧在总线上传送。有两种帧格式:标准帧和扩展帧,标准帧有11位标识符,扩展帧有29位标识符。,3.3.1 帧类型,报文传送由以下4种不同的帧类型所表示和控制。 数据帧:数据帧携带数据从发送器到接收器; 远程帧:总线单元发送出远程帧,请求发送具有同一标识符的数据帧; 错误帧:任何单元检测到一总线错误时就发出错误帧; 超载帧:超载帧用来在先行的和后来的数据帧之间提供一附加的延时。 数据帧和远程帧通过帧间空间与各帧分开。,3.3.1 帧空间,数据帧格式如图所示,它由7个位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。数据场的长度可以为0。,3.3.1 帧空间,帧起始:它标志数据帧和远程帧的起始,由一个单独的“显性位组成。只在总线空闲时,才允许站开始发送信号。所有的站必须同步于首先开始发送信息的站的帧起始前沿。,3.3.1 帧空间,标准帧的仲裁场下图所示,仲裁场包括识别符和远程发送请求位(RTR)。 识别符:识别符的长度为1 1位。这些位的发送顺序是从ID1 0到ID一0。最低位是ID·0。最高的7位(ID10到ID-4)必须不能全是“隐性。 RTR位:该位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。,3.3.1 帧空间,标准帧仲裁场,3.3.1 帧空间,扩展帧的仲裁场如图所示,它有29位的标示符,标识符的范围几乎不受限制。SRR位为替代远程请求位,它在扩展格式中代替标准帧的RTR位,扩展帧为隐性值,标准帧为显性值。IDE位为识别符扩展位,扩展帧为隐性值,标准帧为显性值。,3.3.1 帧空间,3.3.1 帧空间,控制场如图所示,由6位组成,标准帧的控制场格式和扩展帧的不同,标准帧的控制场包括数据长度代码、IDE位及保留位rO。扩展帧的控制场包括数据长度代码和两个保留位:rl和r0。其保留位必须发送为显性,3.3.1 帧空间,3.3.1 帧空间,数据长度代码指DLC3-DLC0示数据场的字节数量,3.3.1 帧空间,3.3.1 帧空间,数据场由数据帧中被发送的数据组成,允许长度为0-8个字节,每个字节8位。,5、CRC场:对帧起始、仲裁场、控制场、数据场进行CRC编码的余数,3.3.1 帧空间,在传送,接收数据场的最后一位以后,CRCRG包含有CRC序列。CRC序列之后是CRC界定符,它包含一个单独的“隐性”位。,6、应答场,3.3.1 帧空间,发送器 -接收器 11- -01,应答场长度为2个位,包含应答间隙和应答界定符。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙期间(发送ACK信号)向发送器发送一“显性”的位以示应答。 应答间隙:所有接收到匹配CRC序列的站会在应答间隙期间用一“显性的位写入发送器的“隐I生“位来作出回答。ACK界定符:ACK界定符是ACK场的第二个位,并且是一个必须为“隐性“的位。因此,应答间隙被两个“隐性“的位所包围,也就是CRC界定符和ACK界定符。,3.3.1 帧空间,。,7、帧结束:每个数据帧由7个隐位组成的标志序列界定。,3.3.1 帧空间,远程帧由6个不同分位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。,特点:1、不存在数据场;2、仲裁场中RTR为隐位; 3、控制场中DLC对应数据帧中的DLC,3、出错帧,错误标志: 对于“错误激活”节点,活动错误标志, 6个连续的显位 对于“错误认可”节点, 认可错误标志, 6个连续的隐位,错误界定符由8个连续的隐性位组成,检测到错误的节点在发送完错误标志以后,就发送隐性位并一直监视总线,直到检测到一个从“显性”位到“隐性”位的跳变为止,然后就开始发送其余7个隐性位。,3.3.1 帧空间,1.要求延迟下一个数据帧或远程帧的接收器的内部条件;,2.在间歇场检测到显位。,存在两种导致发送超载标志的超载条件:,4、超载帧,数据帧及远程帧与前一帧之间被帧间空间隔开。帧间空间由间歇场和总线空闲场组成,3.3.1 帧空间,在超载帧和出错帧前面没有帧间空间,并且多个超载帧前面也不被帧间空间分隔。,主动错误,3.4 CAN总线的存取访问控制,很多局域网和总线都采用广播式的信道进行通信,多个节点共享一个信道,CAN总线也不例外。因此通信信道的分配是这种通信方式的一个重要问题。一般对通信信道的存取控制方法可以分为两种:受控存取控制和随机存取控制。受控存取控制的特点是:各个节点不能任意存取信道,必须遵循一定的控制,又分为集中式存取控制和分布式存取控制。随机存取控制的特点是:各个节点可以随机地向信道发送信息。由于多节点可以同时发送信息,就可能发生冲突,而如何解决冲突是随机存取控制所需要解决的问题。,在CAN协议中,使用了带有冲突避免的载波侦听多路访问控制方法(CSMACA)。CSMACA协议的工作流程是:一个节点希望在总线上传送数据,如果探测到总线上正在传送数据,则附加等待一段时间,再随机选择一个时间片继续探测,如果总线上没有活动的话,就将数据发送出去。接受端的节点如果收到发送端送出的完整的数据则回发一个应答(ACK)数据帧,如果这个ACK数据帧被发送端收到,则这个数据发送过程完成,如果发送端没有收到ACK数据帧,则可以认定或者发送的数据没有被完整地收到,或者ACK信号的发送失败,不管是那种现象发生,数据报都在发送端等待一段时间后被重新发送。,3.4 CAN总线的存取访问控制,3.4 CAN总线的存取访问控制,所以只要总线空闲,任何节点都可以开始发送报文。如果2个或2个以上的节点同时开始传送报文,那么就会产生总线的访问冲突,通过使用标识符(ID)的逐位仲裁机制可以解决这个冲突。逐位仲裁的机制确保了报文和时间均不损失,当具有相同识别符的数据帧和远程帧同时传送时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。,3.4 CAN总线的存取访问控制,CAN总线物理层通常是双绞线,当逻辑1被写进总线里,两条线的电平是25V,并被定义为“隐性”位,当逻辑0被写进总线里,一条线(CANH)被上拉到为5V, 另一条线(CANL)被下拉到0V,这叫做“显性”位。但是如果“显性”位和“隐性“位都被不同的节点同时写进总线里,总线显示“显性位,所以显性位覆盖了隐性位。这是CAN网络冲突检测的基础。,3.4 CAN总线的存取访问控制,当节点发送报文时数据帧中标识符号越小其优先权越高,这是因为各节点通过“线一与”逻辑关系连接到总线上。逻辑“0”可以覆盖逻辑“l“。当某一节点发送标识符中某位为“l“,而其他节点发送的标识符中此位为“0“时,发送节点会失去仲裁,主动退出竞争并转为接收状态,从而避免总线冲突。,3.4 CAN总线的存取访问控制,例如A站和B站同时向总线发送报文,A站发送的标识符号0100011001l,B站发送的01100110011,它们的前两位相同,不存在冲突,但第三位A站的值为“0”,线与后为“0,至此A站点完全取得了介质访问权,B站转为接收方,以后介质上传输的是站传输的数据。这种“非破坏性的逐位仲裁”保证总线访问不冲突,一旦总线空闲,另一个请求就会马上发送。,3.4 CAN总线的存取访问控制,3.4 CAN总线的存取访问控制,CAN总线单元三种故障状态,总线关闭:总线关闭状态不允许单元对总线有任何影响(如输出驱动器关闭)。,错误激活(error active ):错误激活单元可以照常参与总线通信,并且当检测到错误时,送出一个活动错误标志。,错误认可(error passive):不允许错误认可节点送出活动错误标志,它可参与总线通信,但当检测到错误时,只能送出认可错误标志。并且发送后仍被错误认可,直到下次发送初始比。,CAN总线错误处理,(3)CRC错误:接收器计算结果与接收到的CRC 序列不相同,则检出一个CRC错误。,(4)形式错误:当固定形式的位场中出现一个或多个非法位时,则检出一个形式错误。,(5)应答错误:在应答间隙,发送器未检测到显位时,则由它检出一个应答错误。,应答场组成,CAN总线错误处理,(1)接收器检测到一个错误,接收错误计数器加1,除非所检错误为发送活动错误标志或超载标志期间的位错误。,CAN总线错误处理,当检测到CRC错误时,出错标志在应答定界符后面那一位开始发送,除非其他出错条件的错误标志已经开始发送。,检测到出错条件的站通过发送错误标志进行标定。,当任何站检出位错误、填充错误、形式错误、应答错误时,由该站在下一位开始送出错误标志。,CAN总线错误处理,发送出错计数 接收出错计数,为了界定故障,在每个总线单元中都设有两种计数:,CAN节点的构成,TJAl050是CAN协议控制器和物理总线之间的接口,它最初是应用在波特率范围在60K到1M的高速自动化应用中。TJAl050可以为总线提供不同的发送性能,为CAN控制器提供不同的接受性能,而且它与IS011898标准完全兼容,TJAl050具有如下特性: (1)完全符合IS011898标准; (2)高速率(最高达1Mbits); (3)电磁辐射极低; (4)不上电的节点不会对总线造成扰动; (5)电磁干扰极低; (6)静音模式中提供了只听模式和“Babblingidiot”保护; (7)保护总线引脚,防止汽车环境中的瞬态干扰; (8)输入级和33V以及5V的器件兼容; (9)输入驱动受到温度保护; (10)防止电池对地的短路; (11)至少可以连接110个节点;,CAN节点的构成,通过引脚S可以选择两种工作模式:高速模式或者静音。高速模式就是普通工作模式,将引脚S接地可以进入这种模式。如果引脚S没有连接,高速模式就是默认的工作模式。在静音模式中,发送器是禁能的.,CAN节点的构成,为了增强CAN总线节点的抗干扰能力,TJAl050的TX0和RX0并不是直接与CPLD相连接的,而是通过高速光耦6N137后与之相连,这样就很好的实现了电气隔离。 滤波电容用在电源整流电路中,用来滤除交流成分。使输出的直流更平滑。 去耦电容用在放大电路中不需要交流的地方,用来消除自激,使放大器稳定工作。 旁路电容用在有电阻连接时,接在电阻两端使交流信号顺利通过。,CAN节点的构成,去耦电容主要是去除高频如RF信号的干扰,干扰的进入方式是通过电磁辐射。而实际上,芯片附近的电容还有蓄能的作用。高频器件在工作的时候,其电流是不连续的,而且频率很高,而器件VCC到总电源有一段距离,即便距离不长,在频率很高的情况下,阻抗Zi*wL+R,线路的电感影响也会非常大,会导致器件在需要电流的时候,不能被及时供给。而去耦电容可以弥补此不足这也是为什么很多电路板在高频器件VCC管脚处放置小电容的原因之一(在vcc引脚上通常并联一个去藕电容,这样交流分量就从这个电容接地。),CAN节点的构成,有源器件在开关时产生的高频开关噪声将沿着电源线传播。去耦电容的主要功能就是提供一个局部的直流电源给有源器件,以减少开关噪声在板上的传播和将噪声引导到地。 我们经常可以看到,在电源和地之间连接着去耦电容,它有三个方面的作用:一是作为本集成电路的蓄能电容;二是滤除该器件产生的高频噪声,切断其通过供电回路进行传播的通路;三是防止电源携带的噪声对电路构成干扰。,CAN节点的构成,在电子电路中,去耦电容和旁路电容都是起到抗干扰的作用,电容所处的位置不同,称呼就不一样了。对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling)电容也称退耦电容,是把输出信号的干扰作为滤除对象。,CAN节点的构成,高频旁路电容一般比较小,根据谐振频率一般是0.1u,0.01u等,而去耦合电容一般比较大,是10u或者更大,依据电路中分布参数,以及驱动电流的变化大小来确定。 数字电路中典型的去耦电容值是0.1F。这个电容的分布电感的典型值是5H。0.1F的去耦电容有5H的分布电感,它的并行共振频率大约在7MHz左右,也就是说,对于10MHz以下的噪声有较好的去耦效果,对40MHz以上的噪声几乎不起作用。1F、10F的电容,并行共振频率在20MHz以上,去除高频噪声的效果要好一些。,CAN节点的构成,特性 完全支持CAN V2.0B 技术规范,通讯速率为 1 Mb/s: - 0-8 字节长的数据字段 - 标准和扩展数据帧及远程帧 接收缓冲器、验收屏蔽寄存器和验收滤波寄存器: - 两个接收缓冲器,可优先存储报文 - 六个29 位验收滤波寄存器 - 二个29 位验收屏蔽寄存器 对头两个数据字节进行滤波(针对标准数据帧) 三个发送缓冲器,具有优先级设定及发送中止功能 高速SPI 接口(10 MHz): - 支持0,0 和1,1 的SPI 模式 单触发模式确保报文发送只尝试一次 带有可编程预分频器的时钟输出引脚: - 可用作其他器件的时钟源, 可用起始帧信号(Start-of-Frame, SOF),用于 监控SOF 信号: - 可用于时隙协议和或总线诊断以检测早期总 线性能退化 带有可选使能设定的中断输出引脚 “缓冲器满”输出引脚可配置为: - 各接收缓冲器的中断引脚 - 通用数字输出引脚 “请求发送(Request-to-Send, RTS)”输入引 脚可各自配置为: - 各发送缓冲器的控制引脚,用于请求立即发送 报文 - 通用数字输入引脚,器件概述 MCP2515 是一款独立CAN控制器,可简化需要与CAN 总线连接的应用。图1-1 简要显示了MCP2515 的结构 框图。该器件主要由三个部分组成: 1. CAN 模块,包括CAN 协议引擎、验收滤波寄存 器、验收屏蔽寄存器、发送和接收缓冲器。 2. 用于配置该器件及其运行的控制逻辑和寄存器。 3. SPI 协议模块。,CAN 模块 CAN 模块的功能是处理所有CAN 总线上的报文接收和 发送。报文发送时,首先将报文装载到正确的报文缓冲 器和控制寄存器中。通过SPI 接口设置控制寄存器中的 相应位或使用发送使能引脚均可启动发送操作。通过读 取相应的寄存器可以检查通讯状态和错误。会对在CAN 总线上检测到的任何报文进行错误检查,然后与用户定 义的滤波器进行匹配,以确定是否将报文移到两个接收 缓冲器中的一个。,控制逻辑 通过与其他模块连接,控制逻辑模块控制MCP2515 的 设置和运行,以便传输信息与控制。 所提供的中断引脚提高了系统的灵活性。器件上有一个 多用途中断引脚及各接收缓冲器的专用中断引脚,用于 指示有效报文是否被接收并载入接收缓冲器。可选择使 用专用中断引脚。通用中断引脚和状态寄存器(通过 SPI 接口访问)也可用来确定何时接收了有效报文。,器件还有三个引脚,用来启动将装载在三个发送缓冲器 之一中的报文立即发送出去。是否使用这些引脚由用户 决定;若不使用,也可利用控制寄存器(通过SPI 接口 访问)来启动报文发送。 SPI 协议模块 MCU通过SPI接口与该器件连接。使用标准的SPI读/写 指令以及专门的SPI 命令来读/ 写所有的寄存器。,部分功能分述如下: 1接口管理逻辑 接口管理逻辑解释来自CPU的命令,控制CAN寄存器的寻址,向主控制器提供中断信息和状态信息。 2发送缓冲器 发送缓冲器是CPU和位流处理器之间的接口,能够存储发送到CAN网络上的完整信息。缓冲器长13个字节,由CPU写入、位流处理器读出。,3接收缓冲器 接收缓冲器是验收滤波器和CPU之间的接口,用来储存从CAN总线上接收和接收的信息。接收缓冲器(RXB,13个字节)作为接收FIFO(RXFIF0,长64字节)的一个窗口,可被CPU访问。CPU在此FIFO的支持下,可以在处理信息的时候接收其它信息。,4验收滤波器 验收滤波器把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息。在纯粹的接收测试中,所有的信息都保存在RXFIFO中 5位流处理器 位流处理器是一个在发送缓冲器、RXFIF0和CAN总线之间控制数据流的程序装置。它还在CAN总线上执行错误检测、仲裁、填充和错误处理。,6 错误管理逻辑 错误管理逻辑负责传送层模块的错误管制。它接收位流处理器的出错报告,通知位流处理器和接口管理逻辑进行错误统计。,l报文发送过程 在外部微控制器需要发送数据时,首先判断发送缓冲器TRANBUFFER是否为空,若为空,将数据送到发送缓冲器中并发出请求发送命令TR,CAN状态机在总线空闲时,将发送命令下达给发送逻辑,发送逻辑对数据位根据编码规则添加附加位组成MAC帧并通过总线仲裁在获得总线占有权时将报文发送出去,接收逻辑则对发送的数据进行监视,若出错CAN控制器则丢弃当前报文,在总 线空闲时将发送出错或丢失仲裁的报文重发。在没有接收到正确应答信号时,CAN控制器也会自动重发报文。,CAN控制器工作过程,2报文接收过程 当监视到总线上有有效报文时,接收逻辑先对报文进行滤波,报文滤波通过后,将拆帧后的报文传送到接收FIFO中,若报文有错,错误管理逻辑通知接收FIFO将出错报文丢弃。接收FIFO中有有效数据时,它会通过中断方式或状态方式通知外部微控制器将数据取走,数据取走后接收FIFO收到来自外部微控制器的清除接收缓冲器命令时会将该段空间清空以备后续接收数据存入。,CAN总线控制器MCP2515和单片机之间使用SPI接口直接相连,SPI的传输速度可以达到10MbpsMCP2515的片选信号CS接到单片机的RBl引脚,可以使用控制RBl的输出来决定是否要对MCP2515进行访问。MCP2515的中断信号INT接入单片机的中断输入引脚,能够在数据发送、数据接收以及总线报错时即使产生中断,交由单片机进行处理。,为了能够实现CAN协议,还需要把MCP2515的SOF信号引出,直接接入单片机的RB5引脚,该引脚同样具有中断接收功能。这样,在CAN模式下,当MCP2515检测到一个帧起始信号时,在SOF引脚上就会产生一个电平脉冲,在单片机一端产生一个中断请求。SOF中断用于CAN中的Levell时间同步。单片机响应SOF中断后,会判断报文是否为参考帧,如果是,则将本地计时器的值清零,并保存主节点分配给自己的时间片的起始值,当计时器运行到该值后,发送报文。如果收到的帧不是主节点的参照时间信息帧,系统继续。,发送缓冲器 MCP2515 采用三个发送缓冲器。每个发送缓冲器占用14 字节的SRAM,并映射到器件存储器中。 其中第一个字节TXBnCTRL 是与报文缓冲器相关的控制寄存器。该寄存器中的信息决定了报文在何种条件下发送,并在报文发送时指示其状态。,报文的发送,注: 在写入发送缓冲器之前,必须将TXBnCTRL.TXREQ 位清零(表明发送缓冲器无等待发送的报文)。,报文的发送,报文的发送,bit 7 未用:读为0 bit 6 ABTF:报文发送中止标志位 1 = 报文中止 0 = 报文发送成功完成 bit 5 MLOA:报文仲裁失败位 1 = 报文发送期间仲裁失败 0 = 报文发送期间仲裁未失败,报文的发送,bit 4 TXERR:检测到发送错误位 1 = 报文发送期间发生总线错误 0 = 报文发送期间未发生总线错误 bit 3 TXREQ:报文发送请求位 1 = 缓冲器等待报文发送 (MCU 将此位置1 以请求报文发送报文发送后该位自动清零) 0 = 缓冲器无等待发送报文 (MCU 将此位清零以请求中止报文发送) bit 2 未用:读为0,bit 1-0 TXP:发送缓冲器优先级 位 11 = 最高的报文发送优先级 10 = 中偏高的报文发送优先级 11 = 中偏低的报文发送优先级 00 = 最低的报文发送优先级,报文的发送,图注: R = 可读位 W = 可写位 U = 未用位,读为0 -n = 上电复位时的值 1 = 置1 0 = 清零 x = 未知值,用5 个字节来装载标准和扩展标识符以及其他报文仲裁信息。最后8 个字节用于装载等待发送报文的8 个可能的数据字节。至少须将TXBnSIDH、TXBnSIDL 和TXBnDLC 寄存器装载数据。如果报文包含数据字节,还需要对TXBnDm寄存器进行装载。若报文采用扩展标识符,应对TXBnEIDm寄存器进行装载,并将TXBnSIDL.EXIDE 位置1。,报文的发送,报文的发送,bit 7-5 SID:标准标识符位 bit 4 未用:读为0 bit 3 EXIDE:扩展标识符使能位 1 = 报文将发送扩展标识符 0 = 报文将发送标准标识符 bit 2 未用:读为0 bit 1-0 EID:扩展标识符位,报文的发送,图注: R = 可读位 W = 可写位 U = 未用位,读为0 n = 上电复位时的值 1 = 置1 0 = 清零 x = 未知值,SID:标准标识符位,报文的发送,bit 7-0 EID:扩展标识符位,报文的发送,bit 7-0 EID:扩展标识符位,报文的发送,bit 7 未用:读为0 bit 6 RTR:远程发送请求位 1 = 发送的报文为远程发送请求 0 = 发送的报文为数据帧 bit 5-4 未用:读为0 bit 3-0 DLC:数据长度码位 设定要发送的数据长度(0 到8 字节),发送优先级 发送优先级是指MCP2515 内部等待发送报文的优先 级。它与CAN 协议中固有的报文仲裁优先级无关。 在发送起始帧SOF 之前,器件将所有等待发送报文的 发送缓冲器的优先级进行比较。具有较高优先级的发送缓冲器将首先发送。例如,发送缓冲器0 的优先级比发送缓冲器1 高,发送缓冲器0 将首先发送。,报文的发送,如果两个发送缓冲器的优先级相同,编号较高的发送缓 冲器将优先发送。例如,发送缓冲器1 与发送缓冲器0 的优先级相同,缓冲器1 将优先发送。 发送优先级的设定共有4 个等级。如果某个发送缓冲器 的TXBnCTRL.TXP 设定为11,该发送缓冲器具 有最高的发送优先级。如果TXBnCTRL.TXP 设定 为00,该发送缓冲器的发送优先级最低。,报文的发送,启动发送 通过将TXBnCTRL.TXREQ 位置1,可以启动相应缓冲 器的报文发送。它可以按如下方式设定: 利用SPI 写命令写寄存器 发送SPI RTS 命令 将要发送报文的发送缓冲器的TXnRTS引脚置为低 电平 通过SPI 接口启动报文发送后,可以同时将TXREQ 位 和TXP 优先级控制位置1。,报文的发送,当TXBnCTRL.TXREQ 位置1 后, TXBnCTRL.ABTF、 TXBnCTRL.MLOA和TXBnCTRL.TXERR位都将被自动 清零。 注: 将TXBnCTRL.TXREQ 位置1 不会启动报 文发送。仅会将报文缓冲器标记为准备发 送。当器件检测到总线空闲时,才会启动 报文发送。,报文的发送,报文发送成功后, TXBnCTRL.TXREQ 位将被清零,CANINTF.TXnIF 位置1,若CANINTE.TXnIE 位被置1,将产生中断。如果报文发送失败, TXBnCTRL.TXREQ 将保持置1,表明该报文仍在等待发送。此时以下条件标志之一将被置1: 如果报文已开始发送但发生错误,TXBnCTRL.TXERR和CANINTF.MERRF位将被置1,此时在CANINTE.MERRE 位置1 后,器件将在INT 引脚产生中断。 若发送报文总线仲裁失败, TXBnCTRL.MLOA 位将被置1,报文的发送,中止发送 MCU 可通过将特定报文缓冲器中对应的TXBnCTRL. TXREQ 位清零,请求中止该缓冲器中的报文发送。 也可通过将CANCTRL.ABAT 位置1 来请求中止所有等 待发送的报文。用户必须复位该位才可继续发送报文 (通常须先确认所有的TXREQ位都已清零)。只有通过 设定CANCTRL.ABAT 位中止报文发送时, CANCTRL. ABTF 标志才会被置1。通过复位TXREQ 位来中 止报文发送,将不会使ABTF 位置1。,报文的发送,TXnRTS 引脚 TXnRTS 为输入引脚,可配置为: 请求发送输入引脚,作为启动任一发送缓冲器中报文发送的备用方法 标准数字输入引脚 通过设定TXRTSCTRL 寄存器可对这些引脚进行配置和控制。只有在MCP2515 处于配置模式时才可对TXRTSCTRL 寄存器内容进行修改。如果该引脚配置为请求发送引脚,该引脚将被映射为发送缓冲器中相应的TXBnCTRL.TXREQ 位。TXnRTS 引脚的下降沿电平跳变信号可将锁定TXREQ位。用户可将TXnRTS引脚同RXnBF引脚直接相连,在RXnBF 引脚变为低电平时自动启动报文发送。TXnRTS 引脚具有100 k(标称值)的内部上拉电阻。,报文的发送,报文的发送,报文的接收,报文接收缓冲 MCP2515 具有两个全接收缓冲器。每个接收缓冲器配备有多个验收滤波器。除上述专用接收缓冲器外,MCP2515 还具有单独的报文集成缓冲器(Message Assembly Buffer,MAB),可作为第三个接收缓冲器,报文的接收,报文集成缓冲器 在三个接收缓冲器中,报文集成缓冲器(MAB)总能够接收来自总线的下一条报文。MAB对接收到的报文进行组合,并将满足验收滤波器条件的报文传送至RXBn缓冲器,RXB0 和RXB1 缓冲器 其余的两个接收缓冲器为RXB0 和RXB1。通过 MAB, 它们能够接收来自协议引擎的完整报文。当其中一个缓 冲器处于接收等待或保存着上一条接收到的报文时, MCU可访问另一缓冲器。,报文的接收,报文的接收,bit 7 未用:读为0 bit 6-5 RXM:接收缓冲器工作模式位 11 = 关闭屏蔽滤波功能;接收所有报文 10 = 只接收符合滤波器条件的带有扩展标识符的有效报文 01 = 只接收符合滤波器条件的带有标准标识符的有效报文 00 = 接收符合滤波器条件的所有带扩展标识符或标准标识符的有效报文 bit 4 未用:读为0,报文的接收,bit 3 RXRTR:接收到远程传送请求位 1 = 接收到远程传送请求 0 = 没有接收到远程传送请求 bit 2 BUKT :滚存使能位 1 = 如果RXB0 满,RXB0 接收到的报文将被滚存至RXB1 0 = 滚存禁止 bit 1 BUKT1:只读位,BUKT 位备份(仅供MCP2515器件内部使用) bit 0 FILHIT:滤波器命中位指明使能报文接收的验收滤波寄存器编号 1 = 验收滤波寄存器1 (RXF1) 0 = 验收滤波寄存器0 (RXF0),报文的接收,bit 7 未用:读为0 bit 6-5 RXM:接收缓冲器工作模式位 11 = 关闭屏蔽/滤波功能;接收所有报文 10 = 只接收符合滤波器条件的带有扩展标识符的有效报文 01 = 只接收符合滤波器条件的带有标准标识符的有效报文 00 = 接收符合滤波器条件的所有带扩展标识符或标准标识符的有效报文 bit 4 未用:读为0,报文的接收,bit 3 RXRTR:接收到远程传送请求位 1 = 接收到远程传送请求 0 = 没有接收到远程传送请求 bit 2-0 FILHIT:滤波器命中位指明使能报文接收的验收滤波寄存器编号 101 = 验收滤波寄存器5 (RXF5) 100 = 验收滤波寄存器4 (RXF4) 011 = 验收滤波寄存器3 (RXF3) 010 = 验收滤波寄存器2 (RXF2) 001 = 验收滤波寄存器1 (RXF1)(只有当RXB0CTRL中的BUKT 位置1 时) 000 = 验收滤波寄存器0 (RXF0)(只有当 RXB0CTRL中的BUKT 位置1 时),报文的接收,bit 7 未用:读为0 bit 6 未用:读为0 bit 5 B1BFS:RX1BF 引脚状态位(只限数字输出工作模式) - 当RX1B 配置为中断引脚时,读为0 bit 4 B0BFS:RX0BF 引脚状态位(只限数字输出工作模式) - 当RX0BF配置为中断引脚时,读为0 bit 3 B1BFE:RX1BF 引脚功能使能位 1 = 引脚功能使能,工作模式由B1BFM位决定 0 = 引脚功能禁止,引脚为高阻态,bit 2 B0BFE:RX0B F 引脚功能使能位 1 = 引脚功能使能,工作模式由B0BFM位决定 0 = 引脚功能禁止,引脚为高阻态 bit 1 B1BFM:R X1BF 引脚工作模式位 1 = 当有效报文载入RXB1 时,该引脚用来产生中断 0 = 数字输出模式 bit 0 B0BFM:R X0BF 引脚工作模式位 1 = 当有效报文载入RXB0 时,该引脚用来产生中断 0 = 数字输出模式,报文的接收,报文的接收,bit 7-0 SID:标准标识符位 这些位装载接收报文标准标识符中最高8 位,报文的接收,bit 7-5 SID:标准标识符位 这些位装载接收报文中标准标识符的最低3 位 bit 4 SRR:远程发送请求位(只有当IDE 位= 0 时有效) 1 = 收到标准远程发送请求帧 0 = 收到标准数据帧 bit 3 IDE :扩展标识符标志位 该位表明收到的报文是标准帧还是扩展帧 1 = 收到的报文是扩展帧 0 = 收到的报文是标准帧,bit 2 未用:读为0 bit 1-0 EID:扩展标识符位 这些位装载接收报文中扩展标识符的最高2 位,报文的接收,报文的接收,bit 7-0 EID:扩展标志符位 这些位装载接收报文扩展标识符中的第8 到15位,报文的接收,bit 7-0 EID:扩展标识符位 这些位装载接收报文扩展标识符的最低8 位,报文的接收,bit 7 未用:读为0 bit 6 RTR:扩展帧远程发送请求位 (只有当RXBnSIDL.IDE = 1 时有效) 1 = 接收到扩展远程(发送请求)帧 0 = 接收到扩展数据帧 bit 5 RB1 :保留位1 bit 4 RB0 :保留位0 bit 3-0 DLC:数据长度码位 表明接收到的数据字节个数,报文的接收,bit 7-0 RBnDm7:RBnDm0 :接收缓冲器n 数据字段字节m 这8 个字节包含接收报文的数据信息,报文的接收,接收标志/中断 当报文传送至某一接收缓冲器时,与该接收缓冲器对应 的CANINTF.RXnIF位将置 1。一旦缓冲器中的报文处 理完毕,MCU就必须将该位清零以接收下一条报文。该 控制位提供的

    注意事项

    本文(CAN总线技术第6周6.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开