天嵌 ARM开发社区

 找回密码
 注册
查看: 1780|回复: 0

嵌入式开发平台的CAN总线

[复制链接]
非也 发表于 2017-7-12 10:11:25 | 显示全部楼层 |阅读模式
  CAN(Controller Area Network)是ISO国际标准化的串行通信协议。广泛应用于汽车、船舶等。具有已经被大家认可的高性能和可靠性。
  CAN控制器通过组成总线的2根线(CAN-H和CAN-L)的电位差来确定总线的电平,在任一时刻,总线上有2种电平:显性电平和隐性电平。
  “显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平,并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强)。
  总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
  下图显示了一个典型的CAN拓扑连接图。
  连接在总线上的所有单元都能够发送信息,如果有超过一个单元在同一时刻发送信息,有最高优先级的单元获得发送的资格,所有其它单元执行接收操作。
  CAN总线协议具有下面的特点:
  1) 多主控制。当总线空闲时,连接到总线上的所有单元都可以启动发送信息,这就是所谓的多主控制的概念。先占有总线的设备获得在总线上进行发送信息的资格。这 就是所谓的CSMA/CR(Carrier Sense MultipleAccess/Collosion Avoidance)方法。如果多个设备同时开始发送信息,那么发送最高优先级ID消息的设备获得发送资格。
  2) 信息的发送。在CAN协议中,所有发送的信息要满足预先定义的格式。当总线没有被占用的时候,连接在总线上的任何设备都能起动新信息的传输,如果两个或更 多个设备在同时刻启动信息的传输,通过ID来决定优先级。ID并不是指明信息发送的目的地,而是指示信息的优先级。如果2个或者更多的设备在同一时刻启动 信息的传输,在总线上按照信息所包含的ID的每一位来竞争,赢得竞争的设备(也就是具有最高优先级的信息)能够继续发送,而失败者则立刻停止发送并进入接 收操作。因为总线上同一时刻只可能有一个发送者,而其它均处于接收状态,所以,并不需要在底层协议中定义地址的概念。
  3) 系统的灵活性。连接到总线上的单元并没有类似地址这样的标识,所以,添加或去除一个设备,无需改变软件和硬件,或其它设备的应用层软件。
  4) 通信速度。可以设置任何通讯速度,以适应网络规模。对一个网络,所有单元必须有相同的通讯速度,如果不同,就会产生错误,并妨碍网络通讯,然而,不同网络间可以有不同的通讯速度。
  5) 远程数据请求。可以通过发送“遥控帧”,请求其他单元发送数据。
  6) 错误检测、错误通知、错误恢复功能。所有单元均可以检测出错误(错误检测功能)。检测到错误的单元立刻同时通知其它所有的单元(错误通知功能)。如果一个 单元发送信息时检测到一个错误,它会强制终止信息传输,并通知其它所有设备发生了错误,然后它会重传直到信息正常传输出去(错误恢复功能)。
  7) 错误隔离。在CAN总线上有两种类型的错误:暂时性的错误(总线上的数据由于受到噪声的影响而暂时出错);持续性的错误(由于设备内部出错(如驱动器坏 了、连接有问题等)而导致的)。CAN能够区别这两种类型,一方面降低常出错单元的通讯优先级以阻止对其它正常设备的影响,另一方面,如果是一种持续性的 错误,将这个设备从总线上隔离开。
  8) 连接。CAN总线允许多个设备同时连接到总线上且在逻辑上没有数目上的限制。然而由于延迟和负载能力的限制,实际可连接得设备还是有限制的,可以通过降低通讯速度来增加连接的设备个数。相反,如果连接的设备少,通讯的速度可以增加。


  天嵌科技提供多种专业嵌入式板卡和行业解决方案。如有需要,可以联系天嵌科技的销售人员。
  销售电话:020-38219416 38373101
  技术支持:020-38373101/31143562转 810/814
  网址:http://www.embedsky.com
  官方淘宝:https://embedsky.taobao.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-20 19:44 , Processed in 1.046868 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表