📄 dnet development dnd欢迎你的到来4.htm
字号:
face=Tahoma>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px; LINE-HEIGHT: 200%"><A
href="http://www.dndev.com/cgi-bin/postpaper.pl?Class=2&ID=34">CANOpen协议介绍文章[来自NIKHEF]</A> 2004-01-05[810] </P></FONT></TD>
<TD vAlign=top width="80%" height=234>
<TABLE cellPadding=0 width="100%" bgColor=#c0c0c0 border=0>
<TBODY>
<TR>
<TD align=middle width="25%"></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=6 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%">
<P align=center>
<MARQUEE
style="FONT-WEIGHT: bold; FONT-SIZE: 12pt; COLOR: #ff0000; FONT-FAMILY: Tahoma"
scrollAmount=3 behavior=alternate
align="middle">路,在脚下延伸……我坚定而执着地走着!</MARQUEE></P></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"><FONT
face=Tahoma>你的位置:<A
href="http://www.dndev.com/cgi-bin/prtindex.pl">DND首页</A> >
<A
href="http://www.dndev.com/cgi-bin/listpaper.pl?Class=2">CAN技术</A>
> 阅读文章</FONT>
<HR SIZE=1>
<P></P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"> </P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"
align=center><B><FONT face=Tahoma>CAN
技术概要及一些基本知识介绍</FONT></B></P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"
align=center><FONT
face=Tahoma>时间:2003-12-28 阅读560次</FONT></P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px">
</P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"> </P>
<P
style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; WORD-SPACING: 0px"
150% ;line-height:><FONT face=Tahoma>
<P>■ CAN意为Controller Area
Network,控制区域网络。它是一种特别适合于组建互连的设备网络系统或子系统。</P><BR>
<P>■
CAN的出现得益于欧洲的汽车制造厂商,最初的开发需求来自BMW与Mercedes汽车制造商,应用于汽车内部的通讯系统,用以减少配线,衔接各个分布式控制器。CAN最初的协议由Bosch公司所开发,具有快速响应和高可靠性,能满足ABS装置和安全气囊等的控制要求,所以得到了迅速的推广及应用,这成为CAN芯片价格的降低和其性能的提高的最大动力。DeviceNet底层以CAN为基础,因此,DeviceNet所使用的CAN芯片通常是其它网络所使用芯片价格的五分之一到十分之一。</P><BR>
<P>■ 一个典型的CAN应用于汽车控制的例子如下所示:</P><BR>
<P><IMG
src="DNet Development DND欢迎你的到来4.files/index_can.gif"></IMG></P><BR>
<P></P><BR>
<P>■ CAN的历史与发展</P><BR>
<P>1983: Start of the Bosch internal project to develop an
in-vehicle network1986: Official introduction of CAN
protocol</P><BR>
<P>1987: First CAN controller chips from Intel and Philips
Semiconductors <BR>
<P>1991: Bosch’s CAN specification 2.0 published <BR>
<P>1991: CAN Kingdom CAN-based higher-layer protocol introduced
by Kvaser <BR>
<P>1992: CAN in Automation (CiA) international users and
manufacturers group established <BR>
<P>1992: CAN Application Layer (CAL) protocol published by CiA
<BR>
<P>1992: First cars from Mercedes-Benz used CAN network <BR>
<P>1993: ISO 11898 standard published <BR>
<P>1994: 1st international CAN Conference (iCC) organized by CiA
<BR>
<P>1994: DeviceNet protocol introduction by Allen-Bradley <BR>
<P>1995: ISO 11898 amendment (extended frame format) published
<BR>
<P>1995: CANopen protocol published by CiA <BR>
<P>2000: Development of the time-triggered communication
protocol for CAN (TTCAN) <BR><BR>
<P>■ CAN的汽车用户与开发商 <BR>
<P>BMW宝马
<P>Mercedes梅赛德斯
<P>Jaguar Cars美洲虎
<P>Rover GroupRolls-Royce罗尔斯罗依斯
<P>Saab萨博
<P>Volvo沃尔沃
<P>Audi/VW奥迪/大众
<P>另外还有一些法国,美国,日本的汽车制造商,在他们的高档车型中也使用了CAN BUS,如日产,丰田。
<P align=center><BR>ISO 11898标准 <BR>
<P>■ CAN与ISO七层模式之间的关系如下图所示: <BR>
<P><IMG height=404
src="DNet Development DND欢迎你的到来4.files/index_iso.gif" width=581>
<BR><BR>
<P>CAN使用了七层模式中的最下面两层,而把上层的协议留给用户自己进行定义,这可以提供一个灵活多变的数据传输平台,DeviceNet就是这种应用中一个很典型的例子。
<BR>
<P>■ CAN的应用层协议
<P>CAN协议的特性:
<P>高伸缩性的配置;
<P>位元形式的仲裁(Bit wise Arbitration);
<P>报文优先权(Prioritisation of messages);
<P>系统范围的数据连贯性(System wide data consistency);
<P>多路传输接受(Multicast reception);
<P>错误检测与发送(Error detection and error signalling);
<P>自动重新发送损坏的报文(Automatic retransmission of corrupted messages);
<P>区分一个节点暂时性与永久性的错误与自律性的中断有缺陷的节点。 <BR>
<P>■ 协议说明:
<P>目前的修订版是2.0,1993年9月出版,包括两个部分:
<P>PartA:指定11 bit的确认区
<P>PartB:指定29 bit的确认区DeviceNet使用其PartA,不使用PartB。 <BR>
<P align=center>CAN结构 <BR>
<P>■ CAN的帧格式如下图所示(如看不清请点击图片): <BR>
<P><A href="DNet Development DND欢迎你的到来4.files/index_frame.gif"
target=_blank><IMG height=332
src="DNet Development DND欢迎你的到来4.files/index_frame.gif"
width=565> <BR><BR></A>
<P><A href="DNet Development DND欢迎你的到来4.files/index_frame.gif"
target=_blank>(点击获取清晰图片)</A> <BR><BR>
<P>■ 物理信号
<P>总线电平 0 = 显性(dominant)
<P>总线电平 1 = 隐性(recessive)
<P>总线闲置 = 隐性(recessive)
<P>*显性电平将覆盖隐性电平如下例所示: <BR>
<P>#1 #2 #3
最终总线电平 <BR>
<P> 0
0
0 0
<BR>
<P> 0
0
1 0
<BR>
<P> 0
1
0 0
<BR>
<P> 1
1
1 1
<BR>
<P>必须所有节点电平为1,总线电平才为1,否则1被0覆盖。 <BR>
<P>■ CAN实现的信号 <BR>
<P>使用非屏蔽的双绞线(Unshielded Twisted Pair,UTP)。 <BR>
<P>CAN_HIGH: 隐性为2.5V,显性为3.5V <BR>
<P>CAN_LOW: 隐性为2.5V,显性为1.5V <BR>
<P><IMG height=154
src="DNet Development DND欢迎你的到来4.files/index_bit.gif" width=487
border=0> <BR>
<P><BR><BR>■ 非零位复原编码(NRZ) <BR>
<P>NRZ因为去掉了每位都归零,所以减少了变换的次数,噪音信号随之减少,此技术也使CAN所使用的位元仲裁机制成为可能。但NRZ编码存在一定的缺陷,就是不定性同步问题(Non-determinant
Synchronisation),尤其在高传输速率时会出错,而解决的办法就是位元填充技术(Bit-Stuffing)。位元填充技术在每五个连续的相同电平之后插入一个位元的反相电平。
<BR>
<P><IMG height=152
src="DNet Development DND欢迎你的到来4.files/index_stuff.gif"
width=361 border=0> <BR>
<P><BR>在数据传输时,填充位由收发器(Transceiver)自动加上发送,并在接收时自动去除。 <BR>仲裁与错误侦测
<BR>
<P><BR><BR>■ CSMA/CD与NBDA <BR>
<P>CSMA/CD:带碰撞检测的载波侦听多重访问机制,主要用于以太网,它的机制是如果有两个节点同时传输数据,则两个都等待不同的时间后再进行传送,会浪费一定的带宽时间。
<BR>
<P>NBDA:非破坏性的位元仲裁机制,其原理为节点的数据按一定的方式有优先权(CAN是显性优先),当两个节点发生冲突时,优先权高的继续传送数据,同时优先权低的节点取消发送,因此不会浪费带宽。
<BR>
<P><BR>■ 仲裁原理如下图: <BR>
<P><IMG height=281
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -