CAN工作原理.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1、介绍 CAN(Controller Area Network)全称控制器局域网,是工业现场总线的一种,是应用最广泛的开放式现场总线之一。与其他通信网不同之处在于:1、报文传送中不包含目的地址,而是以全网广播为基础,各接收站根据报文中的标识符过滤报文,以决定接受还是丢弃,其优点在于可在线上网下网,即插即用和多站接收;2、强化了对数据安全性的要求,满足控制系统及其它较高数据安全要求的系统需求。 3 CAN通信原理 CAN总线以广播的方式从一个节点向另一个节点发送数据,当一个节点发送数据时,该节点的CPU把将要发送的数据和标识符发送给本节点的CAN芯片,并使其进入准备状态;一旦该CAN芯片收到总线分配,就变为发送报文状态,该CAN芯片将要发送的数据组成规定的报文格式发出。此时,网络中其他的节点都处于接收状态,所有节点都要先对其进行接收,通过检测来判断该报文是否是发给自己的。 3.2 CAN总线位仲裁 CAN总线以报文为单位进行数据传送,报文的优先级结合在11位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。如图2所示,当几个站同时发送报文时,站1的报文标识符为011111;站2的报文标识符为0100110;站3的报文标识符为0100111。所有标识符都有相同的两位01,直到第3位进行比较时,站1的报文被丢掉,因为它的第3位为高,而其它两个站的报文第3位为低。站2和站3报文的4、5、6位相同,直到第7位时,站3的报文才被丢失。注意,总线中的信号持续跟踪最后获得总线读取权的站的报文。在此例中,站2的报文被跟踪。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。 3.1发送邮箱 (1)CPU将等待发送的数据存放到发送邮箱。数据和标志符写到发送邮箱后,如果已经使能了邮箱(ME.n位置位),将TRS[n]置位就可以将消息发送出去。如果多个邮箱配置为发送邮箱,且有多个相应的TRS[n]置位,则根据邮箱的优先级递减的顺序依次发送。在标准CAN模式下,发送邮箱的优先级和邮箱的编号有关,15号邮箱具有最高的优先级。在eCAN模式下,发送邮箱的优先级与(MSGCTRL)TPL位有关,TPL中设置的值越大,优先级越高。只有当两个邮箱的TPL设置相同时,邮箱编号大的发送邮箱才具有较高的优先级。 如果由于仲裁或错误导致发送失败,将重新发送消息。在重新发送消息之前,CAN模块要检查是否有其他的发送请求,然后再根据优先级顺序发送优先级高的消息。 (2) CAN总线以广播的方式从一个节点向另一个节点发送数据,当一个节点发送数据时,该节点的CPU把将要发送的数据和标识符发送给本节点的CAN芯片,并使其进入准备状态;一旦该CAN芯片收到总线分配,就变为发送报文状态,该CAN芯片将要发送的数据组成规定的报文格式发出。此时,网络中其他的节点都处于接收状态,所有节点都要先对其进行接收,通过检测来判断该报文是否是发给自己的。 (3)消息的发送 在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(ID)决定优先级。两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文。 3.3接收邮箱 在CAN模块接收消息时,首先比较输入消息的标识符和接收邮箱中存放的标识符,如果相等,接收标识符、控制位和数据字节就写到相应的RAM空间。同时,相应的接收消息挂起为RPM[n]( RPM.31-0)置位。如果已经使能了中断,也会产生中断。如果两者的标志位不一致,则不存储输入的消息。当接收到消息时,消息控制器开始从邮箱编号最高的邮箱搜索标识符匹配的邮箱。标准CAN模式下,邮箱15有最高的接收优先权,而在eCAN模式下,邮箱31有最高的接收优先权。 3.4接收滤波器 CAN总线以广播的方式从一个节点向另一个节点发送数据,通过设置滤波器可实现点对点、一点对多点、全局广播等几种通信方式。 3.5 CAN总线故障 CAN总线检测错误。如位错误、填充错误、CRC错误,应答错误等。 CAN系统中通常采用反馈重发机制对通信过程进行差错控制,以保证报文能够能正确的传输,当接收端反馈给发送端出错信息后,发送端便自动重发,在此过程中只需要检错就可以了。 (CAN总线协议设置对发送的自动重

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档