对CAN总线的认识.docx_第1页
对CAN总线的认识.docx_第2页
对CAN总线的认识.docx_第3页
对CAN总线的认识.docx_第4页
对CAN总线的认识.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

现场总线CAN原理与应用技术论文班级:物联网工程1202班姓名:武朋真 学号:2012234050207目录1、CAN的特点2、 CAN总线协议基本概念3、CAN总线协议基本规则4、CAN总线的工作原理5、了解与学习SJA10006、SJA1000与单片机的接口7、SJA1000与单片机图1、CAN的特点由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实用性和灵活性。其特点可概括如下:l CAN是到目前为止唯一有国际标准的现场总线。l CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从。l 在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多在134s内得到传输。l CAN采用非破坏总线仲裁技术。当多个节点同时向总线发送信息出现冲突时,优先级较低的节点会主动退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下,也不会出现网络瘫痪的情况(以太网则可能)。l CAN节点只需通过对报文的标识符滤波即可实现点对点、一对多点及全局广播等几种方式传送接收数据。l CAN的直接通信距离最远可达10km(速率在5kbps以下);通信速率最高可达1Mbps(这时通讯距离最长为40m)。l CAN上的节点数主要取决于总线驱动电路,目前可达110个。在标准帧报文标识符有11位。而在扩展帧的报文标识符(29位)的个数几乎不受限制。l 报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低。l CAN的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果。l CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。l CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响l CAN总线具有较高的性能价格比。它结构简单,器件容易购置,每个节点的价格比较低,而且开发技术容易掌握,能充分利用现有的单片机开发工具。2、CAN总线协议基本概念(1)什么是现场总线顾名思义,现场总线应当是应用在生产最底层的一种总线型拓扑的网络。进一步的来说,这种总线是用作现场控制系统的、直接与所有受控(设备)节点串行相连的通信网络。工业自动化控制的现场范围可以从一台家电设备到一个车间、一个工厂。受控设备和网络所处的环境以及报文的结构都有其特殊性,对信号的干扰往往是多方面的,而要求控制必须实时性很强。这就决定了现场总线有别于一般网络的特点。(2)报文总线上的信息以几个不同的固定格式的报文发送,但长度受限。当总线空闲时,任何链接的单元都可以开始发送新的报文。(3)信息路由在CAN系统里,CAN的节点不使用任何关于系统结构的信息(比如,站地址)。以下是与此有关的几个重要的概念。l 系统灵活性:不需要应用层以及任何节点软件个硬件的任何改变,可以在CAN网络中直接添加节点。l 报文路由:报文的寻址内容由标识符指定。标识符不指出报文的目的地,但是这个数据的特点含义使得网络上所有的节点可以通过报文滤波来判断该数据是否与它们相符合。l 多点传送:由于报文滤波的作用,任何数目的节点对同一条报文都可以接收并同时对此作出反应。l 数据一致性:在CAN网络里确保报文同时被所有的节点接收(或无节点接收)。系统的这种数据一致性是靠多点传送和错误处理的功能来实现的。(4)位速率在一个给定的CAN系统里位速率是唯一的,并且是固定的。(5)优先权报文中的数据帧和远程帧都有标识符段,在访问总线期间,标识符确定了一个静态的(固定的)报文优先权。当多个CAN单元同时传输报文发生总线冲突时,标识符码值越小的报文优先级越高。(6)多主机总线空闲时,任何单元都可以开始传送报文具有较高优先权的报文的单元可以获得总线的访问权。(7)仲裁只要总线空闲,任何单元都可以开始发送报文。如果两个或两个以上的单元同时开始传送报文,那么就会有总线访问冲突。通过使用了标识符的逐位仲裁可以解决这个冲突。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一“隐性”电平而监视到的是一“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。(8)安全性为了获得最安全的数据发送,CAN的每一个节点均采取了强有力的措施来进行错误检测、错误标定及错误自检。1) 错误检测要进行检测错误,必须采取以下措施l 监视(发送器对发送位的电平与被监控的总线电平进行比较);l 循环冗余检查:l 位填充;l 报文格式检查;2) 错误检测的执行错误检测的机制具有以下的属性:l 检测到所有的全局错误;l 检测到发送器的所有的局部错误;l 可以检测到报文里多达5个任意分布的错误;l 检测到报文里长度低于15(位)的突发性错误;l 检测到报文里任一奇数个的错误。(9)错误标定和恢复时间任何检测到错误的节点会标志出损坏的报文。次报文会失效并将自动重新传送。如果不再出现错误,那么从检测到错误到下一报文的传送开始为止,恢复时间最多为31个位的时间。(10)故障界定CAN节点能够把永久故障和短暂的干扰区别开来。故障的节点会被关闭。(11)连接CAN串行通信链路是可以连接许多单元的总线。理论上,可以连接无数个单元。但实际上由于受延迟时间以及总线线路上电气负载能力的影响,连接单元的数量是有限的。(12)应答所有的接收器对接收到的报文进行一致性检查。对于一致的报文,接收器给予应答;对于不一致的报文,接收器做出标志。3、CAN总线协议的基本规则(1)总线访问:采用载波监听多路访问,CAN控制器能够在总线空闲时,就是节点侦听到网络上至少存在3个空闲(隐形位)时开始发送,采用硬同步,所有的控制器同步都为与帧的起始的前沿。过了一定时间,并在在一定条件后,重同步。(2)仲裁:各节点向总线发电平时也对总线上电平进行读取,并于自身发送的电平进行比较,相同则发下一位,直至全部发完。不同则说明网络上有更高优先级的信息帧正在发送,即停止发送,退出竞争。(3)编码/解码:帧起始域、仲裁域、控制域、数据域和CRC序列均使用位填充技术进行编码,就是5个连续的同状态电平插入一位与它相补的电平,还原时每5个同状态的电平后的相补电平被删除。(4)出错标注:当检测到位错误、填充错误、形式错误或应答错误时,检测出错条件的CAN控制器将发送一个出错标志。(5)超载标注:一些控制器会发送一个或多个超载帧以延迟下一个数据帧或远程帧的发送。4、CAN总线的工作原理CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计 算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。 CAN总线原理是通过CAN总线、传感器、控制器和执行器由串行数据线连接起来。它不仅仅是将电缆按树形结构连接起来,其通信协议相当于ISO/OSI参考模型中的数据链路层,网络可根据协议探测和纠正数据传输过程中因电磁干扰而产生的数据错误。CAN网络的配制比较容易,允许任何站之间直接进行通信,而无需将所有数据全部汇总到主计算机后再行处理。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。CAN信号可以使用双绞线、光纤等介质传输。具体信号也是逻辑电平,采用差分方式传输。两条线号线分别是CAN_H和CAN_L。H和L均为2.5V左右时,表示信号逻辑“1”,也称为“隐性”。采用CAN_H比CAN_L高表示逻辑“0”,称为“显性”,CAN_H=3.5V,CAN_L=1.5V。CAN总线采用CSMA/CD模式检测整个网络,只有当总线处于空闲状态时,才允许发送。当发生冲突时CAN收发器具备仲裁能力,仲裁规则根据每个设备的ID决定,ID越小优先权越高。帧格式:标准帧具有11bit识别符;扩展帧具有29bit标识符。帧类型:数据帧数据帧从发送器传输到接收器。由7个不同的位场组成:帧起始位、仲裁场、控制场、数据场、校验场、应答场、帧结尾。数据场长度可以为0。远程帧由总线单元发出,请求发送具有统一识别符的数据帧错误帧任何节点检测到总线错误就发出错误帧过载帧用以在先行和后续的数据帧之间附加一定延时5、了解与学习SJA1000(1)对SJA1000学习中主要用到的储存器及工作方式:发送缓冲器TXB和接收缓冲器RXFIFO、位流处理器BSP、接收过滤器ASP、位时序处理逻辑BTL错误管理逻辑EML、内部震荡器及复位电路。CPU的控制经IML,把要发送的数据写TXB,TXB中的数据由BSP处理后经BTL输出到CAN BUS。BTL始终监视CAN BUS,当检测到有效的信息头“隐性电平A控制电平”的转换时启动接收过程,接收的信息首先要由位流处理器BSP处理,并由ASP过滤,只有当接收的信息的识别码与ASP检验相符合时,接收信息才最终被写入RXB或RXFIFO中。RXFIFO最多可以缓存64字节的数据,该数据可被CPU读取。EML负责传送层中调制器的错误管制,它接收BSP的出错报告,促使BSP和IML进行错误统计。(2)常用到的寄存器的结构及地址分配在学习中了解到CAN控制器工作模式的设定、数据的发送和接收都是通过这些寄存器来实现的。时钟分频寄存器OCR用于设定SJA1000工作于BASIC CAN还是PeliCAN还用于CLKOUT引脚输出始终频率的设定。在工作模式下,控制寄存器CR用于控制CAN控制器的行为,可读可写;命令寄存器CMR只能写;状态寄存器SR只能读,IR,ACR,AMR,BTR0,BTR1,OCR在工作模式下读写无意义。通常,在系统初始化时,先用CR.0=1进入复位模式。在此模式下IR,ACR,AMR,BTR0,BTR1,OCR均可读可写,此时设置相应的初值。当退出复位模式时,SJA1000即按复位时设定的相应情况工作于工作模式,除非再次使芯片复位,否则上次设定的值不变。当需要发送信息时,若发送缓冲器空闲,由CPU控制信息写入TXB,再由CMR控制发送;当接收缓冲器RXFIFO未满且接收信息通过了ASP,则接收到的信息被写入RXFIFO。可通过两种方法读取接收到的信息。一种方法是,在中断被使能的情况下,由SJA1000向CPU发中断信号,CPU通过SR及IR可以识别该中断,并读取数据释放接收缓冲器;另一种方法是直接读SR,查询RXFIFO的状态,当有信息接收时,读取该信息并释放接收缓冲器。当接收缓冲器中有多条信息时,当前的信息被读取后,接收缓冲器有效信号会再次有效,通过中断方式或查询方式可以再次读取信息,直到RXFIFO中的信息被全部读出为止。当RXFIFO已满,如还有信息被接收,此信息不被保存,且发出相应的缓冲器溢出信号供CPU读取处理。6、SJA1000与单片机的接口SJA1000引脚AD0AD7时8位地址的数据复用线,可以接至单片机地址、数据复用口,用于传递单片机需要访问的SJA1000寄存器地址与数据。因为采用地址与数据分时复用,所以SJA1000要用到地址锁存信号,可由单片机ALE引脚提供,单片机对于SJA1000读写时,某一个时刻读或写的数据流向不确定,但可以把SlA1000看成片外RAM,SJA1000种的每一个寄存器就相当于片外RAM的一个单元,单片机对片外RAM操作的所有指令和接线都可以用于SJA1000。SJA1000的片选引脚CS可接到高位地址线上。SJA1000的读写地址锁存控制引脚接到单片机WR和RD,ALE端,当CS位状态有效时,SJA1000开始工作,依照程序需要这些控制引脚状态自动的按照时序工作,SJA1000的CLKOUT引脚用于提供了时钟信号,该引脚状态受SJA1000内部时钟分频寄存器控制,可以设置允许或禁止时钟输出,设置时钟时频率,当允许时钟输出时,该引脚输出时钟信号可作为单片机外部时钟源。接至单片机晶振输入端。SJA1000的复位引脚REST低电平有效,可以接电阻和电容实现自动上电复位,或接单片机i/o口,由单片机控制复位。SJA1000的INT引脚为中断输出,当SJA1000内部中断寄存器某一位被置位时,此引脚输出低电平表示产生了有效的中断,因为该引脚输出低电平表示产生了有效的中断,因为引脚为开漏输出,所以要经拉电阻接高电平。如果单片机对CAN的控制采用查询方式,INT引脚可不接,但需要不断读SJA1000状态寄存器判断是否产生了中断。7、SJA1000与单片机图程序:NUM EQU 31HSJA_BaseAdr EQU 7F00HCR EQU 7F01HNODECODE EQU 7F02HBTR0 EQU 0010HBTR1 EQU 0011HAMR EQU 7F05HOCR EQU 0008HORG 0000H ;单片机复位后的程序入口地址LJMP MAIN;ORG 0003H ;外部中断0的中断服务程序入口的地址;ORG 000BH;定时器0的中断服务程序入口的地址JMP LOOPCONTINUE:LCALL DelayLCALL DisplayJMP LOOPCX:LCALL DelayJNB P3.3,CXXLJMP LOOPCXX:MOV A,NUMINC AMOV NUM,ACJNE A,#16,CXXX ;如果不相等,则跳转,相等就执行下一条指令MOV NUM,#0LJMP LOOPCXXX:LCALL CAN_SENDLCALL DisplayLCALL DelayLJMP LOOPCAN_SEND:PUSH ACC ;ACC入栈PUSH PSW ;PSW入栈CLR EAMOV DPTR,#7F10HMOV A,#1MOVX DPTR,AMOV DPTR,#7F11HMOV A,#00HMOVX DPTR,AMOV DPTR,#7F13HMOV R0,#NUMMOV A ,R0MOVX DPTR,AMOV DPTR,#7F01HMOV A,#01HMOVX DPTR,ASETB EAPOP PSWPOP ACCRETSja1000_init:MOV DPTR,#CR ;控制寄存器CR的地址送DPTRMOV A,#01HMOVX DPTR,A ;进入复位模式MOV A,#00HMOVX DPTR,A ;选择BASIC CAN模式、时钟不输出/MOV A,#NODECODEMOVX DPTR,A ;节点号NODECODE写入ACR/MOVX DPTR,#AMRMOV A,#00H/MOV DPTR,A ;AMR置为0,当且仅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论