Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226516
  • 博文数量: 52
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-06 09:31
文章分类

全部博文(52)

文章存档

2015年(1)

2014年(44)

2013年(7)

我的朋友

分类: 嵌入式

2014-06-03 09:04:10

    485、can、以太网都是基于差分线路传输数据的方式,485传输的单位是字节,can传输的单位是can数据帧,以太网传输的单位是以太网帧,每种传输单位都有校验机制。

    但是从应用层考虑则不一样了,一般应用层传输都是基于大于1个字节的数据包来传输的,所以这个时候485本身不能直接完成这个任务,而必须依赖用户组织485数据帧,并做数据校验、重发之类的工作;can和以太网就基本依赖原始帧即可完成应用层任务,can最多可以传输8个字节的数据帧,以太网最多可以传输1500字节的数据帧。可见can比较适合传输短的数据命令和状态,而以太网基本没有什么应用短板,什么数据都可以方便的传输。

    总线占用冲突处理,485没有总线占用冲突处理方案,一般都是采用一主多从来保证没有两个节点同时占用总线,主节点定时轮询从节点从而更新各个从节点的数据状态。
can和以太网都采用总线载波侦听多路访问冲突避免方式来做总线占用冲突处理,但是can和以太网的区别在于can有优先级概念,如果两个节点同时发数据,高优先级的首先发,低优先级的后发,而以太网则不一样,如果有两个节点同时发数据,则两个节点都会暂停发送,等待一段随机时间后,两个节点再发数据,这样开来,can的数据发送是确定性的,而以太网本身不能保证发送时间的确定性,所以工业上对于小数据量节点控制是更喜欢用can来互联;如果多节点互联且传输数据量很大,最好还是采用以太网来传输,当然为了保证传输的确定性,一般会在应用层做个约定,避免总线冲突。

    节点刷新时间,485可以做到10ms左右的单节点刷新时间,can和以太网都一样可以做到1ms级别的单节点刷新时间。

    工业上的流行程度,485使用最为广泛,因为大部分的使用场合并不是非常在乎刷新周期,几秒刷新一次都可以接受,而且对成本比较敏感,这个时候485就非常合适,485可以传输大的数据帧,例如100字节以上数据帧,应用层很简单实现的协议即可完成这个工作。
can主要用在汽车和工业模块上,由于can存在优先级的概念,而且短数据帧,保证数据帧的传输时间的确定性,一般用在实时性要求很高的场合,但是由于数据帧太小,而且can的速率才1M,所以还是很大的限制了其应用场合。
而以太网则由于高速交换机和高速以太网芯片被越来越多的用于控制器和扩展模块,性能越来越好,成本越来越低,容易实现一网到底的架构,所以被越来越多的使用。

    将来应该是多种网络并存,成本敏感的地方485会用的多些,对实时性要求高,而且数据量不大的地方,can会多见,要扩展性高、性能好,则是以太网,当然以太网会慢慢占领485和can的应用领域。
阅读(1790) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~