原创 CAN总线学习系列之— CAN总线特点介绍

2007-11-18 20:46 5826 8 9 分类: 汽车电子
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

CAN总线作为一种工业界的流行总线广泛应于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等各个行业中,它是是一种多主机局域网,所以这样一种总线的潜力是很巨大的,接下来将写几篇入门的小文章,来介绍一下CAN的学习和开发方法,主要是配合我们的开发板,其实入门还是很容易的,通过这几篇文章如果你能建立起一个初步的概念,能够自己搭起自己的一个节点(包括硬件和软件),那就说明你学会了CAN的基本开发技术,实际的工业现场CAN的开发不是那么简单,包括很多要考虑的因素如隔离、可靠性等,但是我们作为初学者建立起基本的概念还是很重要的,基础一旦打好,等到了实际工作中,就会如鱼得水,所以希望正要或是想开发CAN的朋友们能够喜欢这一系列小文章,如果某一篇甚至是某一句话能够给你带来启迪,那将是我最最高兴的,希望大家踊跃评论或是参与讨论,给我一下写下去的信心,呵呵,可以加入我们的群。


下面正题正式开始喽!第一篇,当然要介绍一下什么是“能”总线(CAN总线)

呵呵


CAN总线的特点


CAN(Controller Area Network)总线,也称控制器局部网,属于现场总线的范畴,它是一种有效支持分布控制或实时控制的串行通信网络。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点如下:


CAN为多主工作方式,网络上任何一个节点均可在任意时刻主动地向 网络上其它节点发送信息,而不分主从。


在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时要求,优先级高的数据最多可在134us内得到传输。


CAN采用非破坏总线仲裁技术。当多个节点同时向总线发送信息出现冲突时,优先级低的节点会主动地退出发送,而优先级高的节点可以不受影响的继续传输数据,从而大大节省了总线冲突的仲裁时间。尤其是网络负载很重的情况下,也不会出现网络瘫痪情况(以太网则可能)。


CAN节点只需通过报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。


CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。


CAN上的节点数主要取决于总线驱动电路,目前可达110个。在标准帧的报文标识符有11位,而在扩展帧的报文标识符(29位)个数几乎不受限制。


报文采用短帧格式,传输时间短,受干扰概率低,保证了数据出错率极低。


CAN的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果。


CAN的通讯介质可以为双绞线、同轴电缆或光纤,选择灵活。


CAN节点在错误帧的情况下具有自动关闭输出功能,而总线上其它节点的操作不受影响。


CAN总线具有较高的性能价格比。它结构简单,器件容易购置,每个节点的价格较低,而且开发技术容易掌握,能充分利用现有的单片机开发工具。


CAN协议也是建立在国际标准组织的开放系统互联模型基础上的。不过,由于CAN的数据结构简单,又是范围较小的局域网,其模型结构只取OSI底层的物理层、数据链路层和应用层3层,不需要其他中间层,应用层数据直接取自数据链路层或直接向数据链路层写数据。结构层次少,利于系统中实时控制信号的传送。


CAN总线的位数值表示


CAN总线上采用“显性”(Dominant)和“隐性”(Recessive)两个互补的逻辑值表示“0”和“1”。当总线上出现同时发送显性和隐性位时,其结果是总线数值为显性(即“0”与“1”的结果为“0”)。如下图所示,VCAN-H和VCAN-L为CAN总线收发器和总线间的两接口引脚,信号是以两线间的“差分”电压形式出现。在隐性状态,VCAN-H和VCAN-L被固定在平均值附近,Vdiff近似于0。在总线空闲或隐性期间,发送隐性位。显性位以大于最小阀值的差分电压表示。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1361860 2008-4-14 14:08

谢谢支持

用户1328398 2008-4-14 11:54

投一票,希望博主能拿奖

用户393569 2007-11-20 19:40

 不好意思,编译该日志的时候出现了问题,我会尽快修改的!

相关推荐阅读
用户393569 2011-10-14 10:26
ucos-ii 中断服务程序需要做的事情
用户中断服务子程序需要按以下顺序完成这些工作:保存全部CPU寄存器; (1)调用OSIntEnter或OSIntNesting直接加1; (2)执行用户代码做中断服务; (3)调用OSIntExit(...
用户393569 2011-10-14 10:17
ucos-ii 任务状态
下图是μC/OS-Ⅱ控制下的任务状态转换图。在任一给定的时刻,任务的状态一定是在这五种状态之一。   ...
用户393569 2011-01-15 09:59
与书配套-CAN学习板第六版照片
...
用户393569 2009-10-27 07:17
【转载】hxhxin网友:我的自收发实验成功了.........
 当买来CAN学习板时,看着板子精致的,说实话,都不舍得碰,怕碰坏了。更别说用板子来做实验了,简直是无从下手。因为我的专业是电力系统自动化,学的都是强电类的,对这个小板子还真的不了解。经过近一个半月的...
用户393569 2009-10-23 20:07
【推荐!】akuei2网友的CAN学习笔记分享
akuei2网友一直在我们小组很活跃,积极发表自己的一些学习经验。这几天有机会看了他在EDN博客上发表的几篇CAN的学习笔记,觉得写得非常好!还没有征得他的同意我就想转载进来,这里把连接标出来,供大家...
用户393569 2009-08-23 19:30
出差了!
今晚就要出差了,出差过程中白天不方便上网,不能看大家的发帖了.晚上有时间会尽量来EDN上转转,与大家共同学习!在这器件如果您有问题,可以发邮件给我.如果你购买了无线模块,而还没有收到程序,那么请将你付...
我要评论
1
8
关闭 站长推荐上一条 /3 下一条